HelmholtzDGOperator< dim, number > Class Template Reference
|
Developer Documentation
|
Public Member Functions |
Private Types |
Private Member Functions |
Private Attributes |
List of all members
MeltPoolDG::LevelSet::HelmholtzDGOperator< dim, number > Class Template Reference
#include <helmholtz_DG_operator.hpp>
Collaboration diagram for MeltPoolDG::LevelSet::HelmholtzDGOperator< dim, number >:
Public Member Functions | |
| HelmholtzDGOperator (const ScratchData< dim, dim, number > &scratch_data_in, const unsigned int dof_idx_in, const unsigned int quad_idx_in, const number filter_parameter_in, const number interior_penalty_parameter_in, const PreconditionerType preconditioner_type_in) | |
| void | vmult (dealii::LinearAlgebra::distributed::Vector< number > &dst, const dealii::LinearAlgebra::distributed::Vector< number > &src) const |
| void | reinit () const |
| const SparseMatrixType & | get_system_matrix () const |
| const Preconditioner< dim, VectorType, number > & | get_preconditioner () const |
Private Types | |
| using | VectorType = dealii::LinearAlgebra::distributed::Vector< number > |
| using | SparseMatrixType = dealii::TrilinosWrappers::SparseMatrix |
| using | SparsityPatternType = dealii::TrilinosWrappers::SparsityPattern |
Private Member Functions | |
| void | local_apply_domain (const dealii::MatrixFree< dim, number > &data, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &cell_range) const |
| void | local_apply_inner_face (const dealii::MatrixFree< dim, number > &data, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &face_range) const |
| void | local_apply_boundary_face (const dealii::MatrixFree< dim, number > &data, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &face_range) const |
| void | do_cell_integral_local (FECellIntegrator< dim, 1, number > &cell_integrator) const |
| void | do_face_integral_local (FEFaceIntegrator< dim, 1, number > &face_integrator_minus, FEFaceIntegrator< dim, 1, number > &face_integrator_plus) const |
| void | do_bounary_integral_local (FEFaceIntegrator< dim, 1, number > &face_integrator_minus) const |
| void | build_matrix () const |
Private Attributes | |
| const ScratchData< dim, dim, number > & | scratch_data |
| const unsigned int | dof_idx |
| const unsigned int | quad_idx |
| dealii::AlignedVector< dealii::VectorizedArray< number > > | damping |
| dealii::AlignedVector< dealii::VectorizedArray< number > > | array_penalty_parameter |
| const number | filter_parameter |
| const number | interior_penalty_parameter |
| SparseMatrixType | system_matrix |
| Preconditioner< dim, VectorType, number > | preconditioner |
| const PreconditionerType | preconditioner_type |
Detailed Description
template<int dim, typename number>
class MeltPoolDG::LevelSet::HelmholtzDGOperator< dim, number >
class MeltPoolDG::LevelSet::HelmholtzDGOperator< dim, number >
This function applies the weak DG form of the Helmholtz operator n_ϕ - η_n*Δn_ϕ on a source vector. It is used for both the normal vector calculation and the calculation of the interface curvature.
Member Typedef Documentation
◆ SparseMatrixType
template<int dim, typename number >
|
private |
◆ SparsityPatternType
template<int dim, typename number >
|
private |
◆ VectorType
template<int dim, typename number >
|
private |
Constructor & Destructor Documentation
◆ HelmholtzDGOperator()
template<int dim, typename number >
| MeltPoolDG::LevelSet::HelmholtzDGOperator< dim, number >::HelmholtzDGOperator | ( | const ScratchData< dim, dim, number > & | scratch_data_in, |
| const unsigned int | dof_idx_in, | ||
| const unsigned int | quad_idx_in, | ||
| const number | filter_parameter_in, | ||
| const number | interior_penalty_parameter_in, | ||
| const PreconditionerType | preconditioner_type_in | ||
| ) |
Member Function Documentation
◆ build_matrix()
template<int dim, typename number >
|
private |
Builds the matrix of the operator
◆ do_bounary_integral_local()
template<int dim, typename number >
|
private |
- Parameters
-
face_integrator_minus
◆ do_cell_integral_local()
template<int dim, typename number >
|
private |
The following functions are similar to the ones above, but are need to obtain the matrix from a matrix free implementation
- Parameters
-
cell_integrator
◆ do_face_integral_local()
template<int dim, typename number >
|
private |
- Parameters
-
face_integrator_minus face_integrator_plus
◆ get_preconditioner()
template<int dim, typename number >
|
inline |
◆ get_system_matrix()
template<int dim, typename number >
|
inline |
◆ local_apply_boundary_face()
template<int dim, typename number >
|
private |
Applies the boundary face integral
- Parameters
-
data the matrix free object dst destination where the result is stored src source vector face_range
◆ local_apply_domain()
template<int dim, typename number >
|
private |
Applies the domain integral
- Parameters
-
data the matrix free object dst destination where the result is stored src source vector cell_range
◆ local_apply_inner_face()
template<int dim, typename number >
|
private |
Applies the inner face integral
- Parameters
-
data the matrix free object dst destination where the result is stored src source vector face_range
◆ reinit()
template<int dim, typename number >
| void MeltPoolDG::LevelSet::HelmholtzDGOperator< dim, number >::reinit | ( | ) | const |
The matrix can be extremly bad condtioned and cause problems for the linear solver. Therefore a preconditioner is needed.
◆ vmult()
template<int dim, typename number >
| void MeltPoolDG::LevelSet::HelmholtzDGOperator< dim, number >::vmult | ( | dealii::LinearAlgebra::distributed::Vector< number > & | dst, |
| const dealii::LinearAlgebra::distributed::Vector< number > & | src | ||
| ) | const |
Applies the operator to src and safes the result in dst
- Parameters
-
dst destination vector src source vector
Member Data Documentation
◆ array_penalty_parameter
template<int dim, typename number >
|
mutableprivate |
◆ damping
template<int dim, typename number >
|
mutableprivate |
◆ dof_idx
template<int dim, typename number >
|
private |
◆ filter_parameter
template<int dim, typename number >
|
private |
◆ interior_penalty_parameter
template<int dim, typename number >
|
private |
◆ preconditioner
template<int dim, typename number >
|
mutableprivate |
◆ preconditioner_type
template<int dim, typename number >
|
private |
◆ quad_idx
template<int dim, typename number >
|
private |
◆ scratch_data
template<int dim, typename number >
|
private |
◆ system_matrix
template<int dim, typename number >
|
mutableprivate |
The documentation for this class was generated from the following files:
- include/meltpooldg/level_set/helmholtz_DG_operator.hpp
- source/level_set/helmholtz_DG_operator.cpp
Generated by