[cig-commits] [commit] baagaard/fix-cubit-cellsize, baagaard/fix-fullscale-3d-tests, baagaard/fix-packaging, knepley/fix-parallel-mult-faults, knepley/upgrade-petsc-interface, master, next: Updated old fieldsplit settings. (9af1ef7)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Wed Apr 9 03:03:00 PDT 2014


Repository : ssh://geoshell/pylith

On branches: baagaard/fix-cubit-cellsize,baagaard/fix-fullscale-3d-tests,baagaard/fix-packaging,knepley/fix-parallel-mult-faults,knepley/upgrade-petsc-interface,master,next
Link       : https://github.com/geodynamics/pylith/compare/a213c3005450d915f40c7137ff7d8dbbb439d334...1b3d6d3bc246edc4235d0051142d675d91e9be41

>---------------------------------------------------------------

commit 9af1ef7b5b008aeb1fc1faee28ddb535a3a8b51d
Author: Brad Aagaard <baagaard at usgs.gov>
Date:   Thu Mar 13 10:32:47 2014 -0700

    Updated old fieldsplit settings.
    
    Fields now use names rather than numbers.


>---------------------------------------------------------------

9af1ef7b5b008aeb1fc1faee28ddb535a3a8b51d
 doc/userguide/tutorials/3dtet4/3dtet4.lyx          | 82 ++++------------------
 share/settings/solver_fault_fieldsplit.cfg         | 27 +++++++
 ...solver_fault_opt.cfg => solver_fault_schur.cfg} |  2 +-
 tests/3d/cyclicfriction/fieldsplit.cfg             |  8 +--
 tests/3d/plasticity/threehex8/config/pylithapp.cfg | 18 ++---
 tests/3d/slipdir/pylithapp.cfg                     |  6 +-
 6 files changed, 58 insertions(+), 85 deletions(-)

diff --git a/doc/userguide/tutorials/3dtet4/3dtet4.lyx b/doc/userguide/tutorials/3dtet4/3dtet4.lyx
index 51cb6e9..b3606b0 100644
--- a/doc/userguide/tutorials/3dtet4/3dtet4.lyx
+++ b/doc/userguide/tutorials/3dtet4/3dtet4.lyx
@@ -930,8 +930,8 @@ step01.cfg
 step02.cfg
 \family default
 ), we use a more sophisticated preconditioner that preconditions the degrees
- of freedom associated with the three Cartesian coordinates separately while
- using an algebraic multigrid algorithm (see Section 
+ of freedom associated with the displacement field with an algebraic multigrid
+ algorithm (see Section 
 \begin_inset CommandInset ref
 LatexCommand ref
 reference "sec:petsc:options"
@@ -1116,7 +1116,7 @@ none (546 DOF)
 \begin_inset Text
 
 \begin_layout Plain Layout
-48
+47
 \end_layout
 
 \end_inset
@@ -1154,7 +1154,7 @@ none (546 DOF)
 \begin_inset Text
 
 \begin_layout Plain Layout
-12
+13
 \end_layout
 
 \end_inset
@@ -1196,7 +1196,7 @@ none (546 DOF)
 \begin_inset Text
 
 \begin_layout Plain Layout
-17 (step02)
+28 (step02)
 \end_layout
 
 \end_inset
@@ -1234,7 +1234,7 @@ none (735 DOF)
 \begin_inset Text
 
 \begin_layout Plain Layout
-35 (step03)
+28 (step03)
 \end_layout
 
 \end_inset
@@ -1276,7 +1276,7 @@ none (735 DOF)
 \begin_inset Text
 
 \begin_layout Plain Layout
-83
+63
 \end_layout
 
 \end_inset
@@ -1314,7 +1314,7 @@ none (735 DOF)
 \begin_inset Text
 
 \begin_layout Plain Layout
-33
+28
 \end_layout
 
 \end_inset
@@ -1356,7 +1356,7 @@ none (735 DOF)
 \begin_inset Text
 
 \begin_layout Plain Layout
-53 (step04)
+38 (step04)
 \end_layout
 
 \end_inset
@@ -1388,10 +1388,6 @@ step02.cfg
 \end_layout
 
 \begin_layout LyX-Code
-split_fields = True
-\end_layout
-
-\begin_layout LyX-Code
 matrix_type = aij
 \end_layout
 
@@ -1404,39 +1400,7 @@ matrix_type = aij
 \end_layout
 
 \begin_layout LyX-Code
-fs_pc_type = fieldsplit
-\end_layout
-
-\begin_layout LyX-Code
-fs_pc_use_amat = 
-\end_layout
-
-\begin_layout LyX-Code
-fs_pc_fieldsplit_type = multiplicative
-\end_layout
-
-\begin_layout LyX-Code
-fs_fieldsplit_0_pc_type = ml
-\end_layout
-
-\begin_layout LyX-Code
-fs_fieldsplit_1_pc_type = ml
-\end_layout
-
-\begin_layout LyX-Code
-fs_fieldsplit_2_pc_type = ml
-\end_layout
-
-\begin_layout LyX-Code
-fs_fieldsplit_0_ksp_type = preonly
-\end_layout
-
-\begin_layout LyX-Code
-fs_fieldsplit_1_ksp_type = preonly
-\end_layout
-
-\begin_layout LyX-Code
-fs_fieldsplit_2_ksp_type = preonly
+pc_type = ml
 \end_layout
 
 \begin_layout Standard
@@ -1907,7 +1871,7 @@ fs_pc_type = fieldsplit
 \end_layout
 
 \begin_layout LyX-Code
-fs_pc_use_amat =
+fs_pc_use_amat = true
 \end_layout
 
 \begin_layout LyX-Code
@@ -1915,35 +1879,19 @@ fs_pc_fieldsplit_type = multiplicative
 \end_layout
 
 \begin_layout LyX-Code
-fs_fieldsplit_0_pc_type = ml
-\end_layout
-
-\begin_layout LyX-Code
-fs_fieldsplit_1_pc_type = ml
-\end_layout
-
-\begin_layout LyX-Code
-fs_fieldsplit_2_pc_type = ml
-\end_layout
-
-\begin_layout LyX-Code
-fs_fieldsplit_3_pc_type = ml
-\end_layout
-
-\begin_layout LyX-Code
-fs_fieldsplit_0_ksp_type = preonly
+fs_fieldsplit_displacement_pc_type = ml
 \end_layout
 
 \begin_layout LyX-Code
-fs_fieldsplit_1_ksp_type = preonly
+fs_fieldsplit_lagrange_multiplier_pc_type = jacobi
 \end_layout
 
 \begin_layout LyX-Code
-fs_fieldsplit_2_ksp_type = preonly
+fs_fieldsplit_displacement_ksp_type = preonly
 \end_layout
 
 \begin_layout LyX-Code
-fs_fieldsplit_3_ksp_type = preonly
+fs_fieldsplit_lagrange_multiplier_ksp_type = preonly
 \end_layout
 
 \begin_layout Standard
diff --git a/share/settings/solver_fault_fieldsplit.cfg b/share/settings/solver_fault_fieldsplit.cfg
new file mode 100644
index 0000000..4e1909a
--- /dev/null
+++ b/share/settings/solver_fault_fieldsplit.cfg
@@ -0,0 +1,27 @@
+# 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]
+# The displacements are solved with algebraic multigrid (ML), 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 =
+fs_pc_fieldsplit_type = multiplicative
+fs_fieldsplit_displacement_pc_type = ml
+fs_fieldsplit_lagrange_multiplier_pc_type = jacobi
+fs_fieldsplit_displacement_ksp_type = preonly
+fs_fieldsplit_lagrange_multiplier_ksp_type = preonly
diff --git a/share/settings/solver_fault_opt.cfg b/share/settings/solver_fault_schur.cfg
similarity index 95%
rename from share/settings/solver_fault_opt.cfg
rename to share/settings/solver_fault_schur.cfg
index 8fe63c3..803c515 100644
--- a/share/settings/solver_fault_opt.cfg
+++ b/share/settings/solver_fault_schur.cfg
@@ -30,4 +30,4 @@ fs_fieldsplit_displacement_pc_type = gamg
 fs_fieldsplit_lagrange_multiplier_pc_type = jacobi
 fs_fieldsplit_lagrange_multiplier_ksp_type = gmres
 fs_fieldsplit_lagrange_multiplier_ksp_rtol = 1.0e-05
-#fs_fieldsplit_lagrange_multipliers_ksp_converged_reason = true
+#fs_fieldsplit_lagrange_multiplier_ksp_converged_reason = true
diff --git a/tests/3d/cyclicfriction/fieldsplit.cfg b/tests/3d/cyclicfriction/fieldsplit.cfg
index 5cc175a..9863d6c 100644
--- a/tests/3d/cyclicfriction/fieldsplit.cfg
+++ b/tests/3d/cyclicfriction/fieldsplit.cfg
@@ -8,7 +8,7 @@ ksp_gmres_restart = 100
 fs_pc_type = fieldsplit
 fs_pc_use_amat = true
 fs_pc_fieldsplit_type = multiplicative
-fs_fieldsplit_0_pc_type = ml
-fs_fieldsplit_1_pc_type = jacobi
-fs_fieldsplit_0_ksp_type = preonly
-fs_fieldsplit_1_ksp_type = preonly
+fs_fieldsplit_displacement_pc_type = ml
+fs_fieldsplit_lagrange_multiplier_pc_type = jacobi
+fs_fieldsplit_displacement_ksp_type = preonly
+fs_fieldsplit_lagrange_multiplier_ksp_type = preonly
diff --git a/tests/3d/plasticity/threehex8/config/pylithapp.cfg b/tests/3d/plasticity/threehex8/config/pylithapp.cfg
index 973d1e5..0ff4e81 100644
--- a/tests/3d/plasticity/threehex8/config/pylithapp.cfg
+++ b/tests/3d/plasticity/threehex8/config/pylithapp.cfg
@@ -80,17 +80,13 @@ log_summary = true
 # matrix_type = aij
 
 [pylithapp.petsc]
-# fs_pc_type = fieldsplit
-# fs_pc_use_amat =
-# fs_pc_fieldsplit_type = multiplicative
-# fs_fieldsplit_0_pc_type = ml
-# fs_fieldsplit_1_pc_type = ml
-# fs_fieldsplit_2_pc_type = ml
-# fs_fieldsplit_3_pc_type = ml
-# fs_fieldsplit_0_ksp_type = preonly
-# fs_fieldsplit_1_ksp_type = preonly
-# fs_fieldsplit_2_ksp_type = preonly
-# fs_fieldsplit_3_ksp_type = preonly
+#fs_pc_type = fieldsplit
+#fs_pc_use_amat = true
+#fs_pc_fieldsplit_type = multiplicative
+#fs_fieldsplit_displacement_pc_type = ml
+#fs_fieldsplit_lagrange_multiplier_pc_type = jacobi
+#fs_fieldsplit_displacement_ksp_type = preonly
+#fs_fieldsplit_lagrange_multiplier_ksp_type = preonly
 
 # Nonlinear solver monitoring options.
 snes_rtol = 1.0e-12
diff --git a/tests/3d/slipdir/pylithapp.cfg b/tests/3d/slipdir/pylithapp.cfg
index 80d59bf..7cc639d 100644
--- a/tests/3d/slipdir/pylithapp.cfg
+++ b/tests/3d/slipdir/pylithapp.cfg
@@ -109,8 +109,10 @@ ksp_gmres_restart = 50
 fs_pc_type = fieldsplit
 fs_pc_use_amat = true
 fs_pc_fieldsplit_type = multiplicative
-fs_fieldsplit_0_pc_type = ml
-fs_fieldsplit_0_ksp_type = preonly
+fs_fieldsplit_displacement_pc_type = ml
+fs_fieldsplit_lagrange_multiplier_pc_type = jacobi
+fs_fieldsplit_displacement_ksp_type = preonly
+fs_fieldsplit_lagrange_multiplier_ksp_type = preonly
 
 [pylithapp.timedependent.formulation]
 use_custom_constraint_pc = True



More information about the CIG-COMMITS mailing list