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.
List of all members
Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver > Class Template Reference

Short class definition. More...

#include <fracstep_GLS_strategy.h>

Inheritance diagram for Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >:
Collaboration diagram for Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >:

Public Member Functions

Life Cycle
 FracStepStrategy (ModelPart &model_part, typename TLinearSolver::Pointer pNewVelocityLinearSolver, typename TLinearSolver::Pointer pNewPressureLinearSolver, bool ReformDofAtEachIteration=true, double velocity_toll=0.01, double pressure_toll=0.01, int MaxVelocityIterations=3, int MaxPressureIterations=1, unsigned int time_order=2, unsigned int domain_size=2, bool predictor_corrector=false)
 
virtual ~FracStepStrategy ()
 
double Solve () override
 
double SolvePressure ()
 
double IterativeSolve ()
 
double SavePressureIteration ()
 
void AssignInitialStepValues ()
 
void SolveStep1 (double velocity_toll, int MaxIterations)
 
double FractionalVelocityIteration ()
 
void SolveStep4 ()
 
void SolveStep7 ()
 
double SolveStep2 ()
 
void SolveStep3 ()
 
void SolveStepaux ()
 
bool ConvergenceCheck (const double &normDx, double tol)
 
void Compute ()
 
virtual void SetEchoLevel (int Level) override
 
virtual void Clear () override
 Clears the internal storage. More...
 
virtual double GetStageResidualNorm (unsigned int step)
 
- Public Member Functions inherited from Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >
 ImplicitSolvingStrategy ()
 Default constructor. More...
 
 ImplicitSolvingStrategy (ModelPart &rModelPart, Parameters ThisParameters)
 Default constructor. (with parameters) More...
 
 ImplicitSolvingStrategy (ModelPart &rModelPart, bool MoveMeshFlag=false)
 Default constructor. More...
 
virtual ~ImplicitSolvingStrategy ()
 
BaseType::Pointer Create (ModelPart &rModelPart, Parameters ThisParameters) const override
 Create method. More...
 
void SetRebuildLevel (int Level) override
 This sets the build level. More...
 
int GetRebuildLevel () const override
 This returns the build level. More...
 
void SetStiffnessMatrixIsBuilt (const bool StiffnessMatrixIsBuilt)
 This method sets the flag mStiffnessMatrixIsBuilt. More...
 
bool GetStiffnessMatrixIsBuilt () const
 This method gets the flag mStiffnessMatrixIsBuilt. More...
 
std::string Info () const override
 Turn back information as a string. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (ImplicitSolvingStrategy)
 
Parameters GetDefaultParameters () const override
 This method provides the defaults parameters to avoid conflicts between the different constructors. 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 void Initialize ()
 Initialization of member variables and prior operations. 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 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...
 
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...
 
ModelPartGetModelPart ()
 Operations to get the pointer to the model. More...
 
const ModelPartGetModelPart () const
 Operations to get the pointer to the model. More...
 
virtual double GetResidualNorm ()
 Operations to get the residual norm. More...
 
virtual int Check ()
 Function to perform expensive checks. More...
 
virtual TSystemMatrixTypeGetSystemMatrix ()
 This method returns the LHS matrix. More...
 
virtual TSystemVectorTypeGetSystemVector ()
 This method returns the RHS vector. More...
 
virtual TSystemVectorTypeGetSolutionVector ()
 This method returns the solution vector. More...
 

Protected Attributes

Protected member Variables
BaseType::Pointer mpfracvel_strategy
 
BaseType::Pointer mppressurestep
 
double mvelocity_toll
 
double mpressure_toll
 
int mMaxVelIterations
 
int mMaxPressIterations
 
unsigned int mtime_order
 
unsigned int mprediction_order
 
bool mpredictor_corrector
 
bool mReformDofAtEachIteration
 
int mecho_level
 
bool muse_dt_in_stabilization
 
- Protected Attributes inherited from Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >
int mRebuildLevel
 
bool mStiffnessMatrixIsBuilt
 The current rebuild level. More...
 
- Protected Attributes inherited from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >
int mEchoLevel
 

Type Definitions

typedef ImplicitSolvingStrategy< 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 OpenMPUtils::PartitionVector PartitionVector
 
 KRATOS_CLASS_POINTER_DEFINITION (FracStepStrategy)
 

Additional Inherited Members

- Public Types inherited from Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >
typedef SolvingStrategy< TSparseSpace, TDenseSpace > BaseType
 
typedef BaseType::TDataType TDataType
 
typedef BaseType::TSystemMatrixType TSystemMatrixType
 
typedef BaseType::TSystemVectorType TSystemVectorType
 
typedef BaseType::TSystemMatrixPointerType TSystemMatrixPointerType
 
typedef BaseType::TSystemVectorPointerType TSystemVectorPointerType
 
typedef BaseType::LocalSystemMatrixType LocalSystemMatrixType
 
typedef BaseType::LocalSystemVectorType LocalSystemVectorType
 
typedef Scheme< TSparseSpace, TDenseSpace > TSchemeType
 
typedef BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver > TBuilderAndSolverType
 
typedef ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver > ClassType
 
typedef BaseType::TDofType TDofType
 
typedef BaseType::DofsArrayType DofsArrayType
 
typedef BaseType::NodesArrayType NodesArrayType
 
typedef BaseType::ElementsArrayType ElementsArrayType
 
typedef BaseType::ConditionsArrayType ConditionsArrayType
 
- 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::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >
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 Member Functions inherited from Kratos::ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >
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...
 

Detailed Description

template<class TSparseSpace, class TDenseSpace, class TLinearSolver>
class Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >

Short class definition.

Detail class definition.

\URL[Example of use html]{ extended_documentation/no_ex_of_use.html}

\URL[Example of use pdf]{ extended_documentation/no_ex_of_use.pdf}

\URL[Example of use doc]{ extended_documentation/no_ex_of_use.doc}

\URL[Example of use ps]{ extended_documentation/no_ex_of_use.ps}

\URL[Extended documentation html]{ extended_documentation/no_ext_doc.html}

\URL[Extended documentation pdf]{ extended_documentation/no_ext_doc.pdf}

\URL[Extended documentation doc]{ extended_documentation/no_ext_doc.doc}

\URL[Extended documentation ps]{ extended_documentation/no_ext_doc.ps}

Member Typedef Documentation

◆ BaseType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef ImplicitSolvingStrategy<TSparseSpace, TDenseSpace, TLinearSolver> Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::BaseType

◆ DofsArrayType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::DofsArrayType Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::DofsArrayType

◆ LocalSystemMatrixType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::LocalSystemMatrixType Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::LocalSystemMatrixType

◆ LocalSystemVectorType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::LocalSystemVectorType Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::LocalSystemVectorType

◆ PartitionVector

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef OpenMPUtils::PartitionVector Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::PartitionVector

◆ TDataType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::TDataType Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TDataType

◆ TSystemMatrixType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::TSystemMatrixType Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TSystemMatrixType

◆ TSystemVectorType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef BaseType::TSystemVectorType Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TSystemVectorType

Constructor & Destructor Documentation

◆ FracStepStrategy()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::FracStepStrategy ( ModelPart model_part,
typename TLinearSolver::Pointer  pNewVelocityLinearSolver,
typename TLinearSolver::Pointer  pNewPressureLinearSolver,
bool  ReformDofAtEachIteration = true,
double  velocity_toll = 0.01,
double  pressure_toll = 0.01,
int  MaxVelocityIterations = 3,
int  MaxPressureIterations = 1,
unsigned int  time_order = 2,
unsigned int  domain_size = 2,
bool  predictor_corrector = false 
)
inline

Constructor of the FracStepStrategy. Implements the solutions strategy for a Navier Stokes solver using the fractional step approach. Prepared for both openmp parallelism and mpi parallelism. The function also calls internally the "Check" function to verify that the input is complete

Parameters
model_part- contains Nodes, elements, etc.
solver_config- auxiliary file to ease the configuration. Prescribes the linear solvers and builiding strategies to be used in defining the current composite solver.
See also
FractionalStepConfiguration for OpenMP setting or
TrilinosFractionalStepConfiguration (in the Trilinos application) for the MPI version
Parameters
ReformDofAtEachIteration- if set to true the graph of the matrix is recomputed at each iteration
velocity_toll- tolerance used in the velocity convergence check
pressure_toll- pressure tolerance in finalizing the predictor corrector strategy
MaxVelocityIterations- maximum number of iterations of the velocity solver
MaxPressureIterations- max number of iteration for the predictor corrector strategy
time_order- 1=BDF1 , 2=BDF2
domain_size2=2D, 3=3D
predictor_corrector- true->for predictor corrector, false->standard Fractional Step (default = false)

◆ ~FracStepStrategy()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::~FracStepStrategy ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ AssignInitialStepValues()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::AssignInitialStepValues ( )
inline

◆ Clear()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Clear ( )
inlineoverridevirtual

Clears the internal storage.

Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.

◆ Compute()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Compute ( )
inline

◆ ConvergenceCheck()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
bool Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::ConvergenceCheck ( const double normDx,
double  tol 
)
inline

implements the convergence check for the velocities convergence is considered achieved when normDx/norm(v) is less than tol

Parameters
normDxnorm of the VELOCITY correction
tolltolerance accepted
Returns
true if converged

◆ FractionalVelocityIteration()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
double Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::FractionalVelocityIteration ( )
inline

◆ GetStageResidualNorm()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual double Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::GetStageResidualNorm ( unsigned int  step)
inlinevirtual

◆ IterativeSolve()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
double Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::IterativeSolve ( )
inline

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::KRATOS_CLASS_POINTER_DEFINITION ( FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >  )

Counted pointer of ClassName

◆ SavePressureIteration()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
double Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SavePressureIteration ( )
inline

copies PRESSURE->PRESSURE_OLD_IT

Returns
the norm of the pressure vector

◆ SetEchoLevel()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SetEchoLevel ( int  Level)
inlineoverridevirtual
Parameters
Level

Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.

◆ Solve()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
double Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Solve ( )
inlineoverridevirtual

◆ SolvePressure()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
double Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolvePressure ( )
inline

◆ SolveStep1()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolveStep1 ( double  velocity_toll,
int  MaxIterations 
)
inline

this function performs the iterative solution of the non-linear velocity problem in the first step of the fractional step procedure

Parameters
velocity_toll- tolerance used in the velocity convergence check
MaxIterations- max number of iterations

◆ SolveStep2()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
double Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolveStep2 ( )
inline

◆ SolveStep3()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolveStep3 ( )
inline

◆ SolveStep4()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolveStep4 ( )
inline

◆ SolveStep7()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolveStep7 ( )
inline

◆ SolveStepaux()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolveStepaux ( )
inline

Member Data Documentation

◆ mecho_level

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
int Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mecho_level
protected

◆ mMaxPressIterations

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
int Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mMaxPressIterations
protected

◆ mMaxVelIterations

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
int Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mMaxVelIterations
protected

◆ mpfracvel_strategy

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
BaseType::Pointer Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mpfracvel_strategy
protected

◆ mppressurestep

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
BaseType::Pointer Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mppressurestep
protected

◆ mprediction_order

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
unsigned int Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mprediction_order
protected

◆ mpredictor_corrector

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
bool Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mpredictor_corrector
protected

◆ mpressure_toll

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
double Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mpressure_toll
protected

◆ mReformDofAtEachIteration

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
bool Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mReformDofAtEachIteration
protected

◆ mtime_order

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
unsigned int Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mtime_order
protected

◆ muse_dt_in_stabilization

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
bool Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::muse_dt_in_stabilization
protected

◆ mvelocity_toll

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
double Kratos::FracStepStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::mvelocity_toll
protected

The documentation for this class was generated from the following file: