-
Notifications
You must be signed in to change notification settings - Fork 98
/
solver_fault_schur_custompc.cfg
32 lines (30 loc) · 1.33 KB
/
solver_fault_schur_custompc.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# This file provides an optimized solver, the analogue of LU factorization, for the
# saddle point system arising from problems with a fault. This should be used for
# large production runs.
[pylithapp.problem.formulation]
# The split_fields flag must be specified, so that the PCFIELDSPLIT preconditioner
# can be used. The matrix_type must be set to aij since we lose symmetry when
# splitting. We have turned on the custom preconditioner for the fault problem.
#
split_fields = True
matrix_type = aij
use_custom_constraint_pc = True
[pylithapp.petsc]
# We use only the upper part of the Schur complement factorization and solve
# the subsystems inexactly. The displacements are solved with algebraic
# multigrid (GAMG), and the fault tractions with a standard Krylov method
# since we do not explicitly form the Schur complement matrix.
#
#snes_view = true
#ksp_monitor_true_residual = true
fs_pc_type = fieldsplit
fs_pc_use_amat = true
fs_pc_fieldsplit_type = schur
fs_pc_fieldsplit_schur_factorization_type = full
fs_pc_fieldsplit_schur_precondition = user
fs_fieldsplit_displacement_ksp_type = preonly
fs_fieldsplit_displacement_pc_type = lu
fs_fieldsplit_lagrange_multiplier_pc_type = jacobi
fs_fieldsplit_lagrange_multiplier_ksp_type = gmres
fs_fieldsplit_lagrange_multiplier_ksp_rtol = 1.0e-11
fs_fieldsplit_lagrange_multiplier_ksp_converged_reason = true