BDF integration scheme (for dynamic problems) with flux correction for extra diffusion to ensure monotonic solutions.
More...
|
|
| FluxCorrectedShallowWaterScheme (const std::size_t Order=2, bool UpdateVelocities=false) |
|
| FluxCorrectedShallowWaterScheme (Parameters ThisParameters) |
|
| FluxCorrectedShallowWaterScheme (FluxCorrectedShallowWaterScheme &rOther) |
|
BaseTypePointer | Clone () override |
|
| ~FluxCorrectedShallowWaterScheme () override |
|
|
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...
|
|
|
std::string | Info () const override |
| Turn back information as a string. More...
|
|
| 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) |
|
| 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) |
|
| 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) |
|
| 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...
|
|
|
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, double > | FlowRateSlipToolType |
|
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 |
|
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...
|
|
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 std::string | Name () |
| Returns the name of the class as used in the settings (snake_case format) More...
|
|
static constexpr double | ZeroTolerance = std::numeric_limits<double>::epsilon() |
| Definition of epsilon. More...
|
|
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) |
|
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...
|
|
|
|
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