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

Solution Buider and Solver base class. More...

#include <solution_builder_and_solver.hpp>

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

Public Member Functions

Life Cycle
 SolutionBuilderAndSolver ()
 Default Constructor. More...
 
 SolutionBuilderAndSolver (LinearSolverPointerType pLinearSystemSolver)
 Constructor. More...
 
 ~SolutionBuilderAndSolver () override
 Destructor. More...
 
Operations
virtual void BuildLHS (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixType &rA)
 Function to perform the building of the LHS,. More...
 
virtual void BuildRHS (SchemePointerType pScheme, ModelPart &rModelPart, SystemVectorType &rb)
 Function to perform the build of the RHS. 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...
 
virtual void Clear ()
 This function is intended to be called at the end of the solution step to clean up memory storage not needed. More...
 
virtual int Check (ModelPart &rModelPart)
 
Access
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...
 
- 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...
 

Protected Attributes

Protected member Variables
LinearSolverPointerType mpLinearSystemSolver
 
DofsArrayType mDofSet
 
Flags mOptions
 
unsigned int mEquationSystemSize
 
int mEchoLevel
 
SystemVectorPointerType mpReactionsVector
 

Type Definitions

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
 
 KRATOS_CLASS_POINTER_DEFINITION (SolutionBuilderAndSolver)
 Pointer definition of SolutionBuilderAndSolver. More...
 

Additional Inherited Members

- 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)
 

Detailed Description

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

Solution Buider and Solver base class.

Short class definition. Current class provides an implementation for standard builder and solving operations.

the RHS is constituted by the unbalanced loads (residual)

Degrees of freedom are reordered putting the restrained degrees of freedom at the end of the system ordered in reverse order with respect to the DofSet.

Imposition of the dirichlet conditions is naturally dealt with as the residual already contains this information.

This is the base class for the building and solving the solution system

Member Typedef Documentation

◆ DofsArrayType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef ModelPart::DofsArrayType Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::DofsArrayType

◆ LinearSolverPointerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef TLinearSolver::Pointer Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::LinearSolverPointerType

◆ LocalFlagType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef SolverLocalFlags Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::LocalFlagType

◆ LocalSystemMatrixType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef TDenseSpace::MatrixType Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::LocalSystemMatrixType

◆ LocalSystemVectorType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef TDenseSpace::VectorType Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::LocalSystemVectorType

◆ SchemePointerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef SchemeType::Pointer Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SchemePointerType

◆ SchemeType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef SolutionScheme<TSparseSpace, TDenseSpace> Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SchemeType

◆ SystemMatrixPointerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef TSparseSpace::MatrixPointerType Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SystemMatrixPointerType

◆ SystemMatrixType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef TSparseSpace::MatrixType Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SystemMatrixType

◆ SystemVectorPointerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef TSparseSpace::VectorPointerType Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SystemVectorPointerType

◆ SystemVectorType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef TSparseSpace::VectorType Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SystemVectorType

Constructor & Destructor Documentation

◆ SolutionBuilderAndSolver() [1/2]

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

Default Constructor.

◆ SolutionBuilderAndSolver() [2/2]

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SolutionBuilderAndSolver ( LinearSolverPointerType  pLinearSystemSolver)
inline

Constructor.

◆ ~SolutionBuilderAndSolver()

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

Destructor.

Member Function Documentation

◆ ApplyDirichletConditions()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::ApplyDirichletConditions ( SchemePointerType  pScheme,
ModelPart rModelPart,
SystemMatrixType rA,
SystemVectorType rDx,
SystemVectorType rb 
)
inlinevirtual

applies the dirichlet conditions.

This operation may be very heavy or completely

unexpensive depending on the implementation choosen and on how the System Matrix

is built. For explanation of how it works for a particular implementation the user

should refer to the particular Builder And Solver choosen

Reimplemented in Kratos::ReductionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ Build()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::Build ( SchemePointerType  pScheme,
ModelPart rModelPart,
SystemMatrixType rA,
SystemVectorType rb 
)
inlinevirtual

Function to perform the building of the LHS and RHS.

Equivalent (but generally faster) then performing BuildLHS and BuildRHS

Reimplemented in Kratos::ReductionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ BuildAndSolve()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::BuildAndSolve ( SchemePointerType  pScheme,
ModelPart rModelPart,
SystemMatrixType rA,
SystemVectorType rDx,
SystemVectorType rb 
)
inlinevirtual

Function to perform the building and solving phase at the same time.

It is ideally the fastest and safer function to use when it is possible to solve just after building

Reimplemented in Kratos::ReductionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ BuildLHS()

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

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 in Kratos::ReductionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ BuildRHS()

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

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 in Kratos::ReductionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ BuildRHSAndSolve()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::BuildRHSAndSolve ( SchemePointerType  pScheme,
ModelPart rModelPart,
SystemMatrixType rA,
SystemVectorType rDx,
SystemVectorType rb 
)
inlinevirtual

Function to perform the building of the RHS and solving phase at the same time.

It corresponds to the previews, but the System's matrix is considered already built and only the RHS is built again

Reimplemented in Kratos::ReductionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ CalculateReactions()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::CalculateReactions ( SchemePointerType  pScheme,
ModelPart rModelPart,
SystemMatrixType rA,
SystemVectorType rDx,
SystemVectorType rb 
)
inlinevirtual

Calculates system reactions.

A flag controls if reactions must be calculated

An internal variable to store the reactions vector is needed

Reimplemented in Kratos::ReductionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ Check()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual int Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::Check ( ModelPart rModelPart)
inlinevirtual

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 in Kratos::ReductionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::ExplicitBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ Clear()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::Clear ( )
inlinevirtual

◆ EchoInfo()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::EchoInfo ( ModelPart rModelPart,
SystemMatrixType rA,
SystemVectorType rDx,
SystemVectorType rb 
)
inlinevirtual

This method returns the components of the system of equations depending of the echo level.

◆ FinalizeSolutionStep()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::FinalizeSolutionStep ( SchemePointerType  pScheme,
ModelPart rModelPart,
SystemMatrixPointerType pA,
SystemVectorPointerType pDx,
SystemVectorPointerType pb 
)
inlinevirtual

Performs all the required operations that should be done (for each step) after solving the solution step.

this function must be called only once per step.

Reimplemented in Kratos::ReductionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ GetDofSet()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual DofsArrayType& Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::GetDofSet ( )
inlinevirtual

Allows to get the list of system Dofs.

◆ GetEchoLevel()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual int Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::GetEchoLevel ( )
inlinevirtual

◆ GetEquationSystemSize()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
unsigned int Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::GetEquationSystemSize ( )
inline

Get size of the system.

◆ GetLinearSystemSolver()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
LinearSolverPointerType Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::GetLinearSystemSolver ( )
inline

Get linear solver.

◆ GetOptions()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Flags& Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::GetOptions ( )
inline

Get strategy options.

Returns
mOptions: options member variable

◆ InitializeSolutionStep()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::InitializeSolutionStep ( SchemePointerType  pScheme,
ModelPart rModelPart,
SystemMatrixPointerType pA,
SystemVectorPointerType pDx,
SystemVectorPointerType pb 
)
inlinevirtual

Performs all the required operations that should be done (for each step) before solving the solution step.

this function must be called only once per step.

Reimplemented in Kratos::ReductionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ KRATOS_CLASS_POINTER_DEFINITION()

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

Pointer definition of SolutionBuilderAndSolver.

◆ SetEchoLevel()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SetEchoLevel ( const int  Level)
inlinevirtual

This sets the level of echo for the builder and solver.

Parameters
Levelof echo for the builder and solver

{ 0 -> Mute... no echo at all 1 -> Printing time and basic informations 2 -> Printing linear solver data 3 -> Print of debug informations: Echo of stiffness matrix, Dx, b... }

◆ SetOptions()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SetOptions ( Flags rOptions)
inline

Sets strategy options.

◆ SetUpDofSet()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SetUpDofSet ( SchemePointerType  pScheme,
ModelPart rModelPart 
)
inlinevirtual

Builds the list of the DofSets involved in the problem by "asking" to each element and condition its Dofs.

The list of dofs is stores insde the SolutionBuilderAndSolver as it is closely connected to the way the matrix and RHS are built

Reimplemented in Kratos::ReductionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ SetUpSystem()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SetUpSystem ( )
inlinevirtual

◆ SetUpSystemMatrices()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SetUpSystemMatrices ( SchemePointerType  pScheme,
ModelPart rModelPart,
SystemMatrixPointerType pA,
SystemVectorPointerType pDx,
SystemVectorPointerType pb 
)
inlinevirtual

Resizes and Initializes the system vectors and matrices after SetUpDofSet and SetUpSytem has been called.

Reimplemented in Kratos::ReductionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ SystemSolve()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SystemSolve ( SystemMatrixType rA,
SystemVectorType rDx,
SystemVectorType rb 
)
inlinevirtual

Member Data Documentation

◆ mDofSet

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
DofsArrayType Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::mDofSet
protected

◆ mEchoLevel

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
int Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::mEchoLevel
protected

◆ mEquationSystemSize

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
unsigned int Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::mEquationSystemSize
protected

◆ mOptions

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Flags Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::mOptions
protected

◆ mpLinearSystemSolver

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
LinearSolverPointerType Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::mpLinearSystemSolver
protected

◆ mpReactionsVector

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
SystemVectorPointerType Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::mpReactionsVector
protected

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