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

This is the base class for a segregated strategy for the same model part. More...

#include <segregated_strategy.hpp>

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

Public Member Functions

Life Cycle
 SegregatedStrategy (ModelPart &rModelPart, Flags &rOptions)
 
 SegregatedStrategy (ModelPart &rModelPart, Flags &rOptions, StrategiesContainerType &rStrategies)
 
 ~SegregatedStrategy () override
 Destructor. More...
 
Operations
void InitializeSolutionStep () override
 Performs all the required operations that should be done (for each step) before solving the solution step. More...
 
void FinalizeSolutionStep () override
 Performs all the required operations that should be done (for each step) after solving the solution step. More...
 
bool SolveSolutionStep () override
 Solves the current step. This function returns true if a solution has been found, false otherwise. More...
 
bool SolveIteration () override
 Solves the iteration. This function returns true if a solution has been found, false otherwise. More...
 
void Clear () override
 Clears the internal storage. More...
 
int Check () override
 Function to perform expensive checks. More...
 
Access
void SetEchoLevel (const int Level) override
 This sets the level of echo for the solving strategy. More...
 
void AddStrategy (const BasePointerType pStrategy)
 Set method for the time scheme. More...
 
BasePointerType GetStrategy (unsigned int Label)
 Get method for the time scheme. More...
 
- Public Member Functions inherited from Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >
 SolutionStrategy (ModelPart &rModelPart)
 Constructor. More...
 
 SolutionStrategy (ModelPart &rModelPart, Flags &rOptions)
 Constructor. More...
 
 ~SolutionStrategy () override
 Destructor. More...
 
virtual bool Solve ()
 The problem of interest is solved. 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...
 
 KRATOS_CLASS_POINTER_DEFINITION (SolutionStrategy)
 Pointer definition of SolutionStrategy. 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
StrategiesContainerType mStrategies
 
- Protected Attributes inherited from Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >
Flags mOptions
 
int mEchoLevel
 

Type Definitions

typedef SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver > BaseType
 
typedef BaseType::Pointer BasePointerType
 
typedef BaseType::LocalFlagType LocalFlagType
 
typedef std::vector< BasePointerTypeStrategiesContainerType
 
typedef StrategiesContainerType::iterator StrategiesContainerIteratorType
 
typedef ConvergenceCriteria< TSparseSpace, TDenseSpace > ConvergenceCriterionType
 
typedef BaseType::BuilderAndSolverType BuilderAndSolverType
 
typedef BaseType::SchemeType SchemeType
 
typedef TLinearSolver LinearSolverType
 
typedef TSparseSpace SparseSpaceType
 
typedef BaseType::DofsArrayType DofsArrayType
 
typedef BaseType::SystemMatrixType SystemMatrixType
 
typedef BaseType::SystemVectorType SystemVectorType
 
typedef BaseType::SystemMatrixPointerType SystemMatrixPointerType
 
typedef BaseType::SystemVectorPointerType SystemVectorPointerType
 
 KRATOS_CLASS_POINTER_DEFINITION (SegregatedStrategy)
 

Additional Inherited Members

- Public Types inherited from Kratos::SolutionStrategy< 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 SolutionScheme< TSparseSpace, TDenseSpace > SchemeType
 
typedef SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver > BuilderAndSolverType
 
- 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 Member Functions inherited from Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >
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...
 

Detailed Description

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

This is the base class for a segregated strategy for the same model part.

Member Typedef Documentation

◆ BasePointerType

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

◆ BaseType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef SolutionStrategy<TSparseSpace, TDenseSpace, TLinearSolver> Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::BaseType

◆ BuilderAndSolverType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::BuilderAndSolverType Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::BuilderAndSolverType

◆ ConvergenceCriterionType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef ConvergenceCriteria<TSparseSpace, TDenseSpace> Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::ConvergenceCriterionType

◆ DofsArrayType

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

◆ LinearSolverType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef TLinearSolver Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::LinearSolverType

◆ LocalFlagType

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

◆ SchemeType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::SchemeType Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SchemeType

◆ SparseSpaceType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef TSparseSpace Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SparseSpaceType

◆ StrategiesContainerIteratorType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef StrategiesContainerType::iterator Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::StrategiesContainerIteratorType

◆ StrategiesContainerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef std::vector<BasePointerType> Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::StrategiesContainerType

◆ SystemMatrixPointerType

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

◆ SystemMatrixType

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

◆ SystemVectorPointerType

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

◆ SystemVectorType

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

Constructor & Destructor Documentation

◆ SegregatedStrategy() [1/2]

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

Default constructor

Parameters
rModelPartThe model part of the problem
rOptionsThe solution options

◆ SegregatedStrategy() [2/2]

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

Constructor

Parameters
rModelPartThe model part of the problem
rOptionsThe solution options
rStrategiesVector with the solution strategies

◆ ~SegregatedStrategy()

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

Destructor.

Member Function Documentation

◆ AddStrategy()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::AddStrategy ( const BasePointerType  pStrategy)
inline

Set method for the time scheme.

Parameters
pSchemeThe pointer to the time scheme considered

◆ Check()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
int Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Check ( )
inlineoverridevirtual

Function to perform expensive checks.

It is designed to be called ONCE to verify that the input is correct.

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

◆ Clear()

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

Clears the internal storage.

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

◆ FinalizeSolutionStep()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::FinalizeSolutionStep ( )
inlineoverridevirtual

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

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

◆ GetStrategy()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
BasePointerType Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::GetStrategy ( unsigned int  Label)
inline

Get method for the time scheme.

Returns
mpScheme: The pointer to the time scheme considered

◆ InitializeSolutionStep()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::InitializeSolutionStep ( )
inlineoverridevirtual

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

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

◆ KRATOS_CLASS_POINTER_DEFINITION()

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

◆ SetEchoLevel()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SetEchoLevel ( const int  Level)
inlineoverridevirtual

This sets the level of echo for the solving strategy.

Parameters
Levelof echo for the solving 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 from Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ SolveIteration()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
bool Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolveIteration ( )
inlineoverridevirtual

Solves the iteration. This function returns true if a solution has been found, false otherwise.

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

◆ SolveSolutionStep()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
bool Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolveSolutionStep ( )
inlineoverridevirtual

Solves the current step. This function returns true if a solution has been found, false otherwise.

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

Member Data Documentation

◆ mStrategies

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
StrategiesContainerType Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mStrategies
protected

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