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.
|
Aitken convergence accelerator Aitken formula-based. More...
#include <aitken_convergence_accelerator.hpp>
Public Member Functions | |
Life Cycle | |
AitkenConvergenceAccelerator (Parameters rConvAcceleratorParameters) | |
AitkenConvergenceAccelerator (double rOmegaInitial=0.825) | |
AitkenConvergenceAccelerator (const AitkenConvergenceAccelerator &rOther) | |
virtual BaseTypePointer | Clone () |
virtual | ~AitkenConvergenceAccelerator () |
Operations | |
void | InitializeSolutionStep () override |
void | UpdateSolution (const VectorType &rResidualVector, VectorType &rIterationGuess) override |
void | FinalizeNonLinearIteration () override |
Public Member Functions inherited from Kratos::ConvergenceAccelerator< TSparseSpace, TDenseSpace > | |
ConvergenceAccelerator ()=default | |
ConvergenceAccelerator (Parameters ThisParameters) | |
ConvergenceAccelerator (const ConvergenceAccelerator &Other)=delete | |
virtual | ~ConvergenceAccelerator ()=default |
virtual void | Initialize () |
Initialize the convergence accelerator Operations that are required to be done once before the resolution of the problem. More... | |
virtual void | InitializeNonLinearIteration () |
Operations before each non-linear iteration Performs all the required operations that should be done before each non-linear iteration. More... | |
virtual void | FinalizeSolutionStep () |
Operations after solving the solution step Performs all the required operations that should be done (for each step) after solving the solution step. More... | |
virtual void | Finalize () |
Finalize the convergence accelerator Perform all the operations required after the resolution of the problem. More... | |
virtual void | Clear () |
Clear the internal storage Clears all the internal data (e.g. previous observation matrices) More... | |
virtual void | SetEchoLevel (int Level) |
Set the Echo Level object Set the echo level of the convergence accelerator. More... | |
int | GetEchoLevel () |
Get the Echo Level object Get the echo level of the convergence accelerator. More... | |
virtual bool | IsBlockNewton () const |
Checks if the update direction is unique or double For the current convergence accelerator, this method returns information about the nature of the coupling If it is block Newton, the update is done in both directions. Otherwise, it is done in one direction. More... | |
KRATOS_CLASS_POINTER_DEFINITION (ConvergenceAccelerator) | |
Protected Attributes | |
Protected member Variables | |
unsigned int | mConvergenceAcceleratorIteration = 0 |
double | mOmega_0 |
double | mOmega_1 = 0.0 |
VectorPointerType | mpResidualVector_0 = nullptr |
VectorPointerType | mpResidualVector_1 = nullptr |
Protected Attributes inherited from Kratos::ConvergenceAccelerator< TSparseSpace, TDenseSpace > | |
int | mEchoLevel |
Type Definitions | |
typedef ConvergenceAccelerator< TSparseSpace, TDenseSpace > | BaseType |
typedef BaseType::Pointer | BaseTypePointer |
typedef BaseType::VectorType | VectorType |
typedef BaseType::VectorPointerType | VectorPointerType |
KRATOS_CLASS_POINTER_DEFINITION (AitkenConvergenceAccelerator) | |
Additional Inherited Members | |
Public Types inherited from Kratos::ConvergenceAccelerator< TSparseSpace, TDenseSpace > | |
typedef TSparseSpace::VectorType | VectorType |
typedef TSparseSpace::MatrixType | MatrixType |
typedef TSparseSpace::VectorPointerType | VectorPointerType |
typedef TSparseSpace::MatrixPointerType | MatrixPointerType |
typedef TDenseSpace::VectorType | DenseVectorType |
typedef TDenseSpace::MatrixType | DenseMatrixType |
typedef TDenseSpace::MatrixPointerType | DenseMatrixPointerType |
typedef TDenseSpace::VectorPointerType | DenseVectorPointerType |
Protected Member Functions inherited from Kratos::ConvergenceAccelerator< TSparseSpace, TDenseSpace > | |
virtual void | ComputeJacobianApproximation () |
virtual DenseMatrixPointerType | pGetInverseJacobianApproximation () |
virtual std::size_t | GetProblemSize () const |
Aitken convergence accelerator Aitken formula-based.
TSparseSpace | Linear algebra sparse space |
TDenseSpace | Linear algebra dense space |
typedef ConvergenceAccelerator<TSparseSpace, TDenseSpace> Kratos::AitkenConvergenceAccelerator< TSparseSpace, TDenseSpace >::BaseType |
typedef BaseType::Pointer Kratos::AitkenConvergenceAccelerator< TSparseSpace, TDenseSpace >::BaseTypePointer |
typedef BaseType::VectorPointerType Kratos::AitkenConvergenceAccelerator< TSparseSpace, TDenseSpace >::VectorPointerType |
typedef BaseType::VectorType Kratos::AitkenConvergenceAccelerator< TSparseSpace, TDenseSpace >::VectorType |
|
inlineexplicit |
Constructor. Aitken convergence accelerator
|
inline |
|
inline |
Copy Constructor.
|
inlinevirtual |
Destructor.
|
inlinevirtual |
Clone
|
inlineoverridevirtual |
Updates the Aitken iteration values for the next non-linear iteration
Reimplemented from Kratos::ConvergenceAccelerator< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Initialize the internal iteration counter
Reimplemented from Kratos::ConvergenceAccelerator< TSparseSpace, TDenseSpace >.
Kratos::AitkenConvergenceAccelerator< TSparseSpace, TDenseSpace >::KRATOS_CLASS_POINTER_DEFINITION | ( | AitkenConvergenceAccelerator< TSparseSpace, TDenseSpace > | ) |
|
inlineoverridevirtual |
Performs the solution update The correction is done as u_i+1 = u_i + w_i+1*r_i+1 where w_i+1 is de relaxation parameter computed using the Aitken's formula.
rResidualVector | Residual vector from the residual evaluation |
rIterationGuess | Current iteration guess |
Reimplemented from Kratos::ConvergenceAccelerator< TSparseSpace, TDenseSpace >.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |