GaussProjectionIntensityProfile< dim, number > Class Template Reference

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

#include <laser_intensity_profiles.hpp>

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

Classes

struct  State
 

Public Member Functions

 GaussProjectionIntensityProfile (const number power, const number radius_in, const dealii::Point< dim, number > &laser_position_in, const dealii::Tensor< 1, dim, number > &laser_direction_in)
 
 GaussProjectionIntensityProfile (const number radius_in, const dealii::Tensor< 1, dim, number > &laser_direction_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

void update_peak_power_density (const number power)
 

Private Attributes

const number radius
 
dealii::Point< dim, number > laser_position
 
const dealii::Tensor< 1, dim, number > laser_direction
 
number peak_power_density
 
const std::function< const State(void)> updater
 

Detailed Description

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

Gauss laser profile for projection-based laser models

intensity = power / ( radius^2 * pi/2 ) * exp( -2 * ( distance / radius )^2 )

where the distance is between the point

Parameters
pand the laser beam center line defined by the
laser_positionand the
laser_direction.

Constructor & Destructor Documentation

◆ GaussProjectionIntensityProfile() [1/2]

template<int dim, typename number >
MeltPoolDG::Heat::GaussProjectionIntensityProfile< dim, number >::GaussProjectionIntensityProfile ( const number  power,
const number  radius_in,
const dealii::Point< dim, number > &  laser_position_in,
const dealii::Tensor< 1, dim, number > &  laser_direction_in 
)
inline

◆ GaussProjectionIntensityProfile() [2/2]

template<int dim, typename number >
MeltPoolDG::Heat::GaussProjectionIntensityProfile< dim, number >::GaussProjectionIntensityProfile ( const number  radius_in,
const dealii::Tensor< 1, dim, number > &  laser_direction_in,
const std::function< const State(void)> &  updater_in 
)
inline

Member Function Documentation

◆ set_time()

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

◆ update_peak_power_density()

template<int dim, typename number >
void MeltPoolDG::Heat::GaussProjectionIntensityProfile< dim, number >::update_peak_power_density ( const number  power)
inlineprivate

◆ value()

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

Member Data Documentation

◆ laser_direction

template<int dim, typename number >
const dealii::Tensor<1, dim, number> MeltPoolDG::Heat::GaussProjectionIntensityProfile< dim, number >::laser_direction
private

◆ laser_position

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

◆ peak_power_density

template<int dim, typename number >
number MeltPoolDG::Heat::GaussProjectionIntensityProfile< dim, number >::peak_power_density
private

◆ radius

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

◆ updater

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

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