![]() |
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.
|
#include <three_step_v_p_strategy.h>
Public Member Functions | |
Life Cycle | |
| ThreeStepVPStrategy (ModelPart &rModelPart, typename TLinearSolver::Pointer pVelocityLinearSolver, typename TLinearSolver::Pointer pPressureLinearSolver, bool ReformDofSet=true, double VelTol=0.0001, double PresTol=0.0001, int MaxPressureIterations=1, unsigned int TimeOrder=2, unsigned int DomainSize=2) | |
| virtual | ~ThreeStepVPStrategy () |
| Destructor. More... | |
| int | Check () override |
| Function to perform expensive checks. More... | |
| void | SetTimeCoefficients (ProcessInfo &rCurrentProcessInfo) |
| bool | SolveSolutionStep () override |
| Solves the current step. This function returns true if a solution has been found, false otherwise. More... | |
| void | FinalizeSolutionStep () override |
| Performs all the required operations that should be done (for each step) after solving the solution step. More... | |
| void | InitializeSolutionStep () override |
| Performs all the required operations that should be done (for each step) before solving the solution step. More... | |
| void | UpdateStressStrain () override |
| void | CalculateTemporalVariables () override |
| void | UpdateAccelerations (array_1d< double, 3 > &CurrentAcceleration, const array_1d< double, 3 > &CurrentVelocity, array_1d< double, 3 > &PreviousAcceleration, const array_1d< double, 3 > &PreviousVelocity) |
| void | Clear () override |
| Clears the internal storage. More... | |
Access | |
| void | SetEchoLevel (int Level) override |
| This sets the level of echo for the solving strategy. 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::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | |
| VPStrategy (ModelPart &rModelPart, SolverSettingsType &rSolverConfig) | |
| VPStrategy (ModelPart &rModelPart, typename TLinearSolver::Pointer pVelocityLinearSolver, typename TLinearSolver::Pointer pPressureLinearSolver, bool ReformDofSet=true, unsigned int DomainSize=2) | |
| virtual | ~VPStrategy () |
| Destructor. More... | |
| void | UpdateTopology (ModelPart &rModelPart, unsigned int echoLevel) |
| void | SetBlockedAndIsolatedFlags () |
| void | CalculatePressureVelocity () |
| void | CalculatePressureAcceleration () |
| void | CalculateAccelerations () |
| void | UpdateAccelerations (array_1d< double, 3 > &CurrentAcceleration, const array_1d< double, 3 > &CurrentVelocity, array_1d< double, 3 > &PreviousAcceleration, const array_1d< double, 3 > &PreviousVelocity) |
| virtual void | CalculateDisplacementsAndPorosity () |
| 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... | |
| KRATOS_CLASS_POINTER_DEFINITION (VPStrategy) | |
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 ClassType::Pointer | Create (ModelPart &rModelPart, Parameters ThisParameters) const |
| Create method. 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 | Initialize () |
| Initialization of member variables and prior operations. 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... | |
| 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 | SetRebuildLevel (int Level) |
| Set the Rebuild Level value This functions sets the rebuild level of the strategy It is only intended to be used in implicit strategies. More... | |
| virtual int | GetRebuildLevel () const |
| Get the Rebuild Level value This function returns the rebuild level of the strategy It is only intended to be used in implicit strategies. 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 double | GetResidualNorm () |
| Operations to get the residual norm. More... | |
| virtual Parameters | GetDefaultParameters () const |
| This method provides the defaults parameters to avoid conflicts between the different constructors. 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 | |
| bool | SolveFirstVelocitySystem (double &NormV) |
| Calculate the coefficients for time iteration. More... | |
| bool | SolveContinuityIteration () |
| void | CalculateEndOfStepVelocity (const double NormV) |
| void | RecoverFractionalVelocity () |
| bool | CheckVelocityIncrementConvergence (const double NormDv, double &NormV) |
| void | CheckVelocityConvergence (const double NormOldV) |
| bool | CheckPressureIncrementConvergence (const double NormDp) |
| void | FixPressure () |
| void | FreePressure () |
Un accessible methods | |
| ThreeStepVPStrategy & | operator= (ThreeStepVPStrategy const &rOther) |
| Assignment operator. More... | |
| ThreeStepVPStrategy (ThreeStepVPStrategy const &rOther) | |
| Copy constructor. More... | |
Protected Member Functions inherited from Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | |
| virtual bool | SolveMomentumIteration (unsigned int it, unsigned int maxIt, bool &fixedTimeStep, double &velocityNorm) |
| Calculate the coefficients for time iteration. More... | |
| virtual bool | SolveContinuityIteration (unsigned int it, unsigned int maxIt, double &NormP) |
| void | ComputeErrorL2Norm (double tensilStressSign) |
| void | ComputeErrorL2NormCasePoiseuille () |
| double | ComputeVelocityNorm () |
| double | ComputePressureNorm () |
| virtual bool | CheckVelocityConvergence (const double NormDv, double &errorNormDv) |
| virtual bool | CheckPressureConvergence (const double NormDp, double &errorNormDp, double &NormP) |
| virtual bool | FixTimeStepMomentum (const double DvErrorNorm, bool &fixedTimeStep) |
| virtual bool | CheckMomentumConvergence (const double DvErrorNorm, bool &fixedTimeStep) |
| virtual bool | FixTimeStepContinuity (const double DvErrorNorm, bool &fixedTimeStep) |
| virtual bool | CheckContinuityConvergence (const double DvErrorNorm, bool &fixedTimeStep) |
| virtual void | InitializeStrategy (SolverSettingsType &rSolverConfig) |
| VPStrategy & | operator= (VPStrategy const &rOther) |
| Assignment operator. More... | |
| VPStrategy (VPStrategy const &rOther) | |
| Copy constructor. 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... | |
| virtual void | AssignSettings (const Parameters ThisParameters) |
| This method assigns settings to member variables. More... | |
Protected Attributes | |
Member Variables | |
| double | mVelocityTolerance |
| double | mPressureTolerance |
| unsigned int | mMaxPressureIter |
| unsigned int | mDomainSize |
| unsigned int | mTimeOrder |
| bool | mReformDofSet |
| StrategyPointerType | mpMomentumStrategy |
| Scheme for the solution of the momentum equation. More... | |
| StrategyPointerType | mpPressureStrategy |
| Scheme for the solution of the mass equation. More... | |
Protected Attributes inherited from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace > | |
| int | mEchoLevel |
Type Definitions | |
| typedef VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | BaseType |
| typedef BaseType::TDataType | TDataType |
| typedef BaseType::DofsArrayType | DofsArrayType |
| typedef BaseType::TSystemMatrixType | TSystemMatrixType |
| typedef BaseType::TSystemVectorType | TSystemVectorType |
| typedef BaseType::LocalSystemVectorType | LocalSystemVectorType |
| typedef BaseType::LocalSystemMatrixType | LocalSystemMatrixType |
| typedef SolvingStrategy< TSparseSpace, TDenseSpace >::Pointer | StrategyPointerType |
| typedef TwoStepVPSolverSettings< TSparseSpace, TDenseSpace, TLinearSolver > | SolverSettingsType |
| KRATOS_CLASS_POINTER_DEFINITION (ThreeStepVPStrategy) | |
Additional Inherited Members | |
Public Types inherited from Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | |
| typedef SolvingStrategy< TSparseSpace, TDenseSpace > | BaseType |
| typedef TwoStepVPSolverSettings< TSparseSpace, TDenseSpace, TLinearSolver > | SolverSettingsType |
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... | |
| typedef VPStrategy<TSparseSpace, TDenseSpace, TLinearSolver> Kratos::ThreeStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::BaseType |
| typedef BaseType::DofsArrayType Kratos::ThreeStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::DofsArrayType |
| typedef BaseType::LocalSystemMatrixType Kratos::ThreeStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::LocalSystemMatrixType |
| typedef BaseType::LocalSystemVectorType Kratos::ThreeStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::LocalSystemVectorType |
| typedef TwoStepVPSolverSettings<TSparseSpace, TDenseSpace, TLinearSolver> Kratos::ThreeStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolverSettingsType |
| typedef SolvingStrategy<TSparseSpace, TDenseSpace>::Pointer Kratos::ThreeStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::StrategyPointerType |
| typedef BaseType::TDataType Kratos::ThreeStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TDataType |
| typedef BaseType::TSystemMatrixType Kratos::ThreeStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TSystemMatrixType |
| typedef BaseType::TSystemVectorType Kratos::ThreeStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TSystemVectorType |
|
inline |
|
inlinevirtual |
Destructor.
|
inlineprotected |
Copy constructor.
|
inlineprotected |
|
inlineoverridevirtual |
Reimplemented from Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
Function to perform expensive checks.
It is designed to be called ONCE to verify that the input is correct.
Reimplemented from Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineoverridevirtual |
Clears the internal storage.
Reimplemented from Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
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::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineprotected |
|
inlineprotected |
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::SolvingStrategy< 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::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
| Kratos::ThreeStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::KRATOS_CLASS_POINTER_DEFINITION | ( | ThreeStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | ) |
|
inlineprotected |
Assignment operator.
|
inlineoverridevirtual |
Print object's data.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
|
inlineprotected |
|
inlineoverridevirtual |
This sets the level of echo for the solving strategy.
| Level | of echo for the solving strategy |
{ 0 -> Mute... no echo at all 1 -> Printing time and basic information 2 -> Printing linear solver data 3 -> Print of debug information: Echo of stiffness matrix, Dx, b... }
Reimplemented from Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inline |
|
inlineprotected |
|
inlineprotected |
Calculate the coefficients for time iteration.
| rCurrentProcessInfo | ProcessInfo instance from the fluid ModelPart. Must contain DELTA_TIME variables. |
|
inlineoverridevirtual |
Solves the current step. This function returns true if a solution has been found, false otherwise.
Reimplemented from Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inline |
|
inlineoverridevirtual |
Reimplemented from Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
protected |
|
protected |
|
protected |
Scheme for the solution of the momentum equation.
|
protected |
Scheme for the solution of the mass equation.
|
protected |
|
protected |
|
protected |
|
protected |