OperatorMatrixFree< dim, number > Class Template Reference
|
Developer Documentation
|
Operator handling matrix-free computations. More...
#include <operator_base.hpp>
Public Types | |
| using | VectorType = dealii::LinearAlgebra::distributed::Vector< number > |
| using | BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector< number > |
| using | SparseMatrixType = dealii::TrilinosWrappers::SparseMatrix |
Public Member Functions | |
| 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 | create_rhs (VectorType &, const BlockVectorType &) const |
Compute the right-hand side vector for block vectors src. | |
| virtual void | vmult (VectorType &, const VectorType &) const |
| virtual void | vmult (BlockVectorType &, const BlockVectorType &) const |
| virtual void | compute_system_matrix_from_matrixfree (dealii::TrilinosWrappers::SparseMatrix &) const |
| Compute a sparse matrix using matrix-free techniques. | |
| virtual void | compute_inverse_diagonal_from_matrixfree (VectorType &) const |
| Compute the inverse diagonal using matrix-free techniques. | |
| 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. | |
| virtual void | reinit () |
| Reinitialize data structures. Can be overridden by derived classes. | |
Additional Inherited Members | |
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 |
Detailed Description
class MeltPoolDG::OperatorMatrixFree< dim, number >
Operator handling matrix-free computations.
This class implements methods for performing operations without explicit assembly of matrices.
Member Typedef Documentation
◆ BlockVectorType
| using MeltPoolDG::OperatorMatrixFree< dim, number >::BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector<number> |
◆ SparseMatrixType
| using MeltPoolDG::OperatorMatrixFree< dim, number >::SparseMatrixType = dealii::TrilinosWrappers::SparseMatrix |
◆ VectorType
| using MeltPoolDG::OperatorMatrixFree< dim, number >::VectorType = dealii::LinearAlgebra::distributed::Vector<number> |
Constructor & Destructor Documentation
◆ ~OperatorMatrixFree()
|
virtualdefault |
Member Function Documentation
◆ compute_inverse_diagonal_from_matrixfree() [1/2]
|
inlinevirtual |
Compute the inverse diagonal using matrix-free techniques for block vectors.
Reimplemented in MeltPoolDG::LevelSet::NormalVectorOperator< dim, number >.
◆ compute_inverse_diagonal_from_matrixfree() [2/2]
|
inlinevirtual |
Compute the inverse diagonal using matrix-free techniques.
- Parameters
-
diag Vector representing the diagonal.
Reimplemented in MeltPoolDG::Heat::HeatCutOperator< dim, number >, MeltPoolDG::Heat::HeatDiffuseMultiPhaseOperator< dim, number >, MeltPoolDG::LevelSet::AdvectionDiffusionOperator< dim, number >, MeltPoolDG::LevelSet::CurvatureOperator< dim, number >, MeltPoolDG::LevelSet::OlssonOperator< dim, number >, MeltPoolDG::LevelSet::ReinitializationEllipticOperator< dim, number >, MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >, and MeltPoolDG::RadiativeTransport::RadiativeTransportOperator< dim, number >.
◆ compute_system_matrix_from_matrixfree()
|
inlinevirtual |
Compute a sparse matrix using matrix-free techniques.
- Parameters
-
matrix Sparse matrix to compute.
Reimplemented in MeltPoolDG::Heat::HeatCutOperator< dim, number >, MeltPoolDG::LevelSet::AdvectionDiffusionOperator< dim, number >, MeltPoolDG::LevelSet::CurvatureOperator< dim, number >, MeltPoolDG::LevelSet::NormalVectorOperator< dim, number >, MeltPoolDG::LevelSet::OlssonOperator< dim, number >, MeltPoolDG::LevelSet::ReinitializationEllipticOperator< dim, number >, MeltPoolDG::Heat::HeatDiffuseMultiPhaseOperator< dim, number >, MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >, and MeltPoolDG::RadiativeTransport::RadiativeTransportOperator< dim, number >.
◆ create_rhs() [1/3]
|
inlinevirtual |
Compute the right-hand side vector for block vectors dst.
Reimplemented in MeltPoolDG::LevelSet::NormalVectorOperator< dim, number >.
◆ create_rhs() [2/3]
|
inlinevirtual |
Compute the right-hand side vector for block vectors src.
Reimplemented in MeltPoolDG::LevelSet::CurvatureOperator< dim, number >.
◆ create_rhs() [3/3]
|
inlinevirtual |
Compute the right-hand side vector.
This function is intended to compute the right-hand side vector (dst). It is currently used in the utility function create_rhs_and_apply_dirichlet_matrixfree().
- Parameters
-
src Source vector. dst Destination vector.
Reimplemented in MeltPoolDG::Heat::HeatDiffuseMultiPhaseOperator< dim, number >, MeltPoolDG::LevelSet::AdvectionDiffusionOperator< dim, number >, MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >, MeltPoolDG::RadiativeTransport::RadiativeTransportOperator< dim, number >, MeltPoolDG::Heat::HeatCutOperator< dim, number >, MeltPoolDG::LevelSet::OlssonOperator< dim, number >, and MeltPoolDG::LevelSet::ReinitializationEllipticOperator< dim, number >.
◆ vmult() [1/2]
|
inlinevirtual |
Apply the matrix-free operator for block vectors.
Reimplemented in MeltPoolDG::LevelSet::NormalVectorOperator< dim, number >.
◆ vmult() [2/2]
|
inlinevirtual |
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 in MeltPoolDG::Heat::HeatCutOperator< dim, number >, MeltPoolDG::Heat::HeatDiffuseMultiPhaseOperator< dim, number >, MeltPoolDG::LevelSet::AdvectionDiffusionOperator< dim, number >, MeltPoolDG::LevelSet::CurvatureOperator< dim, number >, MeltPoolDG::LevelSet::OlssonOperator< dim, number >, MeltPoolDG::LevelSet::ReinitializationEllipticOperator< dim, number >, MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >, and MeltPoolDG::RadiativeTransport::RadiativeTransportOperator< dim, number >.
The documentation for this class was generated from the following file:
- include/meltpooldg/core/operator_base.hpp
Generated by
Public Member Functions inherited from