|
|
| | IterativeSolver () |
| | Default constructor. More...
|
| |
| | IterativeSolver (double NewTolerance) |
| |
| | IterativeSolver (double NewTolerance, unsigned int NewMaxIterationsNumber) |
| |
| | IterativeSolver (double NewTolerance, unsigned int NewMaxIterationsNumber, typename TPreconditionerType::Pointer pNewPreconditioner) |
| |
| | IterativeSolver (Parameters settings, typename TPreconditionerType::Pointer pNewPreconditioner=Kratos::make_shared< TPreconditionerType >()) |
| |
| | IterativeSolver (const IterativeSolver &Other) |
| | Copy constructor. More...
|
| |
| | ~IterativeSolver () override |
| | Destructor. More...
|
| |
|
| IterativeSolver & | operator= (const IterativeSolver &Other) |
| | Assignment operator. More...
|
| |
| void | InitializeSolutionStep (SparseMatrixType &rA, VectorType &rX, VectorType &rB) override |
| |
| void | FinalizeSolutionStep (SparseMatrixType &rA, VectorType &rX, VectorType &rB) override |
| |
| void | Clear () override |
| |
| bool | AdditionalPhysicalDataIsNeeded () override |
| |
| void | ProvideAdditionalData (SparseMatrixType &rA, VectorType &rX, VectorType &rB, typename ModelPart::DofsArrayType &rdof_set, ModelPart &r_model_part) override |
| |
|
| virtual TPreconditionerType::Pointer | GetPreconditioner (void) |
| |
| virtual const TPreconditionerType::Pointer | GetPreconditioner (void) const |
| |
| virtual void | SetPreconditioner (typename TPreconditionerType::Pointer pNewPreconditioner) |
| |
| virtual void | SetMaxIterationsNumber (unsigned int NewMaxIterationsNumber) |
| |
| virtual IndexType | GetMaxIterationsNumber () |
| |
| virtual void | SetIterationsNumber (unsigned int NewIterationNumber) |
| |
| IndexType | GetIterationsNumber () override |
| |
| void | SetTolerance (double NewTolerance) override |
| | This method allows to set the tolerance in the linear solver. More...
|
| |
| double | GetTolerance () override |
| | This method allows to get the tolerance in the linear solver. More...
|
| |
| virtual void | SetResidualNorm (double NewResidualNorm) |
| |
| virtual double | GetResidualNorm () |
| |
|
| virtual bool | IterationNeeded () |
| |
| virtual bool | IsConverged () |
| |
|
| 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...
|
| |
| | LinearSolver () |
| | Default constructor. More...
|
| |
| | LinearSolver (Reorderer< TSparseSpaceType, TDenseSpaceType > NewReorderer) |
| | Constructor with specific reorderer. More...
|
| |
| | LinearSolver (const LinearSolver &Other) |
| | Copy constructor. More...
|
| |
| virtual | ~LinearSolver () |
| | Destructor. More...
|
| |
| LinearSolver & | operator= (const LinearSolver &Other) |
| | Assignment operator. More...
|
| |
| virtual void | Initialize (SparseMatrixType &rA, VectorType &rX, VectorType &rB) |
| |
| virtual void | PerformSolutionStep (SparseMatrixType &rA, VectorType &rX, VectorType &rB) |
| |
| virtual bool | Solve (SparseMatrixType &rA, VectorType &rX, VectorType &rB) |
| |
| virtual bool | Solve (SparseMatrixType &rA, DenseMatrixType &rX, DenseMatrixType &rB) |
| |
| virtual void | Solve (SparseMatrixType &K, SparseMatrixType &M, DenseVectorType &Eigenvalues, DenseMatrixType &Eigenvectors) |
| |
| virtual TReordererType::Pointer | GetReorderer () |
| |
| virtual void | SetReorderer (typename TReordererType::Pointer pNewReorderer) |
| |
| virtual bool | IsConsistent (SparseMatrixType &rA, VectorType &rX, VectorType &rB) |
| | This method checks if the dimensions of the system of equations are consistent. More...
|
| |
| virtual bool | IsConsistent (SparseMatrixType &rA, DenseMatrixType &rX, DenseMatrixType &rB) |
| | This method checks if the dimensions of the system of equations are consistent (dense matrix for RHS and unknowns version) More...
|
| |
| virtual bool | IsNotConsistent (SparseMatrixType &rA, VectorType &rX, VectorType &rB) |
| | This method checks if the dimensions of the system of equations are not consistent. More...
|
| |
| virtual bool | IsNotConsistent (SparseMatrixType &rA, DenseMatrixType &rX, DenseMatrixType &rB) |
| | This method checks if the dimensions of the system of equations are not consistent. More...
|
| |
| | KRATOS_CLASS_POINTER_DEFINITION (LinearSolver) |
| | Pointer definition of LinearSolver. More...
|
| |
template<class TSparseSpaceType, class TDenseSpaceType, class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
class Kratos::IterativeSolver< TSparseSpaceType, TDenseSpaceType, TPreconditionerType, TReordererType >
Base class for all the iterative solvers in Kratos.
This class define the general interface for the iterative solvers in Kratos. iterative solver is a template class with this parameter:
- TSparseSpaceType which specify type of the unknowns, coefficients, sparse matrix, vector of unknowns, right hand side vector and their respective operators.
- TDenseMatrixType which specify type of the matrices used as temporary matrices or multi solve unknowns and right hand sides and their operators.
- TPreconditionerType which specify type of the preconditioner to be used.
- TStopCriteriaType for specifying type of the object which control the stop criteria for iteration loop.
- TReordererType which specify type of the Orderer that performs the reordering of matrix to optimize the solution.
template<class TSparseSpaceType , class TDenseSpaceType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
| bool Kratos::IterativeSolver< TSparseSpaceType, TDenseSpaceType, TPreconditionerType, TReordererType >::AdditionalPhysicalDataIsNeeded |
( |
| ) |
|
|
inlineoverridevirtual |
Some solvers may require a minimum degree of knowledge of the structure of the matrix. To make an example when solving a mixed u-p problem, it is important to identify the row associated to v and p. another example is the automatic prescription of rotation null-space for smoothed-aggregation solvers which require knowledge on the spatial position of the nodes associated to a given dof. This function tells if the solver requires such data
Reimplemented from Kratos::LinearSolver< TSparseSpaceType, TDenseSpaceType, Reorderer< TSparseSpaceType, TDenseSpaceType > >.
template<class TSparseSpaceType , class TDenseSpaceType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
template<class TSparseSpaceType , class TDenseSpaceType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
template<class TSparseSpaceType , class TDenseSpaceType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
This function is designed to be called every time the coefficients change in the system that is, normally at the beginning of each solve. For example if we are implementing a direct solver, this is the place to do the factorization so that then the backward substitution can be performed effectively more than once
- Parameters
-
| rA. | System matrix |
| rX. | Solution vector. it's also the initial guess for iterative linear solvers. |
| rB. | Right hand side vector. |
Reimplemented from Kratos::LinearSolver< TSparseSpaceType, TDenseSpaceType, Reorderer< TSparseSpaceType, TDenseSpaceType > >.
template<class TSparseSpaceType , class TDenseSpaceType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
Some solvers may require a minimum degree of knowledge of the structure of the matrix. To make an example when solving a mixed u-p problem, it is important to identify the row associated to v and p. another example is the automatic prescription of rotation null-space for smoothed-aggregation solvers which require knowledge on the spatial position of the nodes associated to a given dof. This function is the place to eventually provide such data
Reimplemented from Kratos::LinearSolver< TSparseSpaceType, TDenseSpaceType, Reorderer< TSparseSpaceType, TDenseSpaceType > >.
template<class TSparseSpaceType , class TDenseSpaceType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>