[cig-commits] r22498 - in short/3D/PyLith/trunk/share: . solver

knepley at geodynamics.org knepley at geodynamics.org
Tue Jul 2 15:17:45 PDT 2013


Author: knepley
Date: 2013-07-02 15:17:44 -0700 (Tue, 02 Jul 2013)
New Revision: 22498

Added:
   short/3D/PyLith/trunk/share/solver/
   short/3D/PyLith/trunk/share/solver/solver_fault_exact.cfg
   short/3D/PyLith/trunk/share/solver/solver_fault_opt.cfg
Log:
Added solver configuration files

Added: short/3D/PyLith/trunk/share/solver/solver_fault_exact.cfg
===================================================================
--- short/3D/PyLith/trunk/share/solver/solver_fault_exact.cfg	                        (rev 0)
+++ short/3D/PyLith/trunk/share/solver/solver_fault_exact.cfg	2013-07-02 22:17:44 UTC (rev 22498)
@@ -0,0 +1,30 @@
+# This file provides an exact solver, the analogue of LU factorization, for the
+# saddle point system arising from problems with a fault. This shuold be used
+# for experimental setup (physics, boundary conditions, etc.), validating
+# against data, and verifying against other runs.
+
+[pylithapp.timedependent.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.
+#
+split_fields = True
+matrix_type = aij
+
+[pylithapp.petsc]
+# We use a full Schur complement factorization and solve the subsystems exactly,
+# the displacements with LU, and the fault tractions with a very low tolerance
+# 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_fieldsplit_displacement_ksp_type = preonly
+fs_fieldsplit_displacement_pc_type = lu
+fs_fieldsplit_lagrange_multipliers_pc_type = jacobi
+fs_fieldsplit_lagrange_multipliers_ksp_type = gmres
+fs_fieldsplit_lagrange_multipliers_ksp_rtol = 1.0e-11
+#fs_fieldsplit_lagrange_multipliers_ksp_converged_reason = true

Added: short/3D/PyLith/trunk/share/solver/solver_fault_opt.cfg
===================================================================
--- short/3D/PyLith/trunk/share/solver/solver_fault_opt.cfg	                        (rev 0)
+++ short/3D/PyLith/trunk/share/solver/solver_fault_opt.cfg	2013-07-02 22:17:44 UTC (rev 22498)
@@ -0,0 +1,33 @@
+# 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.timedependent.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 = upper
+fs_pc_fieldsplit_schur_precondition = user
+fs_fieldsplit_displacement_ksp_type = gmres
+fs_fieldsplit_displacement_ksp_rtol = 5.0e-10
+fs_fieldsplit_displacement_pc_type = gamg
+fs_fieldsplit_lagrange_multipliers_pc_type = jacobi
+fs_fieldsplit_lagrange_multipliers_ksp_type = gmres
+fs_fieldsplit_lagrange_multipliers_ksp_rtol = 1.0e-05
+#fs_fieldsplit_lagrange_multipliers_ksp_converged_reason = true



More information about the CIG-COMMITS mailing list