#include <laser_operation.hpp>
|
| | LaserOperation (ScratchData< dim, dim, number > &scratch_data_in, const PeriodicBoundaryConditions< dim > &periodic_bc_in, const LaserData< number > &laser_data_in, const VectorType *heaviside_in=nullptr, const unsigned int hs_dof_idx_in=0, const RadiativeTransport::RadiativeTransportData< number > *rad_trans_data_in=nullptr, const bool problem_is_melt_pool=false, const bool heat_is_cut=false, const bool material_two_phase_transition_is_diffuse=false, const bool print_boundary_ids=false) |
| |
| void | distribute_dofs (const FiniteElementData &fe_data) |
| |
| void | setup_constraints () |
| |
| void | distribute_constraints () |
| |
| void | reinit () |
| |
| void | attach_vectors (DoFHandlerAndVectorDataType< dim, VectorType > &data) |
| |
| void | attach_output_vectors (GenericDataOut< dim, number > &data_out) const |
| |
| void | compute_heat_source (VectorType &heat_source, VectorType &heat_user_rhs, const VectorType &level_set_as_heaviside, const unsigned int ls_dof_idx, const unsigned int heat_no_bc_dof_idx, const unsigned int heat_quad_idx, const bool zero_out=false, const BlockVectorType *normal_vector=nullptr, const unsigned int normal_dof_idx=0) const |
| |
| void | reset (const number start_time) |
| |
| void | move_laser (number dt) |
| |
| const dealii::Point< dim > & | get_laser_position () const |
| |
| number | get_laser_power () const |
| |
| std::shared_ptr< const dealii::Function< dim, number > > | get_intensity_profile () const |
| |
|
| using | VectorType = dealii::LinearAlgebra::distributed::Vector< number > |
| |
| using | BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector< number > |
| |
◆ BlockVectorType
template<int dim, typename number >
◆ VectorType
template<int dim, typename number >
◆ LaserOperation()
template<int dim, typename number >
| MeltPoolDG::Heat::LaserOperation< dim, number >::LaserOperation |
( |
ScratchData< dim, dim, number > & |
scratch_data_in, |
|
|
const PeriodicBoundaryConditions< dim > & |
periodic_bc_in, |
|
|
const LaserData< number > & |
laser_data_in, |
|
|
const VectorType * |
heaviside_in = nullptr, |
|
|
const unsigned int |
hs_dof_idx_in = 0, |
|
|
const RadiativeTransport::RadiativeTransportData< number > * |
rad_trans_data_in = nullptr, |
|
|
const bool |
problem_is_melt_pool = false, |
|
|
const bool |
heat_is_cut = false, |
|
|
const bool |
material_two_phase_transition_is_diffuse = false, |
|
|
const bool |
print_boundary_ids = false |
|
) |
| |
◆ attach_output_vectors()
template<int dim, typename number >
◆ attach_vectors()
template<int dim, typename number >
◆ compute_heat_source()
template<int dim, typename number >
| void MeltPoolDG::Heat::LaserOperation< dim, number >::compute_heat_source |
( |
VectorType & |
heat_source, |
|
|
VectorType & |
heat_user_rhs, |
|
|
const VectorType & |
level_set_as_heaviside, |
|
|
const unsigned int |
ls_dof_idx, |
|
|
const unsigned int |
heat_no_bc_dof_idx, |
|
|
const unsigned int |
heat_quad_idx, |
|
|
const bool |
zero_out = false, |
|
|
const BlockVectorType * |
normal_vector = nullptr, |
|
|
const unsigned int |
normal_dof_idx = 0 |
|
) |
| const |
Compute either the heat_source vector (for LaserImpactType::interface and LaserImpactType::volumetric) or heat_user_rhs (for LaserImpactType::interface_sharp), which is the weak form of the heat_source, both with the DoF layout provided by heat_no_bc_dof_idx. The input parameter comprise the level set indicator, level_set_as_heaviside and the corresponding index of the DoFHandler ls_dof_idx.
The optional parameter zero_out specifies whether to clear out the to be filled vector heat_source or heat_user_rhs. Optionally, a normal vector field can be provided by normal_vector and normal_dof_idx. Alternatively, the unit normal to the surface will be computed by the gradient of level_set_as_heaviside.
◆ compute_laser_intensity()
template<int dim, typename number >
Compute the time-dependent laser intensity (between 0 and 1) from the user-provided parameters.
Return true if there is a change
◆ distribute_constraints()
template<int dim, typename number >
◆ distribute_dofs()
template<int dim, typename number >
◆ get_intensity_profile()
template<int dim, typename number >
Getter function for the underlying intensity profile.
◆ get_laser_position()
template<int dim, typename number >
Getter function for the laser position.
◆ get_laser_power()
template<int dim, typename number >
Getter function for the current laser power.
◆ move_laser()
template<int dim, typename number >
Move the laser position according to the provided scan speed for a time interface_value dt.
◆ print()
template<int dim, typename number >
Print info on current laser features.
◆ reinit()
template<int dim, typename number >
◆ reset()
template<int dim, typename number >
◆ setup_constraints()
template<int dim, typename number >
◆ current_power
template<int dim, typename number >
◆ current_time
template<int dim, typename number >
◆ intensity_profile
template<int dim, typename number >
◆ laser_data
template<int dim, typename number >
◆ laser_heat_source_operation_projection
template<int dim, typename number >
◆ laser_heat_source_operation_volumetric
template<int dim, typename number >
◆ laser_intensity
template<int dim, typename number >
◆ laser_position
template<int dim, typename number >
◆ periodic_bc
template<int dim, typename number >
◆ rte_constraints_dirichlet
template<int dim, typename number >
◆ rte_dirichlet_boundary_condition
template<int dim, typename number >
| std::map<dealii::types::boundary_id, std::shared_ptr<dealii::Function<dim> > > MeltPoolDG::Heat::LaserOperation< dim, number >::rte_dirichlet_boundary_condition |
|
private |
◆ rte_dof_handler
template<int dim, typename number >
◆ rte_dof_idx
template<int dim, typename number >
◆ rte_hanging_node_constraints
template<int dim, typename number >
◆ rte_hanging_nodes_dof_idx
template<int dim, typename number >
◆ rte_operation
template<int dim, typename number >
◆ rte_quad_idx
template<int dim, typename number >
◆ scratch_data
template<int dim, typename number >
The documentation for this class was generated from the following files: