LaserHeatSourceProjectionBased< dim, number > Class Template Reference
|
Developer Documentation
|
#include <laser_heat_source_projection_based.hpp>
Public Member Functions | |
| LaserHeatSourceProjectionBased (const LaserData< number > &laser_data_in, const std::shared_ptr< const dealii::Function< dim, number > > intensity_profile_in, const bool variable_properties_over_interface_in, const LevelSet::DeltaApproximationPhaseWeightedData< number > &delta_approximation_phase_weighted_data) | |
| void | compute_interfacial_heat_source (VectorType &heat_source_vector, const ScratchData< dim, dim, number > &scratch_data, const unsigned int heat_dof_idx, const VectorType &level_set_heaviside, const unsigned int ls_dof_idx, const bool zero_out=true, const BlockVectorType *normal_vector=nullptr, const unsigned int normal_dof_idx=0) const |
| void | compute_interfacial_heat_source_sharp (VectorType &heat_rhs, const ScratchData< dim, dim, number > &scratch_data, const unsigned int heat_dof_idx, const VectorType &level_set_heaviside, const unsigned int ls_dof_idx, const bool zero_out=true, const BlockVectorType *normal_vector=nullptr, const unsigned int normal_dof_idx=0) const |
| void | compute_interfacial_heat_source_sharp_conforming (VectorType &heat_rhs, const ScratchData< dim, dim, number > &scratch_data, const unsigned int heat_dof_idx, const unsigned int heat_quad_idx, const VectorType &level_set_heaviside, const unsigned int ls_dof_idx, const bool zero_out, const BlockVectorType *normal_vector, const unsigned int normal_dof_idx) const |
Private Types | |
| using | VectorType = dealii::LinearAlgebra::distributed::Vector< number > |
| using | BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector< number > |
Private Member Functions | |
| number | local_compute_interfacial_heat_source (const dealii::Point< dim > &p, const dealii::Tensor< 1, dim, number > &normal_vector, const number delta_value, const number heaviside) const |
Private Attributes | |
| const LaserData< number > & | laser_data |
| const std::shared_ptr< const dealii::Function< dim, number > > | intensity_profile |
| const dealii::Tensor< 1, dim, number > | laser_direction |
| const bool | variable_properties_over_interface |
| std::unique_ptr< const LevelSet::DeltaApproximationBase< number > > | delta_phase_weighted |
Detailed Description
class MeltPoolDG::Heat::LaserHeatSourceProjectionBased< dim, number >
Projection based laser heat source model.
Member Typedef Documentation
◆ BlockVectorType
|
private |
◆ VectorType
|
private |
Constructor & Destructor Documentation
◆ LaserHeatSourceProjectionBased()
| MeltPoolDG::Heat::LaserHeatSourceProjectionBased< dim, number >::LaserHeatSourceProjectionBased | ( | const LaserData< number > & | laser_data_in, |
| const std::shared_ptr< const dealii::Function< dim, number > > | intensity_profile_in, | ||
| const bool | variable_properties_over_interface_in, | ||
| const LevelSet::DeltaApproximationPhaseWeightedData< number > & | delta_approximation_phase_weighted_data | ||
| ) |
Member Function Documentation
◆ compute_interfacial_heat_source()
| void MeltPoolDG::Heat::LaserHeatSourceProjectionBased< dim, number >::compute_interfacial_heat_source | ( | VectorType & | heat_source_vector, |
| const ScratchData< dim, dim, number > & | scratch_data, | ||
| const unsigned int | heat_dof_idx, | ||
| const VectorType & | level_set_heaviside, | ||
| const unsigned int | ls_dof_idx, | ||
| const bool | zero_out = true, |
||
| const BlockVectorType * | normal_vector = nullptr, |
||
| const unsigned int | normal_dof_idx = 0 |
||
| ) | const |
Compute a DoF vector of the interfacial heat source.
◆ compute_interfacial_heat_source_sharp()
| void MeltPoolDG::Heat::LaserHeatSourceProjectionBased< dim, number >::compute_interfacial_heat_source_sharp | ( | VectorType & | heat_rhs, |
| const ScratchData< dim, dim, number > & | scratch_data, | ||
| const unsigned int | heat_dof_idx, | ||
| const VectorType & | level_set_heaviside, | ||
| const unsigned int | ls_dof_idx, | ||
| const bool | zero_out = true, |
||
| const BlockVectorType * | normal_vector = nullptr, |
||
| const unsigned int | normal_dof_idx = 0 |
||
| ) | const |
Compute a DoF vector of the interfacial heat source by evaluating the surface integral.
◆ compute_interfacial_heat_source_sharp_conforming()
| void MeltPoolDG::Heat::LaserHeatSourceProjectionBased< dim, number >::compute_interfacial_heat_source_sharp_conforming | ( | VectorType & | heat_rhs, |
| const ScratchData< dim, dim, number > & | scratch_data, | ||
| const unsigned int | heat_dof_idx, | ||
| const unsigned int | heat_quad_idx, | ||
| const VectorType & | level_set_heaviside, | ||
| const unsigned int | ls_dof_idx, | ||
| const bool | zero_out, | ||
| const BlockVectorType * | normal_vector, | ||
| const unsigned int | normal_dof_idx | ||
| ) | const |
For a given finite element discretization, hidden within scratch_data, compute a right-hand-side contribution for heat-transfer and store it into the DoF-vector heat_rhs (with the corresponding index heat_dof_idx). Based on the level-set indicator function (level_set_heaviside and corresponding DoFHandler index ls_dof_idx), cells will be categorized into the different phases. We loop over all element faces that are along the phase boundary and perform a surface integral based on the quadrature rule, given by the index heat_dof_idx, to compute the laser impact. The laser parameters are laser_power and laser_position. Set zero_out to true to zero out the right-hand-side vector heat_rhs in advance. The optional arguments normal_vector and normal_dof_idx, can be used to compute the unit normal at the surface.
- Note
- This function should only be used, if the level-set isosurface is aligned with element faces and does not cross the cells.
◆ local_compute_interfacial_heat_source()
|
private |
Local interfacial heat source
For the sharp interfacial heat source, set
- Parameters
-
delta_value to 1.
Member Data Documentation
◆ delta_phase_weighted
|
private |
◆ intensity_profile
|
private |
◆ laser_data
|
private |
◆ laser_direction
|
private |
◆ variable_properties_over_interface
|
private |
The documentation for this class was generated from the following files:
- include/meltpooldg/heat/laser_heat_source_projection_based.hpp
- source/heat/laser_heat_source_projection_based.cpp
Generated by