Link Search Menu Expand Document
Converted document
 Subsection 9.2.5: BoomerAMG Up Section 9.2: Configuring Linear Solvers Subsection 9.2.7: Examples 

9.2.6 Schur

The Schur solver is a linear solver that takes a 2x2 block structured matrix and solves the linear system by decomposing it in its Schur-complement form. Thus, instead of solving the following system directly,
it first solves for v,
where is the Schur complement of A. Then the Schur solver solves for u,
In order to use this solver, users need to select how they wish to solve the A-block, and how to solve the Schur complement. For the A-block users can choose any of the linear solvers listed above, either direct or iterative. For the Schur complement users can only choose a Krylov-based iterative solver (FGMRES or CG) because FEBio does not form the Schur complement explicitly.
This solver is often more effective as a preconditioner for FGMRES. In this case, the A-block and Schur complement only need to be solved approximately. See the examples section below for some example configurations. This solver requires a block-structured matrix. In order to generate the block structure you need to set the equation_scheme control parameter to 1 in the model input file.
parameter description default
print_level The amount of information printed (0,1, or 2) 0
schur_block Take the Schur complement of A (=0) or D (=1) 0
do_jacobi Do Jacobi preconditioning 0
zero_D_block Is the D-block zero? 0 (false)
A_solver The solver for the A-block (outside the Schur complement) user specified
schur_solver The iterative solver for solving Schur complement user specified
schur_A_solver The solver for the A block in the Schur complement (same as A_solver)
 Subsection 9.2.5: BoomerAMG Up Section 9.2: Configuring Linear Solvers Subsection 9.2.7: Examples