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

#include <explicit_strategy.hpp>

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

Public Member Functions

Life Cycle
 ExplicitSolutionStrategy (ModelPart &rModelPart, typename SchemeType::Pointer pScheme, Flags &rOptions)
 Constructor. More...
 
 ~ExplicitSolutionStrategy () 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...
 
void Clear () override
 Clears the internal storage. More...
 
Access
void SetScheme (typename SchemeType::Pointer pScheme)
 Set method for the time scheme. More...
 
SchemeType::Pointer GetScheme ()
 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 bool SolveIteration ()
 Solves the current iteration. 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 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...
 
 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 Member Functions

Protected Operations
void Initialize () override
 Initialization of member variables and prior operations. More...
 
void Update () override
 Here the database is updated. More...
 
int Check () override
 
- Protected Member Functions inherited from Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >
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 Finalize ()
 Finalization of member variables and prior operations. More...
 

Protected Attributes

Protected member Variables
SchemeType::Pointer mpScheme
 
BuilderAndSolverType::Pointer mpBuilderAndSolver
 The pointer to the time scheme employed. More...
 
SystemVectorPointerType mpDx
 The pointer to the builder and solver employed. More...
 
SystemVectorPointerType mpb
 The incremement in the solution. More...
 
SystemMatrixPointerType mpA
 The RHS vector of the system of equations. More...
 
- Protected Attributes inherited from Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >
Flags mOptions
 
int mEchoLevel
 

Type Definitions

typedef SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver > BaseType
 
typedef BaseType::LocalFlagType LocalFlagType
 
typedef ConvergenceCriterion< TSparseSpace, TDenseSpace > ConvergenceCriterionType
 
typedef BaseType::BuilderAndSolverType BuilderAndSolverType
 
typedef BaseType::SchemeType SchemeType
 
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 (ExplicitSolutionStrategy)
 

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)
 

Member Typedef Documentation

◆ BaseType

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

◆ BuilderAndSolverType

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

◆ ConvergenceCriterionType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef ConvergenceCriterion<TSparseSpace, TDenseSpace> Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::ConvergenceCriterionType

◆ DofsArrayType

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

◆ LocalFlagType

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

◆ SchemeType

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

◆ SparseSpaceType

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

◆ SystemMatrixPointerType

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

◆ SystemMatrixType

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

◆ SystemVectorPointerType

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

◆ SystemVectorType

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

Constructor & Destructor Documentation

◆ ExplicitSolutionStrategy()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::ExplicitSolutionStrategy ( ModelPart rModelPart,
typename SchemeType::Pointer  pScheme,
Flags rOptions 
)
inline

Constructor.

◆ ~ExplicitSolutionStrategy()

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

Destructor.

Member Function Documentation

◆ Check()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
int Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Check ( )
inlineoverrideprotectedvirtual

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::ExplicitSolutionStrategy< 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::ExplicitSolutionStrategy< 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 >.

◆ GetScheme()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
SchemeType::Pointer Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::GetScheme ( )
inline

Get method for the time scheme.

Returns
mpScheme: The pointer to the time scheme considered

◆ Initialize()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Initialize ( void  )
inlineoverrideprotectedvirtual

Initialization of member variables and prior operations.

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

◆ InitializeSolutionStep()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::ExplicitSolutionStrategy< 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::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::KRATOS_CLASS_POINTER_DEFINITION ( ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >  )

◆ SetScheme()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SetScheme ( typename SchemeType::Pointer  pScheme)
inline

Set method for the time scheme.

Parameters
pSchemeThe pointer to the time scheme considered

◆ SolveSolutionStep()

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

◆ Update()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Update ( )
inlineoverrideprotectedvirtual

Here the database is updated.

Parameters
AThe LHS matrix of the system of equations
DxThe incremement in the solution
bThe RHS vector of the system of equations
MoveMeshThe flag that allows to move the mesh

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

Member Data Documentation

◆ mpA

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
SystemMatrixPointerType Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mpA
protected

The RHS vector of the system of equations.

◆ mpb

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
SystemVectorPointerType Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mpb
protected

The incremement in the solution.

◆ mpBuilderAndSolver

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
BuilderAndSolverType::Pointer Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mpBuilderAndSolver
protected

The pointer to the time scheme employed.

◆ mpDx

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
SystemVectorPointerType Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mpDx
protected

The pointer to the builder and solver employed.

◆ mpScheme

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
SchemeType::Pointer Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mpScheme
protected

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