CurvatureOperator< dim, number > Class Template Reference
|
Developer Documentation
|
#include <curvature_operator.hpp>
Public Member Functions | |
| CurvatureOperator (const ScratchData< dim, dim, number > &scratch_data_in, const CurvatureData< number > &curvature_data, const unsigned int curv_dof_idx_in, const unsigned int curv_quad_idx_in, const unsigned int normal_dof_idx_in, const unsigned int ls_dof_idx_in, const VectorType *solution_level_set_in=nullptr) | |
| void | compute_system_matrix_and_rhs (const BlockVectorType &solution_normal_vector_in, VectorType &rhs) const final |
| Compute the system matrix and right-hand side vector for block vectors. | |
| void | vmult (VectorType &dst, const VectorType &src) const final |
| void | create_rhs (VectorType &dst, const BlockVectorType &src) const final |
Compute the right-hand side vector for block vectors src. | |
| void | compute_system_matrix_from_matrixfree (dealii::TrilinosWrappers::SparseMatrix &system_matrix) const final |
| Compute a sparse matrix using matrix-free techniques. | |
| void | compute_inverse_diagonal_from_matrixfree (VectorType &diagonal) const final |
| Compute the inverse diagonal using matrix-free techniques. | |
| void | reinit () final |
| Reinitialize data structures. Can be overridden by derived classes. | |
Public Member Functions inherited from MeltPoolDG::OperatorMatrixFree< dim, number > | |
| virtual | ~OperatorMatrixFree ()=default |
| virtual void | create_rhs (VectorType &, const VectorType &) const |
| Compute the right-hand side vector. | |
| virtual void | create_rhs (BlockVectorType &, const VectorType &) const |
Compute the right-hand side vector for block vectors dst. | |
| virtual void | vmult (BlockVectorType &, const BlockVectorType &) const |
| virtual void | compute_inverse_diagonal_from_matrixfree (BlockVectorType &) const |
| Compute the inverse diagonal using matrix-free techniques for block vectors. | |
Public Member Functions inherited from MeltPoolDG::OperatorBase< number > | |
| virtual | ~OperatorBase ()=default |
| void | reset_dof_index (const unsigned int dof_idx_in) |
| Set the index for the current degrees of freedom (DoF). | |
| void | reset_time_increment (const number dt) |
| Set the time increment for the operator. | |
| virtual void | pre () |
| Prepare for computations (e.g. update ghost values). Can be overridden by derived classes. | |
| virtual void | post () |
| Finalize for computations (e.g. zero out ghost values). Can be overridden by derived classes. | |
Public Member Functions inherited from MeltPoolDG::OperatorMatrixBased< dim, number > | |
| virtual | ~OperatorMatrixBased ()=default |
| virtual void | compute_system_matrix_and_rhs (const VectorType &, VectorType &) const |
| Compute the system matrix and right-hand side vector. | |
| virtual void | compute_system_matrix_and_rhs (const VectorType &, BlockVectorType &) const |
| Compute the system matrix and right-hand side block vector. | |
| virtual void | reinit_sparsity_pattern (const ScratchData< dim, dim, number > &scratch_data) |
| Reinitialize the sparsity pattern of the system matrix. | |
| const SparseMatrixType & | get_system_matrix () const |
| SparseMatrixType & | get_system_matrix () |
Private Types | |
| using | VectorType = dealii::LinearAlgebra::distributed::Vector< number > |
| using | BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector< number > |
| using | VectorizedArrayType = dealii::VectorizedArray< number > |
| using | SparseMatrixType = dealii::TrilinosWrappers::SparseMatrix |
| using | vector = dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > |
| using | scalar = dealii::VectorizedArray< number > |
Private Member Functions | |
| void | tangent_local_cell_operation (FECellIntegrator< dim, 1, number > &curv_vals, FECellIntegrator< dim, 1, number > &level_set_vals, const bool do_reinit_cells) const |
Private Attributes | |
| const ScratchData< dim, dim, number > & | scratch_data |
| const CurvatureData< number > & | curvature_data |
| const unsigned int | curv_dof_idx |
| const unsigned int | curv_quad_idx |
| const unsigned int | normal_dof_idx |
| const number | tolerance_normal_vector |
| const unsigned int | ls_dof_idx |
| const VectorType * | solution_level_set |
| dealii::AlignedVector< dealii::VectorizedArray< number > > | damping |
Additional Inherited Members | |
Public Types inherited from MeltPoolDG::OperatorMatrixFree< dim, number > | |
| using | VectorType = dealii::LinearAlgebra::distributed::Vector< number > |
| using | BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector< number > |
| using | SparseMatrixType = dealii::TrilinosWrappers::SparseMatrix |
Public Types inherited from MeltPoolDG::OperatorMatrixBased< dim, number > | |
| using | SparseMatrixType = dealii::TrilinosWrappers::SparseMatrix |
| using | SparsityPatternType = dealii::TrilinosWrappers::SparsityPattern |
| using | VectorType = dealii::LinearAlgebra::distributed::Vector< number > |
| using | BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector< number > |
Protected Attributes inherited from MeltPoolDG::OperatorBase< number > | |
| unsigned int | dof_idx = dealii::numbers::invalid_unsigned_int |
| number | time_increment = numbers::invalid_double |
| number | time_increment_inv = numbers::invalid_double |
Protected Attributes inherited from MeltPoolDG::OperatorMatrixBased< dim, number > | |
| SparseMatrixType | system_matrix |
| SparsityPatternType | dsp |
Detailed Description
class MeltPoolDG::LevelSet::CurvatureOperator< dim, number >
This function calculates the curvature of the current level set function being the solution of an intermediate projection step
(w, κ) + η_κ (∇w, ∇κ) = (w,∇·n_ϕ)
Ω Ω Ω
with test function w, curvature κ, damping parameter η_κ and the normal to the level set function n_ϕ.
Member Typedef Documentation
◆ BlockVectorType
|
private |
◆ scalar
|
private |
◆ SparseMatrixType
|
private |
◆ vector
|
private |
◆ VectorizedArrayType
|
private |
◆ VectorType
|
private |
Constructor & Destructor Documentation
◆ CurvatureOperator()
| MeltPoolDG::LevelSet::CurvatureOperator< dim, number >::CurvatureOperator | ( | const ScratchData< dim, dim, number > & | scratch_data_in, |
| const CurvatureData< number > & | curvature_data, | ||
| const unsigned int | curv_dof_idx_in, | ||
| const unsigned int | curv_quad_idx_in, | ||
| const unsigned int | normal_dof_idx_in, | ||
| const unsigned int | ls_dof_idx_in, | ||
| const VectorType * | solution_level_set_in = nullptr |
||
| ) |
Member Function Documentation
◆ compute_inverse_diagonal_from_matrixfree()
|
finalvirtual |
Compute the inverse diagonal using matrix-free techniques.
- Parameters
-
diag Vector representing the diagonal.
Reimplemented from MeltPoolDG::OperatorMatrixFree< dim, number >.
◆ compute_system_matrix_and_rhs()
|
finalvirtual |
Compute the system matrix and right-hand side vector for block vectors.
- Parameters
-
src Source block vector. dst Destination vector.
Reimplemented from MeltPoolDG::OperatorMatrixBased< dim, number >.
◆ compute_system_matrix_from_matrixfree()
|
finalvirtual |
Compute a sparse matrix using matrix-free techniques.
- Parameters
-
matrix Sparse matrix to compute.
Reimplemented from MeltPoolDG::OperatorMatrixFree< dim, number >.
◆ create_rhs()
|
finalvirtual |
Compute the right-hand side vector for block vectors src.
Reimplemented from MeltPoolDG::OperatorMatrixFree< dim, number >.
◆ reinit()
|
finalvirtual |
Reinitialize data structures. Can be overridden by derived classes.
Reimplemented from MeltPoolDG::OperatorBase< number >.
◆ tangent_local_cell_operation()
|
private |
◆ vmult()
|
finalvirtual |
Apply the matrix-free operator to a vector src and store It inside dst. This function is used in the iterative linear solver.
- Parameters
-
src Source vector. dst Destination vector.
Reimplemented from MeltPoolDG::OperatorMatrixFree< dim, number >.
Member Data Documentation
◆ curv_dof_idx
|
private |
◆ curv_quad_idx
|
private |
◆ curvature_data
|
private |
◆ damping
|
private |
◆ ls_dof_idx
|
private |
◆ normal_dof_idx
|
private |
◆ scratch_data
|
private |
◆ solution_level_set
|
private |
◆ tolerance_normal_vector
|
private |
The documentation for this class was generated from the following files:
- include/meltpooldg/level_set/curvature_operator.hpp
- source/level_set/curvature_operator.cpp
Generated by
Public Member Functions inherited from