Provided by: librheolef-dev_7.2-3build5_amd64

**NAME**

solver_abtb - mixed systems solver (rheolef-7.2)

**SYNOPSIS**

solver_abtb stokes (a,b,mp); solver_abtb elasticity (a,b,c,mp);

**DESCRIPTION**

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. Asolver_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. Thesolver_option(4)allows one to change this default behavior.

**DIRECT** **ALGORITHM**

When the kernel of B^T is reduced to zero, the global system is non-singular and thesolver(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 thesolver(4)method could be applied.

**ITERATIVE** **ALGORITHM**

Thecg(5)preconditionned conjugate gradient algorithm or thegmres(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.

**EXAMPLE**

See theusersguidefor practical examples for the nearly incompressible elasticity, the Stokes and the Navier-Stokes problems.

**IMPLEMENTATION**

This documentation has been generated from file linalg/lib/solver_abtb.h

**AUTHOR**

Pierre Saramito <Pierre.Saramito@imag.fr>

**COPYRIGHT**

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.