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

An explicit forward euler scheme with a split of the inertial term. More...

#include <poro_explicit_vv_scheme.hpp>

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

Public Member Functions

Life Cycle
 PoroExplicitVVScheme ()
 Default constructor. More...
 
virtual ~PoroExplicitVVScheme ()
 
Operators
void InitializeExplicitScheme (ModelPart &rModelPart, const SizeType DomainSize=3) override
 This method initializes some rutines related with the explicit scheme. More...
 
void InitializeResidual (ModelPart &rModelPart) override
 This method initializes the residual in the nodes of the model part. More...
 
void Predict (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) override
 Performing the prediction of the solution. More...
 
virtual void PredictTranslationalDegreesOfFreedom (NodeIterator itCurrentNode, const IndexType DisplacementPosition, const SizeType DomainSize=3)
 This method updates the translation DoF. More...
 
void UpdateTranslationalDegreesOfFreedom (NodeIterator itCurrentNode, const IndexType DisplacementPosition, const SizeType DomainSize=3) override
 This method updates the translation DoF. 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...
 
- Public Member Functions inherited from Kratos::PoroExplicitCDScheme< TSparseSpace, TDenseSpace >
 PoroExplicitCDScheme ()
 Default constructor. More...
 
virtual ~PoroExplicitCDScheme ()
 
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 InitializeElements (ModelPart &rModelPart) override
 This is the place to initialize the elements. More...
 
virtual void SchemeCustomInitialization (ModelPart &rModelPart, const SizeType DomainSize=3)
 This method performs some custom operations to initialize the scheme. More...
 
void InitializeSolutionStep (ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override
 It initializes time step solution. Only for reasons if the time step solution is restarted. More...
 
void InitializeNonLinIteration (ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override
 It initializes the non-linear iteration. More...
 
virtual void CalculateAndAddRHS (ModelPart &rModelPart)
 
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 Update (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override
 Performing the update of the solution. More...
 
void FinalizeNonLinIteration (ModelPart &rModelPart, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) 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...
 
virtual void CalculateAndAddRHSFinal (ModelPart &rModelPart)
 
virtual void CalculateRHSContributionResidual (Element &rCurrentElement, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &EquationId, const ProcessInfo &rCurrentProcessInfo)
 This function is designed to calculate just the RHS contribution. More...
 
virtual void CalculateRHSContributionResidual (Condition &rCurrentCondition, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &EquationId, const ProcessInfo &rCurrentProcessInfo)
 Functions that calculates the RHS of a "condition" object. More...
 
void FinalizeSolutionStep (ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override
 Function called once at the end of a solution step, after convergence is reached if an iterative process is needed. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (PoroExplicitCDScheme)
 Counted pointer of PoroExplicitCDScheme. 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 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 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...
 

Type Definitions

typedef Scheme< TSparseSpace, TDenseSpace > BaseofBaseType
 The definition of the base type. More...
 
typedef PoroExplicitCDScheme< TSparseSpace, TDenseSpace > BaseType
 
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::ConditionsContainerType ConditionsArrayType
 
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 (PoroExplicitVVScheme)
 Counted pointer of PoroExplicitVVScheme. More...
 

Additional Inherited Members

- Public Types inherited from Kratos::PoroExplicitCDScheme< TSparseSpace, TDenseSpace >
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::ConditionsContainerType ConditionsArrayType
 
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...
 
- 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::PoroExplicitCDScheme< TSparseSpace, TDenseSpace >
static constexpr double numerical_limit = std::numeric_limits<double>::epsilon()
 The definition of the numerical limit. More...
 
- Protected Member Functions inherited from Kratos::Scheme< TSparseSpace, TDenseSpace >
virtual Parameters ValidateAndAssignParameters (Parameters ThisParameters, const Parameters DefaultParameters) const
 This method validate and assign default parameters. More...
 
virtual void AssignSettings (const Parameters ThisParameters)
 This method assigns settings to member variables. More...
 
- Protected Attributes inherited from Kratos::PoroExplicitCDScheme< TSparseSpace, TDenseSpace >
double mDeltaTime
 
double mAlpha
 
double mBeta
 
double mTheta
 
double mGCoefficient
 
- 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...
 

Detailed Description

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

An explicit forward euler scheme with a split of the inertial term.

Author
Ignasi de Pouplana

Member Typedef Documentation

◆ BaseofBaseType

template<class TSparseSpace , class TDenseSpace >
typedef Scheme<TSparseSpace, TDenseSpace> Kratos::PoroExplicitVVScheme< TSparseSpace, TDenseSpace >::BaseofBaseType

The definition of the base type.

◆ BaseType

template<class TSparseSpace , class TDenseSpace >
typedef PoroExplicitCDScheme<TSparseSpace, TDenseSpace> Kratos::PoroExplicitVVScheme< TSparseSpace, TDenseSpace >::BaseType

◆ ConditionsArrayType

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

◆ DofsArrayType

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

Some definitions related with the base class.

◆ ElementsArrayType

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

The arrays of elements and nodes.

◆ IndexType

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

Definition of the index type.

◆ LocalSystemVectorType

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

◆ NodeIterator

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

Definition fo the node iterator.

◆ NodesArrayType

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

◆ SizeType

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

Definition of the size type.

◆ TSystemMatrixType

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

◆ TSystemVectorType

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

Constructor & Destructor Documentation

◆ PoroExplicitVVScheme()

template<class TSparseSpace , class TDenseSpace >
Kratos::PoroExplicitVVScheme< TSparseSpace, TDenseSpace >::PoroExplicitVVScheme ( )
inline

Default constructor.

The PoroExplicitVVScheme method

◆ ~PoroExplicitVVScheme()

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

Destructor.

Member Function Documentation

◆ CalculateRHSContribution()

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

◆ InitializeExplicitScheme()

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

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

Initialise the database of the nodes

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

◆ InitializeResidual()

template<class TSparseSpace , class TDenseSpace >
void Kratos::PoroExplicitVVScheme< TSparseSpace, TDenseSpace >::InitializeResidual ( ModelPart rModelPart)
inlineoverridevirtual

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

Parameters
rModelPartThe model of the problem to solve

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

◆ KRATOS_CLASS_POINTER_DEFINITION()

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

Counted pointer of PoroExplicitVVScheme.

◆ Predict()

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

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

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

◆ PredictTranslationalDegreesOfFreedom()

template<class TSparseSpace , class TDenseSpace >
virtual void Kratos::PoroExplicitVVScheme< TSparseSpace, TDenseSpace >::PredictTranslationalDegreesOfFreedom ( NodeIterator  itCurrentNode,
const IndexType  DisplacementPosition,
const SizeType  DomainSize = 3 
)
inlinevirtual

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

◆ UpdateTranslationalDegreesOfFreedom()

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

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

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

Member Data Documentation

◆ numerical_limit

template<class TSparseSpace , class TDenseSpace >
constexpr double Kratos::PoroExplicitVVScheme< 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: