ReinitializationEllipticOperation< dim, number > Class Template Reference
|
Developer Documentation
|
Operation that performs the elliptic reinitialization process. More...
#include <reinitialization_elliptic_operation.hpp>
Public Types | |
| using | VectorType = dealii::LinearAlgebra::distributed::Vector< number > |
| using | MappingInfoType = CutUtil::MappingInfoType< dim, number > |
Public Member Functions | |
| ReinitializationEllipticOperation (const ScratchData< dim, dim, number > &scratch_data_in, const ReinitializationData< number > &reinit_data, const unsigned int reinit_dof_idx_in, const unsigned int reinit_quad_idx_in, const unsigned int ls_dof_idx_in) | |
| Constructor. | |
| void | solve () override |
| Solve the elliptic reinitialization problem using fix point iteration. | |
| void | solve_one_iter () |
| Solve one step of the fix point iteration for the elliptic reinitialization problem. | |
| void | reinit () override |
| Resizes the vectors to the right size of the underlying DoF handler and initializes further internal data structures. | |
| void | set_initial_condition (const VectorType &solution_level_set_in) override |
Copies a solution field to solution_level_set. | |
| void | set_initial_condition (const dealii::Function< dim > &initial_field_function) override |
| Sets the initial conditions of the level set field based on the analytical function. | |
| const VectorType & | get_level_set () const override |
| Access the level-set field (const version). | |
| VectorType & | get_level_set () override |
| Access the level-set field (mutable version). | |
| void | attach_vectors (std::vector< dealii::LinearAlgebra::distributed::Vector< number > * > &vectors) override |
| Attach internal vectors to an external container. | |
| void | attach_output_vectors (GenericDataOut< dim, number > &data_out) const override |
| Attach the level-set solution, and normal vector components for output. | |
| number | get_relative_change_level_set () const |
| Get the relative change of the level set L2 norm between the current and previous fix point iteration. | |
Public Member Functions inherited from MeltPoolDG::LevelSet::ReinitializationOperationBase< dim, number > | |
| virtual | ~ReinitializationOperationBase ()=default |
| virtual void | set_wetting_boundary_condition_ids (std::vector< dealii::types::boundary_id > &&) |
| Sets the boundary IDs where wetting boundary conditions should be applied. | |
| virtual number | compute_CFL_based_timestep () const |
| virtual void | set_artificial_diffusitivity () |
| virtual dealii::LinearAlgebra::distributed::Vector< number > * | get_sign_indicator_function () |
Private Member Functions | |
| void | compute_intersected_quadrature () |
| Compute the quadrature rules for the immersed phase boundaries. | |
| void | create_operator () |
| Create the elliptic reinitialization operator. | |
Private Attributes | |
| MappingInfoType | mapping_info_surface |
| Mapping information for integration over immersed boundaries. | |
| std::shared_ptr< dealii::NonMatching::MeshClassifier< dim > > | mesh_classifier |
| const ScratchData< dim, dim, number > & | scratch_data |
| Scratch data object. | |
| const ReinitializationData< number > | reinit_data |
| Container for reinitialization-related data. | |
| unsigned int | reinit_dof_idx |
| const unsigned int | reinit_quad_idx |
| const unsigned int | ls_dof_idx |
| VectorType | solution_level_set |
| This is the primary solution vector of this class. | |
| VectorType | rhs |
| Vector for the right-hand side. | |
| VectorType | level_set_old |
| std::unique_ptr< ReinitializationEllipticOperator< dim, number > > | reinit_operator |
| Pointer to the elliptic reinitialization operator object. | |
| Preconditioner< dim, VectorType, number > | preconditioner |
| Preconditioner for the linear solver. | |
| number | relative_change_level_set = std::numeric_limits<number>::max() |
| Relative change of the level L2 norm between the current and previous fix point iteration. | |
| VectorType | level_set_old_locally_owned |
| Locally relevant DoF vector. It is required by the mesh classifier. | |
Detailed Description
class MeltPoolDG::LevelSet::ReinitializationEllipticOperation< dim, number >
Operation that performs the elliptic reinitialization process.
- Template Parameters
-
dim Dimension of the considered simulation case. number Floating point format type.
Member Typedef Documentation
◆ MappingInfoType
| using MeltPoolDG::LevelSet::ReinitializationEllipticOperation< dim, number >::MappingInfoType = CutUtil::MappingInfoType<dim, number> |
◆ VectorType
| using MeltPoolDG::LevelSet::ReinitializationEllipticOperation< dim, number >::VectorType = dealii::LinearAlgebra::distributed::Vector<number> |
Constructor & Destructor Documentation
◆ ReinitializationEllipticOperation()
| MeltPoolDG::LevelSet::ReinitializationEllipticOperation< dim, number >::ReinitializationEllipticOperation | ( | const ScratchData< dim, dim, number > & | scratch_data_in, |
| const ReinitializationData< number > & | reinit_data, | ||
| const unsigned int | reinit_dof_idx_in, | ||
| const unsigned int | reinit_quad_idx_in, | ||
| const unsigned int | ls_dof_idx_in | ||
| ) |
Constructor.
Initializes all internal data structures required for the elliptic reinitialization process.
- Parameters
-
scratch_data_in Reference to the used ScratchData object. reinit_data Reference to the object for reinitialization-specific data. reinit_dof_idx_in Index of the used dof-handler object in scratch_data_in.reinit_quad_idx_in Index of the used quadrature object in scratch_data_in.ls_dof_idx_in Index of the used dof-handler object in scratch_data_infor the level-set.
Member Function Documentation
◆ attach_output_vectors()
|
overridevirtual |
Attach the level-set solution, and normal vector components for output.
- Parameters
-
data_out Data output object.
Implements MeltPoolDG::LevelSet::ReinitializationOperationBase< dim, number >.
◆ attach_vectors()
|
overridevirtual |
Attach internal vectors to an external container.
Adds the solution_level_set vector to the provided list and forwards the call to the normal vector operation.
- Parameters
-
vectors Vector of pointers to distributed vectors to be extended.
Implements MeltPoolDG::LevelSet::ReinitializationOperationBase< dim, number >.
◆ compute_intersected_quadrature()
|
private |
Compute the quadrature rules for the immersed phase boundaries.
◆ create_operator()
|
private |
Create the elliptic reinitialization operator.
◆ get_level_set() [1/2]
|
overridevirtual |
Access the level-set field (const version).
- Returns
- Constant reference to the level-set vector.
Implements MeltPoolDG::LevelSet::ReinitializationOperationBase< dim, number >.
◆ get_level_set() [2/2]
|
overridevirtual |
Access the level-set field (mutable version).
- Returns
- Reference to the level-set vector.
Implements MeltPoolDG::LevelSet::ReinitializationOperationBase< dim, number >.
◆ get_relative_change_level_set()
| number MeltPoolDG::LevelSet::ReinitializationEllipticOperation< dim, number >::get_relative_change_level_set | ( | ) | const |
Get the relative change of the level set L2 norm between the current and previous fix point iteration.
- Returns
- Relative change of the level set norm.
◆ reinit()
|
overridevirtual |
Resizes the vectors to the right size of the underlying DoF handler and initializes further internal data structures.
After a call to this function the solve() function of the class can be utilized.
Implements MeltPoolDG::LevelSet::ReinitializationOperationBase< dim, number >.
◆ set_initial_condition() [1/2]
|
overridevirtual |
Sets the initial conditions of the level set field based on the analytical function.
- Parameters
-
initial_field_function Given analytical function which is used for the projection to the discrete space.
- Note
- The initial conditions are applied using a L_2 projection for each element. This reduces oscillations for higher order elements.
Implements MeltPoolDG::LevelSet::ReinitializationOperationBase< dim, number >.
◆ set_initial_condition() [2/2]
|
overridevirtual |
Copies a solution field to solution_level_set.
- Parameters
-
solution_level_set_in Given DoF vector for the discrete level-set field.
Implements MeltPoolDG::LevelSet::ReinitializationOperationBase< dim, number >.
◆ solve()
|
overridevirtual |
Solve the elliptic reinitialization problem using fix point iteration.
Implements MeltPoolDG::LevelSet::ReinitializationOperationBase< dim, number >.
◆ solve_one_iter()
| void MeltPoolDG::LevelSet::ReinitializationEllipticOperation< dim, number >::solve_one_iter | ( | ) |
Solve one step of the fix point iteration for the elliptic reinitialization problem.
Member Data Documentation
◆ level_set_old
|
private |
◆ level_set_old_locally_owned
|
private |
Locally relevant DoF vector. It is required by the mesh classifier.
◆ ls_dof_idx
|
private |
◆ mapping_info_surface
|
private |
Mapping information for integration over immersed boundaries.
◆ mesh_classifier
|
private |
Mesh classifier, which contains information if a cell is inside or outside the physically relevant region, or cut by the immersed boundary. It corresponds to the current level set position.
◆ preconditioner
|
private |
Preconditioner for the linear solver.
◆ reinit_data
|
private |
Container for reinitialization-related data.
◆ reinit_dof_idx
|
mutableprivate |
Based on the following indices the correct DoFHandler or quadrature rule from ScratchData<dim,dim,number> object is selected. This is important when ScratchData<dim,dim,number> holds multiple DoFHandlers, quadrature rules, etc.
◆ reinit_operator
|
private |
Pointer to the elliptic reinitialization operator object.
◆ reinit_quad_idx
|
private |
◆ relative_change_level_set
|
private |
Relative change of the level L2 norm between the current and previous fix point iteration.
◆ rhs
|
private |
Vector for the right-hand side.
◆ scratch_data
|
private |
Scratch data object.
◆ solution_level_set
|
private |
This is the primary solution vector of this class.
The documentation for this class was generated from the following files:
- include/meltpooldg/level_set/reinitialization_elliptic_operation.hpp
- source/level_set/reinitialization_elliptic_operation.cpp
Generated by
Public Member Functions inherited from