![]() |
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.
|
Family of explicit Runge-Kutta schemes. More...
#include <explicit_solving_strategy_runge_kutta.h>
Public Member Functions | |
Life Cycle | |
| 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... | |
Operations | |
| void | Initialize () override |
| Initialization of member variables and prior operations. More... | |
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... | |
| 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... | |
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 | |
| 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 | InitializeRungeKuttaIntermediateSubStep () |
| Initialize the Runge-Kutta intermediate substep This method is intended to implement all the operations required before each Runge-Kutta intermediate substep. 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 | InitializeRungeKuttaLastSubStep () |
| Initialize the Runge-Kutta last substep This method is intended to implement all the operations required before each Runge-Kutta last 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... | |
Protected Attributes | |
Protected static Member Variables | |
| const TButcherTableau | mButcherTableau |
Protected Attributes inherited from Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace > | |
| int | mRebuildLevel |
Protected Attributes inherited from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace > | |
| int | mEchoLevel |
Type Definitions | |
| 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 |
| KRATOS_CLASS_POINTER_DEFINITION (ExplicitSolvingStrategyRungeKutta) | |
Input and output | |
| std::string | Info () const override |
| Return 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... | |
| 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::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::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... | |
Family of explicit Runge-Kutta schemes.
: Formulation:
The Runge-Kutta method is, for i = 0...N substeps:
| TSparseSpace | |
| TDenseSpace | |
| TButcherTableau | specifies
|
| using Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >::BaseType = ExplicitSolvingStrategy<TSparseSpace, TDenseSpace> |
The base class definition.
| using Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >::ClassType = ExplicitSolvingStrategyRungeKutta<TSparseSpace, TDenseSpace, TButcherTableau> |
The definition of the current class.
| using Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >::DofType = typename BaseType::DofType |
The DOF type.
| using Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >::ExplicitBuilderType = typename BaseType::ExplicitBuilderType |
The explicit builder and solver definition.
| using Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >::LocalSystemMatrixType = typename TDenseSpace::MatrixType |
| using Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >::LocalSystemVectorType = typename TDenseSpace::VectorType |
The local vector definition.
| using Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >::SolvingStrategyType = SolvingStrategy<TSparseSpace, TDenseSpace> |
The base solving strategy class definition.
|
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 |
|
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.
|
overridedefault |
Destructor.
|
inlineoverridevirtual |
Create method.
| rModelPart | The model part to be computed |
| ThisParameters | The configuration parameters |
Reimplemented from Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace >.
|
inlineprotectedvirtual |
Finalize the Runge-Kutta intermediate substep This method is intended to implement all the operations required after each Runge-Kutta intermediate substep.
Reimplemented in Kratos::CompressibleNavierStokesExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >.
|
inlineprotectedvirtual |
Finalize the Runge-Kutta last substep This method is intended to implement all the operations required after each Runge-Kutta last substep.
Reimplemented in Kratos::CompressibleNavierStokesExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >.
|
inlineoverridevirtual |
This method provides the defaults parameters to avoid conflicts between the different constructors.
Reimplemented from Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace >.
Reimplemented in Kratos::CompressibleNavierStokesExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >, and Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > >.
|
inlineoverridevirtual |
Return information as a string.
Reimplemented from Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace >.
Reimplemented in Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > >, Kratos::CompressibleNavierStokesExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >, and Kratos::ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Initialization of member variables and prior operations.
Reimplemented from Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace >.
Reimplemented in Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > >, and Kratos::ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion< TSparseSpace, TDenseSpace >.
|
inlineprotectedvirtual |
Initialize the Runge-Kutta intermediate substep This method is intended to implement all the operations required before each Runge-Kutta intermediate substep.
Reimplemented in Kratos::CompressibleNavierStokesExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >, and Kratos::ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion< TSparseSpace, TDenseSpace >.
|
inlineprotectedvirtual |
Initialize the Runge-Kutta last substep This method is intended to implement all the operations required before each Runge-Kutta last substep.
Reimplemented in Kratos::CompressibleNavierStokesExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >, and Kratos::ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion< TSparseSpace, TDenseSpace >.
| Kratos::ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau >::KRATOS_CLASS_POINTER_DEFINITION | ( | ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > | ) |
Counted pointer of ClassName
|
inlinestatic |
Returns the name of the class as used in the settings (snake_case format)
|
inlineprotectedvirtual |
Performs an intermediate RK4 step This functions performs all the operations required in an intermediate RK4 sub step.
| SubStepIndex | The sub step index |
| SubStepCoefficients | The sub step coefficients (these are saved as member variables) |
| rFixedDofsValues | The vector containing the step n+1 values of the fixed DOFs |
| rIntermediateStepResidualVector | The vector to store the intermediate sub step residual |
|
inlineprotectedvirtual |
Performs the last RK4 step This functions performs all the operations required in the last RK4 sub step.
| rLastStepResidualVector | The vector to store the last sub step residual |
|
inlineoverridevirtual |
Print object's data.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
Reimplemented in Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > >, and Kratos::ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
Reimplemented in Kratos::CompressibleNavierStokesExplicitSolvingStrategy< ExplicitSolvingStrategyRungeKutta< TSparseSpace, TDenseSpace, TButcherTableau > >, and Kratos::ExplicitSolvingStrategyRungeKutta4ConvectionDiffusion< TSparseSpace, TDenseSpace >.
|
inlineoverrideprotectedvirtual |
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 from Kratos::ExplicitSolvingStrategy< TSparseSpace, TDenseSpace >.
|
protected |