G+Smo
24.08.0
Geometry + Simulation Modules
|
Gauss-Seidel preconditioner.
ordering
can be gsGaussSeidel::forward
, gsGaussSeidel::reverse
or gsGaussSeidel::symmetric
.
Public Types | |
typedef gsPreconditionerOp< T > | Base |
Base class. | |
typedef gsLinearOperator < MatrixType::Scalar >::Ptr | BasePtr |
Base class. | |
typedef memory::shared_ptr < gsGaussSeidelOp > | Ptr |
Shared pointer for gsGaussSeidelOp. | |
typedef MatrixType::Scalar | T |
Scalar type. | |
typedef memory::unique_ptr < gsGaussSeidelOp > | uPtr |
Unique pointer for gsGaussSeidelOp. | |
Public Member Functions | |
void | apply (const gsMatrix< MatrixType::Scalar > &input, gsMatrix< MatrixType::Scalar > &x) const |
apply the operator on the input vector and store the result in x More... | |
index_t | cols () const |
Returns the number of columns of the operator. | |
MatrixType::Scalar | estimateLargestEigenvalueOfPreconditionedSystem (index_t steps=10) const |
Estimates the largest eigenvalue of \( PA \). More... | |
gsGaussSeidelOp (const MatrixType &mat) | |
Constructor with given matrix. | |
gsGaussSeidelOp (const MatrixPtr &mat) | |
Constructor with shared pointer to matrix. | |
NestedMatrix | matrix () const |
Returns the matrix. | |
MatrixPtr | matrixPtr () const |
Returns a shared pinter to the matrix. | |
index_t | numOfSweeps () |
Get the number of sweeps to be applied in the member function apply. | |
index_t | rows () const |
Returns the number of rows of the operator. | |
void | setNumOfSweeps (index_t n) |
Set the number of sweeps to be applied in the member function apply. | |
virtual void | setOptions (const gsOptionList &opt) |
Set options based on a gsOptionList object. | |
void | step (const gsMatrix< T > &rhs, gsMatrix< T > &x) const |
Apply the method for given right hand side and current iterate. More... | |
void | stepT (const gsMatrix< T > &rhs, gsMatrix< T > &x) const |
Apply the transposed variant of the method for given right hand side and current iterate. More... | |
gsLinearOperator< T >::Ptr | underlyingOp () const |
Return the underlying operator \( A \). | |
Static Public Member Functions | |
static gsOptionList | defaultOptions () |
Get the default options as gsOptionList object. | |
static gsIdentityOp < MatrixType::Scalar > | Identity (const index_t dim) |
Identity operator. | |
Private Attributes | |
NestedMatrix | m_expr |
Nested Eigen expression. | |
const MatrixPtr | m_mat |
Shared pointer to matrix (if needed) | |
Related Functions | |
(Note that these are not member functions.) | |
template<class Derived > | |
gsGaussSeidelOp< Derived >::uPtr | makeGaussSeidelOp (const gsEigen::EigenBase< Derived > &mat) |
Returns a smart pointer to a Gauss-Seidel operator referring on mat. More... | |
template<class Derived > | |
gsGaussSeidelOp< Derived >::uPtr | makeGaussSeidelOp (const memory::shared_ptr< Derived > &mat) |
Returns a smart pointer to a Jacobi operator referring on mat. More... | |
template<class Derived > | |
gsGaussSeidelOp< Derived, gsGaussSeidel::reverse >::uPtr | makeReverseGaussSeidelOp (const gsEigen::EigenBase< Derived > &mat) |
Returns a smart pointer to a reverse Gauss-Seidel operator referring on mat. More... | |
template<class Derived > | |
gsGaussSeidelOp< Derived, gsGaussSeidel::reverse >::uPtr | makeReverseGaussSeidelOp (const memory::shared_ptr< Derived > &mat) |
Returns a smart pointer to a reverse Gauss-Seidel operator referring on mat. More... | |
template<class Derived > | |
gsGaussSeidelOp< Derived, gsGaussSeidel::symmetric > ::uPtr | makeSymmetricGaussSeidelOp (const gsEigen::EigenBase< Derived > &mat) |
Returns a smart pointer to a symmetric Gauss-Seidel operator referring on mat. More... | |
template<class Derived > | |
gsGaussSeidelOp< Derived, gsGaussSeidel::symmetric > ::uPtr | makeSymmetricGaussSeidelOp (const memory::shared_ptr< Derived > &mat) |
Returns a smart pointer to a symmetric Gauss-Seidel operator referring on mat. More... | |
|
inlinevirtualinherited |
apply the operator on the input vector and store the result in x
input | Input vector |
x | result vector |
Implements gsLinearOperator< MatrixType::Scalar >.
|
inlineinherited |
Estimates the largest eigenvalue of \( PA \).
steps | Number of steps to be performed. |
Apply the method for given right hand side and current iterate.
rhs | Right hand side vector |
x | Current iterate vector |
Implements gsPreconditionerOp< MatrixType::Scalar >.
Apply the transposed variant of the method for given right hand side and current iterate.
rhs | Right hand side vector |
x | Current iterate vector |
Reimplemented from gsPreconditionerOp< MatrixType::Scalar >.
|
related |
Returns a smart pointer to a Gauss-Seidel operator referring on mat.
|
related |
Returns a smart pointer to a Jacobi operator referring on mat.
|
related |
Returns a smart pointer to a reverse Gauss-Seidel operator referring on mat.
|
related |
Returns a smart pointer to a reverse Gauss-Seidel operator referring on mat.
|
related |
Returns a smart pointer to a symmetric Gauss-Seidel operator referring on mat.
|
related |
Returns a smart pointer to a symmetric Gauss-Seidel operator referring on mat.