KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
List of all members
Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType > Class Template Reference

DiagonalPreconditioner class. More...

#include <diagonal_preconditioner.h>

Inheritance diagram for Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >:
Collaboration diagram for Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >:

Public Member Functions

Life Cycle
 DiagonalPreconditioner ()
 Default constructor. More...
 
 DiagonalPreconditioner (const DiagonalPreconditioner &Other)
 Copy constructor. More...
 
 ~DiagonalPreconditioner () override
 Destructor. More...
 
Operators
DiagonalPreconditioneroperator= (const DiagonalPreconditioner &Other)
 Assignment operator. More...
 
Operations
void Initialize (SparseMatrixType &rA, VectorType &rX, VectorType &rB) override
 
void Initialize (SparseMatrixType &rA, DenseMatrixType &rX, DenseMatrixType &rB) override
 
void Mult (SparseMatrixType &rA, VectorType &rX, VectorType &rY) override
 
void TransposeMult (SparseMatrixType &rA, VectorType &rX, VectorType &rY) override
 
VectorTypeApplyLeft (VectorType &rX) override
 
VectorTypeApplyRight (VectorType &rX) override
 
VectorTypeApplyTransposeLeft (VectorType &rX) override
 
VectorTypeApplyTransposeRight (VectorType &rX) override
 
VectorTypeApplyInverseRight (VectorType &rX) override
 
VectorTypeFinalize (VectorType &rX) override
 
Input and output
std::string Info () const override
 Return information about this object. More...
 
void PrintInfo (std::ostream &OStream) const override
 Print information about this object. More...
 
- Public Member Functions inherited from Kratos::Preconditioner< TSparseSpaceType, TDenseSpaceType >
 Preconditioner ()
 Default constructor. More...
 
 Preconditioner (const Preconditioner &Other)
 Copy constructor. More...
 
virtual ~Preconditioner ()
 Destructor. More...
 
Preconditioneroperator= (const Preconditioner &Other)
 Assignment operator. More...
 
virtual void InitializeSolutionStep (SparseMatrixType &rA, VectorType &rX, VectorType &rB)
 
virtual void FinalizeSolutionStep (SparseMatrixType &rA, VectorType &rX, VectorType &rB)
 
virtual void Clear ()
 
virtual bool AdditionalPhysicalDataIsNeeded ()
 
virtual void ProvideAdditionalData (SparseMatrixType &rA, VectorType &rX, VectorType &rB, typename ModelPart::DofsArrayType &rdof_set, ModelPart &r_model_part)
 
virtual void PrintData (std::ostream &rOStream) const
 Print object's data. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (Preconditioner)
 Pointer definition of Preconditioner. More...
 

Type Definitions

typedef Preconditioner< TSparseSpaceType, TDenseSpaceType > BaseType
 
typedef TSparseSpaceType::DataType DataType
 
typedef TSparseSpaceType::MatrixType SparseMatrixType
 
typedef TSparseSpaceType::VectorType VectorType
 
typedef TDenseSpaceType::MatrixType DenseMatrixType
 
 KRATOS_CLASS_POINTER_DEFINITION (DiagonalPreconditioner)
 Counted pointer of DiagonalPreconditioner. More...
 

Additional Inherited Members

- Public Types inherited from Kratos::Preconditioner< TSparseSpaceType, TDenseSpaceType >
typedef TSparseSpaceType::MatrixType SparseMatrixType
 
typedef TSparseSpaceType::VectorType VectorType
 
typedef TDenseSpaceType::MatrixType DenseMatrixType
 

Detailed Description

template<class TSparseSpaceType, class TDenseSpaceType>
class Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >

DiagonalPreconditioner class.

DiagonalPreconditioner for linesr system solvers.

Member Typedef Documentation

◆ BaseType

template<class TSparseSpaceType , class TDenseSpaceType >
typedef Preconditioner<TSparseSpaceType, TDenseSpaceType> Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::BaseType

◆ DataType

template<class TSparseSpaceType , class TDenseSpaceType >
typedef TSparseSpaceType::DataType Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::DataType

◆ DenseMatrixType

template<class TSparseSpaceType , class TDenseSpaceType >
typedef TDenseSpaceType::MatrixType Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::DenseMatrixType

◆ SparseMatrixType

template<class TSparseSpaceType , class TDenseSpaceType >
typedef TSparseSpaceType::MatrixType Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::SparseMatrixType

◆ VectorType

template<class TSparseSpaceType , class TDenseSpaceType >
typedef TSparseSpaceType::VectorType Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::VectorType

Constructor & Destructor Documentation

◆ DiagonalPreconditioner() [1/2]

template<class TSparseSpaceType , class TDenseSpaceType >
Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::DiagonalPreconditioner ( )
inline

Default constructor.

◆ DiagonalPreconditioner() [2/2]

template<class TSparseSpaceType , class TDenseSpaceType >
Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::DiagonalPreconditioner ( const DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType > &  Other)
inline

Copy constructor.

◆ ~DiagonalPreconditioner()

template<class TSparseSpaceType , class TDenseSpaceType >
Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::~DiagonalPreconditioner ( )
inlineoverride

Destructor.

Member Function Documentation

◆ ApplyInverseRight()

template<class TSparseSpaceType , class TDenseSpaceType >
VectorType& Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::ApplyInverseRight ( VectorType rX)
inlineoverridevirtual

◆ ApplyLeft()

template<class TSparseSpaceType , class TDenseSpaceType >
VectorType& Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::ApplyLeft ( VectorType rX)
inlineoverridevirtual

◆ ApplyRight()

template<class TSparseSpaceType , class TDenseSpaceType >
VectorType& Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::ApplyRight ( VectorType rX)
inlineoverridevirtual

◆ ApplyTransposeLeft()

template<class TSparseSpaceType , class TDenseSpaceType >
VectorType& Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::ApplyTransposeLeft ( VectorType rX)
inlineoverridevirtual

DiagonalPreconditioner transpose solver. Solving tranpose preconditioner system M^T*x=y, where m^T means transpose.

Parameters
rMatrixDiagonalPreconditioner system matrix.
rXVectorUnknows of preconditioner suystem
rYVectorRight side of preconditioner system.

Reimplemented from Kratos::Preconditioner< TSparseSpaceType, TDenseSpaceType >.

◆ ApplyTransposeRight()

template<class TSparseSpaceType , class TDenseSpaceType >
VectorType& Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::ApplyTransposeRight ( VectorType rX)
inlineoverridevirtual

◆ Finalize()

template<class TSparseSpaceType , class TDenseSpaceType >
VectorType& Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::Finalize ( VectorType rX)
inlineoverridevirtual

◆ Info()

template<class TSparseSpaceType , class TDenseSpaceType >
std::string Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::Info ( ) const
inlineoverridevirtual

Return information about this object.

Reimplemented from Kratos::Preconditioner< TSparseSpaceType, TDenseSpaceType >.

◆ Initialize() [1/2]

template<class TSparseSpaceType , class TDenseSpaceType >
void Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::Initialize ( SparseMatrixType rA,
DenseMatrixType rX,
DenseMatrixType rB 
)
inlineoverridevirtual

◆ Initialize() [2/2]

template<class TSparseSpaceType , class TDenseSpaceType >
void Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::Initialize ( SparseMatrixType rA,
VectorType rX,
VectorType rB 
)
inlineoverridevirtual

DiagonalPreconditioner Initialize Initialize preconditioner for linear system rA*rX=rB

Parameters
rAsystem matrix.
rXUnknows vector
rBRight side linear system of equations.

Reimplemented from Kratos::Preconditioner< TSparseSpaceType, TDenseSpaceType >.

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<class TSparseSpaceType , class TDenseSpaceType >
Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::KRATOS_CLASS_POINTER_DEFINITION ( DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >  )

Counted pointer of DiagonalPreconditioner.

◆ Mult()

template<class TSparseSpaceType , class TDenseSpaceType >
void Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::Mult ( SparseMatrixType rA,
VectorType rX,
VectorType rY 
)
inlineoverridevirtual

◆ operator=()

template<class TSparseSpaceType , class TDenseSpaceType >
DiagonalPreconditioner& Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::operator= ( const DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType > &  Other)
inline

Assignment operator.

◆ PrintInfo()

template<class TSparseSpaceType , class TDenseSpaceType >
void Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::PrintInfo ( std::ostream &  OStream) const
inlineoverridevirtual

Print information about this object.

Reimplemented from Kratos::Preconditioner< TSparseSpaceType, TDenseSpaceType >.

◆ TransposeMult()

template<class TSparseSpaceType , class TDenseSpaceType >
void Kratos::DiagonalPreconditioner< TSparseSpaceType, TDenseSpaceType >::TransposeMult ( SparseMatrixType rA,
VectorType rX,
VectorType rY 
)
inlineoverridevirtual

The documentation for this class was generated from the following file: