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.
|
BDF integration scheme (displacement based) More...
#include <residual_based_bdf_displacement_scheme.h>
Public Member Functions | |
Life Cycle | |
ResidualBasedBDFDisplacementScheme (Parameters ThisParameters) | |
Constructor. The BDF method (parameters) More... | |
ResidualBasedBDFDisplacementScheme (const std::size_t Order=2) | |
Constructor. The BDF method. More... | |
ResidualBasedBDFDisplacementScheme (ResidualBasedBDFDisplacementScheme &rOther) | |
BaseType::Pointer | Clone () override |
~ResidualBasedBDFDisplacementScheme () override | |
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::ResidualBasedBDFScheme< TSparseSpace, TDenseSpace > | |
ResidualBasedBDFScheme (const std::size_t Order=2) | |
Constructor. The BDF method. More... | |
ResidualBasedBDFScheme (ResidualBasedBDFScheme &rOther) | |
BaseTypePointer | Clone () override |
~ResidualBasedBDFScheme () override | |
void | Update (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override |
Performing the update of the solution. More... | |
void | Predict (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override |
Performing the prediction of the solution. 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... | |
int | Check (const ModelPart &rModelPart) const override |
This function is designed to be called once to perform all the checks needed on the input provided. More... | |
void | Clear () override |
Free memory allocated by this class. More... | |
Parameters | GetDefaultParameters () const override |
This method provides the defaults parameters to avoid conflicts between the different constructors. 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 (ResidualBasedBDFScheme) | |
Public Member Functions inherited from Kratos::ResidualBasedImplicitTimeScheme< TSparseSpace, TDenseSpace > | |
ResidualBasedImplicitTimeScheme () | |
ResidualBasedImplicitTimeScheme (Parameters ThisParameters) | |
Constructor. The implicit method method. More... | |
ResidualBasedImplicitTimeScheme (ResidualBasedImplicitTimeScheme &rOther) | |
BaseType::Pointer | Clone () override |
~ResidualBasedImplicitTimeScheme () override | |
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 | 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... | |
int | Check (const ModelPart &rModelPart) const override |
This function is designed to be called once to perform all the checks needed on the input provided. More... | |
Parameters | GetDefaultParameters () const override |
This method provides the defaults parameters to avoid conflicts between the different constructors. 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 (ResidualBasedImplicitTimeScheme) | |
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 () |
KRATOS_CLASS_POINTER_DEFINITION (Scheme) | |
Pointer definition of Scheme. More... | |
virtual void | Initialize (ModelPart &rModelPart) |
This is the place to initialize the Scheme. 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 | InitializeNonLinIteration (ModelPart &rModelPart, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) |
unction to be called when it is needed to initialize an iteration. It is designed to be called at the beginning of each non linear iteration 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 (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 | UpdateFirstDerivative (NodesArrayType::iterator itNode) override |
Updating first time derivative (velocity) More... | |
void | UpdateSecondDerivative (NodesArrayType::iterator itNode) override |
Updating second time derivative (acceleration) More... | |
Protected Member Functions inherited from Kratos::ResidualBasedBDFScheme< TSparseSpace, TDenseSpace > | |
void | UpdateDerivatives (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) |
Performing the update of the derivatives. More... | |
void | AddDynamicsToLHS (LocalSystemMatrixType &rLHS_Contribution, LocalSystemMatrixType &rD, LocalSystemMatrixType &rM, const ProcessInfo &rCurrentProcessInfo) override |
It adds the dynamic LHS contribution of the elements. More... | |
template<class TObjectType > | |
void | TemplateAddDynamicsToRHS (TObjectType &rObject, LocalSystemVectorType &rRHS_Contribution, LocalSystemMatrixType &rD, LocalSystemMatrixType &rM, const ProcessInfo &rCurrentProcessInfo) |
It adds the dynamic RHS contribution of the objects. More... | |
void | AddDynamicsToRHS (Element &rElement, LocalSystemVectorType &rRHS_Contribution, LocalSystemMatrixType &rD, LocalSystemMatrixType &rM, const ProcessInfo &rCurrentProcessInfo) override |
It adds the dynamic RHS contribution of the elements. More... | |
void | AddDynamicsToRHS (Condition &rCondition, LocalSystemVectorType &rRHS_Contribution, LocalSystemMatrixType &rD, LocalSystemMatrixType &rM, const ProcessInfo &rCurrentProcessInfo) override |
It adds the dynamic RHS contribution of the condition. More... | |
Protected Operations | |
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... | |
Operations | |
BaseType::Pointer | Create (Parameters ThisParameters) const override |
Create method. 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 | Predict (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) override |
Performing the prediction of the solution. More... | |
int | Check (const ModelPart &rModelPart) const override |
This function is designed to be called once to perform all the checks needed on the input provided. More... | |
Parameters | GetDefaultParameters () const override |
This method provides the defaults parameters to avoid conflicts between the different constructors. 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::ResidualBasedBDFScheme< TSparseSpace, TDenseSpace > | |
typedef Scheme< TSparseSpace, TDenseSpace > | BaseType |
typedef BaseType::Pointer | BaseTypePointer |
typedef ResidualBasedImplicitTimeScheme< TSparseSpace, TDenseSpace > | ImplicitBaseType |
typedef ImplicitBaseType::TDataType | TDataType |
typedef ImplicitBaseType::DofsArrayType | DofsArrayType |
typedef Element::DofsVectorType | DofsVectorType |
typedef ImplicitBaseType::TSystemMatrixType | TSystemMatrixType |
typedef ImplicitBaseType::TSystemVectorType | TSystemVectorType |
typedef ImplicitBaseType::LocalSystemVectorType | LocalSystemVectorType |
typedef ImplicitBaseType::LocalSystemMatrixType | LocalSystemMatrixType |
typedef ModelPart::NodesContainerType | NodesArrayType |
Public Types inherited from Kratos::ResidualBasedImplicitTimeScheme< TSparseSpace, TDenseSpace > | |
typedef Scheme< TSparseSpace, TDenseSpace > | BaseType |
Base class definition. More... | |
typedef BaseType::DofsArrayType | DofsArrayType |
DoF array type definition. More... | |
typedef Element::DofsVectorType | DofsVectorType |
DoF vector type definition. More... | |
typedef BaseType::TDataType | TDataType |
Data type definition. More... | |
typedef BaseType::TSystemMatrixType | TSystemMatrixType |
Matrix type definition. More... | |
typedef BaseType::TSystemVectorType | TSystemVectorType |
Vector type definition. More... | |
typedef BaseType::LocalSystemVectorType | LocalSystemVectorType |
Local system matrix type definition. More... | |
typedef BaseType::LocalSystemMatrixType | LocalSystemMatrixType |
Local system vector type definition. More... | |
typedef ModelPart::NodesContainerType | NodesArrayType |
Nodes containers definition. More... | |
typedef ModelPart::ElementsContainerType | ElementsArrayType |
Elements containers definition. More... | |
typedef ModelPart::ConditionsContainerType | ConditionsArrayType |
Conditions containers definition. More... | |
typedef std::size_t | IndexType |
Index type definition. More... | |
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... | |
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... | |
Static Public Attributes inherited from Kratos::ResidualBasedBDFScheme< TSparseSpace, TDenseSpace > | |
static constexpr double | ZeroTolerance = std::numeric_limits<double>::epsilon() |
Definition of epsilon. More... | |
Protected Attributes inherited from Kratos::ResidualBasedBDFScheme< TSparseSpace, TDenseSpace > | |
const std::size_t | mOrder |
Vector | mBDF |
The integration order. More... | |
GeneralVectors | mVector |
The BDF coefficients. More... | |
Kratos::unique_ptr< TimeDiscretization::BDF > | mpBDFUtility |
The structure containing the derivatives. More... | |
Protected Attributes inherited from Kratos::ResidualBasedImplicitTimeScheme< TSparseSpace, TDenseSpace > | |
GeneralMatrices | mMatrix |
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... | |
BDF integration scheme (displacement based)
The \( n \) order Backward Differentiation Formula (BDF) method is a two step \( n \) order accurate method. Look at the base class for more details
typedef Scheme<TSparseSpace,TDenseSpace> Kratos::ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace >::BaseType |
Base class definition.
typedef ResidualBasedBDFScheme<TSparseSpace,TDenseSpace> Kratos::ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace >::BDFBaseType |
typedef ResidualBasedBDFDisplacementScheme<TSparseSpace, TDenseSpace> Kratos::ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace >::ClassType |
typedef double Kratos::ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace >::ComponentType |
typedef ModelPart::ConditionsContainerType Kratos::ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace >::ConditionsArrayType |
Conditions containers definition.
typedef BDFBaseType::DofsArrayType Kratos::ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace >::DofsArrayType |
DoF array type definition.
typedef Element::DofsVectorType Kratos::ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace >::DofsVectorType |
DoF vector type definition.
typedef ModelPart::ElementsContainerType Kratos::ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace >::ElementsArrayType |
Elements containers definition.
typedef ResidualBasedImplicitTimeScheme<TSparseSpace,TDenseSpace> Kratos::ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace >::ImplicitBaseType |
typedef BDFBaseType::LocalSystemMatrixType Kratos::ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace >::LocalSystemMatrixType |
Local system vector type definition.
typedef BDFBaseType::LocalSystemVectorType Kratos::ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace >::LocalSystemVectorType |
Local system matrix type definition.
typedef ModelPart::NodesContainerType Kratos::ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace >::NodesArrayType |
Nodes containers definition.
typedef BDFBaseType::TDataType Kratos::ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace >::TDataType |
Data type definition.
typedef BDFBaseType::TSystemMatrixType Kratos::ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace >::TSystemMatrixType |
Matrix type definition.
typedef BDFBaseType::TSystemVectorType Kratos::ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace >::TSystemVectorType |
Vector type definition.
|
inlineexplicit |
Constructor. The BDF method (parameters)
ThisParameters | Parameters with the integration order |
|
inlineexplicit |
Constructor. The BDF method.
Order | The integration order |
|
inlineexplicit |
Copy Constructor.
|
inlineoverride |
Destructor.
|
inlineoverridevirtual |
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.
rModelPart | The model of the problem to solve |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Clone
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Create method.
ThisParameters | The configuration parameters |
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 |
It initializes time step solution. Only for reasons if the time step solution is restarted.
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 >.
Kratos::ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace >::KRATOS_CLASS_POINTER_DEFINITION | ( | ResidualBasedBDFDisplacementScheme< TSparseSpace, TDenseSpace > | ) |
Pointer definition of ResidualBasedBDFDisplacementScheme.
|
inlinestatic |
Returns the name of the class as used in the settings (snake_case format)
|
inlineoverridevirtual |
Performing the prediction of the solution.
It predicts the solution for the current step x = xold + vold * Dt
rModelPart | The model of the problem to solve |
rDofSet | Set of all primary variables |
A | LHS matrix |
Dx | Incremental update of primary variables |
b | RHS Vector |
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Print object's data.
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.
|
inlineoverrideprotectedvirtual |
Updating first time derivative (velocity)
itNode | the node iterator |
Reimplemented from Kratos::ResidualBasedBDFScheme< TSparseSpace, TDenseSpace >.
|
inlineoverrideprotectedvirtual |
Updating second time derivative (acceleration)
itNode | the node iterator |
Reimplemented from Kratos::ResidualBasedBDFScheme< TSparseSpace, TDenseSpace >.