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.
|
Convergence criteria for mixed vector-scalar problems. More...
#include <mixed_generic_criteria.h>
Public Member Functions | |
Life Cycle | |
MixedGenericCriteria () | |
Constructor. More... | |
MixedGenericCriteria (Kratos::Parameters ThisParameters) | |
Default constructor. (with parameters) More... | |
MixedGenericCriteria (const ConvergenceVariableListType &rConvergenceVariablesList) | |
Construct a new Mixed Generic Criteria object Construct the mixed generic convergence criteria from a convergence variables list. The convergence variable list contains for each variable the variable itself as well as the corresponding relative and absolute tolerances. More... | |
~MixedGenericCriteria () override | |
Destructor. 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::ConvergenceCriteria< TSparseSpace, TDenseSpace > | |
ConvergenceCriteria () | |
ConvergenceCriteria (Kratos::Parameters ThisParameters) | |
Constructor with Parameters. More... | |
ConvergenceCriteria (ConvergenceCriteria const &rOther) | |
virtual | ~ConvergenceCriteria () |
KRATOS_CLASS_POINTER_DEFINITION (ConvergenceCriteria) | |
Pointer definition of ConvergenceCriteria. More... | |
virtual std::vector< TSystemVectorType > & | GetRHS_Element_Components () |
Get component wise element components. More... | |
virtual std::vector< Variable< LocalSystemVectorType > > & | GetRHS_Element_Variables () |
Get component wise element variables. More... | |
virtual std::vector< TSystemVectorType > & | GetRHS_Condition_Components () |
Get component wise condition components. More... | |
virtual std::vector< Variable< LocalSystemVectorType > > & | GetRHS_Condition_Variables () |
Get component wise condition variables. More... | |
virtual void | SetEchoLevel (int Level) |
It sets the level of echo for the solving strategy. More... | |
int | GetEchoLevel () |
This returns the level of echo for the solving strategy. More... | |
void | SetActualizeRHSFlag (bool ActualizeRHSIsNeeded) |
This method sets the flag mActualizeRHSIsNeeded. More... | |
bool | GetActualizeRHSflag () |
This method gets the flag mActualizeRHSIsNeeded. More... | |
virtual bool | PreCriteria (ModelPart &rModelPart, DofsArrayType &rDofSet, const TSystemMatrixType &rA, const TSystemVectorType &rDx, const TSystemVectorType &rb) |
Criterias that need to be called before getting the solution. More... | |
virtual void | Initialize (ModelPart &rModelPart) |
This function initialize the convergence criteria. More... | |
virtual bool | IsInitialized () |
This function returns if the convergence criteria is initialized. More... | |
virtual void | InitializeSolutionStep (ModelPart &rModelPart, DofsArrayType &rDofSet, const TSystemMatrixType &rA, const TSystemVectorType &rDx, const TSystemVectorType &rb) |
This function initializes the solution step. More... | |
virtual void | InitializeNonLinearIteration (ModelPart &rModelPart, DofsArrayType &rDofSet, const TSystemMatrixType &rA, const TSystemVectorType &rDx, const TSystemVectorType &rb) |
This function initializes the non-linear iteration. More... | |
virtual void | FinalizeSolutionStep (ModelPart &rModelPart, DofsArrayType &rDofSet, const TSystemMatrixType &rA, const TSystemVectorType &rDx, const TSystemVectorType &rb) |
This function finalizes the solution step. More... | |
virtual void | FinalizeNonLinearIteration (ModelPart &rModelPart, DofsArrayType &rDofSet, const TSystemMatrixType &rA, const TSystemVectorType &rDx, const TSystemVectorType &rb) |
This function finalizes the non-linear iteration. More... | |
virtual int | Check (ModelPart &rModelPart) |
This function is designed to be called once to perform all the checks needed on the input provided. Checks can be "expensive" as the function is designed to catch user's errors. More... | |
virtual Parameters | GetDefaultParameters () const |
This method provides the defaults parameters to avoid conflicts between the different constructors. More... | |
Protected Member Functions | |
Protected Operations | |
int | GetVariableSize () const |
Get the Variable Size object Get the number of variables to be checked. More... | |
std::vector< const VariableData * > | GetVariableDataVector () const |
Get the Variable Data Vector object Get the member vector that stores pointers to the variables to check. More... | |
std::vector< TDataType > | GetRatioToleranceVector () const |
Get the Ratio Tolerance Vector object Get the member vector containing the ratio tolerances for each variable to check. More... | |
std::vector< TDataType > | GetAbsToleranceVector () const |
Get the Abs Tolerance Vector object Get the member vector containing the absolute tolerances for each variable to check. More... | |
std::unordered_map< KeyType, KeyType > & | GetLocalKeyMap () |
Get the Local Key Map object Returns a reference to the variable key local map. More... | |
std::tuple< std::vector< TDataType >, std::vector< TDataType > > | CalculateConvergenceNorms (const ModelPart &rModelPart, const DofsArrayType &rDofSet, const TSystemVectorType &rDx) |
Calculate the convergence norms This method calculates the convergence norms for all the variables to be checked. More... | |
virtual void | OutputConvergenceStatus (const std::tuple< std::vector< TDataType >, std::vector< TDataType >> &rConvergenceNorms) |
Method to output the convergence status This method prints the convergence status to the screen for each one of the checked variables. More... | |
bool | CheckConvergence (const std::tuple< std::vector< TDataType >, std::vector< TDataType >> &rConvergenceNorms) |
Method to check convergence This method checks the convergence of the provided norms with the user-defined tolerances. More... | |
bool | FindVarLocalKey (typename DofsArrayType::const_iterator itDof, int &rVarLocalKey) const |
Finds the var local key in the mLocalKeyMap for a gifen DOF. If the variable does not exist in mLocalKeyMap this function returns false. More... | |
Protected Member Functions inherited from Kratos::ConvergenceCriteria< 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 ConvergenceCriteria< TSparseSpace, TDenseSpace > | BaseType |
typedef MixedGenericCriteria< TSparseSpace, TDenseSpace > | ClassType |
typedef BaseType::TDataType | TDataType |
typedef BaseType::DofsArrayType | DofsArrayType |
typedef BaseType::TSystemMatrixType | TSystemMatrixType |
typedef BaseType::TSystemVectorType | TSystemVectorType |
typedef std::vector< std::tuple< const VariableData *, TDataType, TDataType > > | ConvergenceVariableListType |
typedef std::size_t | KeyType |
KRATOS_CLASS_POINTER_DEFINITION (MixedGenericCriteria) | |
Operations | |
BaseType::Pointer | Create (Parameters ThisParameters) const override |
Create method. More... | |
bool | PostCriteria (ModelPart &rModelPart, DofsArrayType &rDofSet, const TSystemMatrixType &A, const TSystemVectorType &Dx, const TSystemVectorType &b) override |
Compute relative and absolute error. 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::ConvergenceCriteria< TSparseSpace, TDenseSpace > | |
typedef ConvergenceCriteria< TSparseSpace, TDenseSpace > | ClassType |
The definition of the current class. More... | |
typedef TSparseSpace::DataType | TDataType |
Data type definition. More... | |
typedef TSparseSpace::MatrixType | TSystemMatrixType |
Matrix type definition. More... | |
typedef TSparseSpace::VectorType | TSystemVectorType |
Vector type definition. More... | |
typedef TDenseSpace::MatrixType | LocalSystemMatrixType |
Local system matrix type definition. More... | |
typedef TDenseSpace::VectorType | LocalSystemVectorType |
Local system vector type definition. More... | |
typedef ModelPart::DofsArrayType | DofsArrayType |
DoF array type definition. More... | |
Static Public Member Functions inherited from Kratos::ConvergenceCriteria< 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::ConvergenceCriteria< TSparseSpace, TDenseSpace > | |
bool | mActualizeRHSIsNeeded = false |
bool | mConvergenceCriteriaIsInitialized = false |
This "flag" is set in order to know if it is necessary to actualize the RHS. More... | |
int | mEchoLevel |
This "flag" is set in order to know if it is convergence criteria is initialized. More... | |
Convergence criteria for mixed vector-scalar problems.
This class implements a convergence control based on a nodal vector variable and a nodal scalar variable. The error is evaluated separately for each of them, and relative and absolute tolerances for both must be specified.
typedef ConvergenceCriteria< TSparseSpace, TDenseSpace > Kratos::MixedGenericCriteria< TSparseSpace, TDenseSpace >::BaseType |
typedef MixedGenericCriteria< TSparseSpace, TDenseSpace > Kratos::MixedGenericCriteria< TSparseSpace, TDenseSpace >::ClassType |
typedef std::vector<std::tuple<const VariableData*, TDataType, TDataType> > Kratos::MixedGenericCriteria< TSparseSpace, TDenseSpace >::ConvergenceVariableListType |
typedef BaseType::DofsArrayType Kratos::MixedGenericCriteria< TSparseSpace, TDenseSpace >::DofsArrayType |
typedef std::size_t Kratos::MixedGenericCriteria< TSparseSpace, TDenseSpace >::KeyType |
typedef BaseType::TDataType Kratos::MixedGenericCriteria< TSparseSpace, TDenseSpace >::TDataType |
typedef BaseType::TSystemMatrixType Kratos::MixedGenericCriteria< TSparseSpace, TDenseSpace >::TSystemMatrixType |
typedef BaseType::TSystemVectorType Kratos::MixedGenericCriteria< TSparseSpace, TDenseSpace >::TSystemVectorType |
|
inlineexplicit |
Constructor.
|
inlineexplicit |
Default constructor. (with parameters)
ThisParameters | The configuration parameters |
|
inline |
Construct a new Mixed Generic Criteria object Construct the mixed generic convergence criteria from a convergence variables list. The convergence variable list contains for each variable the variable itself as well as the corresponding relative and absolute tolerances.
rConvergenceVariablesList | List containing tuples with the convergence variables to be checked. The tuples are set as <Variable, relative tolerance, absolute tolerance> |
|
inlineoverride |
Destructor.
|
inlineprotected |
Calculate the convergence norms This method calculates the convergence norms for all the variables to be checked.
rModelPart | Reference to the ModelPart containing the fluid problem. |
rDofSet | Reference to the container of the problem's degrees of freedom (stored by the BuilderAndSolver) |
rDx | Vector of results (variations on nodal variables) |
|
inlineprotected |
Method to check convergence This method checks the convergence of the provided norms with the user-defined tolerances.
rConvergenceNorms | Tuple containing the absolute and relative convergence values |
|
inlineoverridevirtual |
Create method.
ThisParameters | The configuration parameters |
Reimplemented from Kratos::ConvergenceCriteria< TSparseSpace, TDenseSpace >.
|
inlineprotected |
Finds the var local key in the mLocalKeyMap for a gifen DOF. If the variable does not exist in mLocalKeyMap this function returns false.
itDof | the DOF iterator |
rVarLocalKey | variable local key |
|
inlineprotected |
Get the Abs Tolerance Vector object Get the member vector containing the absolute tolerances for each variable to check.
|
inlineprotected |
Get the Local Key Map object Returns a reference to the variable key local map.
|
inlineprotected |
Get the Ratio Tolerance Vector object Get the member vector containing the ratio tolerances for each variable to check.
|
inlineprotected |
Get the Variable Data Vector object Get the member vector that stores pointers to the variables to check.
|
inlineprotected |
Get the Variable Size object Get the number of variables to be checked.
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::ConvergenceCriteria< TSparseSpace, TDenseSpace >.
Kratos::MixedGenericCriteria< TSparseSpace, TDenseSpace >::KRATOS_CLASS_POINTER_DEFINITION | ( | MixedGenericCriteria< TSparseSpace, TDenseSpace > | ) |
|
inlinestatic |
Returns the name of the class as used in the settings (snake_case format)
|
inlineprotectedvirtual |
Method to output the convergence status This method prints the convergence status to the screen for each one of the checked variables.
rConvergenceNorms | Tuple containing the absolute and relative convergence values |
|
inlineoverridevirtual |
Compute relative and absolute error.
rModelPart | Reference to the ModelPart containing the fluid problem. |
rDofSet | Reference to the container of the problem's degrees of freedom (stored by the BuilderAndSolver) |
A | System matrix (unused) |
Dx | Vector of results (variations on nodal variables) |
b | RHS vector (residual) |
Reimplemented from Kratos::ConvergenceCriteria< TSparseSpace, TDenseSpace >.
Reimplemented in Kratos::TrilinosMixedGenericCriteria< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Print object's data.
Reimplemented from Kratos::ConvergenceCriteria< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::ConvergenceCriteria< TSparseSpace, TDenseSpace >.