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.
|
This strategy adds the orthogonal subgrid projections computation to the base explicit runge kutta 4 integration method. More...
#include <explicit_runge_kutta_4_eulerian_convdiff_strategy.h>
Public Member Functions | |
Life Cycle | |
ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion (ModelPart &rModelPart, Parameters ThisParameters) | |
Default constructor. (with parameters) More... | |
ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion (ModelPart &rModelPart, typename ExplicitBuilderType::Pointer pExplicitBuilder, bool MoveMeshFlag=false, int RebuildLevel=0) | |
Default constructor. More... | |
ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion (ModelPart &rModelPart, bool MoveMeshFlag=false, int RebuildLevel=0) | |
Default constructor. More... | |
ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion (const ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion &Other)=delete | |
virtual | ~ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion ()=default |
Operations | |
void | Initialize () override |
Initialization of variables. More... | |
Input and output | |
std::string | Info () const override |
Turn back information as a string. More... | |
void | PrintInfo (std::ostream &rOStream) const override |
Print information about this object. More... | |
void | PrintData (std::ostream &rOStream) const override |
Print object's data. More... | |
Public Member Functions inherited from Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > | |
ExplicitSolvingStrategyRungeKutta () | |
Default constructor. (empty) More... | |
ExplicitSolvingStrategyRungeKutta (ModelPart &rModelPart, Parameters ThisParameters) | |
Default constructor. (with parameters) More... | |
ExplicitSolvingStrategyRungeKutta (ModelPart &rModelPart, typename ExplicitBuilderType::Pointer pExplicitBuilder, bool MoveMeshFlag=false, int RebuildLevel=0) | |
Default constructor. More... | |
ExplicitSolvingStrategyRungeKutta (ModelPart &rModelPart, bool MoveMeshFlag=false, int RebuildLevel=0) | |
Default constructor. More... | |
SolvingStrategyType::Pointer | Create (ModelPart &rModelPart, Parameters ThisParameters) const override |
Create method. More... | |
ExplicitSolvingStrategyRungeKutta (const ExplicitSolvingStrategyRungeKutta &Other)=delete | |
~ExplicitSolvingStrategyRungeKutta () override=default | |
Parameters | GetDefaultParameters () const override |
This method provides the defaults parameters to avoid conflicts between the different constructors. More... | |
KRATOS_CLASS_POINTER_DEFINITION (ExplicitSolvingStrategyRungeKutta) | |
Public Member Functions inherited from Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace > | |
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 () |
KRATOS_CLASS_POINTER_DEFINITION (ExplicitSolvingStrategy) | |
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... | |
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... | |
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 () |
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 | InitializeRungeKuttaIntermediateSubStep () override |
Initialize the Runge-Kutta substep. More... | |
virtual void | InitializeRungeKuttaLastSubStep () override |
Initialize the Runge-Kutta substep. More... | |
virtual bool | SolveSolutionStep () override |
Finalize the Runge Kutta explicit solver step and calculate the orthogonal subscale projections if required. More... | |
Protected Member Functions inherited from Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > | |
void | SolveWithLumpedMassMatrix () override |
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 void | FinalizeRungeKuttaIntermediateSubStep () |
Finalize the Runge-Kutta intermediate substep This method is intended to implement all the operations required after each Runge-Kutta intermediate substep. More... | |
virtual void | FinalizeRungeKuttaLastSubStep () |
Finalize the Runge-Kutta last substep This method is intended to implement all the operations required after each Runge-Kutta last substep. More... | |
virtual void | PerformRungeKuttaIntermediateSubStep (const IndexType SubStepIndex, const LocalSystemVectorType &rFixedDofsValues, LocalSystemMatrixType &rIntermediateStepResidualVectors) |
Performs an intermediate RK4 step This functions performs all the operations required in an intermediate RK4 sub step. More... | |
virtual void | PerformRungeKuttaLastSubStep (LocalSystemMatrixType &rLastStepResidualVector) |
Performs the last RK4 step This functions performs all the operations required in the last RK4 sub step. More... | |
Protected Member Functions inherited from Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace > | |
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... | |
Type Definitions | |
typedef ExplicitSolvingStrategyRungeKutta4< TSparseSpace, TDenseSpace > | BaseType |
typedef BaseType::ExplicitBuilderType | ExplicitBuilderType |
typedef TDenseSpace::VectorType | LocalSystemVectorType |
The local vector definition. More... | |
KRATOS_CLASS_POINTER_DEFINITION (ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion) | |
Additional Inherited Members | |
Public Types inherited from Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > | |
using | SolvingStrategyType = SolvingStrategy< TSparseSpace, TDenseSpace > |
The base solving strategy class definition. More... | |
using | BaseType = ExplicitSolvingStrategy< TSparseSpace, TDenseSpace > |
The base class definition. More... | |
using | ClassType = ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > |
The definition of the current class. More... | |
using | ExplicitBuilderType = typename BaseType::ExplicitBuilderType |
The explicit builder and solver definition. More... | |
using | DofType = typename BaseType::DofType |
The DOF type. More... | |
using | LocalSystemVectorType = typename TDenseSpace::VectorType |
The local vector definition. More... | |
using | LocalSystemMatrixType = typename TDenseSpace::MatrixType |
Public Types inherited from Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace > | |
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... | |
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::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > | |
static std::string | Name () |
Returns the name of the class as used in the settings (snake_case format) More... | |
Static Public Member Functions inherited from Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace > | |
static std::string | Name () |
Returns the name of the class as used in the settings (snake_case format) More... | |
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... | |
Protected Attributes inherited from Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > | |
const TButcherTableau | mButcherTableau |
Protected Attributes inherited from Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace > | |
int | mRebuildLevel |
Protected Attributes inherited from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace > | |
int | mEchoLevel |
This strategy adds the orthogonal subgrid projections computation to the base explicit runge kutta 4 integration method.
The orthogonal subgrid scale projections are computed before each Runge-Kutta 4 step, and after the final update, before updating the dynamic subscales.
typedef ExplicitSolvingStrategyRungeKutta4<TSparseSpace, TDenseSpace> Kratos::ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion< TSparseSpace, TDenseSpace >::BaseType |
typedef BaseType::ExplicitBuilderType Kratos::ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion< TSparseSpace, TDenseSpace >::ExplicitBuilderType |
typedef TDenseSpace::VectorType Kratos::ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion< TSparseSpace, TDenseSpace >::LocalSystemVectorType |
The local vector definition.
|
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 |
|
inlineexplicit |
Default constructor.
rModelPart | The model part to be computed |
MoveMeshFlag | The flag to set if the mesh is moved or not |
|
delete |
Copy constructor.
|
virtualdefault |
Destructor.
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >.
|
inlineoverridevirtual |
Initialization of variables.
In this method, we call the base strategy initialize and initialize the projection variable. This is required to prevent OpenMP errors as the projection variable is stored in the non-historical database.
Reimplemented from Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >.
|
inlineoverrideprotectedvirtual |
Initialize the Runge-Kutta substep.
Calculate the orthogonal subscale projections if required.
Reimplemented from Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >.
|
inlineoverrideprotectedvirtual |
Initialize the Runge-Kutta substep.
Calculate the orthogonal subscale projections if required.
Reimplemented from Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >.
Kratos::ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion< TSparseSpace, TDenseSpace >::KRATOS_CLASS_POINTER_DEFINITION | ( | ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion< TSparseSpace, TDenseSpace > | ) |
Counted pointer of ClassName
|
inlineoverridevirtual |
Print object's data.
Reimplemented from Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >.
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >.
|
inlineoverrideprotectedvirtual |
Finalize the Runge Kutta explicit solver step and calculate the orthogonal subscale projections if required.
Reimplemented from Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace >.