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.
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace > Class Template Referenceabstract

#include <geomechanics_time_integration_scheme.hpp>

Inheritance diagram for Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >:
Collaboration diagram for Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >:

Public Types

using BaseType = Scheme< TSparseSpace, TDenseSpace >
 
using DofsArrayType = typename BaseType::DofsArrayType
 
using TSystemVectorType = typename BaseType::TSystemVectorType
 
using TSystemMatrixType = typename BaseType::TSystemMatrixType
 
using LocalSystemVectorType = typename BaseType::LocalSystemVectorType
 
using LocalSystemMatrixType = typename BaseType::LocalSystemMatrixType
 
- 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

 GeoMechanicsTimeIntegrationScheme (const std::vector< FirstOrderScalarVariable > &rFirstOrderScalarVariables, const std::vector< SecondOrderVectorVariable > &rSecondOrderVectorVariables)
 
int Check (const ModelPart &rModelPart) const final
 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...
 
void GetDofList (const Element &rElement, Element::DofsVectorType &rDofList, const ProcessInfo &rCurrentProcessInfo) override
 Function that returns the list of Degrees of freedom to be assembled in the system for a Given element. More...
 
void GetDofList (const Condition &rCondition, Condition::DofsVectorType &rDofList, const ProcessInfo &rCurrentProcessInfo) override
 Function that returns the list of Degrees of freedom to be assembled in the system for a Given condition. More...
 
template<typename T >
void GetDofListImpl (const T &rElementOrCondition, typename T::DofsVectorType &rDofList, const ProcessInfo &rCurrentProcessInfo)
 
void EquationId (const Element &rElement, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override
 This method gets the eqaution id corresponding to the current element. More...
 
void EquationId (const Condition &rCondition, Condition::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override
 Functions totally analogous to the precedent but applied to the "condition" objects. More...
 
template<typename T >
void EquationIdImpl (const T &rElementOrCondition, typename T::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo)
 
void Initialize (ModelPart &rModelPart) override
 This is the place to initialize the Scheme. More...
 
void Predict (ModelPart &rModelPart, DofsArrayType &, TSystemMatrixType &, TSystemVectorType &, TSystemVectorType &) override
 Performing the prediction of the solution. More...
 
void InitializeSolutionStep (ModelPart &rModelPart, TSystemMatrixType &, TSystemVectorType &, TSystemVectorType &) override
 Function called once at the beginning of each solution step. More...
 
void InitializeNonLinIteration (ModelPart &rModelPart, TSystemMatrixType &, TSystemVectorType &, TSystemVectorType &) override
 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...
 
void FinalizeNonLinIteration (ModelPart &rModelPart, TSystemMatrixType &, TSystemVectorType &, TSystemVectorType &) override
 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...
 
void FinalizeSolutionStepActiveEntities (ModelPart &rModelPart, TSystemMatrixType &, TSystemVectorType &, TSystemVectorType &)
 
template<typename MemFuncPtr >
void BlockForEachActiveElement (ModelPart &rModelPart, MemFuncPtr pMemberFunction)
 
template<typename MemFuncPtr >
void BlockForEachActiveCondition (ModelPart &rModelPart, MemFuncPtr pMemberFunction)
 
void FinalizeSolutionStep (ModelPart &rModelPart, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) override
 Function called once at the end of a solution step, after convergence is reached if an iterative process is needed. More...
 
void CalculateSystemContributions (Element &rCurrentElement, LocalSystemMatrixType &LHS_Contribution, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &EquationId, const ProcessInfo &CurrentProcessInfo) override
 This function is designed to be called in the builder and solver to introduce the selected time integration scheme. More...
 
void CalculateSystemContributions (Condition &rCurrentCondition, LocalSystemMatrixType &LHS_Contribution, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &EquationId, const ProcessInfo &CurrentProcessInfo) override
 Functions totally analogous to the precedent but applied to the "condition" objects. More...
 
template<typename T >
void CalculateSystemContributionsImpl (T &rCurrentComponent, LocalSystemMatrixType &LHS_Contribution, LocalSystemVectorType &RHS_Contribution, typename T::EquationIdVectorType &EquationId, const ProcessInfo &CurrentProcessInfo)
 
void CalculateRHSContribution (Element &rCurrentElement, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &EquationId, const ProcessInfo &CurrentProcessInfo) override
 This function is designed to calculate just the RHS contribution. More...
 
void CalculateRHSContribution (Condition &rCurrentCondition, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &EquationId, const ProcessInfo &CurrentProcessInfo) override
 Functions totally analogous to the precedent but applied to the "condition" objects. More...
 
template<typename T >
void CalculateRHSContributionImpl (T &rCurrentComponent, LocalSystemVectorType &RHS_Contribution, typename T::EquationIdVectorType &EquationId, const ProcessInfo &CurrentProcessInfo)
 
void CalculateLHSContribution (Element &rCurrentElement, LocalSystemMatrixType &LHS_Contribution, Element::EquationIdVectorType &EquationId, const ProcessInfo &CurrentProcessInfo) override
 This function is designed to calculate just the LHS contribution. More...
 
void CalculateLHSContribution (Condition &rCurrentCondition, LocalSystemMatrixType &LHS_Contribution, Element::EquationIdVectorType &EquationId, const ProcessInfo &CurrentProcessInfo) override
 Functions totally analogous to the precedent but applied to the "condition" objects. More...
 
template<typename T >
void CalculateLHSContributionImpl (T &rCurrentComponent, LocalSystemMatrixType &LHS_Contribution, typename T::EquationIdVectorType &EquationId, const ProcessInfo &CurrentProcessInfo)
 
void Update (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &, TSystemVectorType &Dx, TSystemVectorType &) override
 Performing the update of the solution. 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 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 (Scheme)
 Pointer definition of Scheme. More...
 
virtual ClassType::Pointer Create (Parameters ThisParameters) const
 Create method. More...
 
virtual Pointer Clone ()
 Clone 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 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 void Clear ()
 Liberate internal storage. More...
 
virtual int Check (ModelPart &rModelPart)
 
virtual Parameters GetDefaultParameters () const
 This method provides the defaults parameters to avoid conflicts between the different constructors. More...
 

Static Public Member Functions

template<class T >
static bool IsActive (const T &rComponent)
 
- 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...
 

Protected Member Functions

const Variable< double > & GetComponentFromVectorVariable (const Variable< array_1d< double, 3 >> &rSource, const std::string &rComponent) const
 
virtual void SetTimeFactors (ModelPart &rModelPart)
 
virtual void UpdateVariablesDerivatives (ModelPart &rModelPart)=0
 
double GetDeltaTime () const
 
const std::vector< SecondOrderVectorVariable > & GetSecondOrderVectorVariables () const
 
const std::vector< FirstOrderScalarVariable > & GetFirstOrderScalarVariables () const
 
- 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...
 

Additional Inherited Members

- 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...
 

Member Typedef Documentation

◆ BaseType

template<class TSparseSpace , class TDenseSpace >
using Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::BaseType = Scheme<TSparseSpace, TDenseSpace>

◆ DofsArrayType

template<class TSparseSpace , class TDenseSpace >
using Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::DofsArrayType = typename BaseType::DofsArrayType

◆ LocalSystemMatrixType

template<class TSparseSpace , class TDenseSpace >
using Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::LocalSystemMatrixType = typename BaseType::LocalSystemMatrixType

◆ LocalSystemVectorType

template<class TSparseSpace , class TDenseSpace >
using Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::LocalSystemVectorType = typename BaseType::LocalSystemVectorType

◆ TSystemMatrixType

template<class TSparseSpace , class TDenseSpace >
using Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::TSystemMatrixType = typename BaseType::TSystemMatrixType

◆ TSystemVectorType

template<class TSparseSpace , class TDenseSpace >
using Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::TSystemVectorType = typename BaseType::TSystemVectorType

Constructor & Destructor Documentation

◆ GeoMechanicsTimeIntegrationScheme()

template<class TSparseSpace , class TDenseSpace >
Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::GeoMechanicsTimeIntegrationScheme ( const std::vector< FirstOrderScalarVariable > &  rFirstOrderScalarVariables,
const std::vector< SecondOrderVectorVariable > &  rSecondOrderVectorVariables 
)
inline

Member Function Documentation

◆ BlockForEachActiveCondition()

template<class TSparseSpace , class TDenseSpace >
template<typename MemFuncPtr >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::BlockForEachActiveCondition ( ModelPart rModelPart,
MemFuncPtr  pMemberFunction 
)
inline

◆ BlockForEachActiveElement()

template<class TSparseSpace , class TDenseSpace >
template<typename MemFuncPtr >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::BlockForEachActiveElement ( ModelPart rModelPart,
MemFuncPtr  pMemberFunction 
)
inline

◆ CalculateLHSContribution() [1/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::CalculateLHSContribution ( Condition rCondition,
LocalSystemMatrixType LHS_Contribution,
Element::EquationIdVectorType rEquationIdVector,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

Functions totally analogous to the precedent but applied to the "condition" objects.

Parameters
rConditionThe condition to compute
LHS_ContributionThe RHS vector contribution
rEquationIdVectorThe ID's of the condition degrees of freedom
rCurrentProcessInfoThe current process info instance

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

Reimplemented in Kratos::NewmarkDynamicUPwScheme< TSparseSpace, TDenseSpace >.

◆ CalculateLHSContribution() [2/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::CalculateLHSContribution ( Element rElement,
LocalSystemMatrixType LHS_Contribution,
Element::EquationIdVectorType rEquationIdVector,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

This function is designed to calculate just the LHS contribution.

Parameters
rElementThe element to compute
LHS_ContributionThe RHS vector contribution
rEquationIdVectorThe ID's of the element degrees of freedom
rCurrentProcessInfoThe current process info instance

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

Reimplemented in Kratos::NewmarkQuasistaticDampedUPwScheme< TSparseSpace, TDenseSpace >, and Kratos::NewmarkDynamicUPwScheme< TSparseSpace, TDenseSpace >.

◆ CalculateLHSContributionImpl()

template<class TSparseSpace , class TDenseSpace >
template<typename T >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::CalculateLHSContributionImpl ( T &  rCurrentComponent,
LocalSystemMatrixType LHS_Contribution,
typename T::EquationIdVectorType &  EquationId,
const ProcessInfo CurrentProcessInfo 
)
inline

◆ CalculateRHSContribution() [1/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::CalculateRHSContribution ( Condition rCondition,
LocalSystemVectorType RHS_Contribution,
Element::EquationIdVectorType rEquationIdVector,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

Functions totally analogous to the precedent but applied to the "condition" objects.

Parameters
rConditionThe condition to compute
RHS_ContributionThe RHS vector contribution
rEquationIdVectorThe ID's of the condition degrees of freedom
rCurrentProcessInfoThe current process info instance

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

Reimplemented in Kratos::NewmarkDynamicUPwScheme< TSparseSpace, TDenseSpace >.

◆ CalculateRHSContribution() [2/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::CalculateRHSContribution ( Element rElement,
LocalSystemVectorType RHS_Contribution,
Element::EquationIdVectorType rEquationIdVector,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

This function is designed to calculate just the RHS contribution.

Parameters
rElementThe element to compute
RHS_ContributionThe RHS vector contribution
rEquationIdVectorThe ID's of the element degrees of freedom
rCurrentProcessInfoThe current process info instance

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

Reimplemented in Kratos::NewmarkQuasistaticDampedUPwScheme< TSparseSpace, TDenseSpace >, and Kratos::NewmarkDynamicUPwScheme< TSparseSpace, TDenseSpace >.

◆ CalculateRHSContributionImpl()

template<class TSparseSpace , class TDenseSpace >
template<typename T >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::CalculateRHSContributionImpl ( T &  rCurrentComponent,
LocalSystemVectorType RHS_Contribution,
typename T::EquationIdVectorType &  EquationId,
const ProcessInfo CurrentProcessInfo 
)
inline

◆ CalculateSystemContributions() [1/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::CalculateSystemContributions ( Condition rCondition,
LocalSystemMatrixType LHS_Contribution,
LocalSystemVectorType RHS_Contribution,
Element::EquationIdVectorType rEquationIdVector,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

Functions totally analogous to the precedent but applied to the "condition" objects.

Parameters
rConditionThe condition to compute
LHS_ContributionThe LHS matrix contribution
RHS_ContributionThe RHS vector contribution
rEquationIdVectorThe ID's of the condition degrees of freedom
rCurrentProcessInfoThe current process info instance

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

Reimplemented in Kratos::NewmarkDynamicUPwScheme< TSparseSpace, TDenseSpace >.

◆ CalculateSystemContributions() [2/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::CalculateSystemContributions ( Element rElement,
LocalSystemMatrixType LHS_Contribution,
LocalSystemVectorType RHS_Contribution,
Element::EquationIdVectorType rEquationIdVector,
const ProcessInfo rCurrentProcessInfo 
)
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

Parameters
rElementThe element to compute
LHS_ContributionThe LHS matrix contribution
RHS_ContributionThe RHS vector contribution
rEquationIdVectorThe ID's of the element degrees of freedom
rCurrentProcessInfoThe current process info instance

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

Reimplemented in Kratos::NewmarkQuasistaticDampedUPwScheme< TSparseSpace, TDenseSpace >, and Kratos::NewmarkDynamicUPwScheme< TSparseSpace, TDenseSpace >.

◆ CalculateSystemContributionsImpl()

template<class TSparseSpace , class TDenseSpace >
template<typename T >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::CalculateSystemContributionsImpl ( T &  rCurrentComponent,
LocalSystemMatrixType LHS_Contribution,
LocalSystemVectorType RHS_Contribution,
typename T::EquationIdVectorType &  EquationId,
const ProcessInfo CurrentProcessInfo 
)
inline

◆ Check()

template<class TSparseSpace , class TDenseSpace >
int Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::Check ( const ModelPart rModelPart) const
inlinefinalvirtual

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.

Checks can be "expensive" as the function is designed

Parameters
rModelPartThe model part of the problem to solve
Returns
0 all OK, 1 otherwise

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

◆ EquationId() [1/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::EquationId ( const Condition rCondition,
Condition::EquationIdVectorType rEquationId,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

Functions totally analogous to the precedent but applied to the "condition" objects.

Parameters
rConditionThe condition to compute
rEquationIdThe ID's of the condition degrees of freedom
rCurrentProcessInfoThe current process info instance

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

◆ EquationId() [2/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::EquationId ( const Element rElement,
Element::EquationIdVectorType rEquationId,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

This method gets the eqaution id corresponding to the current element.

Parameters
rElementThe element to compute
rEquationIdThe ID's of the element degrees of freedom
rCurrentProcessInfoThe current process info instance

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

◆ EquationIdImpl()

template<class TSparseSpace , class TDenseSpace >
template<typename T >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::EquationIdImpl ( const T &  rElementOrCondition,
typename T::EquationIdVectorType &  rEquationId,
const ProcessInfo rCurrentProcessInfo 
)
inline

◆ FinalizeNonLinIteration()

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::FinalizeNonLinIteration ( ModelPart rModelPart,
TSystemMatrixType A,
TSystemVectorType Dx,
TSystemVectorType b 
)
inlineoverridevirtual

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.

Parameters
rModelPartThe model part of the problem to solve
ALHS matrix
DxIncremental update of primary variables
bRHS Vector

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

◆ FinalizeSolutionStep()

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::FinalizeSolutionStep ( ModelPart rModelPart,
TSystemMatrixType A,
TSystemVectorType Dx,
TSystemVectorType b 
)
inlineoverridevirtual

Function called once at the end of a solution step, after convergence is reached if an iterative process is needed.

Parameters
rModelPartThe model part of the problem to solve
ALHS matrix
DxIncremental update of primary variables
bRHS Vector

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

Reimplemented in Kratos::NewmarkQuasistaticUPwScheme< TSparseSpace, TDenseSpace >.

◆ FinalizeSolutionStepActiveEntities()

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::FinalizeSolutionStepActiveEntities ( ModelPart rModelPart,
TSystemMatrixType ,
TSystemVectorType ,
TSystemVectorType  
)
inline

◆ GetComponentFromVectorVariable()

template<class TSparseSpace , class TDenseSpace >
const Variable<double>& Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::GetComponentFromVectorVariable ( const Variable< array_1d< double, 3 >> &  rSource,
const std::string &  rComponent 
) const
inlineprotected

◆ GetDeltaTime()

template<class TSparseSpace , class TDenseSpace >
double Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::GetDeltaTime ( ) const
inlineprotected

◆ GetDofList() [1/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::GetDofList ( const Condition rCondition,
Condition::DofsVectorType rDofList,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

Function that returns the list of Degrees of freedom to be assembled in the system for a Given condition.

Parameters
rConditionThe condition to compute
rDofListThe list containing the condition degrees of freedom
rCurrentProcessInfoThe current process info instance

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

◆ GetDofList() [2/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::GetDofList ( const Element rElement,
Element::DofsVectorType rDofList,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

Function that returns the list of Degrees of freedom to be assembled in the system for a Given element.

Parameters
pCurrentElementThe element to compute
rDofListThe list containing the element degrees of freedom
rCurrentProcessInfoThe current process info instance

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

◆ GetDofListImpl()

template<class TSparseSpace , class TDenseSpace >
template<typename T >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::GetDofListImpl ( const T &  rElementOrCondition,
typename T::DofsVectorType &  rDofList,
const ProcessInfo rCurrentProcessInfo 
)
inline

◆ GetFirstOrderScalarVariables()

template<class TSparseSpace , class TDenseSpace >
const std::vector<FirstOrderScalarVariable>& Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::GetFirstOrderScalarVariables ( ) const
inlineprotected

◆ GetSecondOrderVectorVariables()

template<class TSparseSpace , class TDenseSpace >
const std::vector<SecondOrderVectorVariable>& Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::GetSecondOrderVectorVariables ( ) const
inlineprotected

◆ Initialize()

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::Initialize ( ModelPart rModelPart)
inlineoverridevirtual

This is the place to initialize the Scheme.

This is intended to be called just once when the strategy is initialized

Parameters
rModelPartThe model part of the problem to solve

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

◆ InitializeNonLinIteration()

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::InitializeNonLinIteration ( ModelPart rModelPart,
TSystemMatrixType A,
TSystemVectorType Dx,
TSystemVectorType b 
)
inlineoverridevirtual

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

Note
Take care: the elemental function with the same name is NOT called here.
Warning
Must be defined in derived classes

The function is called in the builder for memory efficiency

Parameters
rModelPartThe model part of the problem to solve
ALHS matrix
DxIncremental update of primary variables
bRHS Vector

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

◆ InitializeSolutionStep()

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::InitializeSolutionStep ( ModelPart rModelPart,
TSystemMatrixType A,
TSystemVectorType Dx,
TSystemVectorType b 
)
inlineoverridevirtual

Function called once at the beginning of each solution step.

The basic operations to be carried in there are the following:

  • managing variables to be kept constant over the time step (for example time-Scheme constants depending on the actual time step)
    Parameters
    rModelPartThe model part of the problem to solve
    ALHS matrix
    DxIncremental update of primary variables
    bRHS Vector

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

◆ IsActive()

template<class TSparseSpace , class TDenseSpace >
template<class T >
static bool Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::IsActive ( const T &  rComponent)
inlinestatic

◆ Predict()

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::Predict ( ModelPart rModelPart,
DofsArrayType rDofSet,
TSystemMatrixType A,
TSystemVectorType Dx,
TSystemVectorType b 
)
inlineoverridevirtual

Performing the prediction of the solution.

Warning
Must be defined in derived classes
Parameters
rModelPartThe model part of the problem to solve
ALHS matrix
DxIncremental update of primary variables
bRHS Vector

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

Reimplemented in Kratos::NewmarkDynamicUPwScheme< TSparseSpace, TDenseSpace >.

◆ SetTimeFactors()

template<class TSparseSpace , class TDenseSpace >
virtual void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::SetTimeFactors ( ModelPart rModelPart)
inlineprotectedvirtual

◆ Update()

template<class TSparseSpace , class TDenseSpace >
void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::Update ( ModelPart rModelPart,
DofsArrayType rDofSet,
TSystemMatrixType A,
TSystemVectorType Dx,
TSystemVectorType b 
)
inlineoverridevirtual

Performing the update of the solution.

Warning
Must be defined in derived classes
Parameters
rModelPartThe model part of the problem to solve
rDofSetSet of all primary variables
ALHS matrix
DxIncremental update of primary variables
bRHS Vector

Reimplemented from Kratos::Scheme< TSparseSpace, TDenseSpace >.

◆ UpdateVariablesDerivatives()

template<class TSparseSpace , class TDenseSpace >
virtual void Kratos::GeoMechanicsTimeIntegrationScheme< TSparseSpace, TDenseSpace >::UpdateVariablesDerivatives ( ModelPart rModelPart)
inlineprotectedpure virtual

The documentation for this class was generated from the following file: