![]() |
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 Newton Raphson strategy. More...
#include <newton_raphson_strategy.hpp>
Public Member Functions | |
Life Cycle | |
| NewtonRaphsonStrategy (ModelPart &rModelPart, typename SchemeType::Pointer pScheme, typename BuilderAndSolverType::Pointer pBuilderAndSolver, typename ConvergenceCriterionType::Pointer pConvergenceCriterion, Flags &rOptions, unsigned int MaxIterations=30) | |
| NewtonRaphsonStrategy (ModelPart &rModelPart, typename SchemeType::Pointer pScheme, typename LinearSolverType::Pointer pLinearSolver, typename ConvergenceCriterionType::Pointer pConvergenceCriterion, Flags &rOptions, unsigned int MaxIterations=30) | |
| ~NewtonRaphsonStrategy () override | |
| Destructor. More... | |
Operations | |
| 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... | |
| bool | SolveIteration () override |
| Solves the iteration. This function returns true if a solution has been found, false otherwise. More... | |
| void | Clear () override |
| Clears the internal storage. More... | |
| int | Check () override |
| Function to perform expensive checks. More... | |
Access | |
| void | SetEchoLevel (const int Level) override |
| This sets the level of echo for the solving strategy. More... | |
| void | SetMaxIterationNumber (unsigned int MaxIterationNumber) |
| This method sets the flag mMaxIterationNumber. More... | |
| unsigned int | GetMaxIterationNumber () override |
| This method gets the flag mMaxIterationNumber. More... | |
Public Member Functions inherited from Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | |
| LinearStrategy (ModelPart &rModelPart, typename SchemeType::Pointer pScheme, typename BuilderAndSolverType::Pointer pBuilderAndSolver, Flags &rOptions) | |
| LinearStrategy (ModelPart &rModelPart, typename SchemeType::Pointer pScheme, typename LinearSolverType::Pointer pLinearSolver, Flags &rOptions) | |
| ~LinearStrategy () override | |
| Destructor. More... | |
| void | SetScheme (typename SchemeType::Pointer pScheme) |
| Set method for the time scheme. More... | |
| SchemeType::Pointer | GetScheme () |
| Get method for the time scheme. More... | |
| void | SetBuilderAndSolver (typename BuilderAndSolverType::Pointer pBuilderAndSolver) |
| Set method for the builder and solver. More... | |
| BuilderAndSolverType::Pointer | GetBuilderAndSolver () |
| Get method for the builder and solver. More... | |
| SystemMatrixType & | GetSystemMatrix () |
| This method returns the LHS matrix. More... | |
| void | GetDirectSystemMatrix (SystemMatrixType &A) |
| This method directly sets the input as the LHS. More... | |
| KRATOS_CLASS_POINTER_DEFINITION (LinearStrategy) | |
Public Member Functions inherited from Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | |
| SolutionStrategy (ModelPart &rModelPart) | |
| Constructor. More... | |
| SolutionStrategy (ModelPart &rModelPart, Flags &rOptions) | |
| Constructor. More... | |
| ~SolutionStrategy () override | |
| Destructor. More... | |
| virtual bool | Solve () |
| The problem of interest is solved. More... | |
| virtual int | GetEchoLevel () |
| This returns the level of echo for the solution strategy. More... | |
| void | SetOptions (Flags &rOptions) |
| Sets strategy options. More... | |
| Flags & | GetOptions () |
| Get strategy options. More... | |
| ModelPart & | GetModelPart () |
| Operations to get the pointer to the model. More... | |
| KRATOS_CLASS_POINTER_DEFINITION (SolutionStrategy) | |
| Pointer definition of SolutionStrategy. More... | |
Public Member Functions inherited from Kratos::Flags | |
| Flags & | operator= (Flags const &rOther) |
| Assignment operator. More... | |
| operator bool () const | |
| Flags | operator~ () const |
| bool | operator! () const |
| void | AssignFlags (Flags const &rOther) |
| void | Set (const Flags ThisFlag) |
| void | Set (const Flags ThisFlag, bool Value) |
| void | Reset (const Flags ThisFlag) |
| void | Flip (const Flags ThisFlag) |
| void | SetPosition (IndexType Position, bool Value=true) |
| bool | GetPosition (IndexType Position) const |
| void | FlipPosition (IndexType Position) |
| void | ClearPosition (IndexType Position) |
| void | Clear () |
| Flags | AsFalse () const |
| bool | Is (Flags const &rOther) const |
| bool | IsDefined (Flags const &rOther) const |
| bool | IsNot (Flags const &rOther) const |
| bool | IsNotDefined (Flags const &rOther) const |
| virtual std::string | Info () const |
| Turn back information as a string. More... | |
| 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 (Flags) | |
| Pointer definition of Flags. More... | |
| const Flags & | operator|= (const Flags &Other) |
| const Flags & | operator&= (const Flags &Other) |
| Flags () | |
| Default constructor. More... | |
| Flags (Flags const &rOther) | |
| Copy constructor. More... | |
| virtual | ~Flags () |
| Destructor. More... | |
Protected Member Functions | |
Protected Operations | |
| void | Initialize () override |
| Initialization of member variables and prior operations. More... | |
Protected Member Functions inherited from Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | |
| 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 | Update () override |
| Here the database is updated. More... | |
| void | SetSystemDofs () |
| Performs all the required operations to reform dofs. More... | |
Protected Member Functions inherited from Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | |
| virtual void | Finalize () |
| Finalization of member variables and prior operations. More... | |
Protected Attributes | |
Protected member Variables | |
| ConvergenceCriterionType::Pointer | mpConvergenceCriteria |
| unsigned int | mMaxIterationNumber |
| The pointer to the convergence criteria employed. More... | |
Protected Attributes inherited from Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | |
| SchemeType::Pointer | mpScheme |
| BuilderAndSolverType::Pointer | mpBuilderAndSolver |
| The pointer to the time scheme employed. More... | |
| SystemVectorPointerType | mpDx |
| The pointer to the builder and solver employed. More... | |
| SystemVectorPointerType | mpb |
| The incremement in the solution. More... | |
| SystemMatrixPointerType | mpA |
| The RHS vector of the system of equations. More... | |
Protected Attributes inherited from Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | |
| Flags | mOptions |
| int | mEchoLevel |
Type Definitions | |
| typedef LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | BaseType |
| typedef BaseType::LocalFlagType | LocalFlagType |
| typedef ConvergenceCriterion< TSparseSpace, TDenseSpace > | ConvergenceCriterionType |
| typedef BaseType::BuilderAndSolverType | BuilderAndSolverType |
| typedef BaseType::SchemeType | SchemeType |
| typedef TLinearSolver | LinearSolverType |
| typedef TSparseSpace | SparseSpaceType |
| typedef BaseType::DofsArrayType | DofsArrayType |
| typedef BaseType::SystemMatrixType | SystemMatrixType |
| typedef BaseType::SystemVectorType | SystemVectorType |
| typedef BaseType::SystemMatrixPointerType | SystemMatrixPointerType |
| typedef BaseType::SystemVectorPointerType | SystemVectorPointerType |
| KRATOS_CLASS_POINTER_DEFINITION (NewtonRaphsonStrategy) | |
Additional Inherited Members | |
Public Types inherited from Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | |
| typedef SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | BaseType |
| typedef BaseType::LocalFlagType | LocalFlagType |
| typedef BaseType::BuilderAndSolverType | BuilderAndSolverType |
| typedef BaseType::SchemeType | SchemeType |
| typedef TLinearSolver | LinearSolverType |
| typedef TSparseSpace | SparseSpaceType |
| typedef BaseType::DofsArrayType | DofsArrayType |
| typedef BaseType::SystemMatrixType | SystemMatrixType |
| typedef BaseType::SystemVectorType | SystemVectorType |
| typedef BaseType::SystemMatrixPointerType | SystemMatrixPointerType |
| typedef BaseType::SystemVectorPointerType | SystemVectorPointerType |
Public Types inherited from Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | |
| typedef SolverLocalFlags | LocalFlagType |
| typedef ModelPart::DofsArrayType | DofsArrayType |
| typedef TSparseSpace::MatrixType | SystemMatrixType |
| typedef TSparseSpace::VectorType | SystemVectorType |
| typedef TSparseSpace::MatrixPointerType | SystemMatrixPointerType |
| typedef TSparseSpace::VectorPointerType | SystemVectorPointerType |
| typedef SolutionScheme< TSparseSpace, TDenseSpace > | SchemeType |
| typedef SolutionBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver > | BuilderAndSolverType |
Public Types inherited from Kratos::Flags | |
| enum | FlagsList { Flag0 = BlockType(1) , Flag1 = BlockType(1) << 1 , Flag2 = BlockType(1) << 2 , Flag3 = BlockType(1) << 3 , Flag4 = BlockType(1) << 4 , Flag5 = BlockType(1) << 5 , Flag6 = BlockType(1) << 6 , Flag7 = BlockType(1) << 7 , Flag8 = BlockType(1) << 8 , Flag9 = BlockType(1) << 9 , Flag10 = BlockType(1) << 10 , Flag11 = BlockType(1) << 11 , Flag12 = BlockType(1) << 12 , Flag13 = BlockType(1) << 13 , Flag14 = BlockType(1) << 14 , Flag15 = BlockType(1) << 15 , Flag16 = BlockType(1) << 16 , Flag17 = BlockType(1) << 17 , Flag18 = BlockType(1) << 18 , Flag19 = BlockType(1) << 19 , Flag20 = BlockType(1) << 20 , Flag21 = BlockType(1) << 21 , Flag22 = BlockType(1) << 22 , Flag23 = BlockType(1) << 23 , Flag24 = BlockType(1) << 24 , Flag25 = BlockType(1) << 25 , Flag26 = BlockType(1) << 26 , Flag27 = BlockType(1) << 27 , Flag28 = BlockType(1) << 28 , Flag29 = BlockType(1) << 29 , Flag30 = BlockType(1) << 30 } |
| typedef int64_t | BlockType |
| typedef int64_t | FlagType |
| typedef std::size_t | IndexType |
Static Public Member Functions inherited from Kratos::Flags | |
| static const Flags | AllDefined () |
| static const Flags | AllTrue () |
| static Flags | Create (IndexType ThisPosition, bool Value=true) |
This is the base Newton Raphson strategy.
This strategy iterates until the convergence is achieved (or the maximum number of iterations is surpassed) using a Newton Raphson algorithm
| typedef LinearStrategy<TSparseSpace, TDenseSpace, TLinearSolver> Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::BaseType |
| typedef BaseType::BuilderAndSolverType Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::BuilderAndSolverType |
| typedef ConvergenceCriterion<TSparseSpace, TDenseSpace> Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::ConvergenceCriterionType |
| typedef BaseType::DofsArrayType Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::DofsArrayType |
| typedef TLinearSolver Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::LinearSolverType |
| typedef BaseType::LocalFlagType Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::LocalFlagType |
| typedef BaseType::SchemeType Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SchemeType |
| typedef TSparseSpace Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SparseSpaceType |
| typedef BaseType::SystemMatrixPointerType Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SystemMatrixPointerType |
| typedef BaseType::SystemMatrixType Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SystemMatrixType |
| typedef BaseType::SystemVectorPointerType Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SystemVectorPointerType |
| typedef BaseType::SystemVectorType Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::SystemVectorType |
|
inline |
Default constructor
| rModelPart | The model part of the problem |
| pScheme | The integration scheme |
| pBuilderAndSolver | The builder and solver employed |
| pConvergenceCriteria | The convergence criteria employed |
| rOptions | The solution options |
| MaxIterations | The maximum number of non-linear iterations to be considered when solving the problem |
|
inline |
Default constructor
| rModelPart | The model part of the problem |
| pScheme | The integration scheme |
| pLinearSolver | The linear solver employed |
| pConvergenceCriteria | The convergence criteria employed |
| rOptions | The solution options |
| MaxIterations | The maximum number of non-linear iterations to be considered when solving the problem |
|
inlineoverride |
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().
|
inlineoverridevirtual |
Function to perform expensive checks.
It is designed to be called ONCE to verify that the input is correct.
Reimplemented from Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
Clears the internal storage.
Reimplemented from Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
Performs all the required operations that should be done (for each step) after solving the solution step.
Reimplemented from Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
This method gets the flag mMaxIterationNumber.
Reimplemented from Kratos::SolutionStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverrideprotectedvirtual |
Initialization of member variables and prior operations.
Reimplemented from Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
Performs all the required operations that should be done (for each step) before solving the solution step.
Reimplemented from Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
| Kratos::NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver >::KRATOS_CLASS_POINTER_DEFINITION | ( | NewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | ) |
|
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 informations 2 -> Printing linear solver data 3 -> Print of debug informations: Echo of stiffness matrix, Dx, b... }
Reimplemented from Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inline |
This method sets the flag mMaxIterationNumber.
| MaxIterationNumber | This is the maximum number of on linear iterations |
|
inlineoverridevirtual |
Solves the iteration. This function returns true if a solution has been found, false otherwise.
Reimplemented from Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
Solves the current step. This function returns true if a solution has been found, false otherwise.
Reimplemented from Kratos::LinearStrategy< TSparseSpace, TDenseSpace, TLinearSolver >.
|
protected |
The pointer to the convergence criteria employed.
|
protected |