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::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace > Class Template Reference

BDF integration scheme (for dynamic problems) with flux correction for extra diffusion to ensure monotonic solutions. More...

#include <flux_corrected_shallow_water_scheme.h>

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

Public Member Functions

Life Cycle
 FluxCorrectedShallowWaterScheme (const std::size_t Order=2, bool UpdateVelocities=false)
 
 FluxCorrectedShallowWaterScheme (Parameters ThisParameters)
 
 FluxCorrectedShallowWaterScheme (FluxCorrectedShallowWaterScheme &rOther)
 
BaseTypePointer Clone () override
 
 ~FluxCorrectedShallowWaterScheme () override
 
Operations
void Initialize (ModelPart &rModelPart) override
 This is the place to initialize the Scheme. More...
 
void InitializeSolutionStep (ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override
 It initializes the cumulative corrections variable. More...
 
void InitializeNonLinIteration (ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override
 It initializes a non-linear iteration (for the element) More...
 
void CalculateSystemContributions (Element &rCurrentElement, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override
 This function is designed to be called in the builder and solver to introduce the selected time integration scheme. More...
 
void CalculateRHSContribution (Element &rCurrentElement, LocalSystemVectorType &rRHS_Contribution, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override
 This function is designed to calculate just the RHS contribution. More...
 
void CalculateSystemContributions (Condition &rCurrentCondition, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override
 This function is designed to be called in the builder and solver to introduce the selected time integration scheme. More...
 
void CalculateRHSContribution (Condition &rCurrentCondition, LocalSystemVectorType &rRHS_Contribution, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override
 This function is designed to calculate just the RHS contribution. More...
 
Input and output
std::string Info () const override
 Turn back information as a string. More...
 
- Public Member Functions inherited from Kratos::ShallowWaterResidualBasedBDFScheme< TSparseSpace, TDenseSpace >
 ShallowWaterResidualBasedBDFScheme (const std::size_t Order=2, bool UpdateVelocities=false)
 
 ShallowWaterResidualBasedBDFScheme (Parameters ThisParameters)
 
 ShallowWaterResidualBasedBDFScheme (ShallowWaterResidualBasedBDFScheme &rOther)
 
BaseType::Pointer Clone () override
 
 ~ShallowWaterResidualBasedBDFScheme () override
 
void Update (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override
 Performing the update of the solution within newton iteration. More...
 
void Predict (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override
 Performing the prediction of the solution. More...
 
void CalculateSystemContributions (Element &rCurrentElement, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override
 This function is designed to be called in the builder and solver to introduce the selected time integration scheme. More...
 
void CalculateRHSContribution (Element &rCurrentElement, LocalSystemVectorType &rRHS_Contribution, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override
 This function is designed to calculate just the RHS contribution. More...
 
void CalculateSystemContributions (Condition &rCurrentCondition, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override
 This function is designed to be called in the builder and solver to introduce the selected time integration scheme. More...
 
void CalculateRHSContribution (Condition &rCurrentCondition, LocalSystemVectorType &rRHS_Contribution, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override
 This function is designed to calculate just the RHS contribution. More...
 
void Initialize (ModelPart &rModelPart) override
 Initialize the nodal area and the derivatives recovery. More...
 
void InitializeNonLinIteration (ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override
 Calculate the global projection of the dispersive field. More...
 
void Clear () override
 Free memory allocated by this class. More...
 
Parameters GetDefaultParameters () const override
 This method provides the defaults parameters to avoid conflicts between the different constructors. More...
 
std::string Info () const override
 Turn back information as a string. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (ShallowWaterResidualBasedBDFScheme)
 
- Public Member Functions inherited from Kratos::ResidualBasedBDFScheme< TSparseSpace, TDenseSpace >
 ResidualBasedBDFScheme (const std::size_t Order=2)
 Constructor. The BDF method. More...
 
 ResidualBasedBDFScheme (ResidualBasedBDFScheme &rOther)
 
 ~ResidualBasedBDFScheme () override
 
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 PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (ResidualBasedBDFScheme)
 
- Public Member Functions inherited from Kratos::ResidualBasedImplicitTimeScheme< TSparseSpace, TDenseSpace >
 ResidualBasedImplicitTimeScheme ()
 
 ResidualBasedImplicitTimeScheme (Parameters ThisParameters)
 Constructor. The implicit method method. More...
 
 ResidualBasedImplicitTimeScheme (ResidualBasedImplicitTimeScheme &rOther)
 
 ~ResidualBasedImplicitTimeScheme () override
 
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 PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (ResidualBasedImplicitTimeScheme)
 
- Public Member Functions inherited from Kratos::Scheme< TSparseSpace, TDenseSpace >
 Scheme ()
 Default Constructor. More...
 
 Scheme (Parameters ThisParameters)
 Constructor with Parameters. More...
 
 Scheme (Scheme &rOther)
 
virtual ~Scheme ()
 
 KRATOS_CLASS_POINTER_DEFINITION (Scheme)
 Pointer definition of Scheme. More...
 
virtual ClassType::Pointer Create (Parameters ThisParameters) const
 Create method. More...
 
bool SchemeIsInitialized ()
 This method returns if the scheme is initialized. More...
 
void SetSchemeIsInitialized (bool SchemeIsInitializedFlag=true)
 This method sets if the elements have been initialized or not (true by default) More...
 
bool ElementsAreInitialized ()
 This method returns if the elements are initialized. More...
 
void SetElementsAreInitialized (bool ElementsAreInitializedFlag=true)
 This method sets if the elements have been initialized or not (true by default) More...
 
bool ConditionsAreInitialized ()
 This method returns if the conditions are initialized. More...
 
void SetConditionsAreInitialized (bool ConditionsAreInitializedFlag=true)
 This method sets if the conditions have been initialized or not (true by default) More...
 
virtual void InitializeElements (ModelPart &rModelPart)
 This is the place to initialize the elements. More...
 
virtual void InitializeConditions (ModelPart &rModelPart)
 This is the place to initialize the conditions. More...
 
virtual void FinalizeSolutionStep (ModelPart &rModelPart, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b)
 Function called once at the end of a solution step, after convergence is reached if an iterative process is needed. More...
 
virtual void FinalizeNonLinIteration (ModelPart &rModelPart, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b)
 Function to be called when it is needed to finalize an iteration. It is designed to be called at the end of each non linear iteration. More...
 
virtual void CalculateOutputData (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b)
 Functions to be called to prepare the data needed for the output of results. More...
 
virtual void CleanOutputData ()
 Functions that cleans the results data. More...
 
virtual void Clean ()
 This function is intended to be called at the end of the solution step to clean up memory storage not needed after the end of the solution step. More...
 
virtual int Check (ModelPart &rModelPart)
 
virtual void CalculateLHSContribution (Element &rElement, LocalSystemMatrixType &LHS_Contribution, Element::EquationIdVectorType &rEquationIdVector, const ProcessInfo &rCurrentProcessInfo)
 This function is designed to calculate just the LHS contribution. More...
 
virtual void CalculateLHSContribution (Condition &rCondition, LocalSystemMatrixType &LHS_Contribution, Element::EquationIdVectorType &rEquationIdVector, const ProcessInfo &rCurrentProcessInfo)
 Functions totally analogous to the precedent but applied to the "condition" objects. More...
 
virtual void EquationId (const Element &rElement, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo)
 This method gets the eqaution id corresponding to the current element. More...
 
virtual void EquationId (const Condition &rCondition, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo)
 Functions totally analogous to the precedent but applied to the "condition" objects. More...
 
virtual void GetDofList (const Element &rElement, Element::DofsVectorType &rDofList, const ProcessInfo &rCurrentProcessInfo)
 Function that returns the list of Degrees of freedom to be assembled in the system for a Given element. More...
 
virtual void GetDofList (const Condition &rCondition, Element::DofsVectorType &rDofList, const ProcessInfo &rCurrentProcessInfo)
 Function that returns the list of Degrees of freedom to be assembled in the system for a Given condition. More...
 

Protected Attributes

Protected member Variables
std::vector< MatrixmMl
 
std::vector< Vector > & mrDotUn0 = BDFBaseType::mVector.dotun0
 
std::vector< Vector > & mrUn0 = BDFBaseType::mVector.dot2un0
 
std::vector< Matrix > & mrMc = ImplicitBaseType::mMatrix.M
 
std::vector< Matrix > & mrD = ImplicitBaseType::mMatrix.D
 
FluxLimiter< LocalSystemVectorTypemLimiters
 
- Protected Attributes inherited from Kratos::ShallowWaterResidualBasedBDFScheme< TSparseSpace, TDenseSpace >
TSparseSpace::DofUpdaterPointerType mpDofUpdater = TSparseSpace::CreateDofUpdater()
 
FlowRateSlipToolType mRotationTool
 
bool mUpdateVelocities
 
bool mProjectDispersiveField
 
std::vector< const Variable< double > * > mVariables
 
std::vector< const Variable< double > * > mDerivativeVariables
 
- Protected Attributes inherited from Kratos::ResidualBasedBDFScheme< TSparseSpace, TDenseSpace >
const std::size_t mOrder
 
Vector mBDF
 The integration order. More...
 
GeneralVectors mVector
 The BDF coefficients. More...
 
Kratos::unique_ptr< TimeDiscretization::BDFmpBDFUtility
 The structure containing the derivatives. More...
 
- Protected Attributes inherited from Kratos::ResidualBasedImplicitTimeScheme< TSparseSpace, TDenseSpace >
GeneralMatrices mMatrix
 
- Protected Attributes inherited from Kratos::Scheme< TSparseSpace, TDenseSpace >
bool mSchemeIsInitialized
 
bool mElementsAreInitialized
 Flag to be used in controlling if the Scheme has been initialized or not. More...
 
bool mConditionsAreInitialized
 Flag taking in account if the elements were initialized correctly or not. More...
 

Type Definitions

typedef ShallowWaterResidualBasedBDFScheme< TSparseSpace, TDenseSpace > SWBaseType
 
typedef SWBaseType::BDFBaseType BDFBaseType
 
typedef BDFBaseType::ImplicitBaseType ImplicitBaseType
 
typedef ImplicitBaseType::BaseType BaseType
 
typedef BaseType::Pointer BaseTypePointer
 
typedef BaseType::DofsArrayType DofsArrayType
 
typedef BaseType::TSystemMatrixType TSystemMatrixType
 
typedef BaseType::TSystemVectorType TSystemVectorType
 
typedef BaseType::LocalSystemVectorType LocalSystemVectorType
 
typedef BaseType::LocalSystemMatrixType LocalSystemMatrixType
 
typedef ModelPart::NodeType NodeType
 
 KRATOS_CLASS_POINTER_DEFINITION (FluxCorrectedShallowWaterScheme)
 

Protected Operations

void AddMonotonicDynamicsToLHS (LocalSystemMatrixType &rLHS_Contribution, LocalSystemMatrixType &rD, LocalSystemMatrixType &rM)
 It adds the dynamic LHS contribution of the elements. More...
 
void AddMonotonicDynamicsToRHS (LocalSystemVectorType &rRHS_Contribution, LocalSystemMatrixType &rD, LocalSystemMatrixType &rM, LocalSystemVectorType &rU, LocalSystemVectorType &rDotU)
 It adds the dynamic RHS contribution of the elements. More...
 
template<class EntityType >
void ComputeAntiFluxes (EntityType &rEntity, const ProcessInfo &rProcessInfo)
 
void ComputeLimiters (NodeType &rNode)
 
template<class EntityType >
void AddFluxCorrection (EntityType &rEntity, LocalSystemVectorType &rRHS, const LocalSystemMatrixType &rMc, const LocalSystemMatrixType &rMl, const LocalSystemMatrixType &rD, const LocalSystemVectorType &rU, const LocalSystemVectorType &rDotU)
 
template<class EntityType >
void AddFluxCorrection (EntityType &rEntity, LocalSystemMatrixType &rLHS, LocalSystemVectorType &rRHS, const LocalSystemMatrixType &rMc, const LocalSystemMatrixType &rMl, const LocalSystemMatrixType &rD, const LocalSystemVectorType &rU, const LocalSystemVectorType &rDotU)
 
void ComputeLumpedMassMatrix (const LocalSystemMatrixType &rConsistentMassMatrix, LocalSystemMatrixType &rLumpedMassMatrix)
 
static void ValidateThisParameters (Parameters &rThisParameters)
 
static std::size_t GetOrder (Parameters &rThisParameters)
 
static bool GetUpdateVelocities (Parameters &rThisParameters)
 
static Parameters GetLimiterParameters (Parameters &rThisParameters)
 

Additional Inherited Members

- Public Types inherited from Kratos::ShallowWaterResidualBasedBDFScheme< TSparseSpace, TDenseSpace >
typedef Scheme< TSparseSpace, TDenseSpace > BaseType
 
typedef ResidualBasedBDFScheme< TSparseSpace, TDenseSpace > BDFBaseType
 
typedef BDFBaseType::DofsArrayType DofsArrayType
 
typedef BDFBaseType::TSystemMatrixType TSystemMatrixType
 
typedef BDFBaseType::TSystemVectorType TSystemVectorType
 
typedef BDFBaseType::LocalSystemVectorType LocalSystemVectorType
 
typedef BDFBaseType::LocalSystemMatrixType LocalSystemMatrixType
 
typedef ModelPart::NodesContainerType NodesArrayType
 
typedef ModelPart::NodeType NodeType
 
typedef FlowRateSlipUtility< LocalSystemMatrixType, LocalSystemVectorType, doubleFlowRateSlipToolType
 
- Public Types inherited from Kratos::ResidualBasedBDFScheme< TSparseSpace, TDenseSpace >
typedef Scheme< TSparseSpace, TDenseSpace > BaseType
 
typedef BaseType::Pointer BaseTypePointer
 
typedef ResidualBasedImplicitTimeScheme< TSparseSpace, TDenseSpace > ImplicitBaseType
 
typedef ImplicitBaseType::TDataType TDataType
 
typedef ImplicitBaseType::DofsArrayType DofsArrayType
 
typedef Element::DofsVectorType DofsVectorType
 
typedef ImplicitBaseType::TSystemMatrixType TSystemMatrixType
 
typedef ImplicitBaseType::TSystemVectorType TSystemVectorType
 
typedef ImplicitBaseType::LocalSystemVectorType LocalSystemVectorType
 
typedef ImplicitBaseType::LocalSystemMatrixType LocalSystemMatrixType
 
typedef ModelPart::NodesContainerType NodesArrayType
 
- Public Types inherited from Kratos::ResidualBasedImplicitTimeScheme< TSparseSpace, TDenseSpace >
typedef Scheme< TSparseSpace, TDenseSpace > BaseType
 Base class definition. More...
 
typedef BaseType::DofsArrayType DofsArrayType
 DoF array type definition. More...
 
typedef Element::DofsVectorType DofsVectorType
 DoF vector type definition. More...
 
typedef BaseType::TDataType TDataType
 Data type definition. More...
 
typedef BaseType::TSystemMatrixType TSystemMatrixType
 Matrix type definition. More...
 
typedef BaseType::TSystemVectorType TSystemVectorType
 Vector type definition. More...
 
typedef BaseType::LocalSystemVectorType LocalSystemVectorType
 Local system matrix type definition. More...
 
typedef BaseType::LocalSystemMatrixType LocalSystemMatrixType
 Local system vector type definition. More...
 
typedef ModelPart::NodesContainerType NodesArrayType
 Nodes containers definition. More...
 
typedef ModelPart::ElementsContainerType ElementsArrayType
 Elements containers definition. More...
 
typedef ModelPart::ConditionsContainerType ConditionsArrayType
 Conditions containers definition. More...
 
typedef std::size_t IndexType
 Index type definition. More...
 
- Public Types inherited from Kratos::Scheme< TSparseSpace, TDenseSpace >
using ClassType = Scheme< TSparseSpace, TDenseSpace >
 The definition of the current class. More...
 
using TDataType = typename TSparseSpace::DataType
 Data type definition. More...
 
using TSystemMatrixType = typename TSparseSpace::MatrixType
 Matrix type definition. More...
 
using TSystemVectorType = typename TSparseSpace::VectorType
 Vector type definition. More...
 
using LocalSystemMatrixType = typename TDenseSpace::MatrixType
 Local system matrix type definition. More...
 
using LocalSystemVectorType = typename TDenseSpace::VectorType
 Local system vector type definition. More...
 
using TDofType = Dof< double >
 DoF type definition. More...
 
using DofsArrayType = ModelPart::DofsArrayType
 DoF array type definition. More...
 
using ElementsArrayType = ModelPart::ElementsContainerType
 Elements containers definition. More...
 
using ConditionsArrayType = ModelPart::ConditionsContainerType
 Conditions containers definition. More...
 
- Static Public Member Functions inherited from Kratos::Scheme< TSparseSpace, TDenseSpace >
static std::string Name ()
 Returns the name of the class as used in the settings (snake_case format) More...
 
- Static Public Attributes inherited from Kratos::ResidualBasedBDFScheme< TSparseSpace, TDenseSpace >
static constexpr double ZeroTolerance = std::numeric_limits<double>::epsilon()
 Definition of epsilon. More...
 
- Protected Member Functions inherited from Kratos::ShallowWaterResidualBasedBDFScheme< TSparseSpace, TDenseSpace >
Parameters ValidateAndAssignParameters (Parameters ThisParameters, const Parameters DefaultParameters) const override
 This method validate and assign default parameters. More...
 
void AssignSettings (const Parameters ThisParameters) override
 This method assigns settings to member variables. More...
 
void UpdateFirstDerivative (NodesArrayType::iterator itNode) override
 Updating first time derivative. More...
 
void UpdateSecondDerivative (NodesArrayType::iterator itNode) override
 Updating second time derivative. More...
 
void UpdateVelocities (ModelPart &rModelPart)
 Updating the velocities. More...
 
void AddDynamicsToLHS (LocalSystemMatrixType &rLHS_Contribution, LocalSystemMatrixType &rD, LocalSystemMatrixType &rM, const ProcessInfo &rCurrentProcessInfo) override
 It adds the dynamic LHS contribution of the elements. More...
 
void AddDynamicsToRHS (Element &rElement, LocalSystemVectorType &rRHS_Contribution, LocalSystemMatrixType &rD, LocalSystemMatrixType &rM, const ProcessInfo &rCurrentProcessInfo) override
 It adds the dynamic RHS contribution of the elements. More...
 
void AddDynamicsToRHS (Condition &rCondition, LocalSystemVectorType &rRHS_Contribution, LocalSystemMatrixType &rD, LocalSystemMatrixType &rM, const ProcessInfo &rCurrentProcessInfo) override
 It adds the dynamic RHS contribution of the condition. More...
 
void ApplyLaplacianBoundaryConditions (ModelPart &rModelPart)
 
- Protected Member Functions inherited from Kratos::ResidualBasedBDFScheme< TSparseSpace, TDenseSpace >
void UpdateDerivatives (ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb)
 Performing the update of the derivatives. More...
 
template<class TObjectType >
void TemplateAddDynamicsToRHS (TObjectType &rObject, LocalSystemVectorType &rRHS_Contribution, LocalSystemMatrixType &rD, LocalSystemMatrixType &rM, const ProcessInfo &rCurrentProcessInfo)
 It adds the dynamic RHS contribution of the objects. More...
 
Protected Operations
Protected Operations

Detailed Description

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

BDF integration scheme (for dynamic problems) with flux correction for extra diffusion to ensure monotonic solutions.

The \(n\) order Backward Differentiation Formula (BDF) method is a two step \(n\) order accurate method. This scheme is designed to solve a system of the type:

\[ \mathbf{M} \frac{du_{n0}}{dt} + \mathbf{K} u_{n0} = \mathbf{f}_{ext} \]

Author
Miguel Maso Sotomayor

Member Typedef Documentation

◆ BaseType

template<class TSparseSpace , class TDenseSpace >
typedef ImplicitBaseType::BaseType Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::BaseType

◆ BaseTypePointer

template<class TSparseSpace , class TDenseSpace >
typedef BaseType::Pointer Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::BaseTypePointer

◆ BDFBaseType

template<class TSparseSpace , class TDenseSpace >
typedef SWBaseType::BDFBaseType Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::BDFBaseType

◆ DofsArrayType

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

◆ ImplicitBaseType

template<class TSparseSpace , class TDenseSpace >
typedef BDFBaseType::ImplicitBaseType Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::ImplicitBaseType

◆ LocalSystemMatrixType

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

◆ LocalSystemVectorType

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

◆ NodeType

template<class TSparseSpace , class TDenseSpace >
typedef ModelPart::NodeType Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::NodeType

◆ SWBaseType

template<class TSparseSpace , class TDenseSpace >
typedef ShallowWaterResidualBasedBDFScheme<TSparseSpace,TDenseSpace> Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::SWBaseType

◆ TSystemMatrixType

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

◆ TSystemVectorType

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

Constructor & Destructor Documentation

◆ FluxCorrectedShallowWaterScheme() [1/3]

template<class TSparseSpace , class TDenseSpace >
Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::FluxCorrectedShallowWaterScheme ( const std::size_t  Order = 2,
bool  UpdateVelocities = false 
)
inlineexplicit

◆ FluxCorrectedShallowWaterScheme() [2/3]

template<class TSparseSpace , class TDenseSpace >
Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::FluxCorrectedShallowWaterScheme ( Parameters  ThisParameters)
inlineexplicit

◆ FluxCorrectedShallowWaterScheme() [3/3]

template<class TSparseSpace , class TDenseSpace >
Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::FluxCorrectedShallowWaterScheme ( FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace > &  rOther)
inlineexplicit

◆ ~FluxCorrectedShallowWaterScheme()

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

Member Function Documentation

◆ AddFluxCorrection() [1/2]

template<class TSparseSpace , class TDenseSpace >
template<class EntityType >
void Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::AddFluxCorrection ( EntityType &  rEntity,
LocalSystemMatrixType rLHS,
LocalSystemVectorType rRHS,
const LocalSystemMatrixType rMc,
const LocalSystemMatrixType rMl,
const LocalSystemMatrixType rD,
const LocalSystemVectorType rU,
const LocalSystemVectorType rDotU 
)
inlineprotected

◆ AddFluxCorrection() [2/2]

template<class TSparseSpace , class TDenseSpace >
template<class EntityType >
void Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::AddFluxCorrection ( EntityType &  rEntity,
LocalSystemVectorType rRHS,
const LocalSystemMatrixType rMc,
const LocalSystemMatrixType rMl,
const LocalSystemMatrixType rD,
const LocalSystemVectorType rU,
const LocalSystemVectorType rDotU 
)
inlineprotected

◆ AddMonotonicDynamicsToLHS()

template<class TSparseSpace , class TDenseSpace >
void Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::AddMonotonicDynamicsToLHS ( LocalSystemMatrixType rLHS_Contribution,
LocalSystemMatrixType rD,
LocalSystemMatrixType rM 
)
inlineprotected

It adds the dynamic LHS contribution of the elements.

Parameters
rLHS_ContributionThe dynamic contribution for the LHS
rDThe diffusion matrix
rMThe mass matrix

◆ AddMonotonicDynamicsToRHS()

template<class TSparseSpace , class TDenseSpace >
void Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::AddMonotonicDynamicsToRHS ( LocalSystemVectorType rRHS_Contribution,
LocalSystemMatrixType rD,
LocalSystemMatrixType rM,
LocalSystemVectorType rU,
LocalSystemVectorType rDotU 
)
inlineprotected

It adds the dynamic RHS contribution of the elements.

Parameters
rRHS_ContributionThe dynamic contribution for the RHS
rDThe diffusion matrix
rMThe mass matrix
rUThe current unknowns vector
rDotUThe fisrst derivatives vector

◆ CalculateRHSContribution() [1/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::CalculateRHSContribution ( Condition rCurrentCondition,
LocalSystemVectorType rRHS_Contribution,
Element::EquationIdVectorType rEquationId,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

This function is designed to calculate just the RHS contribution.

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

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

◆ CalculateRHSContribution() [2/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::CalculateRHSContribution ( Element rCurrentElement,
LocalSystemVectorType rRHS_Contribution,
Element::EquationIdVectorType rEquationId,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

This function is designed to calculate just the RHS contribution.

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

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

◆ CalculateSystemContributions() [1/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::CalculateSystemContributions ( Condition rCurrentCondition,
LocalSystemMatrixType rLHS_Contribution,
LocalSystemVectorType rRHS_Contribution,
Element::EquationIdVectorType rEquationId,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

This function is designed to be called in the builder and solver to introduce the selected time integration scheme.

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

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

◆ CalculateSystemContributions() [2/2]

template<class TSparseSpace , class TDenseSpace >
void Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::CalculateSystemContributions ( Element rCurrentElement,
LocalSystemMatrixType rLHS_Contribution,
LocalSystemVectorType rRHS_Contribution,
Element::EquationIdVectorType rEquationId,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

This function is designed to be called in the builder and solver to introduce the selected time integration scheme.

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

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

◆ Clone()

template<class TSparseSpace , class TDenseSpace >
BaseTypePointer Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::Clone ( )
inlineoverridevirtual

◆ ComputeAntiFluxes()

template<class TSparseSpace , class TDenseSpace >
template<class EntityType >
void Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::ComputeAntiFluxes ( EntityType &  rEntity,
const ProcessInfo rProcessInfo 
)
inlineprotected

◆ ComputeLimiters()

template<class TSparseSpace , class TDenseSpace >
void Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::ComputeLimiters ( NodeType rNode)
inlineprotected

◆ ComputeLumpedMassMatrix()

template<class TSparseSpace , class TDenseSpace >
void Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::ComputeLumpedMassMatrix ( const LocalSystemMatrixType rConsistentMassMatrix,
LocalSystemMatrixType rLumpedMassMatrix 
)
inlineprotected

◆ GetLimiterParameters()

template<class TSparseSpace , class TDenseSpace >
static Parameters Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::GetLimiterParameters ( Parameters rThisParameters)
inlinestaticprotected

◆ GetOrder()

template<class TSparseSpace , class TDenseSpace >
static std::size_t Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::GetOrder ( Parameters rThisParameters)
inlinestaticprotected

◆ GetUpdateVelocities()

template<class TSparseSpace , class TDenseSpace >
static bool Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::GetUpdateVelocities ( Parameters rThisParameters)
inlinestaticprotected

◆ Info()

template<class TSparseSpace , class TDenseSpace >
std::string Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::Info ( ) const
inlineoverridevirtual

Turn back information as a string.

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

◆ Initialize()

template<class TSparseSpace , class TDenseSpace >
void Kratos::FluxCorrectedShallowWaterScheme< 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::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::InitializeNonLinIteration ( ModelPart rModelPart,
TSystemMatrixType rA,
TSystemVectorType rDx,
TSystemVectorType rb 
)
inlineoverridevirtual

It initializes a non-linear iteration (for the element)

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::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::InitializeSolutionStep ( ModelPart rModelPart,
TSystemMatrixType rA,
TSystemVectorType rDx,
TSystemVectorType rb 
)
inlineoverridevirtual

It initializes the cumulative corrections variable.

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

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

◆ KRATOS_CLASS_POINTER_DEFINITION()

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

◆ ValidateThisParameters()

template<class TSparseSpace , class TDenseSpace >
static void Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::ValidateThisParameters ( Parameters rThisParameters)
inlinestaticprotected

Member Data Documentation

◆ mLimiters

template<class TSparseSpace , class TDenseSpace >
FluxLimiter<LocalSystemVectorType> Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::mLimiters
protected

◆ mMl

template<class TSparseSpace , class TDenseSpace >
std::vector<Matrix> Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::mMl
protected

◆ mrD

template<class TSparseSpace , class TDenseSpace >
std::vector<Matrix>& Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::mrD = ImplicitBaseType::mMatrix.D
protected

◆ mrDotUn0

template<class TSparseSpace , class TDenseSpace >
std::vector<Vector>& Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::mrDotUn0 = BDFBaseType::mVector.dotun0
protected

◆ mrMc

template<class TSparseSpace , class TDenseSpace >
std::vector<Matrix>& Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::mrMc = ImplicitBaseType::mMatrix.M
protected

◆ mrUn0

template<class TSparseSpace , class TDenseSpace >
std::vector<Vector>& Kratos::FluxCorrectedShallowWaterScheme< TSparseSpace, TDenseSpace >::mrUn0 = BDFBaseType::mVector.dot2un0
protected

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