GusarovIntensityProfile< dim, number > Class Template Reference

Developer Documentation: MeltPoolDG::Heat::GusarovIntensityProfile< dim, number > Class Template Reference
Developer Documentation
MeltPoolDG::Heat::GusarovIntensityProfile< dim, number > Class Template Reference

#include <laser_intensity_profiles.hpp>

Inheritance diagram for MeltPoolDG::Heat::GusarovIntensityProfile< dim, number >:
[legend]
Collaboration diagram for MeltPoolDG::Heat::GusarovIntensityProfile< dim, number >:
[legend]

Classes

struct  State
 

Public Member Functions

 GusarovIntensityProfile (const LaserData< number >::GusarovData &data_in, const number radius_in, const std::function< const State(void)> &updater_in)
 
number value (const dealii::Point< dim > &p, const unsigned int) const final
 
void set_time (const number time) final
 

Private Member Functions

number power_density (const number distance) const
 
number dq_dxi (const number xi) const
 

Private Attributes

const LaserData< number >::GusarovData & data
 
number power
 
const number radius
 
dealii::Point< dim, number > laser_position
 
const number lambda
 
const number a
 
const number D
 
const std::function< const State(void)> updater
 

Detailed Description

template<int dim, typename number>
class MeltPoolDG::Heat::GusarovIntensityProfile< dim, number >

This class implements the laser heat source model of Gusarov et al. (2009). DOI: 10.1115/1.3109245

^ dim-1 2*R | <—> -—> x | | | | | | laser beam | | | power | | | | | |

------------------------------------—^ ++ ++ | ++ q ++ | layer thickness +++ +++ | ++++++ v

The laser beam is direction is assumed to be in the negative dim-1 direction.

Constructor & Destructor Documentation

◆ GusarovIntensityProfile()

template<int dim, typename number >
MeltPoolDG::Heat::GusarovIntensityProfile< dim, number >::GusarovIntensityProfile ( const LaserData< number >::GusarovData &  data_in,
const number  radius_in,
const std::function< const State(void)> &  updater_in 
)
inline

Member Function Documentation

◆ dq_dxi()

template<int dim, typename number >
number MeltPoolDG::Heat::GusarovIntensityProfile< dim, number >::dq_dxi ( const number  xi) const
inlineprivate

◆ power_density()

template<int dim, typename number >
number MeltPoolDG::Heat::GusarovIntensityProfile< dim, number >::power_density ( const number  distance) const
inlineprivate

◆ set_time()

template<int dim, typename number >
void MeltPoolDG::Heat::GusarovIntensityProfile< dim, number >::set_time ( const number  time)
inlinefinal

◆ value()

template<int dim, typename number >
number MeltPoolDG::Heat::GusarovIntensityProfile< dim, number >::value ( const dealii::Point< dim > &  p,
const unsigned int   
) const
inlinefinal

Member Data Documentation

◆ a

template<int dim, typename number >
const number MeltPoolDG::Heat::GusarovIntensityProfile< dim, number >::a
private

◆ D

template<int dim, typename number >
const number MeltPoolDG::Heat::GusarovIntensityProfile< dim, number >::D
private

◆ data

template<int dim, typename number >
const LaserData<number>::GusarovData& MeltPoolDG::Heat::GusarovIntensityProfile< dim, number >::data
private

◆ lambda

template<int dim, typename number >
const number MeltPoolDG::Heat::GusarovIntensityProfile< dim, number >::lambda
private

◆ laser_position

template<int dim, typename number >
dealii::Point<dim, number> MeltPoolDG::Heat::GusarovIntensityProfile< dim, number >::laser_position
private

◆ power

template<int dim, typename number >
number MeltPoolDG::Heat::GusarovIntensityProfile< dim, number >::power
private

◆ radius

template<int dim, typename number >
const number MeltPoolDG::Heat::GusarovIntensityProfile< dim, number >::radius
private

◆ updater

template<int dim, typename number >
const std::function<const State(void)> MeltPoolDG::Heat::GusarovIntensityProfile< dim, number >::updater
private

The documentation for this class was generated from the following file: