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

#include <GoldakHeatSource.hh>

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

Public Member Functions

 GoldakHeatSource (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 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 _pi_over_3_to_1p5 = std::pow(dealii::numbers::PI / 3.0, 1.5)
 

Additional Inherited Members

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

Detailed Description

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

A derived class from HeatSource for the Goldak model of a laser heat source. The form of the heat source model is taken from the following reference: Coleman et al, Journal of Heat Transfer, (in press, 2020).

Definition at line 20 of file GoldakHeatSource.hh.

Constructor & Destructor Documentation

◆ GoldakHeatSource()

template<int dim>
adamantine::GoldakHeatSource< dim >::GoldakHeatSource ( 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 contain the following entries:
  • heat_source.dimension
  • heat_source.power

Definition at line 13 of file GoldakHeatSource.cc.

Member Function Documentation

◆ get_bounding_box()

template<int dim>
dealii::BoundingBox< dim > adamantine::GoldakHeatSource< dim >::get_bounding_box ( double  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 127 of file GoldakHeatSource.cc.

◆ update_time()

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

Set the time variable.

Implements adamantine::HeatSource< dim >.

Definition at line 22 of file GoldakHeatSource.cc.

◆ value() [1/2]

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

Returns the value of a Goldak heat source at a specified point and time.

Implements adamantine::HeatSource< dim >.

Definition at line 39 of file GoldakHeatSource.cc.

◆ value() [2/2]

template<int dim>
dealii::VectorizedArray< double > adamantine::GoldakHeatSource< 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 74 of file GoldakHeatSource.cc.

Member Data Documentation

◆ _alpha

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

Definition at line 64 of file GoldakHeatSource.hh.

◆ _beam_center

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

Definition at line 63 of file GoldakHeatSource.hh.

◆ _depth

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

Definition at line 66 of file GoldakHeatSource.hh.

◆ _pi_over_3_to_1p5

template<int dim>
double const adamantine::GoldakHeatSource< dim >::_pi_over_3_to_1p5 = std::pow(dealii::numbers::PI / 3.0, 1.5)
private

Definition at line 70 of file GoldakHeatSource.hh.

◆ _radius_squared

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

Definition at line 68 of file GoldakHeatSource.hh.