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::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver > Class Template Reference

#include <v_p_strategy.h>

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

Public Member Functions

Life Cycle
 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...
 
virtual int Check () override
 Function to perform expensive checks. More...
 
virtual bool SolveSolutionStep () override
 Solves the current step. This function returns true if a solution has been found, false otherwise. More...
 
virtual void FinalizeSolutionStep () override
 Performs all the required operations that should be done (for each step) after solving the solution step. More...
 
virtual void InitializeSolutionStep () override
 Performs all the required operations that should be done (for each step) before solving the solution step. More...
 
void UpdateTopology (ModelPart &rModelPart, unsigned int echoLevel)
 
void SetBlockedAndIsolatedFlags ()
 
void CalculatePressureVelocity ()
 
void CalculatePressureAcceleration ()
 
virtual void CalculateTemporalVariables ()
 
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 ()
 
virtual void UpdateStressStrain ()
 
virtual void Clear () override
 Clears the internal storage. More...
 
Access
virtual 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::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...
 
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 Parameters GetDefaultParameters () const
 This method provides the defaults parameters to avoid conflicts between the different constructors. 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 Member Functions

Protected Operations
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)
 
Private Operations
virtual void InitializeStrategy (SolverSettingsType &rSolverConfig)
 
Un accessible methods
VPStrategyoperator= (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...
 

Type Definitions

typedef SolvingStrategy< TSparseSpace, TDenseSpace > BaseType
 
typedef TwoStepVPSolverSettings< TSparseSpace, TDenseSpace, TLinearSolver > SolverSettingsType
 
 KRATOS_CLASS_POINTER_DEFINITION (VPStrategy)
 

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...
 
- Protected Attributes inherited from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >
int mEchoLevel
 

Member Typedef Documentation

◆ BaseType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef SolvingStrategy<TSparseSpace, TDenseSpace> Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::BaseType

◆ SolverSettingsType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
typedef TwoStepVPSolverSettings<TSparseSpace, TDenseSpace, TLinearSolver> Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolverSettingsType

Constructor & Destructor Documentation

◆ VPStrategy() [1/3]

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::VPStrategy ( ModelPart rModelPart,
SolverSettingsType rSolverConfig 
)
inline

◆ VPStrategy() [2/3]

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::VPStrategy ( ModelPart rModelPart,
typename TLinearSolver::Pointer  pVelocityLinearSolver,
typename TLinearSolver::Pointer  pPressureLinearSolver,
bool  ReformDofSet = true,
unsigned int  DomainSize = 2 
)
inline

◆ ~VPStrategy()

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

Destructor.

◆ VPStrategy() [3/3]

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::VPStrategy ( VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver > const &  rOther)
inlineprotected

Copy constructor.

Member Function Documentation

◆ CalculateAccelerations()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::CalculateAccelerations ( )
inline

◆ CalculateDisplacementsAndPorosity()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::CalculateDisplacementsAndPorosity ( )
inlinevirtual

◆ CalculatePressureAcceleration()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::CalculatePressureAcceleration ( )
inline

◆ CalculatePressureVelocity()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::CalculatePressureVelocity ( )
inline

◆ CalculateTemporalVariables()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::CalculateTemporalVariables ( )
inlinevirtual

◆ Check()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual int Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Check ( )
inlineoverridevirtual

Function to perform expensive checks.

It is designed to be called ONCE to verify that the input is correct.

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

Reimplemented in Kratos::TwoStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::ThreeStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ CheckContinuityConvergence()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual bool Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::CheckContinuityConvergence ( const double  DvErrorNorm,
bool fixedTimeStep 
)
inlineprotectedvirtual

◆ CheckMomentumConvergence()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual bool Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::CheckMomentumConvergence ( const double  DvErrorNorm,
bool fixedTimeStep 
)
inlineprotectedvirtual

◆ CheckPressureConvergence()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual bool Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::CheckPressureConvergence ( const double  NormDp,
double errorNormDp,
double NormP 
)
inlineprotectedvirtual

◆ CheckVelocityConvergence()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual bool Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::CheckVelocityConvergence ( const double  NormDv,
double errorNormDv 
)
inlineprotectedvirtual

◆ Clear()

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

◆ ComputeErrorL2Norm()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::ComputeErrorL2Norm ( double  tensilStressSign)
inlineprotected

◆ ComputeErrorL2NormCasePoiseuille()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::ComputeErrorL2NormCasePoiseuille ( )
inlineprotected

◆ ComputePressureNorm()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
double Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::ComputePressureNorm ( )
inlineprotected

◆ ComputeVelocityNorm()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
double Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::ComputeVelocityNorm ( )
inlineprotected

◆ FinalizeSolutionStep()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::FinalizeSolutionStep ( )
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::TwoStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::ThreeStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ FixTimeStepContinuity()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual bool Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::FixTimeStepContinuity ( const double  DvErrorNorm,
bool fixedTimeStep 
)
inlineprotectedvirtual

◆ FixTimeStepMomentum()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual bool Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::FixTimeStepMomentum ( const double  DvErrorNorm,
bool fixedTimeStep 
)
inlineprotectedvirtual

◆ Info()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
std::string Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::Info ( ) const
inlineoverridevirtual

Turn back information as a string.

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

◆ InitializeSolutionStep()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::InitializeSolutionStep ( )
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::TwoStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::ThreeStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ InitializeStrategy()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::InitializeStrategy ( SolverSettingsType rSolverConfig)
inlineprotectedvirtual

◆ KRATOS_CLASS_POINTER_DEFINITION()

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

◆ operator=()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
VPStrategy& Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::operator= ( VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver > const &  rOther)
inlineprotected

Assignment operator.

◆ PrintData()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::PrintData ( std::ostream &  rOStream) const
inlineoverridevirtual

Print object's data.

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

◆ PrintInfo()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

Print information about this object.

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

◆ SetBlockedAndIsolatedFlags()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SetBlockedAndIsolatedFlags ( )
inline

◆ SetEchoLevel()

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

This sets the level of echo for the solving strategy.

Parameters
Levelof 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::SolvingStrategy< TSparseSpace, TDenseSpace >.

Reimplemented in Kratos::TwoStepVPThermalStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, Kratos::TwoStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >, and Kratos::ThreeStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ SolveContinuityIteration()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual bool Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolveContinuityIteration ( unsigned int  it,
unsigned int  maxIt,
double NormP 
)
inlineprotectedvirtual

◆ SolveMomentumIteration()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual bool Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolveMomentumIteration ( unsigned int  it,
unsigned int  maxIt,
bool fixedTimeStep,
double velocityNorm 
)
inlineprotectedvirtual

Calculate the coefficients for time iteration.

Parameters
rCurrentProcessInfoProcessInfo instance from the fluid ModelPart. Must contain DELTA_TIME variables.

Reimplemented in Kratos::TwoStepVPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ SolveSolutionStep()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual bool Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SolveSolutionStep ( )
inlineoverridevirtual

◆ UpdateAccelerations()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::UpdateAccelerations ( array_1d< double, 3 > &  CurrentAcceleration,
const array_1d< double, 3 > &  CurrentVelocity,
array_1d< double, 3 > &  PreviousAcceleration,
const array_1d< double, 3 > &  PreviousVelocity 
)
inline

◆ UpdateStressStrain()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::UpdateStressStrain ( )
inlinevirtual

◆ UpdateTopology()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::VPStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::UpdateTopology ( ModelPart rModelPart,
unsigned int  echoLevel 
)
inline

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