NormalVectorOperation< dim, number > Class Template Reference
|
Developer Documentation
|
Public Member Functions |
Private Types |
Private Member Functions |
Private Attributes |
List of all members
MeltPoolDG::LevelSet::NormalVectorOperation< dim, number > Class Template Reference
#include <normal_vector_operation.hpp>
Inheritance diagram for MeltPoolDG::LevelSet::NormalVectorOperation< dim, number >:
Collaboration diagram for MeltPoolDG::LevelSet::NormalVectorOperation< dim, number >:
Public Member Functions | |
| NormalVectorOperation (const ScratchData< dim, dim, number > &scratch_data_in, const NormalVectorData< number > &normal_vector_data, const VectorType &solution_level_set, const std::array< unsigned int, dim > &normal_dof_indices_per_block_in, const unsigned int normal_no_bc_dof_idx_in, const unsigned int normal_quad_idx_in, const unsigned int ls_dof_idx_in) | |
| void | reinit () override |
| void | solve () override |
| const BlockVectorType & | get_solution_normal_vector () const override |
| BlockVectorType & | get_solution_normal_vector () override |
| void | attach_vectors (std::vector< dealii::LinearAlgebra::distributed::Vector< number > * > &vectors) override |
Public Member Functions inherited from MeltPoolDG::LevelSet::NormalVectorOperationBase< dim, number > | |
| virtual | ~NormalVectorOperationBase ()=default |
Private Types | |
| using | VectorType = dealii::LinearAlgebra::distributed::Vector< number > |
| using | BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector< number > |
| using | SparseMatrixType = dealii::TrilinosWrappers::SparseMatrix |
Private Member Functions | |
| void | create_operator () |
Private Attributes | |
| const ScratchData< dim, dim, number > & | scratch_data |
| const NormalVectorData< number > | normal_vector_data |
| const VectorType & | solution_level_set |
| const unsigned int | normal_no_bc_dof_idx |
| const std::array< unsigned int, dim > | normal_dof_indices_per_block |
| const unsigned int | normal_quad_idx |
| const unsigned int | ls_dof_idx |
| TimeIntegration::SolutionHistory< BlockVectorType > | solution_history |
| std::unique_ptr< Predictor< BlockVectorType, number > > | predictor |
| BlockVectorType | solution_normal_vector_predictor |
| BlockVectorType | rhs |
| std::unique_ptr< NormalVectorOperator< dim, number > > | normal_vector_operator |
| Preconditioner< dim, BlockVectorType, number > | preconditioner |
Detailed Description
template<int dim, typename number>
class MeltPoolDG::LevelSet::NormalVectorOperation< dim, number >
class MeltPoolDG::LevelSet::NormalVectorOperation< dim, number >
This function calculates the normal vector of the current level set function being the solution of an intermediate projection step
(w, n_ϕ) + η_n (∇w, ∇n_ϕ) = (w,∇ϕ)
Ω Ω Ω
with test function w, the normal vector n_ϕ, damping parameter η_n and the level set function ϕ.
!!!! the normal vector field is not normalized to length one, it actually represents the gradient of the level set function !!!!
Member Typedef Documentation
◆ BlockVectorType
template<int dim, typename number >
|
private |
◆ SparseMatrixType
template<int dim, typename number >
|
private |
◆ VectorType
template<int dim, typename number >
|
private |
Constructor & Destructor Documentation
◆ NormalVectorOperation()
template<int dim, typename number >
| MeltPoolDG::LevelSet::NormalVectorOperation< dim, number >::NormalVectorOperation | ( | const ScratchData< dim, dim, number > & | scratch_data_in, |
| const NormalVectorData< number > & | normal_vector_data, | ||
| const VectorType & | solution_level_set, | ||
| const std::array< unsigned int, dim > & | normal_dof_indices_per_block_in, | ||
| const unsigned int | normal_no_bc_dof_idx_in, | ||
| const unsigned int | normal_quad_idx_in, | ||
| const unsigned int | ls_dof_idx_in | ||
| ) |
Member Function Documentation
◆ attach_vectors()
template<int dim, typename number >
|
overridevirtual |
◆ create_operator()
template<int dim, typename number >
|
private |
This function creates the normal vector operator for assembling the system operator (either matrix based or matrix free) and the right-hand side.
◆ get_solution_normal_vector() [1/2]
template<int dim, typename number >
|
overridevirtual |
◆ get_solution_normal_vector() [2/2]
template<int dim, typename number >
|
overridevirtual |
◆ reinit()
template<int dim, typename number >
|
overridevirtual |
◆ solve()
template<int dim, typename number >
|
overridevirtual |
Member Data Documentation
◆ ls_dof_idx
template<int dim, typename number >
|
private |
◆ normal_dof_indices_per_block
template<int dim, typename number >
|
private |
◆ normal_no_bc_dof_idx
template<int dim, typename number >
|
private |
◆ normal_quad_idx
template<int dim, typename number >
|
private |
◆ normal_vector_data
template<int dim, typename number >
|
private |
◆ normal_vector_operator
template<int dim, typename number >
|
private |
◆ preconditioner
template<int dim, typename number >
|
private |
◆ predictor
template<int dim, typename number >
|
private |
◆ rhs
template<int dim, typename number >
|
private |
◆ scratch_data
template<int dim, typename number >
|
private |
◆ solution_history
template<int dim, typename number >
|
private |
◆ solution_level_set
template<int dim, typename number >
|
private |
◆ solution_normal_vector_predictor
template<int dim, typename number >
|
private |
The documentation for this class was generated from the following files:
- include/meltpooldg/level_set/normal_vector_operation.hpp
- source/level_set/normal_vector_operation.cpp
Generated by
Public Member Functions inherited from