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::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim > Class Template Reference

#include <residualbased_elimination_quasiincompresible_builder_and_solver.h>

Inheritance diagram for Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >:
Collaboration diagram for Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >:

Public Member Functions

Life Cycle
 ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver (typename TLinearSolver::Pointer pNewLinearSystemSolver)
 
 ~ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver () override
 
Operators
void BuildAndSolve (typename TSchemeType::Pointer pScheme, ModelPart &r_model_part, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b)
 Function to perform the building and solving phase at the same time. More...
 
void InitializeSolutionStep (ModelPart &r_model_part, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b)
 It applies certain operations at the system of equations at the beginning of the solution step. More...
 
void FinalizeSolutionStep (ModelPart &r_model_part, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b)
 It applies certain operations at the system of equations at the end of the solution step. More...
 
void SetUpDofSet (typename TSchemeType::Pointer pScheme, ModelPart &r_model_part)
 Builds the list of the DofSets involved in the problem by "asking" to each element and condition its Dofs. More...
 
void SetUpSystem (ModelPart &r_model_part)
 It organises the dofset in order to speed up the building phase. More...
 
void ResizeAndInitializeVectors (typename TSchemeType::Pointer pScheme, TSystemMatrixType &A, TSystemMatrixType &mD, TSystemVectorType &Dx, TSystemVectorType &b, TSystemMatrixType &mMconsistent, TSystemVectorType &mMdiagInv, ModelPart &rModelPart)
 
void Build (typename TSchemeType::Pointer pScheme, ModelPart &r_model_part, TSystemMatrixType &A, TSystemVectorType &b)
 equivalent (but generally faster) then performing BuildLHS and BuildRHS More...
 
Private Operations
void CreatePartition (unsigned int number_of_threads, const int number_of_rows, vector< unsigned int > &partitions)
 
void AssembleLHS (TSystemMatrixType &A, LocalSystemMatrixType &LHS_Contribution, Element::EquationIdVectorType &EquationId)
 
void AssembleRHS (TSystemVectorType &b, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &EquationId)
 
void CalculateReactions (typename TSchemeType::Pointer pScheme, ModelPart &r_model_part, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b)
 It computes the reactions of the system. More...
 
void BuildRHS (typename TSchemeType::Pointer pScheme, ModelPart &r_model_part, TSystemVectorType &b)
 Function to perform the build of the RHS. The vector could be sized as the total number of dofs or as the number of unrestrained ones. More...
 
void ConstructMatrixStructure (TSystemMatrixType &A, ModelPart &r_model_part)
 
void ConstructMatrixStructure_Mconsistent (TSystemMatrixType &Mconsistent, ModelPart &r_model_part)
 
void ConstructMatrixStructure_DivergenceMatrixD (TSystemMatrixType &mD, ModelPart &r_model_part)
 
void BuildAuxiliaries (TSystemMatrixType &mD, TSystemMatrixType &Mconsistent, TSystemVectorType &mMdiagInv, ModelPart &r_model_part)
 
void AssembleMassMatrices (TSystemMatrixType &Mconsistent, TSystemVectorType &mMdiagInv, ModelPart &r_model_part)
 
void calc_prod_precond_vec (TSystemVectorType &vec, TSystemVectorType &precond, TSystemVectorType &result)
 
void calc_GMinvD_prod (TSystemMatrixType &mD, TSystemVectorType &Minv, TSystemVectorType &x, TSystemVectorType &WorkArray, TSystemVectorType &destination)
 
void ReturnDx (TSystemVectorType &Dx, TSystemVectorType &xi)
 
void CalculatePreconditionerDiagonalMatrix (const TSystemMatrixType &D, const TSystemVectorType &Minv, const TSystemMatrixType &A, TSystemVectorType &preconditioner)
 
bool ConvergenceCheck (TSystemVectorType &residual, TSystemVectorType &b, const double &tolerance, const int &iter_number, const int &max_iter_number)
 
void ModifyForDirichlet (TSystemMatrixType &A, TSystemVectorType &b)
 
void CalculateNodalPressureForce (TSystemMatrixType &mD, TSystemVectorType &mMdiagInv, ModelPart &r_model_part)
 
void ComputePressureAtFreeSurface (ModelPart &r_model_part, double bulk_modulus, double density)
 
void SavePressureIteration (ModelPart &model_part)
 
void FractionalStepProjection (ModelPart &model_part, double alpha_bossak)
 
void UpdateAfterProjection (ModelPart &model_part, double alpha_bossak)
 
void UpdateVelocity (array_1d< double, 3 > &CurrentVelocity, const array_1d< double, 3 > &DeltaDisp, const array_1d< double, 3 > &OldVelocity, const array_1d< double, 3 > &OldAcceleration, double &ma1, double &ma4, double &ma5)
 
void UpdateAcceleration (array_1d< double, 3 > &CurrentAcceleration, const array_1d< double, 3 > &DeltaDisp, const array_1d< double, 3 > &OldVelocity, const array_1d< double, 3 > &OldAcceleration, double &ma0, double &ma2, double &ma3)
 
void UpdatePressuresNew (TSystemMatrixType &mMconsistent, TSystemVectorType &mMdiagInv, ModelPart &r_model_part, double bulk_modulus, double density)
 
void UpdatePressures (TSystemMatrixType &mD, TSystemMatrixType &mMconsistent, TSystemVectorType &mMdiagInv, ModelPart &r_model_part, double bulk_modulus, double density)
 
- Public Member Functions inherited from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >
 BuilderAndSolver ()
 Default constructor. More...
 
 BuilderAndSolver (typename TLinearSolver::Pointer pNewLinearSystemSolver, Parameters ThisParameters)
 Default constructor with Parameters. More...
 
 BuilderAndSolver (typename TLinearSolver::Pointer pNewLinearSystemSolver)
 Default constructor. More...
 
virtual ~BuilderAndSolver ()
 
virtual ClassType::Pointer Create (typename TLinearSolver::Pointer pNewLinearSystemSolver, Parameters ThisParameters) const
 Create method. More...
 
void SetEchoLevel (int Level)
 It sets the level of echo for the solving strategy. More...
 
int GetEchoLevel () const
 It returns the echo level. More...
 
virtual TSparseSpace::MatrixType & GetConstraintRelationMatrix ()
 This method returns constraint relation (T) matrix. More...
 
virtual TSparseSpace::VectorType & GetConstraintConstantVector ()
 This method returns constraint constant vector. More...
 
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 (BuilderAndSolver)
 Pointer definition of BuilderAndSolver. More...
 
bool GetCalculateReactionsFlag () const
 This method returns the flag mCalculateReactionsFlag. More...
 
void SetCalculateReactionsFlag (bool flag)
 This method sets the flag mCalculateReactionsFlag. More...
 
bool GetDofSetIsInitializedFlag () const
 This method returns the flag mDofSetIsInitialized. More...
 
void SetDofSetIsInitializedFlag (bool DofSetIsInitialized)
 This method sets the flag mDofSetIsInitialized. More...
 
bool GetReshapeMatrixFlag () const
 This method returns the flag mReshapeMatrixFlag. More...
 
void SetReshapeMatrixFlag (bool ReshapeMatrixFlag)
 This method sets the flag mReshapeMatrixFlag. More...
 
unsigned int GetEquationSystemSize () const
 This method returns the value mEquationSystemSize. More...
 
TLinearSolver::Pointer GetLinearSystemSolver () const
 This method return the linear solver used. More...
 
void SetLinearSystemSolver (typename TLinearSolver::Pointer pLinearSystemSolver)
 This method sets the linear solver to be used. More...
 
virtual void BuildLHS (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemMatrixType &rA)
 Function to perform the building of the LHS, depending on the implementation chosen the size of the matrix could be equal to the total number of Dofs or to the number unrestrained dofs. More...
 
virtual void BuildLHS_CompleteOnFreeRows (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemMatrixType &rA)
 It builds a rectangular matrix of size n*N where "n" is the number of unrestrained degrees of freedom and "N" is the total number of degrees of freedom involved. More...
 
virtual void BuildLHS_Complete (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemMatrixType &rA)
 It builds a matrix of size N*N where "N" is the total number of degrees of freedom involved. More...
 
virtual void SystemSolve (TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb)
 This is a call to the linear system solver. More...
 
virtual void BuildAndSolveLinearizedOnPreviousIteration (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb, const bool MoveMesh)
 Function to perform the building and solving phase at the same time Linearizing with the database at the old iteration. More...
 
virtual void BuildRHSAndSolve (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb)
 Corresponds to the previews, but the System's matrix is considered already built and only the RHS is built again. More...
 
virtual void ApplyDirichletConditions (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb)
 It applies the dirichlet conditions. This operation may be very heavy or completely unexpensive depending on the implementation chosen and on how the System Matrix is built. More...
 
virtual void ApplyDirichletConditions_LHS (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx)
 The same of the precedent but affecting only the LHS. More...
 
virtual void ApplyDirichletConditions_RHS (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemVectorType &rDx, TSystemVectorType &rb)
 The same of the precedent but affecting only the RHS. More...
 
virtual void ApplyRHSConstraints (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemVectorType &rb)
 Applies the constraints with master-slave relation matrix (RHS only) More...
 
virtual void ApplyConstraints (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rb)
 Applies the constraints with master-slave relation matrix. More...
 
virtual DofsArrayTypeGetDofSet ()
 It allows to get the list of Dofs from the element. More...
 
virtual const DofsArrayTypeGetDofSet () const
 It allows to get the list of Dofs from the element. More...
 
virtual void ResizeAndInitializeVectors (typename TSchemeType::Pointer pScheme, TSystemMatrixPointerType &pA, TSystemVectorPointerType &pDx, TSystemVectorPointerType &pb, ModelPart &rModelPart)
 This method initializes and resizes the system of equations. More...
 
virtual void Clear ()
 This function is intended to be called at the end of the solution step to clean up memory storage not needed. More...
 
virtual int Check (ModelPart &rModelPart)
 This function is designed to be called once to perform all the checks needed on the input provided. Checks can be "expensive" as the function is designed to catch user's errors. More...
 
virtual Parameters GetDefaultParameters () const
 This method provides the defaults parameters to avoid conflicts between the different constructors. More...
 

Public Attributes

Member Variables
TSystemMatrixType mD
 
TSystemMatrixType mMconsistent
 
TSystemVectorType mMdiagInv
 
TSystemVectorType mpreconditioner
 
unsigned int mnumber_of_active_nodes
 
GlobalPointersVector< NodemActiveNodes
 

Type Definitions

typedef BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver > BaseType
 
typedef BaseType::TSchemeType TSchemeType
 
typedef BaseType::TDataType TDataType
 
typedef BaseType::DofsArrayType DofsArrayType
 
typedef BaseType::TSystemMatrixType TSystemMatrixType
 
typedef BaseType::TSystemVectorType TSystemVectorType
 
typedef BaseType::LocalSystemVectorType LocalSystemVectorType
 
typedef BaseType::LocalSystemMatrixType LocalSystemMatrixType
 
typedef BaseType::TSystemMatrixPointerType TSystemMatrixPointerType
 
typedef BaseType::TSystemVectorPointerType TSystemVectorPointerType
 
typedef BaseType::NodesArrayType NodesContainerType
 
typedef BaseType::NodesArrayType NodesArrayType
 
typedef BaseType::ElementsArrayType ElementsArrayType
 
typedef BaseType::ConditionsArrayType ConditionsArrayType
 
typedef BaseType::ElementsContainerType ElementsContainerType
 
 KRATOS_CLASS_POINTER_DEFINITION (ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver)
 

Additional Inherited Members

- Public Types inherited from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >
typedef BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver > ClassType
 The definition of the current class. More...
 
typedef std::size_t SizeType
 Definition of the size type. More...
 
typedef std::size_t IndexType
 Definition of the index type. More...
 
typedef TSparseSpace::DataType TDataType
 Definition of the data type. More...
 
typedef TSparseSpace::MatrixType TSystemMatrixType
 Definition of the sparse matrix. More...
 
typedef TSparseSpace::VectorType TSystemVectorType
 Definition of the vector size. More...
 
typedef TSparseSpace::MatrixPointerType TSystemMatrixPointerType
 Definition of the pointer to the sparse matrix. More...
 
typedef TSparseSpace::VectorPointerType TSystemVectorPointerType
 Definition of the pointer to the vector. More...
 
typedef TDenseSpace::MatrixType LocalSystemMatrixType
 The local matrix definition. More...
 
typedef TDenseSpace::VectorType LocalSystemVectorType
 The local vector definition. More...
 
typedef Scheme< TSparseSpace, TDenseSpace > TSchemeType
 Definition of the scheme type. More...
 
typedef ModelPart::DofType TDofType
 Definition of the DoF class. More...
 
typedef ModelPart::DofsArrayType DofsArrayType
 Definition of the DoF array type. More...
 
typedef ModelPart::NodesContainerType NodesArrayType
 The containers of the entities. More...
 
typedef ModelPart::ElementsContainerType ElementsArrayType
 
typedef ModelPart::ConditionsContainerType ConditionsArrayType
 
typedef PointerVectorSet< Element, IndexedObjectElementsContainerType
 The definition of the element container type. More...
 
- Static Public Member Functions inherited from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >
static std::string Name ()
 Returns the name of the class as used in the settings (snake_case format) More...
 
- Protected Member Functions inherited from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >
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::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >
TLinearSolver::Pointer mpLinearSystemSolver = nullptr
 
DofsArrayType mDofSet
 Pointer to the linear solver. More...
 
bool mReshapeMatrixFlag = false
 The set containing the DoF of the system. More...
 
bool mDofSetIsInitialized = false
 If the matrix is reshaped each step. More...
 
bool mCalculateReactionsFlag = false
 Flag taking care if the dof set was initialized ot not. More...
 
unsigned int mEquationSystemSize
 Flag taking in account if it is needed or not to calculate the reactions. More...
 
int mEchoLevel = 0
 Number of degrees of freedom of the problem to be solve. More...
 
TSystemVectorPointerType mpReactionsVector
 

Detailed Description

template<class TSparseSpace, class TDenseSpace, class TLinearSolver, int TDim>
class Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >

Short class definition.

Detail class definition.

\URL[Example of use html]{ extended_documentation/no_ex_of_use.html}

\URL[Example of use pdf]{ extended_documentation/no_ex_of_use.pdf}

\URL[Example of use doc]{ extended_documentation/no_ex_of_use.doc}

\URL[Example of use ps]{ extended_documentation/no_ex_of_use.ps}

\URL[Extended documentation html]{ extended_documentation/no_ext_doc.html}

\URL[Extended documentation pdf]{ extended_documentation/no_ext_doc.pdf}

\URL[Extended documentation doc]{ extended_documentation/no_ext_doc.doc}

\URL[Extended documentation ps]{ extended_documentation/no_ext_doc.ps}

Member Typedef Documentation

◆ BaseType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
typedef BuilderAndSolver<TSparseSpace,TDenseSpace, TLinearSolver> Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::BaseType

◆ ConditionsArrayType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
typedef BaseType::ConditionsArrayType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::ConditionsArrayType

◆ DofsArrayType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
typedef BaseType::DofsArrayType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::DofsArrayType

◆ ElementsArrayType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
typedef BaseType::ElementsArrayType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::ElementsArrayType

◆ ElementsContainerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
typedef BaseType::ElementsContainerType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::ElementsContainerType

◆ LocalSystemMatrixType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
typedef BaseType::LocalSystemMatrixType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::LocalSystemMatrixType

◆ LocalSystemVectorType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
typedef BaseType::LocalSystemVectorType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::LocalSystemVectorType

◆ NodesArrayType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
typedef BaseType::NodesArrayType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::NodesArrayType

◆ NodesContainerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
typedef BaseType::NodesArrayType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::NodesContainerType

◆ TDataType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
typedef BaseType::TDataType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::TDataType

◆ TSchemeType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
typedef BaseType::TSchemeType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::TSchemeType

◆ TSystemMatrixPointerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
typedef BaseType::TSystemMatrixPointerType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::TSystemMatrixPointerType

◆ TSystemMatrixType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
typedef BaseType::TSystemMatrixType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::TSystemMatrixType

◆ TSystemVectorPointerType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
typedef BaseType::TSystemVectorPointerType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::TSystemVectorPointerType

◆ TSystemVectorType

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
typedef BaseType::TSystemVectorType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::TSystemVectorType

Constructor & Destructor Documentation

◆ ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver ( typename TLinearSolver::Pointer  pNewLinearSystemSolver)
inline

Constructor.

◆ ~ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::~ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver ( )
inlineoverride

Destructor.

Member Function Documentation

◆ AssembleLHS()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::AssembleLHS ( TSystemMatrixType A,
LocalSystemMatrixType LHS_Contribution,
Element::EquationIdVectorType EquationId 
)
inline

◆ AssembleMassMatrices()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::AssembleMassMatrices ( TSystemMatrixType Mconsistent,
TSystemVectorType mMdiagInv,
ModelPart r_model_part 
)
inline

◆ AssembleRHS()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::AssembleRHS ( TSystemVectorType b,
LocalSystemVectorType RHS_Contribution,
Element::EquationIdVectorType EquationId 
)
inline

◆ Build()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::Build ( typename TSchemeType::Pointer  pScheme,
ModelPart rModelPart,
TSystemMatrixType rA,
TSystemVectorType rb 
)
inlinevirtual

equivalent (but generally faster) then performing BuildLHS and BuildRHS

Parameters
pSchemeThe pointer to the integration scheme
rModelPartThe model part to compute
rAThe LHS matrix of the system of equations
rbThe RHS vector of the system of equations

Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ BuildAndSolve()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::BuildAndSolve ( typename TSchemeType::Pointer  pScheme,
ModelPart rModelPart,
TSystemMatrixType rA,
TSystemVectorType rDx,
TSystemVectorType rb 
)
inlinevirtual

Function to perform the building and solving phase at the same time.

It is ideally the fastest and safer function to use when it is possible to solve just after building

Parameters
pSchemeThe pointer to the integration scheme
rModelPartThe model part to compute
rAThe LHS matrix of the system of equations
rDxThe vector of unknowns
rbThe RHS vector of the system of equations

Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ BuildAuxiliaries()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::BuildAuxiliaries ( TSystemMatrixType mD,
TSystemMatrixType Mconsistent,
TSystemVectorType mMdiagInv,
ModelPart r_model_part 
)
inline

◆ BuildRHS()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::BuildRHS ( typename TSchemeType::Pointer  pScheme,
ModelPart rModelPart,
TSystemVectorType rb 
)
inlinevirtual

Function to perform the build of the RHS. The vector could be sized as the total number of dofs or as the number of unrestrained ones.

Parameters
pSchemeThe pointer to the integration scheme
rModelPartThe model part to compute
rbThe RHS vector of the system of equations

Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ calc_GMinvD_prod()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::calc_GMinvD_prod ( TSystemMatrixType mD,
TSystemVectorType Minv,
TSystemVectorType x,
TSystemVectorType WorkArray,
TSystemVectorType destination 
)
inline

◆ calc_prod_precond_vec()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::calc_prod_precond_vec ( TSystemVectorType vec,
TSystemVectorType precond,
TSystemVectorType result 
)
inline

◆ CalculateNodalPressureForce()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::CalculateNodalPressureForce ( TSystemMatrixType mD,
TSystemVectorType mMdiagInv,
ModelPart r_model_part 
)
inline

◆ CalculatePreconditionerDiagonalMatrix()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::CalculatePreconditionerDiagonalMatrix ( const TSystemMatrixType D,
const TSystemVectorType Minv,
const TSystemMatrixType A,
TSystemVectorType preconditioner 
)
inline

◆ CalculateReactions()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::CalculateReactions ( typename TSchemeType::Pointer  pScheme,
ModelPart rModelPart,
TSystemMatrixType rA,
TSystemVectorType rDx,
TSystemVectorType rb 
)
inlinevirtual

It computes the reactions of the system.

Parameters
pSchemeThe pointer to the integration scheme
rModelPartThe model part to compute
rAThe LHS matrix of the system of equations
rDxThe vector of unknowns
rbThe RHS vector of the system of equations

Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ ComputePressureAtFreeSurface()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::ComputePressureAtFreeSurface ( ModelPart r_model_part,
double  bulk_modulus,
double  density 
)
inline

◆ ConstructMatrixStructure()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::ConstructMatrixStructure ( TSystemMatrixType A,
ModelPart r_model_part 
)
inline

◆ ConstructMatrixStructure_DivergenceMatrixD()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::ConstructMatrixStructure_DivergenceMatrixD ( TSystemMatrixType mD,
ModelPart r_model_part 
)
inline

◆ ConstructMatrixStructure_Mconsistent()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::ConstructMatrixStructure_Mconsistent ( TSystemMatrixType Mconsistent,
ModelPart r_model_part 
)
inline

◆ ConvergenceCheck()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
bool Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::ConvergenceCheck ( TSystemVectorType residual,
TSystemVectorType b,
const double tolerance,
const int iter_number,
const int max_iter_number 
)
inline

◆ CreatePartition()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::CreatePartition ( unsigned int  number_of_threads,
const int  number_of_rows,
vector< unsigned int > &  partitions 
)
inline

◆ FinalizeSolutionStep()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::FinalizeSolutionStep ( ModelPart rModelPart,
TSystemMatrixType rA,
TSystemVectorType rDx,
TSystemVectorType rb 
)
inlinevirtual

It applies certain operations at the system of equations at the end of the solution step.

Parameters
rModelPartThe model part to compute
rAThe LHS matrix of the system of equations
rDxThe vector of unknowns
rbThe RHS vector of the system of equations

Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ FractionalStepProjection()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::FractionalStepProjection ( ModelPart model_part,
double  alpha_bossak 
)
inline

◆ InitializeSolutionStep()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::InitializeSolutionStep ( ModelPart rModelPart,
TSystemMatrixType rA,
TSystemVectorType rDx,
TSystemVectorType rb 
)
inlinevirtual

It applies certain operations at the system of equations at the beginning of the solution step.

Parameters
rModelPartThe model part to compute
rAThe LHS matrix of the system of equations
rDxThe vector of unknowns
rbThe RHS vector of the system of equations

Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::KRATOS_CLASS_POINTER_DEFINITION ( ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >  )

◆ ModifyForDirichlet()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::ModifyForDirichlet ( TSystemMatrixType A,
TSystemVectorType b 
)
inline

◆ ResizeAndInitializeVectors()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::ResizeAndInitializeVectors ( typename TSchemeType::Pointer  pScheme,
TSystemMatrixType A,
TSystemMatrixType mD,
TSystemVectorType Dx,
TSystemVectorType b,
TSystemMatrixType mMconsistent,
TSystemVectorType mMdiagInv,
ModelPart rModelPart 
)
inline

◆ ReturnDx()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::ReturnDx ( TSystemVectorType Dx,
TSystemVectorType xi 
)
inline

◆ SavePressureIteration()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::SavePressureIteration ( ModelPart model_part)
inline

◆ SetUpDofSet()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::SetUpDofSet ( typename TSchemeType::Pointer  pScheme,
ModelPart rModelPart 
)
inlinevirtual

Builds the list of the DofSets involved in the problem by "asking" to each element and condition its Dofs.

The list of dofs is stores inside the BuilderAndSolver as it is closely connected to the way the matrix and RHS are built

Parameters
pSchemeThe pointer to the integration scheme
rModelPartThe model part to compute

Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ SetUpSystem()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::SetUpSystem ( ModelPart rModelPart)
inlinevirtual

It organises the dofset in order to speed up the building phase.

Parameters
rModelPartThe model part to compute

Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.

◆ UpdateAcceleration()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::UpdateAcceleration ( array_1d< double, 3 > &  CurrentAcceleration,
const array_1d< double, 3 > &  DeltaDisp,
const array_1d< double, 3 > &  OldVelocity,
const array_1d< double, 3 > &  OldAcceleration,
double ma0,
double ma2,
double ma3 
)
inline

◆ UpdateAfterProjection()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::UpdateAfterProjection ( ModelPart model_part,
double  alpha_bossak 
)
inline

◆ UpdatePressures()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::UpdatePressures ( TSystemMatrixType mD,
TSystemMatrixType mMconsistent,
TSystemVectorType mMdiagInv,
ModelPart r_model_part,
double  bulk_modulus,
double  density 
)
inline

!!! LATER ON - CHANGE THE WAY TO COMPUTE BULK MODULUS INSTEAD OF PASSING IT AS A PARAMETER

◆ UpdatePressuresNew()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::UpdatePressuresNew ( TSystemMatrixType mMconsistent,
TSystemVectorType mMdiagInv,
ModelPart r_model_part,
double  bulk_modulus,
double  density 
)
inline

!!! LATER ON - CHANGE THE WAY TO COMPUTE BULK MODULUS INSTEAD OF PASSING IT AS A PARAMETER

◆ UpdateVelocity()

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
void Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::UpdateVelocity ( array_1d< double, 3 > &  CurrentVelocity,
const array_1d< double, 3 > &  DeltaDisp,
const array_1d< double, 3 > &  OldVelocity,
const array_1d< double, 3 > &  OldAcceleration,
double ma1,
double ma4,
double ma5 
)
inline

Member Data Documentation

◆ mActiveNodes

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
GlobalPointersVector<Node > Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::mActiveNodes

◆ mD

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
TSystemMatrixType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::mD

◆ mMconsistent

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
TSystemMatrixType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::mMconsistent

◆ mMdiagInv

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
TSystemVectorType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::mMdiagInv

◆ mnumber_of_active_nodes

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
unsigned int Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::mnumber_of_active_nodes

◆ mpreconditioner

template<class TSparseSpace , class TDenseSpace , class TLinearSolver , int TDim>
TSystemVectorType Kratos::ResidualBasedEliminationQuasiIncompressibleBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver, TDim >::mpreconditioner

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