G+Smo
24.08.0
Geometry + Simulation Modules
|
Generic preconditioner which applies an arbitrary linear operator to the residual.
This preconditioner realizes \( \sum_{i=1}^n T_i A_i T_i^T \), where the \( T_i \) are the transfer matrices and the \( A_i \) are linear operators
is equivalent to
but much faster.
Public Types | |
typedef memory::shared_ptr < gsAdditiveOp > | Ptr |
Shared pointer. | |
typedef memory::unique_ptr < gsAdditiveOp > | uPtr |
Unique pointer. | |
Public Member Functions | |
void | addOperator (Transfer transfer, OpPtr op) |
void | addOperator (TransferPtr transfer, OpPtr op) |
void | apply (const gsMatrix< T > &input, gsMatrix< T > &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. | |
gsAdditiveOp () | |
Default Constructor. | |
gsAdditiveOp (TransferContainer transfers, OpContainer ops) | |
Constructor. More... | |
gsAdditiveOp (TransferPtrContainer transfers, OpContainer ops) | |
Constructor. More... | |
index_t | rows () const |
Returns the number of rows of the operator. | |
virtual void | setOptions (const gsOptionList &) |
Set options based on a gsOptionList object. | |
Static Public Member Functions | |
static gsOptionList | defaultOptions () |
Get the default options as gsOptionList object. | |
static gsIdentityOp< T > | Identity (const index_t dim) |
Identity operator. | |
static uPtr | make () |
static uPtr | make (TransferContainer transfers, OpContainer ops) |
static uPtr | make (TransferPtrContainer transfers, OpContainer ops) |
Protected Attributes | |
OpContainer | m_ops |
Operators to be applied in the subspaces. | |
TransferPtrContainer | m_transfers |
Transfer matrices. | |
|
inline |
Constructor.
The operator realizes \( \sum_{i=1}^n T_i A_i T_i^T \)
transfers | transfer matrices \( T_i \) |
ops | local operators \( A_i \) |
|
inline |
Constructor.
The operator realizes \( \sum_{i=1}^n T_i A_i T_i^T \)
transfers | transfer matrices \( T_i \) |
ops | local operators \( A_i \) |
|
inline |
Add another entry to the sum
transfer | the additional transfer matrix \( T_i \) |
op | the additional operator \( A_i \) |
|
inline |
Add another entry to the sum
transfer | the additional transfer matrix \( T_i \) |
op | the additional operator \( A_i \) |
apply the operator on the input vector and store the result in x
input | Input vector |
x | result vector |
Implements gsLinearOperator< T >.
|
inlinestatic |
Make function
This function allows to obtain an empty instance
|
inlinestatic |
Make function
The operator realizes \( \sum_{i=1}^n T_i A_i T_i^T \)
transfers | transfer matrices \( T_i \) |
ops | local operators \( A_i \) |
|
inlinestatic |
Make function
The operator realizes \( \sum_{i=1}^n T_i A_i T_i^T \)
transfers | transfer matrices \( T_i \) |
ops | local operators \( A_i \) |