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::TrilinosJacobianEmulator< TSpace > Class Template Reference

Jacobian emulator. More...

#include <trilinos_mvqn_recursive_convergence_accelerator.hpp>

Collaboration diagram for Kratos::TrilinosJacobianEmulator< TSpace >:

Public Types

Type Definitions
typedef std::unique_ptr< TrilinosJacobianEmulator< TSpace > > Pointer
 
typedef TSpace::VectorType VectorType
 
typedef TSpace::VectorPointerType VectorPointerType
 
typedef TSpace::MatrixType MatrixType
 
typedef TSpace::MatrixPointerType MatrixPointerType
 

Public Member Functions

Life Cycle
 TrilinosJacobianEmulator (ModelPart &rInterfaceModelPart, const Epetra_MpiComm &rEpetraCommunicator, Pointer &&OldJacobianEmulatorPointer)
 
 TrilinosJacobianEmulator (ModelPart &rInterfaceModelPart, const Epetra_MpiComm &rEpetraCommunicator, Pointer &&OldJacobianEmulatorPointer, const unsigned int EmulatorBufferSize)
 
 TrilinosJacobianEmulator (ModelPart &rInterfaceModelPart, const Epetra_MpiComm &rEpetraCommunicator)
 
 TrilinosJacobianEmulator (const TrilinosJacobianEmulator &rOther)
 
virtual ~TrilinosJacobianEmulator ()
 
Operations
void ApplyPrevStepJacobian (const VectorPointerType pWorkVector, VectorPointerType pProjectedVector)
 
void ApplyJacobian (const VectorPointerType pWorkVector, VectorPointerType pProjectedVector)
 
void AppendColToV (const VectorType &rNewColV)
 
void AppendColToW (const VectorType &rNewColW)
 
void DropAndAppendColToV (const VectorType &rNewColV)
 
void DropAndAppendColToW (const VectorType &rNewColW)
 

Protected Attributes

Protected member Variables
ModelPartmrInterfaceModelPart
 
const Epetra_MpiComm & mrEpetraCommunicator
 
Pointer mpOldJacobianEmulator
 
std::vector< VectorTypemJacobianObsMatrixV
 
std::vector< VectorTypemJacobianObsMatrixW
 

Detailed Description

template<class TSpace>
class Kratos::TrilinosJacobianEmulator< TSpace >

Jacobian emulator.

Member Typedef Documentation

◆ MatrixPointerType

template<class TSpace >
typedef TSpace::MatrixPointerType Kratos::TrilinosJacobianEmulator< TSpace >::MatrixPointerType

◆ MatrixType

template<class TSpace >
typedef TSpace::MatrixType Kratos::TrilinosJacobianEmulator< TSpace >::MatrixType

◆ Pointer

template<class TSpace >
typedef std::unique_ptr< TrilinosJacobianEmulator<TSpace> > Kratos::TrilinosJacobianEmulator< TSpace >::Pointer

◆ VectorPointerType

template<class TSpace >
typedef TSpace::VectorPointerType Kratos::TrilinosJacobianEmulator< TSpace >::VectorPointerType

◆ VectorType

template<class TSpace >
typedef TSpace::VectorType Kratos::TrilinosJacobianEmulator< TSpace >::VectorType

Constructor & Destructor Documentation

◆ TrilinosJacobianEmulator() [1/4]

template<class TSpace >
Kratos::TrilinosJacobianEmulator< TSpace >::TrilinosJacobianEmulator ( ModelPart rInterfaceModelPart,
const Epetra_MpiComm &  rEpetraCommunicator,
Pointer &&  OldJacobianEmulatorPointer 
)
inline

Old Jacobian pointer constructor. The inverse Jacobian emulator will use information from the previous Jacobian

◆ TrilinosJacobianEmulator() [2/4]

template<class TSpace >
Kratos::TrilinosJacobianEmulator< TSpace >::TrilinosJacobianEmulator ( ModelPart rInterfaceModelPart,
const Epetra_MpiComm &  rEpetraCommunicator,
Pointer &&  OldJacobianEmulatorPointer,
const unsigned int  EmulatorBufferSize 
)
inline

Old Jacobian pointer constructor with recursive previous Jacobian deleting. The inverse Jacobian emulator will use information from the previous Jacobian

◆ TrilinosJacobianEmulator() [3/4]

template<class TSpace >
Kratos::TrilinosJacobianEmulator< TSpace >::TrilinosJacobianEmulator ( ModelPart rInterfaceModelPart,
const Epetra_MpiComm &  rEpetraCommunicator 
)
inline

Empty constructor. The Jacobian emulator will consider minus the identity matrix as previous Jacobian

◆ TrilinosJacobianEmulator() [4/4]

template<class TSpace >
Kratos::TrilinosJacobianEmulator< TSpace >::TrilinosJacobianEmulator ( const TrilinosJacobianEmulator< TSpace > &  rOther)
inline

Copy Constructor.

◆ ~TrilinosJacobianEmulator()

template<class TSpace >
virtual Kratos::TrilinosJacobianEmulator< TSpace >::~TrilinosJacobianEmulator ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ AppendColToV()

template<class TSpace >
void Kratos::TrilinosJacobianEmulator< TSpace >::AppendColToV ( const VectorType rNewColV)
inline

Appends a new column to the observation matrix V

Parameters
newColVnew column to be appended

◆ AppendColToW()

template<class TSpace >
void Kratos::TrilinosJacobianEmulator< TSpace >::AppendColToW ( const VectorType rNewColW)
inline

Appends a new column to the observation matrix W

Parameters
newColWnew column to be appended

◆ ApplyJacobian()

template<class TSpace >
void Kratos::TrilinosJacobianEmulator< TSpace >::ApplyJacobian ( const VectorPointerType  pWorkVector,
VectorPointerType  pProjectedVector 
)
inline

Projects the approximated inverse Jacobian onto a vector

Parameters
rWorkVectorVector in where the inverse Jacobian is to be projected
rProjectedVectorProjected vector output

◆ ApplyPrevStepJacobian()

template<class TSpace >
void Kratos::TrilinosJacobianEmulator< TSpace >::ApplyPrevStepJacobian ( const VectorPointerType  pWorkVector,
VectorPointerType  pProjectedVector 
)
inline

Projects the previous step approximated inverse Jacobian onto a vector

Parameters
rWorkVectorVector in where the inverse Jacobian is to be projected
rProjectedVectorProjected vector output

◆ DropAndAppendColToV()

template<class TSpace >
void Kratos::TrilinosJacobianEmulator< TSpace >::DropAndAppendColToV ( const VectorType rNewColV)
inline

Drops the oldest column and appends a new column to the observation matrix V

Parameters
newColVnew column to be appended

◆ DropAndAppendColToW()

template<class TSpace >
void Kratos::TrilinosJacobianEmulator< TSpace >::DropAndAppendColToW ( const VectorType rNewColW)
inline

Drops the oldest column and appends a new column to the observation matrix W

Parameters
newColWnew column to be appended

Member Data Documentation

◆ mJacobianObsMatrixV

template<class TSpace >
std::vector<VectorType> Kratos::TrilinosJacobianEmulator< TSpace >::mJacobianObsMatrixV
protected

◆ mJacobianObsMatrixW

template<class TSpace >
std::vector<VectorType> Kratos::TrilinosJacobianEmulator< TSpace >::mJacobianObsMatrixW
protected

◆ mpOldJacobianEmulator

template<class TSpace >
Pointer Kratos::TrilinosJacobianEmulator< TSpace >::mpOldJacobianEmulator
protected

◆ mrEpetraCommunicator

template<class TSpace >
const Epetra_MpiComm& Kratos::TrilinosJacobianEmulator< TSpace >::mrEpetraCommunicator
protected

◆ mrInterfaceModelPart

template<class TSpace >
ModelPart& Kratos::TrilinosJacobianEmulator< TSpace >::mrInterfaceModelPart
protected

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