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

Implicit solving strategy base class This is the base class from which we will derive all the implicit strategies (line-search, NR, etc...) More...

#include <implicit_solving_strategy.h>

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

Public Member Functions

Life Cycle
 ImplicitSolvingStrategy ()
 Default constructor. More...
 
 ImplicitSolvingStrategy (ModelPart &rModelPart, Parameters ThisParameters)
 Default constructor. (with parameters) More...
 
 ImplicitSolvingStrategy (ModelPart &rModelPart, bool MoveMeshFlag=false)
 Default constructor. More...
 
virtual ~ImplicitSolvingStrategy ()
 
Operations
BaseType::Pointer Create (ModelPart &rModelPart, Parameters ThisParameters) const override
 Create method. More...
 
Access
void SetRebuildLevel (int Level) override
 This sets the build level. More...
 
int GetRebuildLevel () const override
 This returns the build level. More...
 
void SetStiffnessMatrixIsBuilt (const bool StiffnessMatrixIsBuilt)
 This method sets the flag mStiffnessMatrixIsBuilt. More...
 
bool GetStiffnessMatrixIsBuilt () const
 This method gets the flag mStiffnessMatrixIsBuilt. More...
 
Input and output
std::string Info () const override
 Turn back information as a string. More...
 
- Public Member Functions inherited from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >
 SolvingStrategy ()
 Default constructor. More...
 
 SolvingStrategy (ModelPart &rModelPart, Parameters ThisParameters)
 Default constructor. (with parameters) More...
 
 SolvingStrategy (ModelPart &rModelPart, bool MoveMeshFlag=false)
 Default constructor. More...
 
virtual ~SolvingStrategy ()
 
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 (SolvingStrategy)
 
virtual void Predict ()
 Operation to predict the solution ... if it is not called a trivial predictor is used in which the values of the solution step of interest are assumed equal to the old values. More...
 
virtual void Initialize ()
 Initialization of member variables and prior operations. More...
 
virtual double Solve ()
 The problem of interest is solved. More...
 
virtual void Clear ()
 Clears the internal storage. More...
 
virtual bool IsConverged ()
 This should be considered as a "post solution" convergence check which is useful for coupled analysis. More...
 
virtual void CalculateOutputData ()
 This operations should be called before printing the results when non trivial results (e.g. stresses) need to be calculated given the solution of the step. More...
 
virtual void InitializeSolutionStep ()
 Performs all the required operations that should be done (for each step) before solving the solution step. More...
 
virtual void FinalizeSolutionStep ()
 Performs all the required operations that should be done (for each step) after solving the solution step. More...
 
virtual bool SolveSolutionStep ()
 Solves the current step. This function returns true if a solution has been found, false otherwise. More...
 
virtual void SetEchoLevel (const int Level)
 This sets the level of echo for the solving strategy. More...
 
int GetEchoLevel ()
 This returns the level of echo for the solving strategy. More...
 
void SetMoveMeshFlag (bool Flag)
 This function sets the flag that says if the mesh is moved. More...
 
bool MoveMeshFlag ()
 This function returns the flag that says if the mesh is moved. More...
 
bool GetMoveMeshFlag ()
 This function returns the flag that says if the mesh is moved. More...
 
virtual void MoveMesh ()
 This function is designed to move the mesh. More...
 
ModelPartGetModelPart ()
 Operations to get the pointer to the model. More...
 
const ModelPartGetModelPart () const
 Operations to get the pointer to the model. More...
 
virtual double GetResidualNorm ()
 Operations to get the residual norm. More...
 
virtual int Check ()
 Function to perform expensive checks. More...
 
virtual TSystemMatrixTypeGetSystemMatrix ()
 This method returns the LHS matrix. More...
 
virtual TSystemVectorTypeGetSystemVector ()
 This method returns the RHS vector. More...
 
virtual TSystemVectorTypeGetSolutionVector ()
 This method returns the solution vector. More...
 

Protected Member Functions

Protected Operations
void AssignSettings (const Parameters ThisParameters) override
 This method assigns settings to member variables. More...
 
- Protected Member Functions inherited from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >
virtual Parameters ValidateAndAssignParameters (Parameters ThisParameters, const Parameters DefaultParameters) const
 This method validate and assign default parameters. More...
 

Protected Attributes

Protected static Member Variables
int mRebuildLevel
 
bool mStiffnessMatrixIsBuilt
 The current rebuild level. More...
 
- Protected Attributes inherited from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >
int mEchoLevel
 

Type Definitions

typedef SolvingStrategy< TSparseSpace, TDenseSpace > BaseType
 
typedef BaseType::TDataType TDataType
 
typedef BaseType::TSystemMatrixType TSystemMatrixType
 
typedef BaseType::TSystemVectorType TSystemVectorType
 
typedef BaseType::TSystemMatrixPointerType TSystemMatrixPointerType
 
typedef BaseType::TSystemVectorPointerType TSystemVectorPointerType
 
typedef BaseType::LocalSystemMatrixType LocalSystemMatrixType
 
typedef BaseType::LocalSystemVectorType LocalSystemVectorType
 
typedef Scheme< TSparseSpace, TDenseSpace > TSchemeType
 
typedef BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver > TBuilderAndSolverType
 
typedef ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver > ClassType
 
typedef BaseType::TDofType TDofType
 
typedef BaseType::DofsArrayType DofsArrayType
 
typedef BaseType::NodesArrayType NodesArrayType
 
typedef BaseType::ElementsArrayType ElementsArrayType
 
typedef BaseType::ConditionsArrayType ConditionsArrayType
 
 KRATOS_CLASS_POINTER_DEFINITION (ImplicitSolvingStrategy)
 

Inquiry

Parameters GetDefaultParameters () const override
 This method provides the defaults parameters to avoid conflicts between the different constructors. More...
 
static std::string Name ()
 Returns the name of the class as used in the settings (snake_case format) More...
 

Additional Inherited Members

- Public Types inherited from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >
typedef TSparseSpace::DataType TDataType
 
typedef TSparseSpace::MatrixType TSystemMatrixType
 
typedef TSparseSpace::VectorType TSystemVectorType
 
typedef TSparseSpace::MatrixPointerType TSystemMatrixPointerType
 
typedef TSparseSpace::VectorPointerType TSystemVectorPointerType
 
typedef TDenseSpace::MatrixType LocalSystemMatrixType
 
typedef TDenseSpace::VectorType LocalSystemVectorType
 
typedef SolvingStrategy< TSparseSpace, TDenseSpace > ClassType
 
typedef ModelPart::DofType TDofType
 
typedef ModelPart::DofsArrayType DofsArrayType
 
typedef ModelPart::NodesContainerType NodesArrayType
 
typedef ModelPart::ElementsContainerType ElementsArrayType
 
typedef ModelPart::ConditionsContainerType ConditionsArrayType
 
- Static Public Member Functions inherited from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >
static std::string Name ()
 Returns the name of the class as used in the settings (snake_case format) More...
 

Detailed Description

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

Implicit solving strategy base class This is the base class from which we will derive all the implicit strategies (line-search, NR, etc...)

Template Parameters
TSparseSpaceLinear algebra sparse space
TDenseSpaceLinear algebra dense space
TLinearSolverLinear solver type

Member Typedef Documentation

◆ BaseType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef SolvingStrategy<TSparseSpace, TDenseSpace> Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::BaseType

◆ ClassType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef ImplicitSolvingStrategy<TSparseSpace, TDenseSpace, TLinearSolver> Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::ClassType

◆ ConditionsArrayType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::ConditionsArrayType Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::ConditionsArrayType

◆ DofsArrayType

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

◆ ElementsArrayType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::ElementsArrayType Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::ElementsArrayType

◆ LocalSystemMatrixType

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

◆ LocalSystemVectorType

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

◆ NodesArrayType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::NodesArrayType Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::NodesArrayType

◆ TBuilderAndSolverType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BuilderAndSolver<TSparseSpace, TDenseSpace, TLinearSolver> Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TBuilderAndSolverType

◆ TDataType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::TDataType Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TDataType

◆ TDofType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::TDofType Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TDofType

◆ TSchemeType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef Scheme<TSparseSpace, TDenseSpace> Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TSchemeType

◆ TSystemMatrixPointerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::TSystemMatrixPointerType Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TSystemMatrixPointerType

◆ TSystemMatrixType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::TSystemMatrixType Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TSystemMatrixType

◆ TSystemVectorPointerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::TSystemVectorPointerType Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TSystemVectorPointerType

◆ TSystemVectorType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::TSystemVectorType Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TSystemVectorType

Constructor & Destructor Documentation

◆ ImplicitSolvingStrategy() [1/3]

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::ImplicitSolvingStrategy ( )
inlineexplicit

Default constructor.

◆ ImplicitSolvingStrategy() [2/3]

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::ImplicitSolvingStrategy ( ModelPart rModelPart,
Parameters  ThisParameters 
)
inlineexplicit

Default constructor. (with parameters)

Parameters
rModelPartThe model part of the problem
ThisParametersThe configuration parameters

◆ ImplicitSolvingStrategy() [3/3]

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::ImplicitSolvingStrategy ( ModelPart rModelPart,
bool  MoveMeshFlag = false 
)
inlineexplicit

Default constructor.

Parameters
rModelPartThe model part to be computed
MoveMeshFlagThe flag to set if the mesh is moved or not

◆ ~ImplicitSolvingStrategy()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::~ImplicitSolvingStrategy ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ AssignSettings()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::AssignSettings ( const Parameters  ThisParameters)
inlineoverrideprotectedvirtual

◆ Create()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
BaseType::Pointer Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Create ( ModelPart rModelPart,
Parameters  ThisParameters 
) const
inlineoverridevirtual

◆ GetDefaultParameters()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Parameters Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::GetDefaultParameters ( ) const
inlineoverridevirtual

◆ GetRebuildLevel()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
int Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::GetRebuildLevel ( ) const
inlineoverridevirtual

This returns the build level.

{ 0 -> Build StiffnessMatrix just once 1 -> Build StiffnessMatrix at the beginning of each solution step 2 -> build StiffnessMatrix at each iteration }

Returns
The build level

Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.

◆ GetStiffnessMatrixIsBuilt()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
bool Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::GetStiffnessMatrixIsBuilt ( ) const
inline

This method gets the flag mStiffnessMatrixIsBuilt.

Returns
mStiffnessMatrixIsBuilt: The flag that tells if the stiffness matrix is built

◆ Info()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
std::string Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Info ( ) const
inlineoverridevirtual

◆ KRATOS_CLASS_POINTER_DEFINITION()

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

Counted pointer of ClassName

◆ Name()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
static std::string Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Name ( )
inlinestatic

Returns the name of the class as used in the settings (snake_case format)

Returns
The name of the class

◆ SetRebuildLevel()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SetRebuildLevel ( int  Level)
inlineoverridevirtual

This sets the build level.

Parameters
LevelThe build level

{ 0 -> Build StiffnessMatrix just once 1 -> Build StiffnessMatrix at the beginning of each solution step 2 -> build StiffnessMatrix at each iteration }

Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.

◆ SetStiffnessMatrixIsBuilt()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SetStiffnessMatrixIsBuilt ( const bool  StiffnessMatrixIsBuilt)
inline

This method sets the flag mStiffnessMatrixIsBuilt.

Parameters
StiffnessMatrixIsBuiltThe flag that tells if the stiffness matrix is built

Member Data Documentation

◆ mRebuildLevel

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
int Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mRebuildLevel
protected

◆ mStiffnessMatrixIsBuilt

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
bool Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mStiffnessMatrixIsBuilt
protected

The current rebuild level.


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