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.
|
Current class provides an implementation for trilinos builder and solving operations. More...
#include <trilinos_block_builder_and_solver.h>
Public Member Functions | |
Life Cycle | |
TrilinosBlockBuilderAndSolver ()=default | |
Default constructor (empty) More... | |
TrilinosBlockBuilderAndSolver (EpetraCommunicatorType &rComm, int GuessRowSize, typename TLinearSolver::Pointer pNewLinearSystemSolver) | |
Default constructor. More... | |
TrilinosBlockBuilderAndSolver (EpetraCommunicatorType &rComm, typename TLinearSolver::Pointer pNewLinearSystemSolver, Parameters ThisParameters) | |
Default constructor. (with parameters) More... | |
TrilinosBlockBuilderAndSolver (const TrilinosBlockBuilderAndSolver &rOther)=delete | |
TrilinosBlockBuilderAndSolver & | operator= (const TrilinosBlockBuilderAndSolver &rOther)=delete |
Access | |
TSparseSpace::MatrixType & | GetConstraintRelationMatrix () override |
This method returns constraint relation (T) matrix. More... | |
TSparseSpace::VectorType & | GetConstraintConstantVector () override |
This method returns constraint constant vector. More... | |
double | GetScaleFactor () |
Retrieves the current scale factor. This function returns the current scale factor value. More... | |
void | SetScaleFactor (const double ScaleFactor) |
Sets the scale factor. This function sets a new value for the scale factor. More... | |
Input and output | |
std::string | Info () const override |
Turn back information as a string. 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... | |
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... | |
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_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 | 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 | 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 DofsArrayType & | GetDofSet () |
It allows to get the list of Dofs from the element. More... | |
virtual const DofsArrayType & | GetDofSet () const |
It allows to get the list of Dofs from the element. More... | |
virtual void | InitializeSolutionStep (ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) |
It applies certain operations at the system of equations at the beginning of the solution step. More... | |
virtual void | FinalizeSolutionStep (ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) |
It applies certain operations at the system of equations at the end of the solution step. More... | |
Protected Member Functions | |
Protected Operations | |
virtual void | ConstructMasterSlaveConstraintsStructure (ModelPart &rModelPart) |
Constructs the master-slave constraints structure for the given model part. More... | |
virtual void | BuildMasterSlaveConstraints (ModelPart &rModelPart) |
Builds the master-slave constraints for the given model part. More... | |
virtual void | ConstructMatrixStructure (typename TSchemeType::Pointer pScheme, TSystemMatrixPointerType &rpA, TSystemVectorPointerType &rpDx, TSystemVectorPointerType &rpb, ModelPart &rModelPart) |
Constructs the matrix structure for the given problem. More... | |
void | AssignSettings (const Parameters ThisParameters) override |
This method assigns settings to member variables. 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... | |
Protected Attributes | |
Protected member Variables | |
EpetraCommunicatorType & | mrComm |
int | mGuessRowSize |
The MPI communicator. More... | |
IndexType | mLocalSystemSize |
The guess row size. More... | |
int | mFirstMyId |
The local system size. More... | |
int | mLastMyId |
Auxiliary Id (the first row of the local system) More... | |
Kratos::shared_ptr< Epetra_Map > | mpMap = nullptr |
Auxiliary Id (the last row of the local system) // TODO: This can be removed as can be deduced from mLocalSystemSize. More... | |
std::vector< int > | mFirstMyIds |
The map considered for the different vectors and matrices. More... | |
TSystemMatrixPointerType | mpT = nullptr |
The ids corresponding to each partition (only used with MPC) More... | |
TSystemVectorPointerType | mpConstantVector = nullptr |
This is matrix containing the global relation for the constraints. More... | |
std::vector< IndexType > | mSlaveIds |
This is vector containing the rigid movement of the constraint. More... | |
std::vector< IndexType > | mMasterIds |
The equation ids of the slaves. More... | |
std::unordered_set< IndexType > | mInactiveSlaveDofs |
The equation ids of the master. More... | |
double | mScaleFactor = 1.0 |
The set containing the inactive slave dofs. More... | |
SCALING_DIAGONAL | mScalingDiagonal = SCALING_DIAGONAL::CONSIDER_MAX_DIAGONAL |
The manually set scale factor. More... | |
Flags | mOptions |
We identify the scaling considered for the dirichlet dofs. 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 |
Type Definitions | |
using | BaseType = BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver > |
Definition of the base class. More... | |
using | SizeType = std::size_t |
The size_t types. More... | |
using | IndexType = std::size_t |
using | TSchemeType = typename BaseType::TSchemeType |
Definition of the classes from the base class. More... | |
using | DofsArrayType = typename BaseType::DofsArrayType |
using | EpetraCommunicatorType = Epetra_MpiComm |
Epetra definitions. More... | |
using | NodeType = Node |
DoF types definition. More... | |
using | TSystemMatrixType = typename BaseType::TSystemMatrixType |
Defining the sparse matrices and vectors. More... | |
using | TSystemVectorType = typename BaseType::TSystemVectorType |
using | LocalSystemMatrixType = typename BaseType::LocalSystemMatrixType |
Defining the local matrices and vectors. More... | |
using | LocalSystemVectorType = typename BaseType::LocalSystemVectorType |
using | TSystemMatrixPointerType = typename BaseType::TSystemMatrixPointerType |
Definition of the pointer types. More... | |
using | TSystemVectorPointerType = typename BaseType::TSystemVectorPointerType |
KRATOS_DEFINE_LOCAL_FLAG (SILENT_WARNINGS) | |
Definition of the flags. More... | |
KRATOS_CLASS_POINTER_DEFINITION (TrilinosBlockBuilderAndSolver) | |
Definition of the pointer. More... | |
Operations | |
void | Build (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rb) override |
Function to perform the build the system matrix and the residual vector. More... | |
void | BuildLHS (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemMatrixType &rA) override |
Function to perform the building of the LHS. More... | |
void | BuildLHS_CompleteOnFreeRows (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemMatrixType &A) override |
Build 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... | |
void | SystemSolve (TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override |
This is a call to the linear system solver. More... | |
void | SystemSolveWithPhysics (TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb, ModelPart &rModelPart) |
This is a call to the linear system solver (taking into account some physical particularities of the problem) More... | |
void | InternalSystemSolveWithPhysics (TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb, ModelPart &rModelPart) |
This is a call to the linear system solver (taking into account some physical particularities of the problem) More... | |
void | BuildAndSolve (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override |
Function to perform the building and solving phase at the same time. More... | |
void | BuildRHSAndSolve (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override |
Corresponds to the previous, but the System's matrix is considered already built and only the RHS is built again. More... | |
void | BuildRHS (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemVectorType &rb) override |
Function to perform the build of the RHS. More... | |
void | SetUpDofSet (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart) override |
Builds the list of the DofSets involved in the problem by "asking" to each element and condition its Dofs. More... | |
void | SetUpSystem (ModelPart &rModelPart) override |
Organizes the DoF set in order to speed up the building phase Sets equation id for degrees of freedom. More... | |
void | ResizeAndInitializeVectors (typename TSchemeType::Pointer pScheme, TSystemMatrixPointerType &rpA, TSystemVectorPointerType &rpDx, TSystemVectorPointerType &rpb, ModelPart &rModelPart) override |
Resizes the system matrix and the vector according to the number of dos in the current rModelPart. This function also decides on the sparsity pattern and the graph of the Trilinos csr matrix. More... | |
void | CalculateReactions (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override |
It computes the reactions of the system. More... | |
void | ApplyDirichletConditions (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override |
Applies the dirichlet conditions. This operation may be very heavy or completely unexpensive depending on the implementation choosen and on how the System Matrix is built. More... | |
void | ApplyRHSConstraints (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemVectorType &rb) override |
Applies the constraints with master-slave relation matrix (RHS only) More... | |
void | ApplyConstraints (typename TSchemeType::Pointer pScheme, ModelPart &rModelPart, TSystemMatrixType &rA, TSystemVectorType &rb) override |
Applies the constraints with master-slave relation matrix. More... | |
void | Clear () override |
This function is intended to be called at the end of the solution step to clean up memory storage not needed. More... | |
int | Check (ModelPart &rModelPart) override |
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... | |
Parameters | GetDefaultParameters () const override |
This method provides the defaults parameters to avoid conflicts between the different constructors. More... | |
static std::string | Name () |
Returns the name of the class as used in the settings (snake_case format) More... | |
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, IndexedObject > | ElementsContainerType |
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... | |
Current class provides an implementation for trilinos builder and solving operations.
The RHS is constituted by the unbalanced loads (residual) Degrees of freedom are reordered putting the restrained degrees of freedom at the end of the system ordered in reverse order with respect to the DofSet. Imposition of the dirichlet conditions is naturally dealt with as the residual already contains this information. Calculation of the reactions involves a cost very similar to the calculation of the total residual
using Kratos::TrilinosBlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::BaseType = BuilderAndSolver<TSparseSpace, TDenseSpace, TLinearSolver> |
Definition of the base class.
using Kratos::TrilinosBlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::DofsArrayType = typename BaseType::DofsArrayType |
using Kratos::TrilinosBlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::EpetraCommunicatorType = Epetra_MpiComm |
Epetra definitions.
using Kratos::TrilinosBlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::IndexType = std::size_t |
using Kratos::TrilinosBlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::LocalSystemMatrixType = typename BaseType::LocalSystemMatrixType |
Defining the local matrices and vectors.
using Kratos::TrilinosBlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::LocalSystemVectorType = typename BaseType::LocalSystemVectorType |
using Kratos::TrilinosBlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::NodeType = Node |
DoF types definition.
using Kratos::TrilinosBlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::SizeType = std::size_t |
The size_t types.
using Kratos::TrilinosBlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::TSchemeType = typename BaseType::TSchemeType |
Definition of the classes from the base class.
using Kratos::TrilinosBlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::TSystemMatrixPointerType = typename BaseType::TSystemMatrixPointerType |
Definition of the pointer types.
using Kratos::TrilinosBlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::TSystemMatrixType = typename BaseType::TSystemMatrixType |
Defining the sparse matrices and vectors.
using Kratos::TrilinosBlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::TSystemVectorPointerType = typename BaseType::TSystemVectorPointerType |
using Kratos::TrilinosBlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::TSystemVectorType = typename BaseType::TSystemVectorType |
|
explicitdefault |
Default constructor (empty)
|
inlineexplicit |
Default constructor.
|
inlineexplicit |
Default constructor. (with parameters)
|
delete |
Copy constructor
|
inlineoverridevirtual |
Applies the constraints with master-slave relation matrix.
pScheme | The integration scheme considered |
rModelPart | The model part of the problem to solve |
rA | The LHS matrix |
rb | The RHS vector |
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
Applies the dirichlet conditions. This operation may be very heavy or completely unexpensive depending on the implementation choosen and on how the System Matrix is built.
For explanation of how it works for a particular implementation the user should refer to the particular Builder And Solver choosen
pScheme | The integration scheme considered |
rModelPart | The model part of the problem to solve |
A | The LHS matrix |
Dx | The Unknowns vector |
b | The RHS vector |
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
Applies the constraints with master-slave relation matrix (RHS only)
pScheme | The integration scheme considered |
rModelPart | The model part of the problem to solve |
rb | The RHS vector |
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverrideprotectedvirtual |
This method assigns settings to member variables.
ThisParameters | Parameters that are assigned to the member variables |
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
Function to perform the build the system matrix and the residual vector.
pScheme | The integration scheme considered |
rModelPart | The model part of the problem to solve |
rA | The LHS matrix |
rb | The RHS vector |
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
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
pScheme | The integration scheme considered |
rModelPart | The model part of the problem to solve |
rA | The LHS matrix |
rDx | The Unknowns vector |
rb | The RHS vector |
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
Function to perform the building of the LHS.
Depending on the implementation choosen the size of the matrix could be equal to the total number of Dofs or to the number of unrestrained dofs
pScheme | The integration scheme considered |
rModelPart | The model part of the problem to solve |
rA | The LHS matrix |
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
Build 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.
This matrix is obtained by building the total matrix without the lines corresponding to the fixed degrees of freedom (but keeping the columns!!)
pScheme | The integration scheme considered |
rModelPart | The model part of the problem to solve |
A | The LHS matrix |
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineprotectedvirtual |
Builds the master-slave constraints for the given model part.
rModelPart | the model part to build the constraints for |
|
inlineoverridevirtual |
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
pScheme | The integration scheme considered |
rModelPart | The model part of the problem to solve |
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
Corresponds to the previous, but the System's matrix is considered already built and only the RHS is built again.
pScheme | The integration scheme considered |
rModelPart | The model part of the problem to solve |
rA | The LHS matrix |
rDx | The Unknowns vector |
rb | The RHS vector |
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
It computes the reactions of the system.
pScheme | The pointer to the integration scheme |
rModelPart | The model part to compute |
rA | The LHS matrix of the system of equations |
rDx | The vector of unknowns |
rb | The RHS vector of the system of equations |
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
This function is designed to be called once to perform all the checks needed on the input provided. Checks can be "expensive" as the function is designed to catch user's errors.
rModelPart | The model part of the problem to solve |
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
This function is intended to be called at the end of the solution step to clean up memory storage not needed.
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineprotectedvirtual |
Constructs the master-slave constraints structure for the given model part.
rModelPart | the model part |
ErrorType | describes an Epetra failure in Graph.InsertGlobalIndices |
|
inlineprotectedvirtual |
Constructs the matrix structure for the given problem.
pScheme | pointer to the scheme object |
rpA | reference to the system matrix pointer |
rpDx | reference to the system vector pointer for the solution vector |
rpb | reference to the system vector pointer for the right-hand side vector |
rModelPart | reference to the model part object |
Runtime | error if there is an error in constructing the matrix structure |
|
inlineoverridevirtual |
This method returns constraint constant vector.
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
This method returns constraint relation (T) matrix.
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
This method provides the defaults parameters to avoid conflicts between the different constructors.
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inline |
Retrieves the current scale factor. This function returns the current scale factor value.
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inline |
This is a call to the linear system solver (taking into account some physical particularities of the problem)
rA | The LHS matrix |
rDx | The Unknowns vector |
rb | The RHS vector |
rModelPart | The model part of the problem to solve |
Kratos::TrilinosBlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::KRATOS_CLASS_POINTER_DEFINITION | ( | TrilinosBlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver > | ) |
Definition of the pointer.
Kratos::TrilinosBlockBuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::KRATOS_DEFINE_LOCAL_FLAG | ( | SILENT_WARNINGS | ) |
Definition of the flags.
|
inlinestatic |
Returns the name of the class as used in the settings (snake_case format)
|
delete |
Assignment operator
|
inlineoverridevirtual |
Print object's data.
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
Resizes the system matrix and the vector according to the number of dos in the current rModelPart. This function also decides on the sparsity pattern and the graph of the Trilinos csr matrix.
pScheme | The integration scheme considered |
rpA | The LHS matrix |
rpDx | The Unknowns vector |
rpd | The RHS vector |
rModelPart | The model part of the problem to solve |
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inline |
Sets the scale factor. This function sets a new value for the scale factor.
ScaleFactor | The new value for the scale factor. |
|
inlineoverridevirtual |
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
pScheme | The integration scheme considered |
rModelPart | The model part of the problem to solve |
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
Organizes the DoF set in order to speed up the building phase Sets equation id for degrees of freedom.
rModelPart | The model part of the problem to solve |
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
Reimplemented in Kratos::TrilinosBlockBuilderAndSolverPeriodic< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverridevirtual |
This is a call to the linear system solver.
rA | The LHS matrix |
rDx | The Unknowns vector |
rb | The RHS vector |
Reimplemented from Kratos::BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >.
|
inline |
This is a call to the linear system solver (taking into account some physical particularities of the problem)
rA | The LHS matrix |
rDx | The Unknowns vector |
rb | The RHS vector |
rModelPart | The model part of the problem to solve |
|
protected |
The local system size.
|
protected |
The map considered for the different vectors and matrices.
|
protected |
The MPI communicator.
|
protected |
The equation ids of the master.
|
protected |
Auxiliary Id (the first row of the local system)
|
protected |
The guess row size.
|
protected |
The equation ids of the slaves.
|
protected |
We identify the scaling considered for the dirichlet dofs.
|
protected |
This is matrix containing the global relation for the constraints.
|
protected |
Auxiliary Id (the last row of the local system) // TODO: This can be removed as can be deduced from mLocalSystemSize.
|
protected |
The ids corresponding to each partition (only used with MPC)
|
protected |
|
protected |
The set containing the inactive slave dofs.
|
protected |
The manually set scale factor.
|
protected |
This is vector containing the rigid movement of the constraint.