Skip to content

Commit 5ee1b51

Browse files
committed
Merge branch 'baagaard/increment-version-2.1.3'
* baagaard/increment-version-2.1.3: Updated Makefile for additional solver settings files. Added solver configuration files from CIG 2016
2 parents ac2d45d + 453e5a3 commit 5ee1b51

File tree

6 files changed

+102
-4
lines changed

6 files changed

+102
-4
lines changed

share/Makefile.am

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,12 @@ EXTRA_DIST = \
2121
valgrind-openmpi.supp \
2222
generateetags.py \
2323
settings/debug_malloc.cfg \
24+
settings/solver_fault_additive.cfg \
2425
settings/solver_fault_exact.cfg \
26+
settings/solver_fault_fieldsplit.cfg \
2527
settings/solver_fault_schur.cfg \
26-
settings/solver_fault_fieldsplit.cfg
27-
28+
settings/solver_fault_schur_custompc.cfg \
29+
settings/solver_fault_schur_custompc_inexact.cfg \
30+
settings/solver_lu.cfg
2831

2932
# End of file
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# This file provides an inexact solver for the saddle point system arising from
2+
# problems with a fault. This should not normally be used except for testing.
3+
4+
[pylithapp.problem.formulation]
5+
# The split_fields flag must be specified, so that the PCFIELDSPLIT preconditioner
6+
# can be used. The matrix_type must be set to aij since we lose symmetry when
7+
# splitting.
8+
#
9+
split_fields = True
10+
matrix_type = aij
11+
12+
[pylithapp.petsc]
13+
# We use an additive factorization and solve the displacement exactly
14+
# with LU, but the fault tractions with only an identity.
15+
#
16+
snes_view = true
17+
#ksp_monitor_true_residual = true
18+
ksp_max_it = 1000
19+
fs_pc_type = fieldsplit
20+
fs_pc_use_amat = true
21+
fs_pc_fieldsplit_type = additive
22+
fs_fieldsplit_displacement_ksp_type = preonly
23+
fs_fieldsplit_displacement_pc_type = lu
24+
fs_fieldsplit_lagrange_multiplier_pc_type = jacobi
25+
fs_fieldsplit_lagrange_multiplier_ksp_type = preonly
26+
#fs_fieldsplit_lagrange_multipliers_ksp_converged_reason = true

share/settings/solver_fault_exact.cfg

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file provides an exact solver, the analogue of LU factorization, for the
2-
# saddle point system arising from problems with a fault. This shuold be used
2+
# saddle point system arising from problems with a fault. This should be used
33
# for experimental setup (physics, boundary conditions, etc.), validating
44
# against data, and verifying against other runs.
55

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

share/settings/solver_lu.cfg

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[pylithapp.petsc]
2+
snes_view = true
3+
pc_type = lu
4+

0 commit comments

Comments
 (0)