.\" .de Id .. .de Sp .if n .sp .if t .sp 0.4 .. .TH mixed_solver 4rheolef "rheolef-7.0" "rheolef-7.0" "rheolef-7.0" .\" label: /*Class:mixed_solver .SH NAME \fBcg_abtb\fP, \fBcg_abtbc\fP, \fBminres_abtb\fP, \fBminres_abtbc\fP -- solvers for mixed linear problems .\" skip: @findex cg .\" skip: @findex minres .\" skip: @findex cg\_abtb .\" skip: @findex cg\_abtbc .\" skip: @findex minres\_abtb .\" skip: @findex minres\_abtbc .\" skip: @cindex mixed linear problem .\" skip: @cindex conjugate gradien algorithm .\" skip: @cindex finite element method .\" skip: @cindex stabilized mixed finite element method .\" skip: @cindex Stokes problem .\" skip: @cindex incompresible elasticity .SH SYNOPSIS .\" begin_example .Sp .nf template int cg_abtb (const Matrix& A, const Matrix& B, Vector& u, Vector& p, const Vector& Mf, const Vector& Mg, const Preconditioner& S1, const Solver& inner_solver_A, const solver_option& sopt = solver_option()); .PP template int cg_abtbc (const Matrix& A, const Matrix& B, const Matrix& C, Vector& u, Vector& p, const Vector& Mf, const Vector& Mg, const Preconditioner& S1, const Solver& inner_solver_A, const solver_option& sopt = solver_option()); .Sp .fi .\" end_example The synopsis is the same with the minres algorithm. .PP .SH EXAMPLES See the user's manual for practical examples for the nearly incompressible elasticity, the Stokes and the Navier-Stokes problems. .PP .SH DESCRIPTION Preconditioned conjugate gradient algorithm on the pressure p applied to the stabilized stokes problem: .\" begin_example .Sp .nf [ A B^T ] [ u ] [ Mf ] [ ] [ ] = [ ] [ B -C ] [ p ] [ Mg ] .Sp .fi .\" end_example where A is symmetric positive definite and C is symmetric positive and semi-definite. Such mixed linear problems appears for instance with the discretization of Stokes problems with stabilized P1-P1 element, or with nearly incompressible elasticity. Formally u = inv(A)*(Mf - B^T*p) and the reduced system writes for all non-singular matrix S1: .\" begin_example .Sp .nf inv(S1)*(B*inv(A)*B^T)*p = inv(S1)*(B*inv(A)*Mf - Mg) .Sp .fi .\" end_example Uzawa or conjugate gradient algorithms are considered on the reduced problem. Here, S1 is some preconditioner for the Schur complement S=B*inv(A)*B^T. Both direct or iterative solvers for S1*q = t are supported. Application of inv(A) is performed via a call to a solver for systems such as A*v = b. This last system may be solved either by direct or iterative algorithms, thus, a general matrix solver class is submitted to the algorithm. For most applications, such as the Stokes problem, the mass matrix for the p variable is a good S1 preconditioner for the Schur complement. The stopping criteria is expressed using the S1 matrix, i.e. in L2 norm when this choice is considered. It is scaled by the L2 norm of the right-hand side of the reduced system, also in S1 norm. .\" skip start:AUTHOR: .\" skip start:DATE: .\" skip start:METHODS: .\" END .SH COPYRIGHT Copyright (C) 2000-2018 Pierre Saramito GPLv3+: GNU GPL version 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.