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

Solution strategy base class. More...

#include <solution_strategy.hpp>

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

Public Member Functions

Life Cycle
 SolutionStrategy (ModelPart &rModelPart)
 Constructor. More...
 
 SolutionStrategy (ModelPart &rModelPart, Flags &rOptions)
 Constructor. More...
 
 ~SolutionStrategy () override
 Destructor. More...
 
Operations
virtual bool Solve ()
 The problem of interest is solved. 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 bool SolveIteration ()
 Solves the current iteration. This function returns true if a solution has been found, false otherwise. More...
 
virtual void Clear ()
 Clears the internal storage. More...
 
virtual int Check ()
 Function to perform expensive checks. More...
 
Access
virtual void SetEchoLevel (const int Level)
 This sets the level of echo for the solution strategy. More...
 
virtual int GetEchoLevel ()
 This returns the level of echo for the solution strategy. More...
 
void SetOptions (Flags &rOptions)
 Sets strategy options. More...
 
FlagsGetOptions ()
 Get strategy options. More...
 
virtual unsigned int GetMaxIterationNumber ()
 This method gets the flag mMaxIterationNumber. More...
 
ModelPartGetModelPart ()
 Operations to get the pointer to the model. 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 Operators
virtual void Initialize ()
 Initialization of member variables and prior operations. More...
 
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 Update ()
 Operation to update the solution ... if it is not called a trivial updater is used in which the values of the solution step of interest are assumed equal to the old values. More...
 
virtual void Finalize ()
 Finalization of member variables and prior operations. More...
 

Protected Attributes

Protected member Variables
Flags mOptions
 
int mEchoLevel
 

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 SolutionScheme< TSparseSpace, TDenseSpace > SchemeType
 
typedef SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver > BuilderAndSolverType
 
 KRATOS_CLASS_POINTER_DEFINITION (SolutionStrategy)
 Pointer definition of SolutionStrategy. 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::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >

Solution strategy base class.

This is the base class for the strategies

Member Typedef Documentation

◆ BuilderAndSolverType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef SolutionBuilderAndSolver<TSparseSpace, TDenseSpace, TLinearSolver> Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::BuilderAndSolverType

◆ DofsArrayType

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

◆ LocalFlagType

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

◆ SchemeType

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

◆ SystemMatrixPointerType

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

◆ SystemMatrixType

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

◆ SystemVectorPointerType

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

◆ SystemVectorType

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

Constructor & Destructor Documentation

◆ SolutionStrategy() [1/2]

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolutionStrategy ( ModelPart rModelPart)
inline

Constructor.

◆ SolutionStrategy() [2/2]

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolutionStrategy ( ModelPart rModelPart,
Flags rOptions 
)
inline

Constructor.

◆ ~SolutionStrategy()

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

Destructor.

Member Function Documentation

◆ Check()

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

◆ Clear()

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

◆ Finalize()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Finalize ( )
inlineprotectedvirtual

Finalization of member variables and prior operations.

◆ FinalizeSolutionStep()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::FinalizeSolutionStep ( )
inlinevirtual

◆ GetEchoLevel()

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

This returns the level of echo for the solution strategy.

{ 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... }

Returns
Level of echo for the solution strategy

◆ GetMaxIterationNumber()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual unsigned int Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::GetMaxIterationNumber ( )
inlinevirtual

This method gets the flag mMaxIterationNumber.

Returns
mMaxIterationNumber: This is the maximum number of on linear iterations

Reimplemented in Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ GetModelPart()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
ModelPart& Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::GetModelPart ( )
inline

Operations to get the pointer to the model.

Returns
mrModelPart: The model part member variable

◆ GetOptions()

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

Get strategy options.

Returns
mOptions: options member variable

◆ Initialize()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Initialize ( void  )
inlineprotectedvirtual

◆ InitializeSolutionStep()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::InitializeSolutionStep ( )
inlinevirtual

◆ KRATOS_CLASS_POINTER_DEFINITION()

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

Pointer definition of SolutionStrategy.

◆ Predict()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Predict ( )
inlineprotectedvirtual

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.

Reimplemented in Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ SetEchoLevel()

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

This sets the level of echo for the solution strategy.

Parameters
Levelof echo for the solution strategy

{ 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... }

Reimplemented in Kratos::EigensolverStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::EigensolverStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ SetOptions()

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

Sets strategy options.

◆ Solve()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual bool Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Solve ( )
inlinevirtual

The problem of interest is solved.

{ This function calls sequentially: InitializeSolutionStep(), SolveSolutionStep() and FinalizeSolutionStep(). All those functions can otherwise be called separately. }

◆ SolveIteration()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual bool Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolveIteration ( )
inlinevirtual

◆ SolveSolutionStep()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual bool Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolveSolutionStep ( )
inlinevirtual

◆ Update()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Update ( )
inlineprotectedvirtual

Operation to update the solution ... if it is not called a trivial updater is used in which the values of the solution step of interest are assumed equal to the old values.

Reimplemented in Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::LineSearchSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.

Member Data Documentation

◆ mEchoLevel

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

◆ mOptions

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

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