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.
|
Solution strategy base class. More...
#include <solution_strategy.hpp>
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... | |
Flags & | GetOptions () |
Get strategy options. More... | |
virtual unsigned int | GetMaxIterationNumber () |
This method gets the flag mMaxIterationNumber. More... | |
ModelPart & | GetModelPart () |
Operations to get the pointer to the model. More... | |
Public Member Functions inherited from Kratos::Flags | |
Flags & | operator= (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 Flags & | operator|= (const Flags &Other) |
const Flags & | operator&= (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) |
Solution strategy base class.
This is the base class for the strategies
typedef SolutionBuilderAndSolver<TSparseSpace, TDenseSpace, TLinearSolver> Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::BuilderAndSolverType |
typedef ModelPart::DofsArrayType Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::DofsArrayType |
typedef SolverLocalFlags Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::LocalFlagType |
typedef SolutionScheme<TSparseSpace, TDenseSpace> Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SchemeType |
typedef TSparseSpace::MatrixPointerType Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SystemMatrixPointerType |
typedef TSparseSpace::MatrixType Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SystemMatrixType |
typedef TSparseSpace::VectorPointerType Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SystemVectorPointerType |
typedef TSparseSpace::VectorType Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SystemVectorType |
|
inline |
Constructor.
|
inline |
Constructor.
|
inlineoverride |
Destructor.
|
inlinevirtual |
Function to perform expensive checks.
It is designed to be called ONCE to verify that the input is correct.
Reimplemented in Kratos::EigensolverStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::EigensolverStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlinevirtual |
Clears the internal storage.
Reimplemented in Kratos::EigensolverStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::EigensolverStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineprotectedvirtual |
Finalization of member variables and prior operations.
|
inlinevirtual |
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 in Kratos::EigensolverStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
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... }
|
inlinevirtual |
This method gets the flag mMaxIterationNumber.
Reimplemented in Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inline |
Operations to get the pointer to the model.
|
inline |
Get strategy options.
|
inlineprotectedvirtual |
Initialization of member variables and prior operations.
Reimplemented in Kratos::EigensolverStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::EigensolverStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlinevirtual |
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 in Kratos::EigensolverStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::EigensolverStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::KRATOS_CLASS_POINTER_DEFINITION | ( | SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | ) |
Pointer definition of SolutionStrategy.
|
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 >.
|
inlinevirtual |
This sets the level of echo for the solution strategy.
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... }
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 >.
|
inline |
Sets strategy options.
|
inlinevirtual |
The problem of interest is solved.
{ This function calls sequentially: InitializeSolutionStep(), SolveSolutionStep() and FinalizeSolutionStep(). All those functions can otherwise be called separately. }
|
inlinevirtual |
Solves the current iteration. This function returns true if a solution has been found, false otherwise.
Reimplemented in Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlinevirtual |
Solves the current step. This function returns true if a solution has been found, false otherwise.
Reimplemented in Kratos::EigensolverStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::SegregatedStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::ExplicitSolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::EigensolverStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
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 >.
|
protected |
|
protected |