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::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver > Class Template Reference

Explicit Solution Buider and Solver base class. More...

#include <explicit_builder_and_solver.hpp>

Inheritance diagram for Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >:
Collaboration diagram for Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >:

Public Member Functions

Life Cycle
 ExplicitBuilderAndSolver ()
 Default Constructor. More...
 
 ~ExplicitBuilderAndSolver () override
 Destructor. More...
 
Operations
void BuildLHS (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixType &rA) override
 Function to perform the building of the LHS,. More...
 
void BuildRHS (SchemePointerType pScheme, ModelPart &rModelPart, SystemVectorType &rb) override
 Function to perform the build of the RHS. More...
 
void CalculateAndAddConditionsRHS (SchemePointerType pScheme, ModelPart &rModelPart)
 
void CalculateAndAddElementsRHS (SchemePointerType pScheme, ModelPart &rModelPart)
 
void Clear () override
 This function is intended to be called at the end of the solution step to clean up memory storage not needed. More...
 
int Check (ModelPart &rModelPart) override
 
- Public Member Functions inherited from Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >
 SolutionBuilderAndSolver ()
 Default Constructor. More...
 
 SolutionBuilderAndSolver (LinearSolverPointerType pLinearSystemSolver)
 Constructor. More...
 
 ~SolutionBuilderAndSolver () override
 Destructor. More...
 
virtual void Build (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixType &rA, SystemVectorType &rb)
 Function to perform the building of the LHS and RHS. More...
 
virtual void SystemSolve (SystemMatrixType &rA, SystemVectorType &rDx, SystemVectorType &rb)
 This is a call to the linear system solver. More...
 
virtual void BuildAndSolve (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixType &rA, SystemVectorType &rDx, SystemVectorType &rb)
 Function to perform the building and solving phase at the same time. More...
 
virtual void BuildRHSAndSolve (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixType &rA, SystemVectorType &rDx, SystemVectorType &rb)
 Function to perform the building of the RHS and solving phase at the same time. More...
 
virtual void ApplyDirichletConditions (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixType &rA, SystemVectorType &rDx, SystemVectorType &rb)
 applies the dirichlet conditions. More...
 
virtual void SetUpDofSet (SchemePointerType pScheme, ModelPart &rModelPart)
 Builds the list of the DofSets involved in the problem by "asking" to each element and condition its Dofs. More...
 
virtual void SetUpSystem ()
 organises the dofset in order to speed up the building phase More...
 
virtual void SetUpSystemMatrices (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixPointerType &pA, SystemVectorPointerType &pDx, SystemVectorPointerType &pb)
 Resizes and Initializes the system vectors and matrices after SetUpDofSet and SetUpSytem has been called. More...
 
virtual void InitializeSolutionStep (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixPointerType &pA, SystemVectorPointerType &pDx, SystemVectorPointerType &pb)
 Performs all the required operations that should be done (for each step) before solving the solution step. More...
 
virtual void FinalizeSolutionStep (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixPointerType &pA, SystemVectorPointerType &pDx, SystemVectorPointerType &pb)
 Performs all the required operations that should be done (for each step) after solving the solution step. More...
 
virtual void CalculateReactions (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixType &rA, SystemVectorType &rDx, SystemVectorType &rb)
 Calculates system reactions. More...
 
unsigned int GetEquationSystemSize ()
 Get size of the system. More...
 
LinearSolverPointerType GetLinearSystemSolver ()
 Get linear solver. More...
 
void SetOptions (Flags &rOptions)
 Sets strategy options. More...
 
FlagsGetOptions ()
 Get strategy options. More...
 
virtual void SetEchoLevel (const int Level)
 This sets the level of echo for the builder and solver. More...
 
virtual int GetEchoLevel ()
 
virtual void EchoInfo (ModelPart &rModelPart, SystemMatrixType &rA, SystemVectorType &rDx, SystemVectorType &rb)
 This method returns the components of the system of equations depending of the echo level. More...
 
virtual DofsArrayTypeGetDofSet ()
 Allows to get the list of system Dofs. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (SolutionBuilderAndSolver)
 Pointer definition of SolutionBuilderAndSolver. More...
 
- Public Member Functions inherited from Kratos::Flags
Flagsoperator= (Flags const &rOther)
 Assignment operator. More...
 
 operator bool () const
 
Flags operator~ () const
 
bool operator! () const
 
void AssignFlags (Flags const &rOther)
 
void Set (const Flags ThisFlag)
 
void Set (const Flags ThisFlag, bool Value)
 
void Reset (const Flags ThisFlag)
 
void Flip (const Flags ThisFlag)
 
void SetPosition (IndexType Position, bool Value=true)
 
bool GetPosition (IndexType Position) const
 
void FlipPosition (IndexType Position)
 
void ClearPosition (IndexType Position)
 
void Clear ()
 
Flags AsFalse () const
 
bool Is (Flags const &rOther) const
 
bool IsDefined (Flags const &rOther) const
 
bool IsNot (Flags const &rOther) const
 
bool IsNotDefined (Flags const &rOther) const
 
virtual std::string Info () const
 Turn back information as a string. More...
 
virtual void PrintInfo (std::ostream &rOStream) const
 Print information about this object. More...
 
virtual void PrintData (std::ostream &rOStream) const
 Print object's data. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (Flags)
 Pointer definition of Flags. More...
 
const Flagsoperator|= (const Flags &Other)
 
const Flagsoperator&= (const Flags &Other)
 
 Flags ()
 Default constructor. More...
 
 Flags (Flags const &rOther)
 Copy constructor. More...
 
virtual ~Flags ()
 Destructor. More...
 

Type Definitions

typedef SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver > BaseType
 
typedef BaseType::LocalFlagType LocalFlagType
 
typedef BaseType::DofsArrayType DofsArrayType
 
typedef BaseType::SystemMatrixType SystemMatrixType
 
typedef BaseType::SystemVectorType SystemVectorType
 
typedef BaseType::SystemMatrixPointerType SystemMatrixPointerType
 
typedef BaseType::SystemVectorPointerType SystemVectorPointerType
 
typedef BaseType::LocalSystemVectorType LocalSystemVectorType
 
typedef BaseType::LocalSystemMatrixType LocalSystemMatrixType
 
typedef ModelPart::NodesContainerType NodesContainerType
 
typedef ModelPart::ElementsContainerType ElementsContainerType
 
typedef ModelPart::ConditionsContainerType ConditionsContainerType
 
typedef BaseType::SchemePointerType SchemePointerType
 
 KRATOS_CLASS_POINTER_DEFINITION (ExplicitBuilderAndSolver)
 Pointer definition of ExplicitBuilderAndSolver. More...
 

Additional Inherited Members

- Public Types inherited from Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >
typedef SolverLocalFlags LocalFlagType
 
typedef ModelPart::DofsArrayType DofsArrayType
 
typedef TSparseSpace::MatrixType SystemMatrixType
 
typedef TSparseSpace::VectorType SystemVectorType
 
typedef TSparseSpace::MatrixPointerType SystemMatrixPointerType
 
typedef TSparseSpace::VectorPointerType SystemVectorPointerType
 
typedef TDenseSpace::MatrixType LocalSystemMatrixType
 
typedef TDenseSpace::VectorType LocalSystemVectorType
 
typedef SolutionScheme< TSparseSpace, TDenseSpace > SchemeType
 
typedef SchemeType::Pointer SchemePointerType
 
typedef TLinearSolver::Pointer LinearSolverPointerType
 
- Public Types inherited from Kratos::Flags
enum  FlagsList {
  Flag0 = BlockType(1) , Flag1 = BlockType(1) << 1 , Flag2 = BlockType(1) << 2 , Flag3 = BlockType(1) << 3 ,
  Flag4 = BlockType(1) << 4 , Flag5 = BlockType(1) << 5 , Flag6 = BlockType(1) << 6 , Flag7 = BlockType(1) << 7 ,
  Flag8 = BlockType(1) << 8 , Flag9 = BlockType(1) << 9 , Flag10 = BlockType(1) << 10 , Flag11 = BlockType(1) << 11 ,
  Flag12 = BlockType(1) << 12 , Flag13 = BlockType(1) << 13 , Flag14 = BlockType(1) << 14 , Flag15 = BlockType(1) << 15 ,
  Flag16 = BlockType(1) << 16 , Flag17 = BlockType(1) << 17 , Flag18 = BlockType(1) << 18 , Flag19 = BlockType(1) << 19 ,
  Flag20 = BlockType(1) << 20 , Flag21 = BlockType(1) << 21 , Flag22 = BlockType(1) << 22 , Flag23 = BlockType(1) << 23 ,
  Flag24 = BlockType(1) << 24 , Flag25 = BlockType(1) << 25 , Flag26 = BlockType(1) << 26 , Flag27 = BlockType(1) << 27 ,
  Flag28 = BlockType(1) << 28 , Flag29 = BlockType(1) << 29 , Flag30 = BlockType(1) << 30
}
 
typedef int64_t BlockType
 
typedef int64_t FlagType
 
typedef std::size_t IndexType
 
- Static Public Member Functions inherited from Kratos::Flags
static const Flags AllDefined ()
 
static const Flags AllTrue ()
 
static Flags Create (IndexType ThisPosition, bool Value=true)
 
- Protected Attributes inherited from Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >
LinearSolverPointerType mpLinearSystemSolver
 
DofsArrayType mDofSet
 
Flags mOptions
 
unsigned int mEquationSystemSize
 
int mEchoLevel
 
SystemVectorPointerType mpReactionsVector
 

Detailed Description

template<class TSparseSpace, class TDenseSpace, class TLinearSolver>
class Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >

Explicit Solution Buider and Solver base class.

This is the explicit builder and solver

Member Typedef Documentation

◆ BaseType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef SolutionBuilderAndSolver<TSparseSpace, TDenseSpace, TLinearSolver> Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::BaseType

◆ ConditionsContainerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef ModelPart::ConditionsContainerType Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::ConditionsContainerType

◆ DofsArrayType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::DofsArrayType Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::DofsArrayType

◆ ElementsContainerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef ModelPart::ElementsContainerType Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::ElementsContainerType

◆ LocalFlagType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::LocalFlagType Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::LocalFlagType

◆ LocalSystemMatrixType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::LocalSystemMatrixType Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::LocalSystemMatrixType

◆ LocalSystemVectorType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::LocalSystemVectorType Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::LocalSystemVectorType

◆ NodesContainerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef ModelPart::NodesContainerType Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::NodesContainerType

◆ SchemePointerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::SchemePointerType Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SchemePointerType

◆ SystemMatrixPointerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::SystemMatrixPointerType Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SystemMatrixPointerType

◆ SystemMatrixType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::SystemMatrixType Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SystemMatrixType

◆ SystemVectorPointerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::SystemVectorPointerType Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SystemVectorPointerType

◆ SystemVectorType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::SystemVectorType Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SystemVectorType

Constructor & Destructor Documentation

◆ ExplicitBuilderAndSolver()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::ExplicitBuilderAndSolver ( )
inline

Default Constructor.

◆ ~ExplicitBuilderAndSolver()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::~ExplicitBuilderAndSolver ( )
inlineoverride

Destructor.

Member Function Documentation

◆ BuildLHS()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::BuildLHS ( SchemePointerType  pScheme,
ModelPart rModelPart,
SystemMatrixType rA 
)
inlineoverridevirtual

Function to perform the building of the LHS,.

Depending on the implementation choosen the size of the matrix could be

equal to the total number of Dofs or to the number of non constrained dofs

Reimplemented from Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ BuildRHS()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::BuildRHS ( SchemePointerType  pScheme,
ModelPart rModelPart,
SystemVectorType rb 
)
inlineoverridevirtual

Function to perform the build of the RHS.

The vector could be sized as the total number of dofs or as the number of non constrained ones

Reimplemented from Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ CalculateAndAddConditionsRHS()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::CalculateAndAddConditionsRHS ( SchemePointerType  pScheme,
ModelPart rModelPart 
)
inline

◆ CalculateAndAddElementsRHS()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::CalculateAndAddElementsRHS ( SchemePointerType  pScheme,
ModelPart rModelPart 
)
inline

◆ Check()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
int Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::Check ( ModelPart rModelPart)
inlineoverridevirtual

This function is designed to be called once to perform all the checks needed on the input provided. Checks can be "expensive" as the function is designed to catch user's errors.

Parameters
rModelPart
Returns
0 all ok

Reimplemented from Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ Clear()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::Clear ( )
inlineoverridevirtual

This function is intended to be called at the end of the solution step to clean up memory storage not needed.

Reimplemented from Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::KRATOS_CLASS_POINTER_DEFINITION ( ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >  )

Pointer definition of ExplicitBuilderAndSolver.


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