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.
|
Predictor-corrector semi imlicit scheme for the Boussinesq element. More...
#include <residual_based_adams_moulton_scheme.h>
Public Types | |
Type Definitions | |
typedef Scheme< TSparseSpace, TDenseSpace > | BaseType |
typedef BaseType::DofsArrayType | DofsArrayType |
typedef BaseType::TSystemMatrixType | TSystemMatrixType |
typedef BaseType::TSystemVectorType | TSystemVectorType |
typedef BaseType::LocalSystemVectorType | LocalSystemVectorType |
typedef BaseType::LocalSystemMatrixType | LocalSystemMatrixType |
typedef ModelPart::NodeType | NodeType |
Public Types inherited from Kratos::Scheme< TSparseSpace, TDenseSpace > | |
using | ClassType = Scheme< TSparseSpace, TDenseSpace > |
The definition of the current class. More... | |
using | TDataType = typename TSparseSpace::DataType |
Data type definition. More... | |
using | TSystemMatrixType = typename TSparseSpace::MatrixType |
Matrix type definition. More... | |
using | TSystemVectorType = typename TSparseSpace::VectorType |
Vector type definition. More... | |
using | LocalSystemMatrixType = typename TDenseSpace::MatrixType |
Local system matrix type definition. More... | |
using | LocalSystemVectorType = typename TDenseSpace::VectorType |
Local system vector type definition. More... | |
using | TDofType = Dof< double > |
DoF type definition. More... | |
using | DofsArrayType = ModelPart::DofsArrayType |
DoF array type definition. More... | |
using | ElementsArrayType = ModelPart::ElementsContainerType |
Elements containers definition. More... | |
using | ConditionsArrayType = ModelPart::ConditionsContainerType |
Conditions containers definition. More... | |
Public Member Functions | |
Pointer definition | |
KRATOS_CLASS_POINTER_DEFINITION (ResidualBasedAdamsMoultonScheme) | |
Life Cycle | |
ResidualBasedAdamsMoultonScheme () | |
Constructor. More... | |
ResidualBasedAdamsMoultonScheme (Parameters ThisParameters) | |
Constructor. More... | |
ResidualBasedAdamsMoultonScheme (ResidualBasedAdamsMoultonScheme &rOther) | |
Copy Constructor. More... | |
BaseType::Pointer | Clone () override |
Clone. More... | |
~ResidualBasedAdamsMoultonScheme () override | |
Destructor. More... | |
Operations | |
void | Initialize (ModelPart &rModelPart) override |
Initialize the nodal area and the derivatives recovery. More... | |
void | Predict (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override |
Perform the prediction using the explicit Adams-Bashforth scheme. More... | |
void | InitializeSolutionStep (ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override |
It initializes time step solution. Only for reasons if the time step solution is restarted. More... | |
void | InitializeNonLinIteration (ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override |
Calculate the global projection of the auxiliary fields. More... | |
void | Update (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override |
Performing the update of the solution. More... | |
void | CalculateSystemContributions (Element &rCurrentElement, LocalSystemMatrixType &rLHSContribution, LocalSystemVectorType &rRHSContribution, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override |
This function is designed to be called in the builder and solver to introduce the selected time integration scheme. More... | |
void | CalculateRHSContribution (Element &rCurrentElement, LocalSystemVectorType &rRHSContribution, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override |
This function is designed to calculate just the RHS contribution. More... | |
void | CalculateSystemContributions (Condition &rCurrentCondition, LocalSystemMatrixType &rLHSContribution, LocalSystemVectorType &rRHSContribution, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override |
Functions totally analogous to the precedent but applied to the "condition" objects. More... | |
void | CalculateRHSContribution (Condition &rCurrentCondition, LocalSystemVectorType &rRHSContribution, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override |
Functions that calculates the RHS of a "condition" object. More... | |
void | Clear () override |
Free memory allocated by this class. More... | |
Access | |
Parameters | GetDefaultParameters () const override |
This method provides the defaults parameters to avoid conflicts between the different constructors. More... | |
Input and output | |
std::string | Info () const override |
Turn back information as a string. More... | |
Public Member Functions inherited from Kratos::Scheme< TSparseSpace, TDenseSpace > | |
Scheme () | |
Default Constructor. More... | |
Scheme (Parameters ThisParameters) | |
Constructor with Parameters. More... | |
Scheme (Scheme &rOther) | |
virtual | ~Scheme () |
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 (Scheme) | |
Pointer definition of Scheme. More... | |
virtual ClassType::Pointer | Create (Parameters ThisParameters) const |
Create method. More... | |
bool | SchemeIsInitialized () |
This method returns if the scheme is initialized. More... | |
void | SetSchemeIsInitialized (bool SchemeIsInitializedFlag=true) |
This method sets if the elements have been initialized or not (true by default) More... | |
bool | ElementsAreInitialized () |
This method returns if the elements are initialized. More... | |
void | SetElementsAreInitialized (bool ElementsAreInitializedFlag=true) |
This method sets if the elements have been initialized or not (true by default) More... | |
bool | ConditionsAreInitialized () |
This method returns if the conditions are initialized. More... | |
void | SetConditionsAreInitialized (bool ConditionsAreInitializedFlag=true) |
This method sets if the conditions have been initialized or not (true by default) More... | |
virtual void | InitializeElements (ModelPart &rModelPart) |
This is the place to initialize the elements. More... | |
virtual void | InitializeConditions (ModelPart &rModelPart) |
This is the place to initialize the conditions. More... | |
virtual void | FinalizeSolutionStep (ModelPart &rModelPart, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) |
Function called once at the end of a solution step, after convergence is reached if an iterative process is needed. More... | |
virtual void | FinalizeNonLinIteration (ModelPart &rModelPart, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) |
Function to be called when it is needed to finalize an iteration. It is designed to be called at the end of each non linear iteration. More... | |
virtual void | CalculateOutputData (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) |
Functions to be called to prepare the data needed for the output of results. More... | |
virtual void | CleanOutputData () |
Functions that cleans the results data. More... | |
virtual void | Clean () |
This function is intended to be called at the end of the solution step to clean up memory storage not needed after the end of the solution step. More... | |
virtual int | Check (const ModelPart &rModelPart) const |
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 int | Check (ModelPart &rModelPart) |
virtual void | CalculateLHSContribution (Element &rElement, LocalSystemMatrixType &LHS_Contribution, Element::EquationIdVectorType &rEquationIdVector, const ProcessInfo &rCurrentProcessInfo) |
This function is designed to calculate just the LHS contribution. More... | |
virtual void | CalculateLHSContribution (Condition &rCondition, LocalSystemMatrixType &LHS_Contribution, Element::EquationIdVectorType &rEquationIdVector, const ProcessInfo &rCurrentProcessInfo) |
Functions totally analogous to the precedent but applied to the "condition" objects. More... | |
virtual void | EquationId (const Element &rElement, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) |
This method gets the eqaution id corresponding to the current element. More... | |
virtual void | EquationId (const Condition &rCondition, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) |
Functions totally analogous to the precedent but applied to the "condition" objects. More... | |
virtual void | GetDofList (const Element &rElement, Element::DofsVectorType &rDofList, const ProcessInfo &rCurrentProcessInfo) |
Function that returns the list of Degrees of freedom to be assembled in the system for a Given element. More... | |
virtual void | GetDofList (const Condition &rCondition, Element::DofsVectorType &rDofList, const ProcessInfo &rCurrentProcessInfo) |
Function that returns the list of Degrees of freedom to be assembled in the system for a Given condition. More... | |
Protected Member Functions | |
Protected Operations | |
void | PredictDerivatives (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) |
Performing the prediction of the derivatives. More... | |
template<class TDataType > | |
void | PredictDerivative (NodeType &rNode, const Variable< TDataType > &rPrimitiveVariable, const Variable< TDataType > &rDerivativeVariable, const double DtInverse) |
Performing the prediction of the derivative. More... | |
void | UpdateDerivatives (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) |
Performing the update of the derivatives. More... | |
template<class TDataType > | |
void | UpdateDerivative (NodeType &rNode, const Variable< TDataType > &rPrimitiveVariable, const Variable< TDataType > &rDerivativeVariable, const double DtInverse) |
Performing the prediction of the derivative. More... | |
void | AddDynamicsToLHS (LocalSystemMatrixType &rLHSContribution, LocalSystemMatrixType &rM, const ProcessInfo &rCurrentProcessInfo) |
It adds the dynamic LHS contribution of the elements LHS = 24/dt*M. More... | |
void | AddDynamicsToRHS (Element &rCurrentElement, LocalSystemVectorType &rRHSContribution, LocalSystemMatrixType &rM, const ProcessInfo &rCurrentProcessInfo) |
It adds the dynamic RHS contribution of the elements b - M*a - D*v. More... | |
void | AddDynamicsToRHS (Condition &rCurrentCondition, LocalSystemVectorType &rRHSContribution, LocalSystemMatrixType &rM, const ProcessInfo &rCurrentProcessInfo) |
It adds the dynamic RHS contribution of the condition RHS = fext - M*an0 - D*vn0 - K*dn0. More... | |
Protected Member Functions inherited from Kratos::Scheme< 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... | |
Protected Attributes | |
Protected member Variables | |
std::vector< Matrix > | mM |
std::vector< Vector > | mU0 |
First derivative matrix (usually mass matrix) More... | |
std::vector< Vector > | mU1 |
Values vector at the current time step. More... | |
std::vector< Vector > | mDU |
Values vector at the previous time step. More... | |
Protected Attributes inherited from Kratos::Scheme< TSparseSpace, TDenseSpace > | |
bool | mSchemeIsInitialized |
bool | mElementsAreInitialized |
Flag to be used in controlling if the Scheme has been initialized or not. More... | |
bool | mConditionsAreInitialized |
Flag taking in account if the elements were initialized correctly or not. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from Kratos::Scheme< TSparseSpace, TDenseSpace > | |
static std::string | Name () |
Returns the name of the class as used in the settings (snake_case format) More... | |
Predictor-corrector semi imlicit scheme for the Boussinesq element.
The element should assemble the RHS according to the scheme.
TSparseSpace | The sparse space considered |
TDenseSpace | The dense space considered |
typedef Scheme<TSparseSpace,TDenseSpace> Kratos::ResidualBasedAdamsMoultonScheme< TSparseSpace, TDenseSpace >::BaseType |
typedef BaseType::DofsArrayType Kratos::ResidualBasedAdamsMoultonScheme< TSparseSpace, TDenseSpace >::DofsArrayType |
typedef BaseType::LocalSystemMatrixType Kratos::ResidualBasedAdamsMoultonScheme< TSparseSpace, TDenseSpace >::LocalSystemMatrixType |
typedef BaseType::LocalSystemVectorType Kratos::ResidualBasedAdamsMoultonScheme< TSparseSpace, TDenseSpace >::LocalSystemVectorType |
typedef ModelPart::NodeType Kratos::ResidualBasedAdamsMoultonScheme< TSparseSpace, TDenseSpace >::NodeType |
typedef BaseType::TSystemMatrixType Kratos::ResidualBasedAdamsMoultonScheme< TSparseSpace, TDenseSpace >::TSystemMatrixType |
typedef BaseType::TSystemVectorType Kratos::ResidualBasedAdamsMoultonScheme< TSparseSpace, TDenseSpace >::TSystemVectorType |
|
inlineexplicit |
Constructor.
|
inlineexplicit |
Constructor.
ThisParameters | The configuration parameters |
|
inlineexplicit |
Copy Constructor.
|
inlineoverride |
Destructor.
|
inlineprotected |
It adds the dynamic LHS contribution of the elements LHS = 24/dt*M.
rLHSContribution | The dynamic contribution for the LHS |
D | The damping matrix |
M | The mass matrix |
rCurrentProcessInfo | The current process info instance |
|
inlineprotected |
It adds the dynamic RHS contribution of the condition RHS = fext - M*an0 - D*vn0 - K*dn0.
rCurrentCondition | The condition to compute |
rRHSContribution | The dynamic contribution for the RHS |
D | The damping matrix |
M | The mass matrix |
rCurrentProcessInfo | The current process info instance |
|
inlineprotected |
It adds the dynamic RHS contribution of the elements b - M*a - D*v.
rCurrentElement | The element to compute |
rRHSContribution | The dynamic contribution for the RHS |
D | The damping matrix |
M | The mass matrix |
rCurrentProcessInfo | The current process info instance |
|
inlineoverridevirtual |
Functions that calculates the RHS of a "condition" object.
rCurrentCondition | The condition to compute |
rRHSContribution | The RHS vector contribution |
rEquationId | The ID's of the condition degrees of freedom |
rCurrentProcessInfo | The current process info instance |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
This function is designed to calculate just the RHS contribution.
rCurrentElement | The element to compute |
rRHSContribution | The RHS vector contribution |
rEquationId | The ID's of the element degrees of freedom |
rCurrentProcessInfo | The current process info instance |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Functions totally analogous to the precedent but applied to the "condition" objects.
rCurrentCondition | The condition to compute |
rLHSContribution | The LHS matrix contribution |
rRHSContribution | The RHS vector contribution |
rEquationId | The ID's of the element degrees of freedom |
rCurrentProcessInfo | The current process info instance |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
This function is designed to be called in the builder and solver to introduce the selected time integration scheme.
It "asks" the matrix needed to the element and performs the operations needed to introduce the selected time integration scheme. This function calculates at the same time the contribution to the LHS and to the RHS of the system
rCurrentElement | The element to compute |
rLHSContribution | The LHS matrix contribution |
rRHSContribution | The RHS vector contribution |
EquationId | The ID's of the element degrees of freedom |
rCurrentProcessInfo | The current process info instance |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Free memory allocated by this class.
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Clone.
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
This method provides the defaults parameters to avoid conflicts between the different constructors.
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Initialize the nodal area and the derivatives recovery.
The nodal area is used to apply the explicit prediction.
rModelPart | The model part of the problem to solve |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Calculate the global projection of the auxiliary fields.
rModelPart | The model part of the problem to solve |
rA | LHS matrix |
rDx | Incremental update of primary variables |
rb | RHS Vector |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
It initializes time step solution. Only for reasons if the time step solution is restarted.
rModelPart | The model of the problem to solve |
rA | LHS matrix |
rDx | Incremental update of primary variables |
rb | RHS Vector |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
Kratos::ResidualBasedAdamsMoultonScheme< TSparseSpace, TDenseSpace >::KRATOS_CLASS_POINTER_DEFINITION | ( | ResidualBasedAdamsMoultonScheme< TSparseSpace, TDenseSpace > | ) |
|
inlineoverridevirtual |
Perform the prediction using the explicit Adams-Bashforth scheme.
rModelPart | The model of the problem to solve |
rDofSet | set of all primary variables |
rA | LHS matrix |
rDx | Incremental prediction of primary variables |
rb | RHS Vector |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineprotected |
Performing the prediction of the derivative.
rNode | The node |
rPrimitiveVariable | The primitive variable |
rDerivativeVariable | The variable to predict |
DtInverse | The inverse time step |
|
inlineprotected |
Performing the prediction of the derivatives.
rModelPart | The model of the problem to solve |
rDofSet | Set of all primary variables |
rA | LHS matrix |
rDx | incremental update of primary variables |
rb | RHS Vector |
|
inlineoverridevirtual |
Performing the update of the solution.
rModelPart | The model of the problem to solve |
rDofSet | Set of all primary variables |
rA | LHS matrix |
rDx | incremental update of primary variables |
rb | RHS Vector |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineprotected |
Performing the prediction of the derivative.
rNode | The node |
rPrimitiveVariable | The primitive variable |
rDerivativeVariable | The variable to predict |
DtInverse | The inverse time step |
|
inlineprotected |
Performing the update of the derivatives.
rModelPart | The model of the problem to solve |
rDofSet | Set of all primary variables |
rA | LHS matrix |
rDx | incremental update of primary variables |
rb | RHS Vector |
|
protected |
Values vector at the previous time step.
|
protected |
|
protected |
First derivative matrix (usually mass matrix)
|
protected |
Values vector at the current time step.