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.
Classes | List of all members
Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver > Class Template Reference

Solution Buider and Solver based on block matrix. More...

#include <block_builder_and_solver.hpp>

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

Classes

struct  dof_iterator_equal
 
struct  dof_iterator_hash
 

Public Member Functions

Life Cycle
 BlockBuilderAndSolver (LinearSolverPointerType pLinearSystemSolver)
 Default Constructor. More...
 
 ~BlockBuilderAndSolver () 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 Build (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixType &rA, SystemVectorType &rb) override
 Function to perform the building of the LHS and RHS. More...
 
void SystemSolve (SystemMatrixType &rA, SystemVectorType &rDx, SystemVectorType &rb) override
 This is a call to the linear system solver. More...
 
void BuildAndSolve (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixType &rA, SystemVectorType &rDx, SystemVectorType &rb) override
 Function to perform the building and solving phase at the same time. More...
 
void BuildRHSAndSolve (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixType &rA, SystemVectorType &rDx, SystemVectorType &rb) override
 Function to perform the building of the RHS and solving phase at the same time. More...
 
void ApplyDirichletConditions (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixType &rA, SystemVectorType &rDx, SystemVectorType &rb) override
 applies the dirichlet conditions. More...
 
void SetUpDofSet (SchemePointerType pScheme, ModelPart &rModelPart) override
 Builds the list of the DofSets involved in the problem by "asking" to each element and condition its Dofs. More...
 
void SetUpSystem () override
 organises the dofset in order to speed up the building phase More...
 
void SetUpSystemMatrices (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixPointerType &pA, SystemVectorPointerType &pDx, SystemVectorPointerType &pb) override
 Resizes and Initializes the system vectors and matrices after SetUpDofSet and SetUpSytem has been called. More...
 
void InitializeSolutionStep (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixPointerType &pA, SystemVectorPointerType &pDx, SystemVectorPointerType &pb) override
 Performs all the required operations that should be done (for each step) before solving the solution step. More...
 
void FinalizeSolutionStep (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixPointerType &pA, SystemVectorPointerType &pDx, SystemVectorPointerType &pb) override
 Performs all the required operations that should be done (for each step) after solving the solution step. More...
 
void CalculateReactions (SchemePointerType pScheme, ModelPart &rModelPart, SystemMatrixType &rA, SystemVectorType &rDx, SystemVectorType &rb) override
 Calculates system reactions. More...
 
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 &r_mUSE_GOOGLE_HASHodel_part) override
 
- Public Member Functions inherited from Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >
 SolutionBuilderAndSolver ()
 Default Constructor. More...
 
 SolutionBuilderAndSolver (LinearSolverPointerType pLinearSystemSolver)
 Constructor. More...
 
 ~SolutionBuilderAndSolver () override
 Destructor. 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...
 

Protected Member Functions

Protected Operations
void SystemSolveWithPhysics (SystemMatrixType &rA, SystemVectorType &rDx, SystemVectorType &rb, ModelPart &rModelPart)
 
virtual void ConstructMatrixStructure (SchemePointerType pScheme, SystemMatrixType &rA, ElementsContainerType &rElements, ConditionsContainerType &rConditions, ProcessInfo &rCurrentProcessInfo)
 
void AssembleLHS (SystemMatrixType &rA, LocalSystemMatrixType &rLHS_Contribution, Element::EquationIdVectorType &rEquationId)
 
void AssembleRHS (SystemVectorType &rb, LocalSystemVectorType &rRHS_Contribution, Element::EquationIdVectorType &rEquationId)
 
void Assemble (SystemMatrixType &rA, SystemVectorType &rb, const LocalSystemMatrixType &rLHS_Contribution, const LocalSystemVectorType &rRHS_Contribution, Element::EquationIdVectorType &rEquationId)
 

Type Definitions

typedef SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver > BaseType
 
typedef BaseType::Pointer BasePointerType
 
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
 
typedef BaseType::LinearSolverPointerType LinearSolverPointerType
 
 KRATOS_CLASS_POINTER_DEFINITION (BlockBuilderAndSolver)
 Pointer definition of BlockBuilderAndSolver. 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::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >

Solution Buider and Solver based on block matrix.

This is builder class the system is not reduced, 1 is set in the diagonal

Member Typedef Documentation

◆ BasePointerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::Pointer Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::BasePointerType

◆ BaseType

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

◆ ConditionsContainerType

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

◆ DofsArrayType

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

◆ ElementsContainerType

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

◆ LinearSolverPointerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::LinearSolverPointerType Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::LinearSolverPointerType

◆ LocalFlagType

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

◆ LocalSystemMatrixType

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

◆ LocalSystemVectorType

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

◆ NodesContainerType

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

◆ SchemePointerType

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

◆ SystemMatrixPointerType

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

◆ SystemMatrixType

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

◆ SystemVectorPointerType

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

◆ SystemVectorType

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

Constructor & Destructor Documentation

◆ BlockBuilderAndSolver()

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

Default Constructor.

◆ ~BlockBuilderAndSolver()

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

Destructor.

Member Function Documentation

◆ ApplyDirichletConditions()

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

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 from Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ Assemble()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::Assemble ( SystemMatrixType rA,
SystemVectorType rb,
const LocalSystemMatrixType rLHS_Contribution,
const LocalSystemVectorType rRHS_Contribution,
Element::EquationIdVectorType rEquationId 
)
inlineprotected

◆ AssembleLHS()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::AssembleLHS ( SystemMatrixType rA,
LocalSystemMatrixType rLHS_Contribution,
Element::EquationIdVectorType rEquationId 
)
inlineprotected

◆ AssembleRHS()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::AssembleRHS ( SystemVectorType rb,
LocalSystemVectorType rRHS_Contribution,
Element::EquationIdVectorType rEquationId 
)
inlineprotected

◆ Build()

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

Function to perform the building of the LHS and RHS.

Equivalent (but generally faster) then performing BuildLHS and BuildRHS

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

◆ BuildAndSolve()

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

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 from Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ BuildLHS()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::BlockBuilderAndSolver< 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::BlockBuilderAndSolver< 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 >.

◆ BuildRHSAndSolve()

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

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 from Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ CalculateReactions()

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

Calculates system reactions.

A flag controls if reactions must be calculated

An internal variable to store the reactions vector is needed

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

◆ Check()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
int Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::Check ( ModelPart r_mUSE_GOOGLE_HASHodel_part)
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::BlockBuilderAndSolver< 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 >.

◆ ConstructMatrixStructure()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::ConstructMatrixStructure ( SchemePointerType  pScheme,
SystemMatrixType rA,
ElementsContainerType rElements,
ConditionsContainerType rConditions,
ProcessInfo rCurrentProcessInfo 
)
inlineprotectedvirtual

◆ FinalizeSolutionStep()

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

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 from Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ InitializeSolutionStep()

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

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 from Kratos::SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ KRATOS_CLASS_POINTER_DEFINITION()

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

Pointer definition of BlockBuilderAndSolver.

◆ SetUpDofSet()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SetUpDofSet ( SchemePointerType  pScheme,
ModelPart rModelPart 
)
inlineoverridevirtual

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 BuilderAndSolver as it is closely connected to the way the matrix and RHS are built

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

◆ SetUpSystem()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SetUpSystem ( )
inlineoverridevirtual

organises the dofset in order to speed up the building phase

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

◆ SetUpSystemMatrices()

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

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

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

◆ SystemSolve()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SystemSolve ( SystemMatrixType rA,
SystemVectorType rDx,
SystemVectorType rb 
)
inlineoverridevirtual

This is a call to the linear system solver.

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

◆ SystemSolveWithPhysics()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::BlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SystemSolveWithPhysics ( SystemMatrixType rA,
SystemVectorType rDx,
SystemVectorType rb,
ModelPart rModelPart 
)
inlineprotected

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