#include <DistribGS.hpp>
Inheritance diagram for DistribGS< T >:


Public Member Functions | |
| void | PrintParam () |
| Prints the name and the parameters of the preconditioner. | |
| void | PreProcess (SysPrecondCtxt &context, SysMatrix< T > &A) |
| Save the reference to the system matrix, computes the diagonal coefficients and preprocesses the Q-preconditioners. | |
| void | Run (SysPrecondCtxt &context, GridVec< T > &r, GridVec< T > &c) |
| Inverts the preconditioner's matrix. | |
| void | PostProcess (SysPrecondCtxt &context) |
| Releases the memory, postprocesses the preconditioners. | |
| DistribGS (unsigned the_disp_type, LinPrecond< T > &the_sub_precond, T the_p_damp=1, bool do_scale=true) | |
| Constructor which sets the display type. | |
Q G
G^T 0
(typically arrising in the staggered-grids discretization of Navier-Stokes equations). The lower right block must be zero.
The distributor is
I G
0 - G^T G
and the preconditioner -
P 0
G R
where
is preconditioner for
and
is the diagonal part of
multiplied by a damping factor.
The templates depend on a type T. This type should satisfy the conditions listed in small_matrix.hpp for small matrices.
| DistribGS< T >::DistribGS | ( | unsigned | the_disp_type, | |
| LinPrecond< T > & | the_sub_precond, | |||
| T | the_p_damp = 1, |
|||
| bool | do_scale = true | |||
| ) | [inline] |
Constructor which sets the display type.
| [in] | the_disp_type | The display type |
| [in] | the_sub_precond | Preconditioner for the diagonal blocks |
| [in] | the_p_damp | The damping factor for R |
| [in] | do_scale | Whether or not to scale the distributor |
| void DistribGS< T >::PrintParam | ( | ) | [inline, virtual] |
| void DistribGS< T >::PreProcess | ( | SysPrecondCtxt & | context, | |
| SysMatrix< T > & | A | |||
| ) | [inline, virtual] |
Save the reference to the system matrix, computes the diagonal coefficients and preprocesses the Q-preconditioners.
| [in] | context | The context to initialize, context[0]: sys_A, context[1]: pointer to 'context' |
| [in] | A | The system matrix |
Implements SysPrecond< T >.
| void DistribGS< T >::Run | ( | SysPrecondCtxt & | context, | |
| GridVec< T > & | r, | |||
| GridVec< T > & | c | |||
| ) | [inline, virtual] |
Inverts the preconditioner's matrix.
| [in] | context | The context for the preconditioner |
| [in] | r | The residual |
| [in] | c | The correction |
Implements SysPrecond< T >.
| void DistribGS< T >::PostProcess | ( | SysPrecondCtxt & | context | ) | [inline, virtual] |
Releases the memory, postprocesses the preconditioners.
| [in] | context | The context to release |
Implements SysPrecond< T >.
1.5.2