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.
Classes | List of all members
Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace > Class Template Reference

An explicit central difference scheme. More...

#include <explicit_central_differences_scheme.hpp>

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

Classes

struct  DeltaTimeParameters
 This struct contains the information related with the increment od time step. More...
 
struct  TimeVariables
 This struct contains the details of the time variables. More...
 

Public Member Functions

Life Cycle
 ExplicitCentralDifferencesScheme (Flags &rOptions, const double rMaximumDeltaTime, const double rDeltaTimeFraction, const double rDeltaTimePredictionLevel)
 Default constructors. More...
 
 ExplicitCentralDifferencesScheme (ExplicitCentralDifferencesScheme &rOther)
 Copy constructor. More...
 
BasePointerType Clone () override
 Clone. More...
 
 ~ExplicitCentralDifferencesScheme () override
 Destructor. More...
 
 ExplicitCentralDifferencesScheme (const double MaximumDeltaTime, const double DeltaTimeFraction, const double DeltaTimePredictionLevel)
 Default constructor. More...
 
 ExplicitCentralDifferencesScheme (Parameters rParameters=Parameters(R"({})"))
 Constructor with parameters. More...
 
virtual ~ExplicitCentralDifferencesScheme ()
 
Operations
void Initialize (ModelPart &rModelPart) override
 This is the place to initialize the Scheme. More...
 
void InitializeSolutionStep (ModelPart &rModelPart) override
 
void Update (ModelPart &rModelPart, DofsArrayType &rDofSet, SystemVectorType &rDx) override
 
void Calculate_RHS_Contribution (Element::Pointer rCurrentElement, LocalSystemVectorType &rRHS_Contribution, Element::EquationIdVectorType &rEquationId, ProcessInfo &rCurrentProcessInfo) override
 
void Condition_Calculate_RHS_Contribution (Condition::Pointer rCurrentCondition, LocalSystemVectorType &rRHS_Contribution, Element::EquationIdVectorType &rEquationId, ProcessInfo &rCurrentProcessInfo) override
 
int Check (ModelPart &rModelPart) override
 
Operators
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 Initialize (ModelPart &rModelPart) override
 This is the place to initialize the Scheme. This is intended to be called just once when the strategy is initialized. 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 InitializeResidual (ModelPart &rModelPart)
 This method initializes the residual in the nodes of the model part. More...
 
void InitializeExplicitScheme (ModelPart &rModelPart, const SizeType DomainSize=3)
 This method initializes some rutines related with the explicit scheme. More...
 
void Update (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override
 Performing the update of the solution. More...
 
void UpdateTranslationalDegreesOfFreedom (NodeIterator itCurrentNode, const IndexType DisplacementPosition, const SizeType DomainSize=3)
 This method updates the translation DoF. More...
 
void UpdateRotationalDegreesOfFreedom (NodeIterator itCurrentNode, const IndexType RotationPosition, const SizeType DomainSize=3)
 This method updates the rotation DoF. More...
 
virtual void SchemeCustomInitialization (ModelPart &rModelPart, const SizeType DomainSize=3)
 This method performs some custom operations to initialize the scheme. More...
 
void CalculateRHSContribution (Element &rCurrentElement, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &EquationId, const ProcessInfo &rCurrentProcessInfo) override
 This function is designed to calculate just the RHS contribution. More...
 
void CalculateRHSContribution (Condition &rCurrentCondition, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &EquationId, const ProcessInfo &rCurrentProcessInfo) override
 Functions that calculates the RHS of a "condition" object. More...
 
void CalculateAndAddRHS (ModelPart &rModelPart)
 
void Predict (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) override
 Performing the prediction of the solution. More...
 
- Public Member Functions inherited from Kratos::SolutionScheme< TSparseSpace, TDenseSpace >
 SolutionScheme ()
 Default Constructor. More...
 
 SolutionScheme (Flags &rOptions)
 Constructor. More...
 
 SolutionScheme (IntegrationMethodsVectorType &rTimeVectorIntegrationMethods, Flags &rOptions)
 Constructor. More...
 
 SolutionScheme (IntegrationMethodsVectorType &rTimeVectorIntegrationMethods)
 Constructor. More...
 
 SolutionScheme (IntegrationMethodsScalarType &rTimeScalarIntegrationMethods, Flags &rOptions)
 Constructor. More...
 
 SolutionScheme (IntegrationMethodsScalarType &rTimeScalarIntegrationMethods)
 Constructor. More...
 
 SolutionScheme (IntegrationMethodsVectorType &rTimeVectorIntegrationMethods, IntegrationMethodsScalarType &rTimeScalarIntegrationMethods, Flags &rOptions)
 Constructor. More...
 
 SolutionScheme (IntegrationMethodsVectorType &rTimeVectorIntegrationMethods, IntegrationMethodsScalarType &rTimeScalarIntegrationMethods)
 Constructor. More...
 
 SolutionScheme (SolutionScheme &rOther)
 Copy contructor. More...
 
 ~SolutionScheme () override
 Destructor. More...
 
void SetOptions (Flags &rOptions)
 Sets strategy options. More...
 
FlagsGetOptions ()
 Get strategy options. More...
 
void SetProcess (ProcessPointerType pProcess)
 Set process to execute after move_mesh. More...
 
void SetProcessVector (ProcessPointerVectorType &rProcessVector)
 Set list of processes to execute after move_mesh. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (SolutionScheme)
 Pointer definition of SolutionScheme. More...
 
void SetDefaultFlags ()
 SetDefaultSchemeFlags. More...
 
virtual void FinalizeSolutionStep (ModelPart &rModelPart)
 Performs all the required operations that should be done (for each step) after solving the solution step. More...
 
virtual void InitializeNonLinearIteration (ModelPart &rModelPart)
 Performs all the required operations that should be done (for each iteration) before solving a solution iteration. More...
 
virtual void FinalizeNonLinearIteration (ModelPart &rModelPart)
 Performs all the required operations that should be done (for each iteration) after solving a solution iteration. More...
 
virtual void Predict (ModelPart &rModelPart, DofsArrayType &rDofSet, SystemVectorType &rDx)
 Performing the prediction of the solution. More...
 
virtual void UpdateDofs (ModelPart &rModelPart, DofsArrayType &rDofSet, SystemVectorType &rDx)
 Performing the update of the solution Dofs. More...
 
virtual void UpdateVariables (ModelPart &rModelPart)
 Performing the update of the solution variables. More...
 
virtual void PredictVariables (ModelPart &rModelPart)
 Performing the prediction of the solution variables. More...
 
virtual void MoveMesh (ModelPart &rModelPart)
 This function is designed to move the mesh. More...
 
virtual void Clear (Element::Pointer rCurrentElement)
 Liberates internal storage for an element. More...
 
virtual void Clear (Condition::Pointer rCurrentCondition)
 Liberates internal storage for a condition. More...
 
virtual void Clear ()
 Liberates internal storage. More...
 
virtual void CalculateSystemContributions (Element::Pointer pCurrentElement, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, Element::EquationIdVectorType &rEquationId, ProcessInfo &rCurrentProcessInfo)
 
virtual void Calculate_LHS_Contribution (Element::Pointer pCurrentElement, LocalSystemMatrixType &rLHS_Contribution, Element::EquationIdVectorType &rEquationId, ProcessInfo &rCurrentProcessInfo)
 
virtual void EquationId (Element::Pointer pCurrentElement, Element::EquationIdVectorType &rEquationId, ProcessInfo &rCurrentProcessInfo)
 
virtual void Condition_CalculateSystemContributions (Condition::Pointer pCurrentCondition, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, Element::EquationIdVectorType &rEquationId, ProcessInfo &rCurrentProcessInfo)
 
virtual void Condition_Calculate_LHS_Contribution (Condition::Pointer pCurrentCondition, LocalSystemMatrixType &rLHS_Contribution, Element::EquationIdVectorType &rEquationId, ProcessInfo &rCurrentProcessInfo)
 
virtual void Condition_EquationId (Condition::Pointer pCurrentCondition, Element::EquationIdVectorType &rEquationId, ProcessInfo &rCurrentProcessInfo)
 
virtual void GetElementalDofList (Element::Pointer pCurrentElement, Element::DofsVectorType &rElementalDofList, ProcessInfo &rCurrentProcessInfo)
 
virtual void GetConditionDofList (Condition::Pointer pCurrentCondition, Element::DofsVectorType &rConditionDofList, ProcessInfo &rCurrentProcessInfo)
 
- Public Member Functions inherited from Kratos::Flags
Flagsoperator= (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 Flagsoperator|= (const Flags &Other)
 
const Flagsoperator&= (const Flags &Other)
 
 Flags ()
 Default constructor. More...
 
 Flags (Flags const &rOther)
 Copy constructor. More...
 
virtual ~Flags ()
 Destructor. 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...
 
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 void Clear ()
 Liberate internal storage. More...
 
virtual void CalculateSystemContributions (Element &rElement, LocalSystemMatrixType &LHS_Contribution, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &rEquationIdVector, const ProcessInfo &rCurrentProcessInfo)
 This function is designed to be called in the builder and solver to introduce the selected time integration scheme. More...
 
virtual void CalculateSystemContributions (Condition &rCondition, LocalSystemMatrixType &LHS_Contribution, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &rEquationIdVector, const ProcessInfo &rCurrentProcessInfo)
 Functions totally analogous to the precedent but applied to the "condition" objects. More...
 
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...
 
virtual Parameters GetDefaultParameters () const
 This method provides the defaults parameters to avoid conflicts between the different constructors. More...
 

Protected Member Functions

Protected Operations
void InitializeResidual (ModelPart &rModelPart)
 
void CalculateDeltaTime (ModelPart &rModelPart)
 
void InitializeExplicitScheme (ModelPart &rModelPart)
 
void SchemeCustomInitialization (ModelPart &rModelPart)
 
void AddDynamicsToRHS (Element::Pointer rCurrentElement, LocalSystemVectorType &rRHS_Contribution, LocalSystemMatrixType &rD, ProcessInfo &rCurrentProcessInfo)
 
void AddDynamicsToRHS (Condition::Pointer rCurrentCondition, LocalSystemVectorType &rRHS_Contribution, LocalSystemMatrixType &rD, ProcessInfo &rCurrentProcessInfo)
 
void GetFirstDerivativesVector (Element::Pointer rCurrentElement, Vector &rValues)
 
void GetFirstDerivativesVector (Condition::Pointer rCurrentCondition, Vector &rValues)
 
- Protected Member Functions inherited from Kratos::SolutionScheme< TSparseSpace, TDenseSpace >
virtual void InitializeElements (ModelPart &rModelPart)
 Initialize the elements. More...
 
virtual void InitializeConditions (ModelPart &rModelPart)
 Initialize the conditions. More...
 
virtual void InitializeNonLinearIteration (Condition::Pointer rCurrentCondition, ProcessInfo &rCurrentProcessInfo)
 Initialize the conditions. More...
 
virtual void InitializeNonLinearIteration (Element::Pointer rCurrentElement, ProcessInfo &rCurrentProcessInfo)
 Initialize the elements. More...
 
virtual void IntegrationMethodUpdate (NodeType &rNode)
 
virtual void IntegrationMethodPredict (NodeType &rNode)
 
- 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< MatrixmMatrix
 
std::vector< VectormVector
 
TimeVariables mTime
 
DeltaTimeParameters mDeltaTime
 This struct contains the details of the time variables. More...
 
- Protected Attributes inherited from Kratos::SolutionScheme< TSparseSpace, TDenseSpace >
Flags mOptions
 
IntegrationMethodsVectorType mTimeVectorIntegrationMethods
 
IntegrationMethodsScalarType mTimeScalarIntegrationMethods
 
ProcessPointerVectorType mProcesses
 
- 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...
 

Type Definitions

typedef SolutionScheme< TSparseSpace, TDenseSpace > BaseType
 
typedef BaseType::SolutionSchemePointerType BasePointerType
 
typedef BaseType::LocalFlagType LocalFlagType
 
typedef BaseType::DofsArrayType DofsArrayType
 
typedef BaseType::SystemMatrixType SystemMatrixType
 
typedef BaseType::SystemVectorType SystemVectorType
 
typedef BaseType::LocalSystemVectorType LocalSystemVectorType
 
typedef BaseType::LocalSystemMatrixType LocalSystemMatrixType
 
typedef ModelPart::NodesContainerType NodesContainerType
 
typedef ModelPart::ElementsContainerType ElementsContainerType
 
typedef ModelPart::ConditionsContainerType ConditionsContainerType
 
typedef Scheme< TSparseSpace, TDenseSpace > BaseType
 The definition of the base type. More...
 
typedef BaseType::DofsArrayType DofsArrayType
 Some definitions related with the base class. More...
 
typedef BaseType::TSystemMatrixType TSystemMatrixType
 
typedef BaseType::TSystemVectorType TSystemVectorType
 
typedef BaseType::LocalSystemVectorType LocalSystemVectorType
 
typedef ModelPart::ElementsContainerType ElementsArrayType
 The arrays of elements and nodes. More...
 
typedef ModelPart::NodesContainerType NodesArrayType
 
typedef std::size_t SizeType
 Definition of the size type. More...
 
typedef std::size_t IndexType
 Definition of the index type. More...
 
typedef ModelPart::NodeIterator NodeIterator
 Definition fo the node iterator. More...
 
static constexpr double numerical_limit = std::numeric_limits<double>::epsilon()
 The definition of the numerical limit. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (ExplicitCentralDifferencesScheme)
 
 KRATOS_CLASS_POINTER_DEFINITION (ExplicitCentralDifferencesScheme)
 Counted pointer of ExplicitCentralDifferencesScheme. More...
 

Additional Inherited Members

- Public Types inherited from Kratos::SolutionScheme< TSparseSpace, TDenseSpace >
typedef SolutionScheme< TSparseSpace, TDenseSpace > SolutionSchemeType
 
typedef SolutionSchemeType::Pointer SolutionSchemePointerType
 
typedef SolverLocalFlags LocalFlagType
 
typedef ModelPart::DofsArrayType DofsArrayType
 
typedef TSparseSpace::MatrixType SystemMatrixType
 
typedef TSparseSpace::VectorType SystemVectorType
 
typedef TDenseSpace::MatrixType LocalSystemMatrixType
 
typedef TDenseSpace::VectorType LocalSystemVectorType
 
typedef ModelPart::NodesContainerType NodesContainerType
 
typedef ModelPart::ElementsContainerType ElementsContainerType
 
typedef ModelPart::ConditionsContainerType ConditionsContainerType
 
typedef ModelPart::NodeType NodeType
 
typedef array_1d< double, 3 > VectorType
 
typedef Variable< VectorTypeVariableVectorType
 
typedef TimeIntegrationMethod< VariableVectorType, VectorTypeIntegrationVectorType
 
typedef IntegrationVectorType::Pointer IntegrationVectorPointerType
 
typedef std::vector< IntegrationVectorPointerTypeIntegrationMethodsVectorType
 
typedef Variable< doubleVariableScalarType
 
typedef TimeIntegrationMethod< VariableScalarType, doubleIntegrationScalarType
 
typedef IntegrationScalarType::Pointer IntegrationScalarPointerType
 
typedef std::vector< IntegrationScalarPointerTypeIntegrationMethodsScalarType
 
typedef SolverProcess::Pointer ProcessPointerType
 
typedef std::vector< ProcessPointerTypeProcessPointerVectorType
 
- 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
 
- 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::SolutionScheme< TSparseSpace, TDenseSpace >
static void SetSolution (ModelPart &rModelPart, DofsArrayType &rDofSet, SystemVectorType &rDx)
 Performing the update of the solution Dofs (total solution) More...
 
static void AddSolution (ModelPart &rModelPart, DofsArrayType &rDofSet, SystemVectorType &rDx)
 Performing the update of the solution Dofs (incremental solution) More...
 
- Static Public Member Functions inherited from Kratos::Flags
static const Flags AllDefined ()
 
static const Flags AllTrue ()
 
static Flags Create (IndexType ThisPosition, bool Value=true)
 
- 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...
 

Detailed Description

template<class TSparseSpace, class TDenseSpace>
class Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >

An explicit central difference scheme.

This scheme is quite known, and can be consulted from different sources For example from Wikipedia: https://en.wikipedia.org/wiki/Central_differencing_scheme

Author
Klaus B Sautter

Member Typedef Documentation

◆ BasePointerType

template<class TSparseSpace , class TDenseSpace >
typedef BaseType::SolutionSchemePointerType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::BasePointerType

◆ BaseType [1/2]

template<class TSparseSpace , class TDenseSpace >
typedef SolutionScheme<TSparseSpace,TDenseSpace> Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::BaseType

◆ BaseType [2/2]

template<class TSparseSpace , class TDenseSpace >
typedef Scheme<TSparseSpace, TDenseSpace> Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::BaseType

The definition of the base type.

◆ ConditionsContainerType

template<class TSparseSpace , class TDenseSpace >
typedef ModelPart::ConditionsContainerType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::ConditionsContainerType

◆ DofsArrayType [1/2]

template<class TSparseSpace , class TDenseSpace >
typedef BaseType::DofsArrayType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::DofsArrayType

◆ DofsArrayType [2/2]

template<class TSparseSpace , class TDenseSpace >
typedef BaseType::DofsArrayType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::DofsArrayType

Some definitions related with the base class.

◆ ElementsArrayType

template<class TSparseSpace , class TDenseSpace >
typedef ModelPart::ElementsContainerType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::ElementsArrayType

The arrays of elements and nodes.

◆ ElementsContainerType

template<class TSparseSpace , class TDenseSpace >
typedef ModelPart::ElementsContainerType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::ElementsContainerType

◆ IndexType

template<class TSparseSpace , class TDenseSpace >
typedef std::size_t Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::IndexType

Definition of the index type.

◆ LocalFlagType

template<class TSparseSpace , class TDenseSpace >
typedef BaseType::LocalFlagType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::LocalFlagType

◆ LocalSystemMatrixType

template<class TSparseSpace , class TDenseSpace >
typedef BaseType::LocalSystemMatrixType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::LocalSystemMatrixType

◆ LocalSystemVectorType [1/2]

template<class TSparseSpace , class TDenseSpace >
typedef BaseType::LocalSystemVectorType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::LocalSystemVectorType

◆ LocalSystemVectorType [2/2]

template<class TSparseSpace , class TDenseSpace >
typedef BaseType::LocalSystemVectorType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::LocalSystemVectorType

◆ NodeIterator

template<class TSparseSpace , class TDenseSpace >
typedef ModelPart::NodeIterator Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::NodeIterator

Definition fo the node iterator.

◆ NodesArrayType

template<class TSparseSpace , class TDenseSpace >
typedef ModelPart::NodesContainerType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::NodesArrayType

◆ NodesContainerType

template<class TSparseSpace , class TDenseSpace >
typedef ModelPart::NodesContainerType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::NodesContainerType

◆ SizeType

template<class TSparseSpace , class TDenseSpace >
typedef std::size_t Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::SizeType

Definition of the size type.

◆ SystemMatrixType

template<class TSparseSpace , class TDenseSpace >
typedef BaseType::SystemMatrixType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::SystemMatrixType

◆ SystemVectorType

template<class TSparseSpace , class TDenseSpace >
typedef BaseType::SystemVectorType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::SystemVectorType

◆ TSystemMatrixType

template<class TSparseSpace , class TDenseSpace >
typedef BaseType::TSystemMatrixType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::TSystemMatrixType

◆ TSystemVectorType

template<class TSparseSpace , class TDenseSpace >
typedef BaseType::TSystemVectorType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::TSystemVectorType

Constructor & Destructor Documentation

◆ ExplicitCentralDifferencesScheme() [1/4]

template<class TSparseSpace , class TDenseSpace >
Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::ExplicitCentralDifferencesScheme ( Flags rOptions,
const double  rMaximumDeltaTime,
const double  rDeltaTimeFraction,
const double  rDeltaTimePredictionLevel 
)
inline

Default constructors.

◆ ExplicitCentralDifferencesScheme() [2/4]

template<class TSparseSpace , class TDenseSpace >
Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::ExplicitCentralDifferencesScheme ( ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace > &  rOther)
inline

Copy constructor.

◆ ~ExplicitCentralDifferencesScheme() [1/2]

template<class TSparseSpace , class TDenseSpace >
Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::~ExplicitCentralDifferencesScheme ( )
inlineoverride

Destructor.

◆ ExplicitCentralDifferencesScheme() [3/4]

template<class TSparseSpace , class TDenseSpace >
Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::ExplicitCentralDifferencesScheme ( const double  MaximumDeltaTime,
const double  DeltaTimeFraction,
const double  DeltaTimePredictionLevel 
)
inline

Default constructor.

The ExplicitCentralDifferencesScheme method

Parameters
MaximumDeltaTimeThe maximum delta time to be considered
DeltaTimeFractionThe delta ttime fraction
DeltaTimePredictionLevelThe prediction level

◆ ExplicitCentralDifferencesScheme() [4/4]

template<class TSparseSpace , class TDenseSpace >
Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::ExplicitCentralDifferencesScheme ( Parameters  rParameters = Parameters(R"({})"))
inline

Constructor with parameters.

The ExplicitCentralDifferencesScheme method

Parameters
rParametersThe parameters containing the configuration parameters
Warning
time_step_prediction_level should be an integer

◆ ~ExplicitCentralDifferencesScheme() [2/2]

template<class TSparseSpace , class TDenseSpace >
virtual Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::~ExplicitCentralDifferencesScheme ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ AddDynamicsToRHS() [1/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::AddDynamicsToRHS ( Condition::Pointer  rCurrentCondition,
LocalSystemVectorType rRHS_Contribution,
LocalSystemMatrixType rD,
ProcessInfo rCurrentProcessInfo 
)
inlineprotected

It adds the dynamic RHS contribution of the condition: b - D*v

Parameters
rCurrentConditionThe condition to compute
rRHS_ContributionThe dynamic contribution for the RHS
rDThe damping matrix
rCurrentProcessInfoThe current process info instance

◆ AddDynamicsToRHS() [2/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::AddDynamicsToRHS ( Element::Pointer  rCurrentElement,
LocalSystemVectorType rRHS_Contribution,
LocalSystemMatrixType rD,
ProcessInfo rCurrentProcessInfo 
)
inlineprotected

It adds the dynamic RHS contribution of the condition: b - D*v

Parameters
rCurrentElementThe element to compute
rRHS_ContributionThe dynamic contribution for the RHS
rDThe damping matrix
rCurrentProcessInfoThe current process info instance

◆ Calculate_RHS_Contribution()

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::Calculate_RHS_Contribution ( Element::Pointer  rCurrentElement,
LocalSystemVectorType rRHS_Contribution,
Element::EquationIdVectorType rEquationId,
ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

Functions that calculates the RHS of a "element" object

Parameters
rCurrentElementThe element to compute
rRHS_ContributionThe RHS vector contribution
rEquationIdThe ID's of the condition degrees of freedom
rCurrentProcessInfoThe current process info instance

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

◆ CalculateAndAddRHS()

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::CalculateAndAddRHS ( ModelPart rModelPart)
inline

◆ CalculateDeltaTime()

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::CalculateDeltaTime ( ModelPart rModelPart)
inlineprotected

◆ CalculateRHSContribution() [1/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::CalculateRHSContribution ( Condition rCurrentCondition,
LocalSystemVectorType RHS_Contribution,
Element::EquationIdVectorType EquationId,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

Functions that calculates the RHS of a "condition" object.

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

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

◆ CalculateRHSContribution() [2/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::CalculateRHSContribution ( Element rCurrentElement,
LocalSystemVectorType RHS_Contribution,
Element::EquationIdVectorType EquationId,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

This function is designed to calculate just the RHS contribution.

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

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

◆ Check() [1/2]

template<class TSparseSpace , class TDenseSpace >
int Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::Check ( const ModelPart rModelPart) const
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.

Parameters
rModelPartThe model of the problem to solve
Returns
Zero means all ok

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

◆ Check() [2/2]

template<class TSparseSpace , class TDenseSpace >
int Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::Check ( ModelPart rModelPart)
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.

Parameters
rModelPart
Returns
0 all ok

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

◆ Clone()

template<class TSparseSpace , class TDenseSpace >
BasePointerType Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::Clone ( )
inlineoverridevirtual

Clone.

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

◆ Condition_Calculate_RHS_Contribution()

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::Condition_Calculate_RHS_Contribution ( Condition::Pointer  rCurrentCondition,
LocalSystemVectorType rRHS_Contribution,
Element::EquationIdVectorType rEquationId,
ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

Functions that calculates the RHS of a "condition" object

Parameters
rCurrentConditionThe condition to compute
rRHS_ContributionThe RHS vector contribution
rEquationIdThe ID's of the condition degrees of freedom
rCurrentProcessInfoThe current process info instance

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

◆ GetFirstDerivativesVector() [1/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::GetFirstDerivativesVector ( Condition::Pointer  rCurrentCondition,
Vector rValues 
)
inlineprotected

Obtain explicit first derivatives (velocity)

◆ GetFirstDerivativesVector() [2/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::GetFirstDerivativesVector ( Element::Pointer  rCurrentElement,
Vector rValues 
)
inlineprotected

Obtain explicit first derivatives (velocity)

◆ Initialize() [1/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< 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 >.

◆ Initialize() [2/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< 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 of the problem to solve

Working in 2D/3D (the definition of DOMAIN_SIZE is check in the Check method)

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

◆ InitializeExplicitScheme() [1/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::InitializeExplicitScheme ( ModelPart rModelPart)
inlineprotected

◆ InitializeExplicitScheme() [2/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::InitializeExplicitScheme ( ModelPart rModelPart,
const SizeType  DomainSize = 3 
)
inline

This method initializes some rutines related with the explicit scheme.

Parameters
rModelPartThe model of the problem to solve
DomainSizeThe current dimention of the problem

The array of ndoes

Initialize all nodes

◆ InitializeResidual() [1/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::InitializeResidual ( ModelPart rModelPart)
inlineprotected

◆ InitializeResidual() [2/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::InitializeResidual ( ModelPart rModelPart)
inline

This method initializes the residual in the nodes of the model part.

Parameters
rModelPartThe model of the problem to solve

◆ InitializeSolutionStep() [1/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::InitializeSolutionStep ( ModelPart rModelPart)
inlineoverridevirtual

It initializes time step solution. Only for reasons if the time step solution is restarted

Parameters
rModelPartThe model of the problem to solve
rALHS matrix
rDxIncremental update of primary variables
rbRHS Vector

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

◆ InitializeSolutionStep() [2/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::InitializeSolutionStep ( ModelPart rModelPart,
TSystemMatrixType rA,
TSystemVectorType rDx,
TSystemVectorType rb 
)
inlineoverridevirtual

It initializes time step solution. Only for reasons if the time step solution is restarted.

Parameters
rModelPartThe model of the problem to solve
rALHS matrix
rDxIncremental update of primary variables
rbRHS Vector
Todo:
I cannot find the formula for the higher orders with variable time step. I tried to deduce by myself but the result was very unstable

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

◆ KRATOS_CLASS_POINTER_DEFINITION() [1/2]

template<class TSparseSpace , class TDenseSpace >
Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::KRATOS_CLASS_POINTER_DEFINITION ( ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >  )

◆ KRATOS_CLASS_POINTER_DEFINITION() [2/2]

template<class TSparseSpace , class TDenseSpace >
Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::KRATOS_CLASS_POINTER_DEFINITION ( ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >  )

Counted pointer of ExplicitCentralDifferencesScheme.

◆ Predict()

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< 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 >.

◆ SchemeCustomInitialization() [1/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::SchemeCustomInitialization ( ModelPart rModelPart)
inlineprotected

◆ SchemeCustomInitialization() [2/2]

template<class TSparseSpace , class TDenseSpace >
virtual void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::SchemeCustomInitialization ( ModelPart rModelPart,
const SizeType  DomainSize = 3 
)
inlinevirtual

This method performs some custom operations to initialize the scheme.

Parameters
rModelPartThe model of the problem to solve
DomainSizeThe current dimention of the problem

◆ Update() [1/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::Update ( ModelPart rModelPart,
DofsArrayType rDofSet,
SystemVectorType rDx 
)
inlineoverridevirtual

Performing the update of the solution. incremental update within newton iteration. It updates the state variables at the end of the time step: u_{n+1}^{k+1}= u_{n+1}^{k}+ \Delta u

Parameters
rModelPart
rDofSetset of all primary variables
rDxincremental update of primary variables

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

◆ Update() [2/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::Update ( ModelPart rModelPart,
DofsArrayType rDofSet,
TSystemMatrixType rA,
TSystemVectorType rDx,
TSystemVectorType rb 
)
inlineoverridevirtual

Performing the update of the solution.

Parameters
rModelPartThe model of the problem to solve
rDofSetSet of all primary variables
rALHS matrix
rDxincremental update of primary variables
rbRHS Vector

Working in 2D/3D (the definition of DOMAIN_SIZE is check in the Check method)

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

◆ UpdateRotationalDegreesOfFreedom()

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::UpdateRotationalDegreesOfFreedom ( NodeIterator  itCurrentNode,
const IndexType  RotationPosition,
const SizeType  DomainSize = 3 
)
inline

This method updates the rotation DoF.

Parameters
itCurrentNodeThe iterator of the current node
RotationPositionThe position of the rotation dof on the database
DomainSizeThe current dimention of the problem

◆ UpdateTranslationalDegreesOfFreedom()

template<class TSparseSpace , class TDenseSpace >
void Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::UpdateTranslationalDegreesOfFreedom ( NodeIterator  itCurrentNode,
const IndexType  DisplacementPosition,
const SizeType  DomainSize = 3 
)
inline

This method updates the translation DoF.

Parameters
itCurrentNodeThe iterator of the current node
DisplacementPositionThe position of the displacement dof on the database
DomainSizeThe current dimention of the problem

Member Data Documentation

◆ mDeltaTime

template<class TSparseSpace , class TDenseSpace >
DeltaTimeParameters Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::mDeltaTime
protected

This struct contains the details of the time variables.

◆ mMatrix

template<class TSparseSpace , class TDenseSpace >
std::vector<Matrix> Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::mMatrix
protected

◆ mTime

template<class TSparseSpace , class TDenseSpace >
TimeVariables Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::mTime
protected

◆ mVector

template<class TSparseSpace , class TDenseSpace >
std::vector<Vector> Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::mVector
protected

◆ numerical_limit

template<class TSparseSpace , class TDenseSpace >
constexpr double Kratos::ExplicitCentralDifferencesScheme< TSparseSpace, TDenseSpace >::numerical_limit = std::numeric_limits<double>::epsilon()
staticconstexpr

The definition of the numerical limit.


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