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.
|
Explicit solving strategy base class. More...
#include <explicit_solving_strategy.h>
Public Member Functions | |
Life Cycle | |
ExplicitSolvingStrategy () | |
Default constructor. (empty) More... | |
ExplicitSolvingStrategy (ModelPart &rModelPart, Parameters ThisParameters) | |
Default constructor. (with parameters) More... | |
ExplicitSolvingStrategy (ModelPart &rModelPart, typename ExplicitBuilderType::Pointer pExplicitBuilder, bool MoveMeshFlag=false, int RebuildLevel=0) | |
Default constructor. More... | |
ExplicitSolvingStrategy (ModelPart &rModelPart, bool MoveMeshFlag=false, int RebuildLevel=0) | |
Default constructor. More... | |
ExplicitSolvingStrategy (const ExplicitSolvingStrategy &Other)=delete | |
virtual | ~ExplicitSolvingStrategy () |
BaseType::Pointer | Create (ModelPart &rModelPart, Parameters ThisParameters) const override |
Create method. 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 double | Solve () |
The problem of interest is solved. 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 | 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... | |
ModelPart & | GetModelPart () |
Operations to get the pointer to the model. More... | |
const ModelPart & | GetModelPart () const |
Operations to get the pointer to the model. More... | |
virtual int | Check () |
Function to perform expensive checks. More... | |
virtual TSystemMatrixType & | GetSystemMatrix () |
This method returns the LHS matrix. More... | |
virtual TSystemVectorType & | GetSystemVector () |
This method returns the RHS vector. More... | |
virtual TSystemVectorType & | GetSolutionVector () |
This method returns the solution vector. More... | |
Protected Member Functions | |
Protected Operations | |
virtual void | SolveWithLumpedMassMatrix () |
Calculate the explicit update This method is intended to implement the explicit update calculation Note that it has to be implemented according to the explicit scheme in a derived class. More... | |
virtual double | GetDeltaTime () |
Get the Delta Time object This method returns the DELTA_TIME from the ProcessInfo container. More... | |
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 |
Protected Attributes inherited from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace > | |
int | mEchoLevel |
Type Definitions | |
typedef ExplicitBuilder< TSparseSpace, TDenseSpace > | ExplicitBuilderType |
typedef ExplicitBuilderType::Pointer | ExplicitBuilderPointerType |
typedef ExplicitBuilderType::DofType | DofType |
typedef SolvingStrategy< TSparseSpace, TDenseSpace > | BaseType |
The definition of the base class. More... | |
typedef ExplicitSolvingStrategy< TSparseSpace, TDenseSpace > | ClassType |
The definition of the current class. More... | |
KRATOS_CLASS_POINTER_DEFINITION (ExplicitSolvingStrategy) | |
Operations | |
void | Initialize () override |
Initialization of member variables and prior operations. More... | |
void | Clear () override |
Clears the internal storage. More... | |
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. The function always return true as convergence is not checked in the explicit framework. More... | |
void | SetRebuildLevel (int Level) override |
int | GetRebuildLevel () const override |
This returns the build level. More... | |
ExplicitBuilderPointerType | pGetExplicitBuilder () |
Operations to get the pointer to the explicit builder and solver. More... | |
ExplicitBuilderType & | GetExplicitBuilder () |
Operations to get the explicit builder and solver. More... | |
const ExplicitBuilderType & | GetExplicitBuilder () const |
Operations to get the explicit builder and solver. More... | |
double | GetResidualNorm () override |
Operations to get the residual norm. More... | |
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... | |
Explicit solving strategy base class.
This is the base class from which we will derive all the explicit strategies (FE, RK4, ...)
typedef SolvingStrategy<TSparseSpace, TDenseSpace> Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace >::BaseType |
The definition of the base class.
typedef ExplicitSolvingStrategy<TSparseSpace, TDenseSpace> Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace >::ClassType |
The definition of the current class.
typedef ExplicitBuilderType::DofType Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace >::DofType |
typedef ExplicitBuilderType::Pointer Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace >::ExplicitBuilderPointerType |
typedef ExplicitBuilder<TSparseSpace, TDenseSpace> Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace >::ExplicitBuilderType |
|
inlineexplicit |
Default constructor. (empty)
|
inlineexplicit |
Default constructor. (with parameters)
rModelPart | The model part of the problem |
ThisParameters | The configuration parameters |
|
inlineexplicit |
Default constructor.
rModelPart | The model part to be computed |
pExplicitBuilder | The pointer to the explicit builder and solver |
MoveMeshFlag | The flag to set if the mesh is moved or not |
RebuildLevel | The flag to set if the DOF set is rebuild or not |
|
inlineexplicit |
Default constructor.
rModelPart | The model part to be computed |
MoveMeshFlag | The flag to set if the mesh is moved or not |
RebuildLevel | The flag to set if the DOF set is rebuild or not |
|
delete |
Copy constructor.
|
inlinevirtual |
Destructor.
|
inlineoverrideprotectedvirtual |
This method assigns settings to member variables.
ThisParameters | Parameters that are assigned to the member variables |
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
Reimplemented in Kratos::ExplicitSolvingStrategyBFECC< TSparseSpace, TDenseSpace >, Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > >, and Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyBFECC< TSparseSpace, TDenseSpace > >.
|
inlineoverridevirtual |
Clears the internal storage.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Create method.
rModelPart | The model part to be computed |
ThisParameters | The configuration parameters |
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
Reimplemented in Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >, Kratos::ExplicitSolvingStrategyBFECC< TSparseSpace, TDenseSpace >, and Kratos::CompressibleNavierStokesExplicitSolvingStrategyBFECC< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Performs all the required operations that should be done (for each step) after solving the solution step.
A member variable should be used as a flag to make sure this function is called only once per step.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
Reimplemented in Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > >, and Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyBFECC< TSparseSpace, TDenseSpace > >.
|
inlineoverridevirtual |
This method provides the defaults parameters to avoid conflicts between the different constructors.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
Reimplemented in Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >, Kratos::ExplicitSolvingStrategyBFECC< TSparseSpace, TDenseSpace >, Kratos::CompressibleNavierStokesExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >, Kratos::CompressibleNavierStokesExplicitSolvingStrategyBFECC< TSparseSpace, TDenseSpace >, Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > >, and Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyBFECC< TSparseSpace, TDenseSpace > >.
|
inlineprotectedvirtual |
Get the Delta Time object This method returns the DELTA_TIME from the ProcessInfo container.
|
inline |
Operations to get the explicit builder and solver.
|
inline |
Operations to get the explicit builder and solver.
|
inlineoverridevirtual |
This returns the build level.
{ 0 -> Set up the DOF set just once 1 -> Set up the DOF set at the beginning of each solution step }
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Operations to get the residual norm.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
Reimplemented in Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > >, Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyBFECC< TSparseSpace, TDenseSpace > >, Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >, Kratos::ExplicitSolvingStrategyBFECC< TSparseSpace, TDenseSpace >, Kratos::CompressibleNavierStokesExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >, Kratos::CompressibleNavierStokesExplicitSolvingStrategyBFECC< TSparseSpace, TDenseSpace >, and Kratos::ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Initialization of member variables and prior operations.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
Reimplemented in Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >, Kratos::ExplicitSolvingStrategyBFECC< TSparseSpace, TDenseSpace >, Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > >, Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyBFECC< TSparseSpace, TDenseSpace > >, and Kratos::ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Performs all the required operations that should be done (for each step) before solving the solution step.
A member variable should be used as a flag to make sure this function is called only once per step.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
Reimplemented in Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > >, and Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyBFECC< TSparseSpace, TDenseSpace > >.
Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace >::KRATOS_CLASS_POINTER_DEFINITION | ( | ExplicitSolvingStrategy< TSparseSpace, TDenseSpace > | ) |
Counted pointer of ClassName
|
inlinestatic |
Returns the name of the class as used in the settings (snake_case format)
|
inline |
Operations to get the pointer to the explicit builder and solver.
|
inlineoverridevirtual |
This sets the build level
Level | The build level |
{ 0 -> Set up the DOF set just once 1 -> Set up the DOF set at the beginning of each solution step }
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Solves the current step. The function always return true as convergence is not checked in the explicit framework.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
Reimplemented in Kratos::ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion< TSparseSpace, TDenseSpace >.
|
inlineprotectedvirtual |
Calculate the explicit update This method is intended to implement the explicit update calculation Note that it has to be implemented according to the explicit scheme in a derived class.
Reimplemented in Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >, and Kratos::ExplicitSolvingStrategyBFECC< TSparseSpace, TDenseSpace >.
|
protected |