Prev Subsection 9.2.6: Schur Up Section 9.2: Configuring Linear Solvers Chapter 10: FEBio Plugins Next
9.2.7 Examples
Example 1. The default pardiso solver is defined in the configuration file using the following syntax. It does not require any parameters.
<default_linear_solver type="pardiso"/>
Example 2. This example shows how to set up the FGMRES solver with an ILU0 preconditioner.
<default_linear_solver type="fgmres"> <max_iter>100</max_iter> <tol>1e-5</tol> <pc_left type="ilu0"/> </default_linear_solver>
Example 3. This example sets up an FGMRES solver with a Schur preconditioner. For the Schur system we use pardiso for solving the A-block outside of the Schur complement and approximate the A-block inside the Schur complement with its diagonal. 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.
<default_linear_solver type="fgmres"> <print_level>2</print_level> <max_iter>100</max_iter> <tol>1e-5</tol> <abs_tol>1e-9</abs_tol> <pc_left type="schur"> <print_level>0</print_level> <do_jacobi>0</do_jacobi> <A_solver type="pardiso"/> <schur_pc>0</schur_pc> <schur_A_solver type="diagonal"/> <schur_solver type="fgmres"> <print_level>0</print_level> <max_iter>100</max_iter> <tol>0.05</tol> <fail_max_iters>0</fail_max_iters> </schur_solver> </pc_left> </default_linear_solver>