adamantine
Public Member Functions | Private Attributes | List of all members
adamantine::ElectronBeamHeatSource< dim > Class Template Referencefinal

#include <ElectronBeamHeatSource.hh>

Inheritance diagram for adamantine::ElectronBeamHeatSource< dim >:
adamantine::HeatSource< dim >

Public Member Functions

 ElectronBeamHeatSource (boost::property_tree::ptree const &beam_database, boost::optional< boost::property_tree::ptree const & > const &units_optional_database)
 
void update_time (double time) final
 
double value (dealii::Point< dim > const &point, double const height) const final
 
dealii::VectorizedArray< double > value (dealii::Point< dim, dealii::VectorizedArray< double >> const &points, dealii::VectorizedArray< double > const &height) const final
 
dealii::BoundingBox< dim > get_bounding_box (double const time, double const scaling_factor) const final
 
- Public Member Functions inherited from adamantine::HeatSource< dim >
 HeatSource ()=default
 
 HeatSource (boost::property_tree::ptree const &beam_database, boost::optional< boost::property_tree::ptree const & > const &units_optional_database)
 
virtual ~HeatSource ()=default
 
virtual ScanPathget_scan_path ()
 
virtual double get_current_height (double const time) const
 
virtual void set_beam_properties (boost::property_tree::ptree const &database)
 

Private Attributes

dealii::Point< 3, dealii::VectorizedArray< double > > _beam_center
 
dealii::VectorizedArray< double > _alpha
 
dealii::VectorizedArray< double > _depth
 
dealii::VectorizedArray< double > _radius_squared
 
double const _log_01 = std::log(0.1)
 

Additional Inherited Members

- Protected Attributes inherited from adamantine::HeatSource< dim >
BeamHeatSourceProperties _beam
 
ScanPath _scan_path
 

Detailed Description

template<int dim>
class adamantine::ElectronBeamHeatSource< dim >

A derived class from HeatSource for a model of an electron beam heat source. The form of the heat source model is taken from the following reference: Raghavan et al, Acta Materilia, 112, 2016, pp 303-314.

Definition at line 20 of file ElectronBeamHeatSource.hh.

Constructor & Destructor Documentation

◆ ElectronBeamHeatSource()

template<int dim>
adamantine::ElectronBeamHeatSource< dim >::ElectronBeamHeatSource ( boost::property_tree::ptree const &  beam_database,
boost::optional< boost::property_tree::ptree const & > const &  units_optional_database 
)

Constructor.

Parameters
[in]beam_databaserequires the following entries:
  • absorption_efficiency: double in $[0,1]$
  • depth: double in $[0,\infty)$
  • diameter: double in $[0,\infty)$
  • max_power: double in $[0, \infty)$
  • input_file: name of the file that contains the scan path segments
[in]units_optional_databasemay have the following entries:
  • heat_source.dimension
  • heat_source.power

Definition at line 13 of file ElectronBeamHeatSource.cc.

Member Function Documentation

◆ get_bounding_box()

template<int dim>
dealii::BoundingBox< dim > adamantine::ElectronBeamHeatSource< dim >::get_bounding_box ( double const  time,
double const  scaling_factor 
) const
finalvirtual

Return a scaled bounding box of the heat source at the given time.

Implements adamantine::HeatSource< dim >.

Definition at line 135 of file ElectronBeamHeatSource.cc.

◆ update_time()

template<int dim>
void adamantine::ElectronBeamHeatSource< dim >::update_time ( double  time)
finalvirtual

Set the time variable.

Implements adamantine::HeatSource< dim >.

Definition at line 22 of file ElectronBeamHeatSource.cc.

◆ value() [1/2]

template<int dim>
double adamantine::ElectronBeamHeatSource< dim >::value ( dealii::Point< dim > const &  point,
double const  height 
) const
finalvirtual

Returns the value of an electron beam heat source at a specified point and time.

Implements adamantine::HeatSource< dim >.

Definition at line 40 of file ElectronBeamHeatSource.cc.

◆ value() [2/2]

template<int dim>
dealii::VectorizedArray< double > adamantine::ElectronBeamHeatSource< dim >::value ( dealii::Point< dim, dealii::VectorizedArray< double >> const &  points,
dealii::VectorizedArray< double > const &  height 
) const
finalvirtual

Same function as above but it uses vectorized data.

Implements adamantine::HeatSource< dim >.

Definition at line 79 of file ElectronBeamHeatSource.cc.

Member Data Documentation

◆ _alpha

template<int dim>
dealii::VectorizedArray<double> adamantine::ElectronBeamHeatSource< dim >::_alpha
private
Initial value:
=
std::numeric_limits<double>::signaling_NaN()

Definition at line 65 of file ElectronBeamHeatSource.hh.

◆ _beam_center

template<int dim>
dealii::Point<3, dealii::VectorizedArray<double> > adamantine::ElectronBeamHeatSource< dim >::_beam_center
private

Definition at line 64 of file ElectronBeamHeatSource.hh.

◆ _depth

template<int dim>
dealii::VectorizedArray<double> adamantine::ElectronBeamHeatSource< dim >::_depth
private
Initial value:
=
std::numeric_limits<double>::signaling_NaN()

Definition at line 67 of file ElectronBeamHeatSource.hh.

◆ _log_01

template<int dim>
double const adamantine::ElectronBeamHeatSource< dim >::_log_01 = std::log(0.1)
private

Definition at line 71 of file ElectronBeamHeatSource.hh.

◆ _radius_squared

template<int dim>
dealii::VectorizedArray<double> adamantine::ElectronBeamHeatSource< dim >::_radius_squared
private
Initial value:
=
std::numeric_limits<double>::signaling_NaN()

Definition at line 69 of file ElectronBeamHeatSource.hh.