solver_abtb(4rheolef) | rheolef | solver_abtb(4rheolef) |
solver_abtb - mixed systems solver (rheolef-7.2)
solver_abtb stokes (a,b,mp);
solver_abtb elasticity (a,b,c,mp);
This class provides both direct and iterative algorithms for solving mixed problem:
[ A B^T ] [ u ] [ Mf ]
[ ] [ ] = [ ]
[ B -C ] [ p ] [ Mg ]
where A is symmetric positive definite and C is symmetric positive. By
default, iterative algorithms are considered for tridimensional problems and
direct methods otherwise. A solver_option(4) argument can change this
default behavior. Mixed linear problems appears for instance with the
discretization of Stokes and elasticity problems. The C matrix can be zero
and then the corresponding argument can be omitted when invoking the
constructor. Non-zero C matrix appears for of Stokes problems with
stabilized P1-P1 element, or for nearly incompressible elasticity
problems.
Recall that, for 1D and 2D problems, the direct method is default, since it is more efficient: see e.g. usersguide. The solver_option(4) allows one to change this default behavior.
When the kernel of B^T is reduced to zero, the global system is non-singular and the solver(4) method could be applied. Otherwise, when the kernel of B^T is not reduced to zero, then the pressure p is defined up to a constant and the system is singular. This is a major difficulty for any direct method. Thus, the system is first completed by the imposition of an additional constraint on the pressure term: it should have a zero average value. By this way, the system becomes non-singular and the solver(4) method could be applied.
The cg(5) preconditionned conjugate gradient algorithm or the gmres(5) one is used, depending on the symmetry of the matrix. The mp matrix is used as preconditionner: it can be customized by the set_preconditionner member function. The linear sub-systems related to the A matrix are also solved by an inner solver. This inner solver is automatically defined by default: it can be customized by the set_inner_solver member function and e.g. uses it own inner iterative algorithm and preconditionner.
See the usersguide for practical examples for the nearly incompressible elasticity, the Stokes and the Navier-Stokes problems.
This documentation has been generated from file linalg/lib/solver_abtb.h
Pierre Saramito <Pierre.Saramito@imag.fr>
Copyright (C) 2000-2018 Pierre Saramito <Pierre.Saramito@imag.fr> GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
Mon Sep 19 2022 | Version 7.2 |