DealiiPreconditionerWrapper< dim, number, VectorType, DealiiPreconditionerType, OperatorType > Class Template Reference
|
Developer Documentation
|
MeltPoolDG::DealiiPreconditionerWrapper< dim, number, VectorType, DealiiPreconditionerType, OperatorType > Class Template Reference
#include <preconditioner_trilinos_wrapper.hpp>
Collaboration diagram for MeltPoolDG::DealiiPreconditionerWrapper< dim, number, VectorType, DealiiPreconditionerType, OperatorType >:
Public Member Functions | |
| DealiiPreconditionerWrapper (const OperatorType *operator_in, const ScratchData< dim, dim, number > &scratch_data_in, const unsigned dof_idx_in, const bool do_matrix_free=true) | |
| void | vmult (VectorType &dst, const VectorType &src) const |
| void | update (const std::any &external_preconditioner_matrix=std::any()) |
| void | reinit () |
Private Attributes | |
| DealiiPreconditionerType | preconditioner |
| dealii::TrilinosWrappers::SparseMatrix | preconditioner_system_matrix |
| dealii::DynamicSparsityPattern | dsp |
| const OperatorType * | eq_operator |
| const ScratchData< dim, dim, number > & | scratch_data |
| const unsigned int | dof_idx |
| const bool | do_matrix_free |
Detailed Description
template<int dim, typename number, typename VectorType, typename DealiiPreconditionerType, typename OperatorType>
class MeltPoolDG::DealiiPreconditionerWrapper< dim, number, VectorType, DealiiPreconditionerType, OperatorType >
class MeltPoolDG::DealiiPreconditionerWrapper< dim, number, VectorType, DealiiPreconditionerType, OperatorType >
Wrapper class for deal.II matrix-based preconditioners.
Constructor & Destructor Documentation
◆ DealiiPreconditionerWrapper()
template<int dim, typename number , typename VectorType , typename DealiiPreconditionerType , typename OperatorType >
|
inlineexplicit |
Constructor.
- Parameters
-
operator_in Operator object used to compute the system matrix representation (when computing matrix-free). do_matrix_free Flag indicating whether the operator is used for matrix-free computations.
Member Function Documentation
◆ reinit()
template<int dim, typename number , typename VectorType , typename DealiiPreconditionerType , typename OperatorType >
|
inline |
Initialize the internal data structures. In the matrix-based case this function does effectively do nothing. However, in the matrix-free case memory is allocated for the (sparse) preconditioner matrix.
◆ update()
template<int dim, typename number , typename VectorType , typename DealiiPreconditionerType , typename OperatorType >
|
inline |
Update the preconditioner. For the matrix-free case this means to compute the matrix representation and store it internally while for the matrix-base case it is required to pass a pointer to the externally stored system matrix which is then used internally.
- Parameters
-
external_preconditioner_matrix dealii::Pointer to the externally stored system matrix (only required when computing matrix-base)
- Exceptions
-
Exception if the no pointer is provided AND the operator does not support to calculate a matrix-representaiton.
◆ vmult()
template<int dim, typename number , typename VectorType , typename DealiiPreconditionerType , typename OperatorType >
|
inline |
Apply the preconditioner to the given src vector and store the result in the dst vector.
- Parameters
-
dst Vector in which the result is stored. src Source vector to which the preconditioner is applied.
Member Data Documentation
◆ do_matrix_free
template<int dim, typename number , typename VectorType , typename DealiiPreconditionerType , typename OperatorType >
|
private |
◆ dof_idx
template<int dim, typename number , typename VectorType , typename DealiiPreconditionerType , typename OperatorType >
|
private |
◆ dsp
template<int dim, typename number , typename VectorType , typename DealiiPreconditionerType , typename OperatorType >
|
private |
◆ eq_operator
template<int dim, typename number , typename VectorType , typename DealiiPreconditionerType , typename OperatorType >
|
private |
◆ preconditioner
template<int dim, typename number , typename VectorType , typename DealiiPreconditionerType , typename OperatorType >
|
private |
◆ preconditioner_system_matrix
template<int dim, typename number , typename VectorType , typename DealiiPreconditionerType , typename OperatorType >
|
private |
◆ scratch_data
template<int dim, typename number , typename VectorType , typename DealiiPreconditionerType , typename OperatorType >
|
private |
The documentation for this class was generated from the following file:
- include/meltpooldg/linear_algebra/preconditioner_trilinos_wrapper.hpp
Generated by