![]() |
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.
|
This is the base ArcLengthStrategy. More...
#include <arc_length_strategy.h>
Public Member Functions | |
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... | |
![]() | |
TSystemMatrixType & | GetSystemMatrix () override |
This method returns the LHS matrix. More... | |
TSystemVectorType & | GetSystemVector () override |
This method returns the RHS vector. More... | |
TSystemVectorType & | GetSolutionVector () override |
This method returns the solution vector. More... | |
void | SetKeepSystemConstantDuringIterations (bool Value) |
Set method for the flag mKeepSystemConstantDuringIterations. More... | |
bool | GetKeepSystemConstantDuringIterations () |
Get method for the flag mKeepSystemConstantDuringIterations. More... | |
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 (ResidualBasedNewtonRaphsonStrategy) | |
ResidualBasedNewtonRaphsonStrategy () | |
Default constructor. More... | |
ResidualBasedNewtonRaphsonStrategy (ModelPart &rModelPart) | |
Default constructor. (with parameters) More... | |
ResidualBasedNewtonRaphsonStrategy (ModelPart &rModelPart, Parameters ThisParameters) | |
Default constructor. (with parameters) More... | |
ResidualBasedNewtonRaphsonStrategy (ModelPart &rModelPart, typename TSchemeType::Pointer pScheme, typename TLinearSolver::Pointer pNewLinearSolver, typename TConvergenceCriteriaType::Pointer pNewConvergenceCriteria, int MaxIterations=30, bool CalculateReactions=false, bool ReformDofSetAtEachStep=false, bool MoveMeshFlag=false) | |
ResidualBasedNewtonRaphsonStrategy (ModelPart &rModelPart, typename TSchemeType::Pointer pScheme, typename TConvergenceCriteriaType::Pointer pNewConvergenceCriteria, typename TBuilderAndSolverType::Pointer pNewBuilderAndSolver, int MaxIterations=30, bool CalculateReactions=false, bool ReformDofSetAtEachStep=false, bool MoveMeshFlag=false) | |
Constructor specifying the builder and solver. More... | |
ResidualBasedNewtonRaphsonStrategy (ModelPart &rModelPart, typename TSchemeType::Pointer pScheme, typename TLinearSolver::Pointer pNewLinearSolver, typename TConvergenceCriteriaType::Pointer pNewConvergenceCriteria, typename TBuilderAndSolverType::Pointer pNewBuilderAndSolver, int MaxIterations=30, bool CalculateReactions=false, bool ReformDofSetAtEachStep=false, bool MoveMeshFlag=false) | |
Constructor specifying the builder and solver. More... | |
ResidualBasedNewtonRaphsonStrategy (ModelPart &rModelPart, typename TSchemeType::Pointer pScheme, typename TLinearSolver::Pointer pNewLinearSolver, typename TConvergenceCriteriaType::Pointer pNewConvergenceCriteria, Parameters Settings) | |
ResidualBasedNewtonRaphsonStrategy (ModelPart &rModelPart, typename TSchemeType::Pointer pScheme, typename TConvergenceCriteriaType::Pointer pNewConvergenceCriteria, typename TBuilderAndSolverType::Pointer pNewBuilderAndSolver, Parameters Settings) | |
Constructor specifying the builder and solver and using Parameters. More... | |
ResidualBasedNewtonRaphsonStrategy (ModelPart &rModelPart, typename TSchemeType::Pointer pScheme, typename TLinearSolver::Pointer pNewLinearSolver, typename TConvergenceCriteriaType::Pointer pNewConvergenceCriteria, typename TBuilderAndSolverType::Pointer pNewBuilderAndSolver, Parameters Settings) | |
Constructor specifying the builder and solver and using Parameters. More... | |
~ResidualBasedNewtonRaphsonStrategy () override | |
Destructor. More... | |
void | SetScheme (typename TSchemeType::Pointer pScheme) |
Set method for the time scheme. More... | |
TSchemeType::Pointer | GetScheme () |
Get method for the time scheme. More... | |
void | SetBuilderAndSolver (typename TBuilderAndSolverType::Pointer pNewBuilderAndSolver) |
Set method for the builder and solver. More... | |
TBuilderAndSolverType::Pointer | GetBuilderAndSolver () |
Get method for the builder and solver. More... | |
void | SetInitializePerformedFlag (bool InitializePerformedFlag=true) |
This method sets the flag mInitializeWasPerformed. More... | |
bool | GetInitializePerformedFlag () |
This method gets the flag mInitializeWasPerformed. More... | |
void | SetCalculateReactionsFlag (bool CalculateReactionsFlag) |
This method sets the flag mCalculateReactionsFlag. More... | |
bool | GetCalculateReactionsFlag () |
This method returns the flag mCalculateReactionsFlag. More... | |
void | SetUseOldStiffnessInFirstIterationFlag (bool UseOldStiffnessInFirstIterationFlag) |
This method sets the flag mFullUpdateFlag. More... | |
bool | GetUseOldStiffnessInFirstIterationFlag () |
This method returns the flag mFullUpdateFlag. More... | |
void | SetReformDofSetAtEachStepFlag (bool Flag) |
This method sets the flag mReformDofSetAtEachStep. More... | |
bool | GetReformDofSetAtEachStepFlag () |
This method returns the flag mReformDofSetAtEachStep. More... | |
void | SetMaxIterationNumber (unsigned int MaxIterationNumber) |
This method sets the flag mMaxIterationNumber. More... | |
unsigned int | GetMaxIterationNumber () |
This method gets the flag mMaxIterationNumber. More... | |
void | SetEchoLevel (int Level) override |
It sets the level of echo for the solving strategy. More... | |
SolvingStrategyType::Pointer | Create (ModelPart &rModelPart, Parameters ThisParameters) const override |
Create method. More... | |
void | Predict () override |
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... | |
void | Initialize () override |
Initialization of member variables and prior operations. More... | |
void | Clear () override |
Clears the internal storage. More... | |
bool | IsConverged () override |
This should be considered as a "post solution" convergence check which is useful for coupled analysis - the convergence criteria used is the one used inside the "solve" step. More... | |
void | CalculateOutputData () override |
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... | |
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. This function returns true if a solution has been found, false otherwise. More... | |
int | Check () override |
Function to perform expensive checks. More... | |
Parameters | GetDefaultParameters () const override |
This method provides the defaults parameters to avoid conflicts between the different constructors. More... | |
![]() | |
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 () |
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... | |
KRATOS_CLASS_POINTER_DEFINITION (ImplicitSolvingStrategy) | |
![]() | |
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 double | Solve () |
The problem of interest is solved. 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 double | GetResidualNorm () |
Operations to get the residual norm. More... | |
Protected Member Functions | |
Private Operators | |
void | UpdateDatabase (TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb, const bool MoveMesh) override |
Here the database is updated. More... | |
void | MaxIterationsExceeded () override |
This method prints information after reach the max number of iterations. More... | |
Un accessible methods | |
ArcLengthStrategy (const ArcLengthStrategy &Other) | |
![]() | |
virtual void | UpdateDatabase (TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb, const bool MoveMesh) |
Here the database is updated. More... | |
virtual void | EchoInfo (const unsigned int IterationNumber) |
This method returns the components of the system of equations depending of the echo level. More... | |
void | AssignSettings (const Parameters ThisParameters) override |
This method assigns settings to member variables. More... | |
void | WriteDofInfo (std::string FileName, const TSystemVectorType &rDX) |
ResidualBasedNewtonRaphsonStrategy (const ResidualBasedNewtonRaphsonStrategy &Other) | |
Protected Operations | |
![]() | |
virtual Parameters | ValidateAndAssignParameters (Parameters ThisParameters, const Parameters DefaultParameters) const |
This method validate and assign default parameters. More... | |
Protected Attributes | |
Member Variables | |
TSystemVectorPointerType | mpf |
TSystemVectorPointerType | mpDxf |
Vector of reference external forces. More... | |
TSystemVectorPointerType | mpDxb |
Delta x of A*Dxf=f. More... | |
TSystemVectorPointerType | mpDxPred |
Delta x of A*Dxb=b. More... | |
TSystemVectorPointerType | mpDxStep |
Delta x of prediction phase. More... | |
unsigned int | mDesiredIterations |
Delta x of the current step. More... | |
bool | mInitializeArcLengthWasPerformed |
This is used to calculate the radius of the next step. More... | |
bool | mInsideIterationLoop |
double | mMaxRadiusFactor |
double | mMinRadiusFactor |
double | mRadius |
Used to limit the radius of the arc length strategy. More... | |
double | mRadius_0 |
double | mLambda |
Radius of the arc length strategy. More... | |
double | mLambda_old |
double | mNormxEquilibrium |
current and old loading factor More... | |
double | mDLambdaStep |
Norm of the solution vector in equilibrium. More... | |
std::vector< ModelPart * > | mSubModelPartList |
Delta lambda of the current step. More... | |
std::vector< std::string > | mVariableNames |
List of SubModelParts associated to an external load. More... | |
![]() | |
TSchemeType::Pointer | mpScheme = nullptr |
TBuilderAndSolverType::Pointer | mpBuilderAndSolver = nullptr |
The pointer to the time scheme employed. More... | |
TConvergenceCriteriaType::Pointer | mpConvergenceCriteria = nullptr |
The pointer to the builder and solver employed. More... | |
TSystemVectorPointerType | mpDx |
The pointer to the convergence criteria employed. More... | |
TSystemVectorPointerType | mpb |
The increment in the solution. More... | |
TSystemMatrixPointerType | mpA |
The RHS vector of the system of equations. More... | |
bool | mReformDofSetAtEachStep |
The LHS matrix of the system of equations. More... | |
bool | mCalculateReactionsFlag |
Flag telling if it is needed or not to compute the reactions. More... | |
bool | mUseOldStiffnessInFirstIteration = false |
Flag telling if a full update of the database will be performed at the first iteration. More... | |
unsigned int | mMaxIterationNumber |
bool | mInitializeWasPerformed |
The maximum number of iterations, 30 by default. More... | |
bool | mKeepSystemConstantDuringIterations |
Flag to set as initialized the strategy. More... | |
![]() | |
int | mRebuildLevel |
bool | mStiffnessMatrixIsBuilt |
The current rebuild level. More... | |
![]() | |
int | mEchoLevel |
Type Definitions | |
typedef ResidualBasedNewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | BaseType |
typedef BaseType::TBuilderAndSolverType | TBuilderAndSolverType |
typedef BaseType::TDataType | TDataType |
typedef TSparseSpace | SparseSpaceType |
typedef BaseType::TSchemeType | TSchemeType |
typedef BaseType::TConvergenceCriteriaType | TConvergenceCriteriaType |
typedef BaseType::DofsArrayType | DofsArrayType |
typedef BaseType::TSystemMatrixType | TSystemMatrixType |
typedef BaseType::TSystemVectorType | TSystemVectorType |
typedef BaseType::LocalSystemVectorType | LocalSystemVectorType |
typedef BaseType::LocalSystemMatrixType | LocalSystemMatrixType |
typedef BaseType::TSystemMatrixPointerType | TSystemMatrixPointerType |
typedef BaseType::TSystemVectorPointerType | TSystemVectorPointerType |
KRATOS_CLASS_POINTER_DEFINITION (ArcLengthStrategy) | |
Life Cycle | |
ArcLengthStrategy (ModelPart &model_part, typename TSchemeType::Pointer pScheme, typename TConvergenceCriteriaType::Pointer pNewConvergenceCriteria, typename TBuilderAndSolverType::Pointer pNewBuilderAndSolver, Parameters ThisParameters) | |
~ArcLengthStrategy () override=default | |
Destructor. More... | |
void | AssignSettings (const Parameters ThisParameters) override |
This method assigns settings to member variables. More... | |
void | Initialize () override |
Initialization of member variables and prior operations. More... | |
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. This function returns true if a solution has been found, false otherwise. More... | |
void | UpdateExternalLoads () |
This method updates the value of the external load according to the new load factor Lambda. More... | |
Parameters | GetDefaultParameters () const override |
This method provides the defaults parameters to avoid conflicts between the different constructors. More... | |
void | InitializeSystemVector (TSystemVectorPointerType &pv) |
It resizes and initializes a system vector. More... | |
void | SaveInitializeSystemVector (TSystemVectorPointerType &pv) |
It saves system vector pointer. More... | |
static std::string | Name () |
Returns the name of the class as used in the settings (snake_case format) More... | |
This is the base ArcLengthStrategy.
The theoretical details can be found in "Geometrical interpretation of the ARC-LENGTH method", M. Fafard and B. Massicotte, Computers and Structures Vol 46 pp 603-615 (1993). (Ramm arc-length method)
typedef ResidualBasedNewtonRaphsonStrategy<TSparseSpace, TDenseSpace, TLinearSolver> Kratos::ArcLengthStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::BaseType |
typedef BaseType::DofsArrayType Kratos::ArcLengthStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::DofsArrayType |
typedef BaseType::LocalSystemMatrixType Kratos::ArcLengthStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::LocalSystemMatrixType |
typedef BaseType::LocalSystemVectorType Kratos::ArcLengthStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::LocalSystemVectorType |
typedef TSparseSpace Kratos::ArcLengthStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SparseSpaceType |
typedef BaseType::TBuilderAndSolverType Kratos::ArcLengthStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TBuilderAndSolverType |
typedef BaseType::TConvergenceCriteriaType Kratos::ArcLengthStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TConvergenceCriteriaType |
typedef BaseType::TDataType Kratos::ArcLengthStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TDataType |
typedef BaseType::TSchemeType Kratos::ArcLengthStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TSchemeType |
typedef BaseType::TSystemMatrixPointerType Kratos::ArcLengthStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TSystemMatrixPointerType |
typedef BaseType::TSystemMatrixType Kratos::ArcLengthStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TSystemMatrixType |
typedef BaseType::TSystemVectorPointerType Kratos::ArcLengthStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TSystemVectorPointerType |
typedef BaseType::TSystemVectorType Kratos::ArcLengthStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::TSystemVectorType |
|
inline |
|
overridedefault |
Destructor.
In trilinos third party library, the linear solver's preconditioner should be freed before the system matrix. We control the deallocation order with Clear().
|
inlineprotected |
Copy constructor.
|
inlineoverridevirtual |
This method assigns settings to member variables.
ThisParameters | Parameters that are assigned to the member variables |
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Clears the internal storage.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
|
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 >.
|
inlineoverridevirtual |
This method provides the defaults parameters to avoid conflicts between the different constructors.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Initialization of member variables and prior operations.
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::SolvingStrategy< TSparseSpace, TDenseSpace >.
|
inline |
It resizes and initializes a system vector.
Kratos::ArcLengthStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::KRATOS_CLASS_POINTER_DEFINITION | ( | ArcLengthStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | ) |
|
inlineoverrideprotectedvirtual |
This method prints information after reach the max number of iterations.
Reimplemented from Kratos::ResidualBasedNewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlinestatic |
Returns the name of the class as used in the settings (snake_case format)
|
inlineoverridevirtual |
Print object's data.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
|
inline |
It saves system vector pointer.
|
inlineoverridevirtual |
Solves the current step. This function returns true if a solution has been found, false otherwise.
Reimplemented from Kratos::SolvingStrategy< TSparseSpace, TDenseSpace >.
|
inlineoverrideprotected |
Here the database is updated.
A | The LHS matrix of the system of equations |
Dx | The incremement in the solution |
b | The RHS vector of the system of equations |
MoveMesh | The flag that allows to move the mesh |
|
inline |
This method updates the value of the external load according to the new load factor Lambda.
|
protected |
Delta x of the current step.
|
protected |
Norm of the solution vector in equilibrium.
|
protected |
This is used to calculate the radius of the next step.
|
protected |
|
protected |
Radius of the arc length strategy.
|
protected |
|
protected |
|
protected |
|
protected |
current and old loading factor
|
protected |
Delta x of A*Dxf=f.
|
protected |
Vector of reference external forces.
|
protected |
Delta x of A*Dxb=b.
|
protected |
Delta x of prediction phase.
|
protected |
|
protected |
Used to limit the radius of the arc length strategy.
|
protected |
|
protected |
Delta lambda of the current step.
|
protected |
List of SubModelParts associated to an external load.