geodynamics / pylith

PyLith is a finite element code for the solution of dynamic and quasi-static tectonic deformation problems.
Other
154 stars 98 forks source link

Poor performance for solve using fieldsplit + Schur complement for fault with prescribed slip #217

Closed baagaard-usgs closed 3 years ago

baagaard-usgs commented 4 years ago

Performance test of solver settings for fault with prescribed slip

PyLith branch: baagaard/update-examples-3dsubduction

cd examples/3d/subduction
pylith step03_interseismic.cfg mat_viscoelastic.cfg solver_fieldsplit.cfg

Summary: On my laptop (optimized build), v2.2.2 takes 243 sec whereas v3.x takes 4420 sec.

Performance summary for v2.2.2

Solver settings

[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
---------------------------------------------- PETSc Performance Summary: ----------------------------------------------

/Users/baagaard/tmp/pylith/pylith-2.2.2-darwin-10.13.6/bin/mpinemesis on a  named igskcicgltgm067 with 1 processor, by baagaard Wed Nov  4 08:59:02 2020
Using Petsc Release Version 3.10.2, Jul, 01, 2019

                         Max       Max/Min     Avg       Total
Time (sec):           2.425e+02     1.000   2.425e+02
Objects:              2.555e+03     1.000   2.555e+03
Flop:                 3.411e+11     1.000   3.411e+11  3.411e+11
Flop/sec:             1.407e+09     1.000   1.407e+09  1.407e+09
Memory:               7.291e+08     1.000   7.291e+08  7.291e+08
MPI Messages:         0.000e+00     0.000   0.000e+00  0.000e+00
MPI Message Lengths:  0.000e+00     0.000   0.000e+00  0.000e+00
MPI Reductions:       0.000e+00     0.000

Flop counting convention: 1 flop = 1 real number operation of type (multiply/divide/add/subtract)
                            e.g., VecAXPY() for real vectors of length N --> 2N flop
                            and VecAXPY() for complex vectors of length N --> 8N flop

Summary of Stages:   ----- Time ------  ----- Flop ------  --- Messages ---  -- Message Lengths --  -- Reductions --
                        Avg     %Total     Avg     %Total    Count   %Total     Avg         %Total    Count   %Total
 0:      Main Stage: 4.8538e-01   0.2%  0.0000e+00   0.0%  0.000e+00   0.0%  0.000e+00        0.0%  0.000e+00   0.0%
 1:         Meshing: 2.2504e+00   0.9%  8.8599e+04   0.0%  0.000e+00   0.0%  0.000e+00        0.0%  0.000e+00   0.0%
 2:           Setup: 4.7817e+00   2.0%  4.1229e+07   0.0%  0.000e+00   0.0%  0.000e+00        0.0%  0.000e+00   0.0%
 3: Reform Jacobian: 2.7621e+00   1.1%  8.7800e+08   0.3%  0.000e+00   0.0%  0.000e+00        0.0%  0.000e+00   0.0%
 4: Reform Residual: 2.7223e+00   1.1%  1.1158e+09   0.3%  0.000e+00   0.0%  0.000e+00        0.0%  0.000e+00   0.0%
 5:           Solve: 2.2126e+02  91.2%  3.3744e+11  98.9%  0.000e+00   0.0%  0.000e+00        0.0%  0.000e+00   0.0%
 6:         Prestep: 1.3187e+00   0.5%  0.0000e+00   0.0%  0.000e+00   0.0%  0.000e+00        0.0%  0.000e+00   0.0%
 7:            Step: 1.3661e-01   0.1%  0.0000e+00   0.0%  0.000e+00   0.0%  0.000e+00        0.0%  0.000e+00   0.0%
 8:        Poststep: 6.4445e+00   2.7%  1.6289e+09   0.5%  0.000e+00   0.0%  0.000e+00        0.0%  0.000e+00   0.0%
 9:        Finalize: 3.2762e-01   0.1%  0.0000e+00   0.0%  0.000e+00   0.0%  0.000e+00        0.0%  0.000e+00   0.0%

------------------------------------------------------------------------------------------------------------------------
See the 'Profiling' chapter of the users' manual for details on interpreting output.
Phase summary info:
   Count: number of times phase was executed
   Time and Flop: Max - maximum over all processors
                  Ratio - ratio of maximum to minimum over all processors
   Mess: number of messages sent
   AvgLen: average message length (bytes)
   Reduct: number of global reductions
   Global: entire computation
   Stage: stages of a computation. Set stages with PetscLogStagePush() and PetscLogStagePop().
      %T - percent time in this phase         %F - percent flop in this phase
      %M - percent messages in this phase     %L - percent message lengths in this phase
      %R - percent reductions in this phase
   Total Mflop/s: 10e-6 * (sum of flop over all processors)/(max time over all processors)
------------------------------------------------------------------------------------------------------------------------
Event                Count      Time (sec)     Flop                              --- Global ---  --- Stage ----  Total
                   Max Ratio  Max     Ratio   Max  Ratio  Mess   AvgLen  Reduct  %T %F %M %L %R  %T %F %M %L %R Mflop/s
------------------------------------------------------------------------------------------------------------------------

--- Event Stage 0: Main Stage

--- Event Stage 1: Meshing

MeIm create            1 1.0 2.2449e+00 1.0 8.86e+04 1.0 0.0e+00 0.0e+00 0.0e+00  1  0  0  0  0 100100  0  0  0     0
MeIm adjTopo           1 1.0 8.7856e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0  39  0  0  0  0     0
MeIm reorder           1 1.0 2.2579e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0  10  0  0  0  0     0
DMPlexInterp           1 1.0 7.0599e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0  31  0  0  0  0     0
DMPlexStratify         5 1.0 2.6267e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0  12  0  0  0  0     0
VecScale               1 1.0 1.1611e-04 1.0 8.86e+04 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0100  0  0  0   763
VecSet                 6 1.0 3.6550e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
Refin refine           1 1.0 2.8610e-06 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0

--- Event Stage 2: Setup

BuildTwoSided          4 1.0 6.4135e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
BuildTwoSidedF         6 1.0 2.1191e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DMPlexStratify         3 1.0 4.1223e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DMPlexPrealloc         1 1.0 2.5180e+00 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  1  0  0  0  0  53  0  0  0  0     0
SFSetGraph            25 1.0 5.2214e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFSetUp                4 1.0 7.9799e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFBcastBegin           4 1.0 2.7180e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFBcastEnd             4 1.0 3.5048e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFReduceBegin          4 1.0 3.5572e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFReduceEnd            4 1.0 4.4823e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatAssemblyBegin       1 1.0 0.0000e+00 0.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatAssemblyEnd         1 1.0 1.2643e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatZeroEntries         1 1.0 1.9822e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecView               20 1.0 8.0836e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   2  0  0  0  0     0
VecMDot                3 1.0 3.7503e-04 1.0 2.15e+06 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  5  0  0  0  5738
VecNorm                6 1.0 1.8096e-04 1.0 1.08e+06 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  3  0  0  0  5946
VecScale              20 1.0 1.8764e-03 1.0 1.35e+06 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  3  0  0  0   719
VecCopy               14 1.0 4.7684e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecSet               187 1.0 2.7586e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   1  0  0  0  0     0
VecMAXPY               3 1.0 2.9206e-04 1.0 2.15e+06 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  5  0  0  0  7369
VecAssemblyBegin       6 1.0 2.1572e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecAssemblyEnd         6 1.0 2.7895e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecNormalize           6 1.0 1.1308e-03 1.0 1.61e+06 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  4  0  0  0  1427
TSIm preinit           1 1.0 1.0163e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   2  0  0  0  0     0
TSIm verify            1 1.0 7.7466e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   2  0  0  0  0     0
DtUn preinit           1 1.0 4.0531e-06 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DtUn verify            1 1.0 3.0994e-06 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DtUn init              1 1.0 1.7166e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
ElIm verify            4 1.0 7.4580e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   2  0  0  0  0     0
ElIm init              4 1.0 1.4804e+00 1.0 3.37e+07 1.0 0.0e+00 0.0e+00 0.0e+00  1  0  0  0  0  31 82  0  0  0    23
MaMx3D verify          2 1.0 3.7909e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
OutM init              8 1.0 2.4433e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   1  0  0  0  0     0
OutM open             14 1.0 9.6596e-01 1.0 8.11e+05 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0  20  2  0  0  0     1
OutM writeInfo         8 1.0 5.8726e-01 1.0 3.57e+06 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0  12  9  0  0  0     6
MaEl3D verify          2 1.0 2.0742e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DiBC verify            5 1.0 4.4823e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DiBC init              5 1.0 1.3100e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
CoKi verify            2 1.0 2.5582e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
CoKi init              2 1.0 8.4572e-02 1.0 1.52e+06 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   2  4  0  0  0    18
EqKi verify            2 1.0 1.7166e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
EqKi init              2 1.0 3.0041e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
CrSF verify            2 1.0 4.0531e-06 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
CrSF init              2 1.0 5.9605e-06 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0

--- Event Stage 3: Reform Jacobian

MatAssemblyBegin       8 1.0 9.5367e-07 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatAssemblyEnd         8 1.0 5.4851e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatCreateSubMats       4 1.0 9.5019e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatZeroEntries         2 1.0 2.6450e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
ElIJ setup             8 1.0 1.2890e+00 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  1  0  0  0  0  47  0  0  0  0     0
ElIJ compute           8 1.0 1.4327e+00 1.0 8.78e+08 1.0 0.0e+00 0.0e+00 0.0e+00  1  0  0  0  0  52100  0  0  0   613
FaIJ setup             4 1.0 1.9789e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
FaIJ compute           4 1.0 4.3001e-03 1.0 1.90e+04 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     4
FaPr setup             4 1.0 1.6212e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
FaPr compute           4 1.0 1.2120e-02 1.0 5.70e+04 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     5

--- Event Stage 4: Reform Residual

BuildTwoSided          1 1.0 1.7166e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFSetGraph             1 1.0 3.6001e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFSetUp                1 1.0 2.2111e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFBcastBegin          21 1.0 3.1080e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFBcastEnd            21 1.0 4.1890e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFReduceBegin         21 1.0 3.8724e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFReduceEnd           21 1.0 4.7731e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecSet                84 1.0 1.1234e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
ElIR setup            84 1.0 3.2568e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0  12  0  0  0  0     0
ElIR compute          84 1.0 2.1919e+00 1.0 1.11e+09 1.0 0.0e+00 0.0e+00 0.0e+00  1  0  0  0  0  81100  0  0  0   507
FaIR setup            84 1.0 2.0449e-03 1.0 7.31e+05 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0   358
FaIR compute          42 1.0 2.6259e-03 1.0 9.97e+05 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0   380

--- Event Stage 5: Solve

BuildTwoSided          1 1.0 2.1935e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFSetUp                1 1.0 3.4149e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFBcastBegin          21 1.0 4.9498e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFBcastEnd            21 1.0 5.1956e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatMult            26623 1.0 4.2812e+01 1.0 8.13e+10 1.0 0.0e+00 0.0e+00 0.0e+00 18 24  0  0  0  19 24  0  0  0  1898
MatMultAdd          9984 1.0 7.5145e+00 1.0 1.46e+10 1.0 0.0e+00 0.0e+00 0.0e+00  3  4  0  0  0   3  4  0  0  0  1937
MatSolve            3328 1.0 6.4981e-03 1.0 2.20e+05 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0    34
MatSOR             19968 1.0 1.4987e+02 1.0 2.12e+11 1.0 0.0e+00 0.0e+00 0.0e+00 62 62  0  0  0  68 63  0  0  0  1413
MatLUFactorSym         2 1.0 2.1935e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatLUFactorNum         2 1.0 6.0980e-03 1.0 2.58e+02 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatResidual         9984 1.0 1.9771e+01 1.0 3.85e+10 1.0 0.0e+00 0.0e+00 0.0e+00  8 11  0  0  0   9 11  0  0  0  1947
MatAssemblyBegin      26 1.0 7.8678e-06 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatAssemblyEnd        26 1.0 2.7149e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatGetRowIJ            2 1.0 5.9605e-06 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatCreateSubMats       8 1.0 1.7289e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatGetOrdering         2 1.0 3.9101e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecMDot             3247 1.0 4.5395e+00 1.0 1.40e+10 1.0 0.0e+00 0.0e+00 0.0e+00  2  4  0  0  0   2  4  0  0  0  3088
VecNorm             3328 1.0 9.1993e-02 1.0 5.97e+08 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0  6488
VecScale            6655 1.0 2.8693e+00 1.0 3.13e+08 1.0 0.0e+00 0.0e+00 0.0e+00  1  0  0  0  0   1  0  0  0  0   109
VecCopy               81 1.0 5.8627e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecSet             26809 1.0 3.2529e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecAXPY              140 1.0 6.5913e-02 1.0 2.51e+07 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0   381
VecAYPX             9984 1.0 3.1647e-01 1.0 3.16e+08 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0   997
VecMAXPY            3327 1.0 3.8049e+00 1.0 1.46e+10 1.0 0.0e+00 0.0e+00 0.0e+00  2  4  0  0  0   2  4  0  0  0  3837
VecPointwiseMult    3328 1.0 1.3631e-02 1.0 1.51e+07 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0  1111
VecScatterBegin    13312 1.0 4.8288e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecNormalize        3328 1.0 1.5437e+00 1.0 8.95e+08 1.0 0.0e+00 0.0e+00 0.0e+00  1  0  0  0  0   1  0  0  0  0   580
SoLi setup            21 1.0 4.5300e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SoLi solve            21 1.0 2.2108e+02 1.0 3.37e+11 1.0 0.0e+00 0.0e+00 0.0e+00 91 99  0  0  0 100100  0  0  0  1526
SoLi scatter          42 1.0 1.7357e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
KSPSetUp              33 1.0 3.2892e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
KSPSolve              21 1.0 2.2108e+02 1.0 3.37e+11 1.0 0.0e+00 0.0e+00 0.0e+00 91 99  0  0  0 100100  0  0  0  1526
KSPGMRESOrthog      3247 1.0 8.2003e+00 1.0 2.80e+10 1.0 0.0e+00 0.0e+00 0.0e+00  3  8  0  0  0   4  8  0  0  0  3418
PCSetUp                6 1.0 8.0851e+00 1.0 1.46e+08 1.0 0.0e+00 0.0e+00 0.0e+00  3  0  0  0  0   4  0  0  0  0    18
PCApply             3328 1.0 1.9701e+02 1.0 2.81e+11 1.0 0.0e+00 0.0e+00 0.0e+00 81 82  0  0  0  89 83  0  0  0  1425
KSPSolve_FS_0       3328 1.0 1.9436e+02 1.0 2.79e+11 1.0 0.0e+00 0.0e+00 0.0e+00 80 82  0  0  0  88 83  0  0  0  1438
KSPSolve_FS_1       3328 1.0 4.0663e-02 1.0 1.51e+07 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0   372

--- Event Stage 6: Prestep

VecSet                21 1.0 5.2333e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
TSIm timestep         21 1.0 1.2777e+00 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  1  0  0  0  0  97  0  0  0  0     0

--- Event Stage 7: Step

--- Event Stage 8: Poststep

BuildTwoSidedF       168 1.0 3.4211e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFSetGraph             6 1.0 5.0378e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecView              168 1.0 8.6908e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0  13  0  0  0  0     0
VecCopy              126 1.0 2.3913e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecSet                95 1.0 1.5238e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecAXPY               21 1.0 9.8965e-03 1.0 3.91e+06 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0   395
VecAssemblyBegin     168 1.0 4.4038e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecAssemblyEnd       168 1.0 5.4884e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
TSIm poststep         21 1.0 1.4594e+00 1.0 7.22e+08 1.0 0.0e+00 0.0e+00 0.0e+00  1  0  0  0  0  23 44  0  0  0   495
TSIm write            21 1.0 3.8572e+00 1.0 9.03e+08 1.0 0.0e+00 0.0e+00 0.0e+00  2  0  0  0  0  60 55  0  0  0   234
ElIm poststep         84 1.0 1.4583e+00 1.0 7.22e+08 1.0 0.0e+00 0.0e+00 0.0e+00  1  0  0  0  0  23 44  0  0  0   495
ElIm write            84 1.0 3.2901e+00 1.0 9.02e+08 1.0 0.0e+00 0.0e+00 0.0e+00  1  0  0  0  0  51 55  0  0  0   274
OutM writeData       168 1.0 4.9521e+00 1.0 9.03e+08 1.0 0.0e+00 0.0e+00 0.0e+00  2  0  0  0  0  77 55  0  0  0   182
CoKi poststep         42 1.0 2.0361e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
CoKi write            42 1.0 5.6605e-01 1.0 7.31e+05 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   9  0  0  0  0     1

--- Event Stage 9: Finalize

TSIm finalize          1 1.0 3.2760e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0 100  0  0  0  0     0
OutM close             8 1.0 2.9983e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0  92  0  0  0  0     0
------------------------------------------------------------------------------------------------------------------------

Memory usage is given in bytes:

Object Type          Creations   Destructions     Memory  Descendants' Mem.
Reports information only for process 0.

--- Event Stage 0: Main Stage

           Container     0             84        48384     0.
    Distributed Mesh     0            213      1002264     0.
    GraphPartitioner     0              4         2448     0.
           Index Set     0             75     70500996     0.
   IS L to G Mapping     0              1       373272     0.
             Section     0            218       155216     0.
   Star Forest Graph     0            217       173984     0.
     Discrete System     0            213       197664     0.
              Matrix     0             20    173195284     0.
   Matrix Null Space     0              1          696     0.
              Vector     0            190    139806912     0.
              Viewer     1              1          840     0.
       Krylov Solver     0              7        54592     0.
      Preconditioner     0              7         7320     0.
         Vec Scatter     0              2         1392     0.

--- Event Stage 1: Meshing

           Container     3              2         1152     0.
    Distributed Mesh    22             19        93040     0.
    GraphPartitioner     9              8         4896     0.
           Index Set   372            368     11723344     0.
             Section    52             46        32752     0.
   Star Forest Graph    44             40        32000     0.
     Discrete System    22             19        17632     0.
              Matrix     7              6        16848     0.
              Vector     6              5      2084256     0.
              Viewer     1              0            0     0.

--- Event Stage 2: Setup

           Container   106             36        20736     0.
    Distributed Mesh   219             42       197232     0.
    GraphPartitioner     3              0            0     0.
           Index Set   120             63       995568     0.
   IS L to G Mapping     1              0            0     0.
             Section   233             59        42008     0.
   Star Forest Graph   440            260       208000     0.
     Discrete System   219             42        38976     0.
              Matrix     5              0            0     0.
   Matrix Null Space     1              0            0     0.
              Vector   165             62     34570800     0.
              Viewer    14              6         4752     0.
       Krylov Solver     1              0            0     0.
      Preconditioner     1              0            0     0.

--- Event Stage 3: Reform Jacobian

           Index Set     8              4         3168     0.
             Section    20             16        11392     0.
              Matrix     4              4      9183712     0.

--- Event Stage 4: Reform Residual

           Index Set     1              0            0     0.
             Section     1              0            0     0.

--- Event Stage 5: Solve

           Container     4              2         1152     0.
    Distributed Mesh     6              0            0     0.
           Index Set    14              9         7232     0.
             Section     6              0            0     0.
   Star Forest Graph    12              6         4800     0.
     Discrete System     6              0            0     0.
              Matrix    24             10     25677556     0.
              Vector   100             24      6066448     0.
       Krylov Solver     6              0            0     0.
      Preconditioner     6              0            0     0.
         Vec Scatter     2              0            0     0.

--- Event Stage 6: Prestep

           Index Set     4              0            0     0.
             Section     4              0            0     0.

--- Event Stage 7: Step

--- Event Stage 8: Poststep

           Container    16              5         2880     0.
    Distributed Mesh    42             15        70440     0.
           Index Set     1              1        39208     0.
             Section    43             20        14240     0.
   Star Forest Graph    84             57        45600     0.
     Discrete System    42             15        13920     0.
              Vector    32             14      5116136     0.

--- Event Stage 9: Finalize

              Vector     0              8        13312     0.
              Viewer     0              8         6336     0.
========================================================================================================================
Average time to get PetscTime(): 0.
#PETSc Option Table entries:
-fs_fieldsplit_displacement_ksp_type preonly
-fs_fieldsplit_displacement_pc_type ml
-fs_fieldsplit_lagrange_multiplier_ksp_type preonly
-fs_fieldsplit_lagrange_multiplier_pc_type jacobi
-fs_pc_fieldsplit_type multiplicative
-fs_pc_type fieldsplit
-fs_pc_use_amat
-ksp_atol 1.0e-11
-ksp_converged_reason
-ksp_error_if_not_converged
-ksp_gmres_restart 50
-ksp_max_it 500
-ksp_monitor
-ksp_rtol 1.0e-10
-log_summary
-log_view
-malloc_dump
-pc_type lu
-snes_atol 1.0e-9
-snes_converged_reason
-snes_error_if_not_converged
-snes_linesearch_monitor
-snes_max_it 100
-snes_monitor
-snes_rtol 1.0e-10
#End of PETSc Option Table entries
Compiled without FORTRAN kernels
Compiled with full precision matrices (default)
sizeof(short) 2 sizeof(int) 4 sizeof(long) 8 sizeof(void*) 8 sizeof(PetscScalar) 8 sizeof(PetscInt) 4
Configure options: --prefix=/Volumes/Users/baagaard/scratch/build/cig/clang-3.6.0/pylith-binary/dist --with-c2html=0 --with-x=0 --with-clanguage=C --with-mpicompilers=1 --with-shared-libraries=1 --with-64-bit-points=1 --with-large-file-io=1 --download-chaco=1 --download-ml --with-fc=0 --with-hwloc=0 --with-ssl=0 --with-x=0 --with-c2html=0 --with-lgrind=0 --with-blas-lib=/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Versions/Current/libBLAS.dylib --with-lapack-lib=/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Versions/Current/libLAPACK.dylib --with-hdf5=1 --with-hdf5-dir=/Volumes/Users/baagaard/scratch/build/cig/clang-3.6.0/pylith-binary/dist --with-zlib=1 --LIBS=-lz --with-debugging=0 --with-fc=0 CPPFLAGS="-I/Volumes/Users/baagaard/scratch/build/cig/clang-3.6.0/pylith-binary/dist/include -I/Volumes/Users/baagaard/scratch/build/cig/clang-3.6.0/pylith-binary/dist/include " LDFLAGS="-L/Volumes/Users/baagaard/scratch/build/cig/clang-3.6.0/pylith-binary/dist/lib -L/Volumes/Users/baagaard/scratch/build/cig/clang-3.6.0/pylith-binary/dist/lib64 -L/Volumes/Users/baagaard/scratch/build/cig/clang-3.6.0/pylith-binary/dist/lib -L/Volumes/Users/baagaard/scratch/build/cig/clang-3.6.0/pylith-binary/dist/lib64 " CFLAGS="-g -O2" CXXFLAGS="-g -O2 -DMPICH_IGNORE_CXX_SEEK" FCFLAGS= PETSC_DIR=/Volumes/Scratch/baagaard/build/cig/clang-3.6.0/pylith-binary/build/petsc-pylith PETSC_ARCH=arch-pylith
-----------------------------------------
Libraries compiled on 2019-07-02 18:07:51 on IGSWMHWGLTE0904
Machine characteristics: Darwin-17.7.0-x86_64-i386-64bit
Using PETSc directory: /Volumes/Users/baagaard/scratch/build/cig/clang-3.6.0/pylith-binary/dist
Using PETSc arch:
-----------------------------------------

Using C compiler: mpicc -g -O2   -I/Volumes/Users/baagaard/scratch/build/cig/clang-3.6.0/pylith-binary/dist/include -I/Volumes/Users/baagaard/scratch/build/cig/clang-3.6.0/pylith-binary/dist/include
-----------------------------------------

Using include paths: -I/Volumes/Users/baagaard/scratch/build/cig/clang-3.6.0/pylith-binary/dist/include
-----------------------------------------

Using C linker: mpicc
Using libraries: -Wl,-rpath,/Volumes/Users/baagaard/scratch/build/cig/clang-3.6.0/pylith-binary/dist/lib -L/Volumes/Users/baagaard/scratch/build/cig/clang-3.6.0/pylith-binary/dist/lib -lpetsc -Wl,-rpath,/Volumes/Users/baagaard/scratch/build/cig/clang-3.6.0/pylith-binary/dist/lib -L/Volumes/Users/baagaard/scratch/build/cig/clang-3.6.0/pylith-binary/dist/lib -Wl,-rpath,/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Versions/Current -L/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Versions/Current -lml -lLAPACK -lBLAS -lhdf5_hl -lhdf5 -lchaco -lstdc++ -ldl -lz
-----------------------------------------

Performance summary for v3.x (branch listed above)

Solver settings

[pylithapp.petsc]
ts_type = beuler

# 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.
#
pc_type = fieldsplit
pc_use_amat = true
pc_fieldsplit_type = schur
pc_fieldsplit_schur_factorization_type = full

pc_fieldsplit_schur_precondition = selfp

fieldsplit_displacement_ksp_type = preonly
fieldsplit_displacement_pc_type = ml
fieldsplit_lagrange_multiplier_fault_pc_type = lu
fieldsplit_lagrange_multiplier_fault_ksp_type = gmres
fieldsplit_lagrange_multiplier_fault_ksp_rtol = 1.0e-11
fieldsplit_lagrange_multiplier_fault_ksp_converged_reason = true
---------------------------------------------- PETSc Performance Summary: ----------------------------------------------

/Users/baagaard/tools/unix/cig/clang-3.6.0_opt/bin/mpinemesis on a arch-clang-3.6.0_opt named igskcicgltgm067 with 1 processor, by baagaard Wed Nov  4 10:25:46 2020
Using Petsc Development GIT revision: v3.14-155-gf279c011de  GIT Date: 2020-10-13 15:22:30 +0000

                         Max       Max/Min     Avg       Total
Time (sec):           4.420e+03     1.000   4.420e+03
Objects:              4.701e+05     1.000   4.701e+05
Flop:                 5.210e+12     1.000   5.210e+12  5.210e+12
Flop/sec:             1.179e+09     1.000   1.179e+09  1.179e+09
MPI Messages:         0.000e+00     0.000   0.000e+00  0.000e+00
MPI Message Lengths:  0.000e+00     0.000   0.000e+00  0.000e+00
MPI Reductions:       0.000e+00     0.000

Flop counting convention: 1 flop = 1 real number operation of type (multiply/divide/add/subtract)
                            e.g., VecAXPY() for real vectors of length N --> 2N flop
                            and VecAXPY() for complex vectors of length N --> 8N flop

Summary of Stages:   ----- Time ------  ----- Flop ------  --- Messages ---  -- Message Lengths --  -- Reductions --
                        Avg     %Total     Avg     %Total    Count   %Total     Avg         %Total    Count   %Total
 0:      Main Stage: 4.4059e+03  99.7%  5.2102e+12 100.0%  0.000e+00   0.0%  0.000e+00        0.0%  0.000e+00   0.0%
 1:         Meshing: 3.1520e+00   0.1%  8.8599e+04   0.0%  0.000e+00   0.0%  0.000e+00        0.0%  0.000e+00   0.0%
 2:           Setup: 1.0575e+01   0.2%  2.2345e+08   0.0%  0.000e+00   0.0%  0.000e+00        0.0%  0.000e+00   0.0%
 3:        Finalize: 1.4877e-04   0.0%  0.0000e+00   0.0%  0.000e+00   0.0%  0.000e+00        0.0%  0.000e+00   0.0%

------------------------------------------------------------------------------------------------------------------------
See the 'Profiling' chapter of the users' manual for details on interpreting output.
Phase summary info:
   Count: number of times phase was executed
   Time and Flop: Max - maximum over all processors
                  Ratio - ratio of maximum to minimum over all processors
   Mess: number of messages sent
   AvgLen: average message length (bytes)
   Reduct: number of global reductions
   Global: entire computation
   Stage: stages of a computation. Set stages with PetscLogStagePush() and PetscLogStagePop().
      %T - percent time in this phase         %F - percent flop in this phase
      %M - percent messages in this phase     %L - percent message lengths in this phase
      %R - percent reductions in this phase
   Total Mflop/s: 10e-6 * (sum of flop over all processors)/(max time over all processors)
------------------------------------------------------------------------------------------------------------------------
Event                Count      Time (sec)     Flop                              --- Global ---  --- Stage ----  Total
                   Max Ratio  Max     Ratio   Max  Ratio  Mess   AvgLen  Reduct  %T %F %M %L %R  %T %F %M %L %R Mflop/s
------------------------------------------------------------------------------------------------------------------------

--- Event Stage 0: Main Stage

BuildTwoSided        220 1.0 6.0821e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
BuildTwoSidedF       213 1.0 8.8358e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DMCreateMat            1 1.0 2.5106e+00 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DMPlexInterp        4970 1.0 1.5105e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DMPlexStratify      6882 1.0 1.1407e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DMPlexSymmetrize    6882 1.0 4.5815e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DMPlexPrealloc         1 1.0 2.5029e+00 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DMPlexResidualFE     246 1.0 1.6284e+02 1.0 4.19e+10 1.0 0.0e+00 0.0e+00 0.0e+00  4  1  0  0  0   4  1  0  0  0   258
DMPlexJacobianFE      10 1.0 7.3996e+01 1.0 3.42e+09 1.0 0.0e+00 0.0e+00 0.0e+00  2  0  0  0  0   2  0  0  0  0    46
SFSetGraph           289 1.0 2.8362e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFSetUp                7 1.0 2.2701e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFBcastOpBegin      2519 1.0 1.2328e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFBcastOpEnd        2519 1.0 4.2198e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFReduceBegin       2412 1.0 7.9180e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFReduceEnd         2412 1.0 3.7315e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFPack              4931 1.0 7.6795e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFUnpack            4931 1.0 5.6171e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatMult          25060629 1.0 3.7186e+03 1.0 4.78e+12 1.0 0.0e+00 0.0e+00 0.0e+00 84 92  0  0  0  84 92  0  0  0  1285
MatMultAdd        378930 1.0 7.4446e+01 1.0 8.06e+10 1.0 0.0e+00 0.0e+00 0.0e+00  2  2  0  0  0   2  2  0  0  0  1083
MatSolve          189465 1.0 1.2415e+02 1.0 2.29e+11 1.0 0.0e+00 0.0e+00 0.0e+00  3  4  0  0  0   3  4  0  0  0  1842
MatSOR            571890 1.0 3.2363e+03 1.0 3.94e+12 1.0 0.0e+00 0.0e+00 0.0e+00 73 76  0  0  0  73 76  0  0  0  1217
MatLUFactorSym        40 1.0 3.5667e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatLUFactorNum        40 1.0 1.2413e+00 1.0 4.14e+09 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0  3333
MatConvert            21 1.0 3.8991e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatScale              40 1.0 6.4638e-03 1.0 8.54e+06 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0  1321
MatResidual       285945 1.0 3.7184e+02 1.0 7.16e+11 1.0 0.0e+00 0.0e+00 0.0e+00  8 14  0  0  0   8 14  0  0  0  1925
MatAssemblyBegin    8001 1.0 7.4792e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatAssemblyEnd      8001 1.0 8.1331e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatGetRowIJ           40 1.0 6.1646e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatCreateSubMats     120 1.0 1.3754e+00 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatGetOrdering        40 1.0 2.0429e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatZeroEntries        41 1.0 5.8789e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatAXPY               40 1.0 2.5146e-01 1.0 1.83e+06 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     7
MatMatMultSym         20 1.0 1.6346e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatMatMultNum         20 1.0 8.8564e-02 1.0 1.55e+08 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0  1752
VecView              226 1.0 6.4286e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecDot                20 1.0 1.5259e-03 1.0 3.59e+06 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0  2351
VecMDot            91780 1.0 4.9050e+00 1.0 1.63e+10 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0  3323
VecNorm            95376 1.0 3.0588e-01 1.0 1.08e+09 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0  3520
VecScale          189766 1.0 6.0119e-01 1.0 9.79e+08 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0  1628
VecCopy             3617 1.0 2.3790e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecSet            585513 1.0 4.5146e+00 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecAXPY             7112 1.0 1.2163e-01 1.0 2.73e+08 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0  2246
VecAYPX           285987 1.0 8.2714e+00 1.0 8.27e+09 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0  1000
VecAXPBYCZ            62 1.0 6.8538e-03 1.0 1.67e+07 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0  2434
VecWAXPY              20 1.0 1.8623e-03 1.0 1.79e+06 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0   963
VecMAXPY           95315 1.0 3.5930e+00 1.0 1.73e+10 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0  4822
VecAssemblyBegin     213 1.0 2.1496e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecAssemblyEnd       213 1.0 4.0174e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecScatterBegin     4660 1.0 1.7467e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecScatterEnd       4660 1.0 1.2199e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecReduceArith        40 1.0 1.8501e-03 1.0 7.17e+06 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0  3877
VecReduceComm         20 1.0 1.0490e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecNormalize       95315 1.0 6.5277e-01 1.0 1.60e+09 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0  2449
DualSpaceSetUp       519 1.0 8.7906e-01 1.0 1.55e+05 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
FESetUp              522 1.0 1.4027e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
TSStep                21 1.0 4.1844e+03 1.0 5.19e+12 1.0 0.0e+00 0.0e+00 0.0e+00 95100  0  0  0  95100  0  0  0  1241
TSFunctionEval        41 1.0 1.6732e+02 1.0 4.22e+10 1.0 0.0e+00 0.0e+00 0.0e+00  4  1  0  0  0   4  1  0  0  0   252
TSJacobianEval        20 1.0 7.4281e+01 1.0 3.43e+09 1.0 0.0e+00 0.0e+00 0.0e+00  2  0  0  0  0   2  0  0  0  0    46
SNESSolve             21 1.0 4.1818e+03 1.0 5.19e+12 1.0 0.0e+00 0.0e+00 0.0e+00 95100  0  0  0  95100  0  0  0  1241
SNESSetUp              1 1.0 2.5109e+00 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SNESFunctionEval      41 1.0 1.6733e+02 1.0 4.22e+10 1.0 0.0e+00 0.0e+00 0.0e+00  4  1  0  0  0   4  1  0  0  0   252
SNESJacobianEval      20 1.0 7.4281e+01 1.0 3.43e+09 1.0 0.0e+00 0.0e+00 0.0e+00  2  0  0  0  0   2  0  0  0  0    46
SNESLineSearch        20 1.0 8.0457e+01 1.0 2.07e+10 1.0 0.0e+00 0.0e+00 0.0e+00  2  0  0  0  0   2  0  0  0  0   258
KSPSetUp             140 1.0 1.9702e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
KSPSolve              20 1.0 3.9401e+03 1.0 5.15e+12 1.0 0.0e+00 0.0e+00 0.0e+00 89 99  0  0  0  89 99  0  0  0  1306
KSPGMRESOrthog     91780 1.0 8.5201e+00 1.0 3.26e+10 1.0 0.0e+00 0.0e+00 0.0e+00  0  1  0  0  0   0  1  0  0  0  3826
PCSetUp               60 1.0 8.9631e+00 1.0 5.77e+09 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0   643
PCApply             1165 1.0 3.9305e+03 1.0 5.13e+12 1.0 0.0e+00 0.0e+00 0.0e+00 89 98  0  0  0  89 98  0  0  0  1304
KSPSolve_FS_0       1165 1.0 4.6749e+01 1.0 5.84e+10 1.0 0.0e+00 0.0e+00 0.0e+00  1  1  0  0  0   1  1  0  0  0  1250
KSPSolve_FS_Schu    1165 1.0 3.8313e+03 1.0 5.01e+12 1.0 0.0e+00 0.0e+00 0.0e+00 87 96  0  0  0  87 96  0  0  0  1307
KSPSolve_FS_Low     1165 1.0 5.1630e+01 1.0 5.99e+10 1.0 0.0e+00 0.0e+00 0.0e+00  1  1  0  0  0   1  1  0  0  0  1160

--- Event Stage 1: Meshing

MeIm create            1 1.0 3.1466e+00 1.0 8.86e+04 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0 100100  0  0  0     0
MeIm adjTopo           1 1.0 1.4146e+00 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0  45  0  0  0  0     0
MeIm reorder           1 1.0 2.3222e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   7  0  0  0  0     0
DMPlexBuFrCeLi         1 1.0 1.2715e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DMPlexBuCoFrCeLi       1 1.0 6.0415e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DMPlexInterp           1 1.0 1.1230e+00 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0  36  0  0  0  0     0
DMPlexStratify         5 1.0 1.8331e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   1  0  0  0  0     0
DMPlexSymmetrize       5 1.0 6.0675e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   2  0  0  0  0     0
SFSetGraph             2 1.0 8.6069e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecScale               1 1.0 4.1008e-05 1.0 8.86e+04 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0100  0  0  0  2161
VecSet                 8 1.0 1.5521e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0

--- Event Stage 2: Setup

BuildTwoSided         11 1.0 4.6730e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
BuildTwoSidedF        11 1.0 6.5088e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DMPlexInterp         608 1.0 2.1640e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DMPlexStratify       889 1.0 2.5234e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DMPlexSymmetrize     889 1.0 2.6035e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
SFSetGraph            33 1.0 2.3127e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatMult          1808000 1.0 1.9358e-01 1.0 1.75e+07 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   2  8  0  0  0    90
MatAssemblyBegin     889 1.0 6.7711e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
MatAssemblyEnd       889 1.0 7.6437e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecView               22 1.0 3.3958e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecScale              32 1.0 1.0204e-04 1.0 2.40e+05 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0  2350
VecSet              1107 1.0 1.2055e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecAssemblyBegin      11 1.0 1.5116e-04 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
VecAssemblyEnd        11 1.0 1.8597e-05 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
DualSpaceSetUp       103 1.0 9.6039e-02 1.0 1.53e+04 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   1  0  0  0  0     0
FESetUp              111 1.0 1.7343e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
Py-FdQu-queryDB       11 1.0 3.9104e+00 1.0 1.61e+07 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0  37  7  0  0  0     4
Py-FdQu-queryPt  2238948 1.0 2.8950e+00 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0  27  0  0  0  0     0

--- Event Stage 3: Finalize

------------------------------------------------------------------------------------------------------------------------

Memory usage is given in bytes:

Object Type          Creations   Destructions     Memory  Descendants' Mem.
Reports information only for process 0.

--- Event Stage 0: Main Stage

           Container  7454           7876      4536576     0.
    Distributed Mesh 27009          28158    184700660     0.
            DM Label 77660          79764     50410848     0.
          Quadrature 36116          38561     22828112     0.
           Index Set 97229          99472    155209552     0.
   IS L to G Mapping     1              1       374064     0.
             Section 48662          50865     36215880     0.
   Star Forest Graph 54022          55558     55114688     0.
     Discrete System 34274          35173     33484704     0.
    GraphPartitioner  6882           7168      4730880     0.
              Matrix 14217          14554    695564256     0.
         Vec Scatter     2              2         1600     0.
              Vector  8206           8768    624498040     0.
              Viewer    14             14        11240     0.
        Linear Space   522            623       424600     0.
          Dual Space  6991           7265      6741920     0.
            FE Space   522            623       490924     0.
       Field over DM    97            112        78848     0.
             TSAdapt     0              1         1256     0.
                  TS     0              1         2360     0.
                DMTS     0              1          760     0.
                SNES     0              1         1404     0.
              DMSNES     0              1          672     0.
      SNESLineSearch     0              1         1000     0.
       Krylov Solver     8              9        75024     0.
     DMKSP interface     3              3         1968     0.
      Preconditioner     8              9        10176     0.

--- Event Stage 1: Meshing

           Container     7              6         3456     0.
    Distributed Mesh    16             14     56678836     0.
            DM Label   153            124        78368     0.
           Index Set   432            420      4323300     0.
             Section    47             41        29192     0.
   Star Forest Graph    32             29        28768     0.
     Discrete System    23             21        19992     0.
    GraphPartitioner     9              8         5280     0.
              Matrix     7              6        17088     0.
              Vector     8              6      2758560     0.
              Viewer     1              0            0     0.

--- Event Stage 2: Setup

           Container   921            500       288000     0.
    Distributed Mesh  3409           2262     11617104     0.
            DM Label  6518           4443      2807976     0.
          Quadrature  4104           1659       982128     0.
           Index Set 12461          10228      9801128     0.
             Section  6138           3941      2805992     0.
   Star Forest Graph  6818           5285      5242720     0.
     Discrete System  4359           3462      3295824     0.
    GraphPartitioner   889            604       398640     0.
              Matrix  1701           1365      4130224     0.
              Vector  1043            483     20084648     0.
              Viewer    11             11         8800     0.
        Linear Space   111             10         6800     0.
          Dual Space   828            554       514112     0.
            FE Space   111             10         7880     0.
       Field over DM    25             10         7040     0.
             TSAdapt     1              0            0     0.
                  TS     1              0            0     0.
                DMTS     1              0            0     0.
                SNES     1              0            0     0.
              DMSNES     4              3         2016     0.
      SNESLineSearch     1              0            0     0.
       Krylov Solver     1              0            0     0.
      Preconditioner     1              0            0     0.

--- Event Stage 3: Finalize

========================================================================================================================
Average time to get PetscTime(): 0.
#PETSc Option Table entries:
-fieldsplit_displacement_ksp_type preonly
-fieldsplit_displacement_pc_type ml
-fieldsplit_lagrange_multiplier_fault_ksp_converged_reason
-fieldsplit_lagrange_multiplier_fault_ksp_rtol 1.0e-11
-fieldsplit_lagrange_multiplier_fault_ksp_type gmres
-fieldsplit_lagrange_multiplier_fault_pc_type lu
-ksp_atol 1.0e-11
-ksp_converged_reason
-ksp_error_if_not_converged
-ksp_gmres_restart 50
-ksp_max_it 1000
-ksp_monitor
-ksp_rtol 1.0e-10
-log_view
-pc_fieldsplit_schur_factorization_type full
-pc_fieldsplit_schur_precondition selfp
-pc_fieldsplit_type schur
-pc_type fieldsplit
-pc_use_amat
-snes_atol 1.0e-9
-snes_converged_reason
-snes_error_if_not_converged
-snes_linesearch_monitor
-snes_max_it 3
-snes_monitor
-snes_rtol 1.0e-10
-ts_monitor
-ts_type beuler
#End of PETSc Option Table entries
Compiled without FORTRAN kernels
Compiled with full precision matrices (default)
sizeof(short) 2 sizeof(int) 4 sizeof(long) 8 sizeof(void*) 8 sizeof(PetscScalar) 8 sizeof(PetscInt) 4
Configure options: --PETSC_ARCH=arch-clang-3.6.0_opt --with-debugging=0 --with-clanguage=c --with-mpi-compilers=1 --with-shared-libraries=1 --with-64-bit-points=1 --with-large-file-io=1 --with-lgrind=0 --download-chaco=1 --download-parmetis=1 --download-metis=1 --download-triangle --with-blas-lib=/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Versions/Current/libBLAS.dylib --with-lapack-lib=/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Versions/Current/libLAPACK.dylib --download-ml=1 --download-superlu=1 --with-fc=0 --with-hdf5=1 --with-hdf5-include=/Users/baagaard/tools/unix/hdf5-1.10.6/clang-3.6.0/include --with-hdf5-lib=/Users/baagaard/tools/unix/hdf5-1.10.6/clang-3.6.0/lib/libhdf5.dylib --with-zlib=1
-----------------------------------------
Libraries compiled on 2020-10-16 19:08:39 on igskcicgltgm067
Machine characteristics: Darwin-18.7.0-x86_64-i386-64bit
Using PETSc directory: /Users/baagaard/tools/unix/petsc-dev
Using PETSc arch: arch-clang-3.6.0_opt
-----------------------------------------

Using C compiler: mpicc  -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -fstack-protector -Qunused-arguments -fvisibility=hidden -g -O3
-----------------------------------------

Using include paths: -I/Users/baagaard/tools/unix/petsc-dev/include -I/Users/baagaard/tools/unix/petsc-dev/arch-clang-3.6.0_opt/include -I/opt/X11/include -I/Users/baagaard/tools/unix/hdf5-1.10.6/clang-3.6.0/include
-----------------------------------------

Using C linker: mpicc
Using libraries: -Wl,-rpath,/Users/baagaard/tools/unix/petsc-dev/arch-clang-3.6.0_opt/lib -L/Users/baagaard/tools/unix/petsc-dev/arch-clang-3.6.0_opt/lib -lpetsc -Wl,-rpath,/Users/baagaard/tools/unix/petsc-dev/arch-clang-3.6.0_opt/lib -L/Users/baagaard/tools/unix/petsc-dev/arch-clang-3.6.0_opt/lib -Wl,-rpath,/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Versions/Current -L/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Versions/Current -Wl,-rpath,/opt/X11/lib -L/opt/X11/lib -Wl,-rpath,/Users/baagaard/tools/unix/hdf5-1.10.6/clang-3.6.0/lib -L/Users/baagaard/tools/unix/hdf5-1.10.6/clang-3.6.0/lib -lsuperlu -lml -lLAPACK -lBLAS -ltriangle -lX11 -lhdf5 -lchaco -lparmetis -lmetis -lz -lc++ -ldl
-----------------------------------------
baagaard-usgs commented 4 years ago

@baagaard-usgs Create toy test problem to compare selfp Schur preconditioning with custom preconditioner in v2.2.2.

baagaard-usgs commented 4 years ago

@knepley I see two differences between v2 with our custom fault PC and v3 with the selfp Schur preconditioner.

  1. In v2 we use quadrature points at the vertices. This results in a diagonal preconditioning matrix that is the lumped version of C K^-1 C^T. We did this because I was getting funny results with conventional quadrature points. We get good results in v3 with conventional quadrature points, so I think it is related to some short cuts in the v2 fault implementation that doesn't should up with our mathematically correct implementation in v3.

  2. Our custom fault preconditioner is C K^-1 C^T, not -1 * C K^-1 C^T (which is what selfp gives). Is this a result of the fact that in this branch for v3, we have a RHS Jacobian but not a LHS Jacobian?

Bottom line is that from my toy problem it looks like pmat_v2 = -lumped(pmat_v3).

baagaard-usgs commented 3 years ago

@knepley Looking back at our 2013 JGR paper, I noticed that using upper Schur factorization with the user Schur preconditioner gives comparable scaling to our custom fault preconditioner with multiplicative field split type. This remains true for v3 (see plot below). Because the custom fault preconditioner can use preonly with the Lagrange multiplier KSP type rather than gmres with the Schur factorization, it has a shorter runtime even though the number of iterations grows faster with problem size.

This suggests we don't need to worry about the difference in fault basis functions between v2 and v3. The diag Schur factorization type and additive field split type don't result in good scaling in v2 (see our JGR paper). We should replicate the custom fault preconditioner in v3, because it is faster than using upper Schur factorization with the user preconditioner with only slightly worse scaling with problem size.

scaling

PETSc Solver Settings

v3 Schur upper + user

Lagrange multiplier KSP relative tolerance optimized to minimize runtime.

ksp_rtol = 1.0e-11
ksp_atol = 1.0e-12
ksp_gmres_restart = 20
snes_rtol = 1.0e-9
snes_atol = 1.0e-10

pc_type = fieldsplit
pc_use_amat = true
pc_fieldsplit_type = schur
pc_fieldsplit_schur_factorization_type = upper
pc_fieldsplit_schur_precondition = user

fieldsplit_displacement_pc_type = ml
fieldsplit_displacement_ksp_type = preonly

fieldsplit_lagrange_multiplier_fault_pc_type = jacobi
fieldsplit_lagrange_multiplier_fault_ksp_type = gmres
fieldsplit_lagrange_multiplier_fault_ksp_rtol = 1.0e-2

v2 Schur upper + user

Lagrange multiplier KSP relative tolerance optimized to minimize runtime.

ksp_rtol = 1.0e-11
ksp_atol = 1.0e-12
ksp_gmres_restart = 20
snes_rtol = 1.0e-9
snes_atol = 1.0e-10

pylithapp.problem.formulation]
split_fields = True
matrix_type = aij

[pylithapp.petsc]
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_pc_type = ml
fs_fieldsplit_displacement_ksp_type = preonly

fs_fieldsplit_lagrange_multiplier_pc_type = jacobi
fs_fieldsplit_lagrange_multiplier_ksp_type = gmres
fs_fieldsplit_lagrange_multiplier_ksp_rtol = 1.0e-4

v2 Custom PC w/mult

[pylithapp.problem.formulation]
split_fields = True
matrix_type = aij
use_custom_constraint_pc = True

[pylithapp.petsc]
fs_pc_type = fieldsplit
fs_pc_use_amat = true
fs_pc_fieldsplit_type = multiplicative

fs_fieldsplit_displacement_pc_type = ml
fs_fieldsplit_displacement_ksp_type = preonly

fs_fieldsplit_lagrange_multiplier_pc_type = jacobi
fs_fieldsplit_lagrange_multiplier_ksp_type = preonly
baagaard-usgs commented 3 years ago

Matt resolved this issue. The correct settings to replicate v2 with the custom fault preconditioner and multiplicative field split type are:

pc_type = fieldsplit
pc_use_amat = true
pc_fieldsplit_type = schur
pc_fieldsplit_schur_factorization_type = lower
pc_fieldsplit_schur_precondition = selfp
pc_fieldsplit_schur_scale = 1.0

fieldsplit_displacement_pc_type = ml
fieldsplit_displacement_ksp_type = preonly

fieldsplit_lagrange_multiplier_fault_ksp_type = preonly
fieldsplit_lagrange_multiplier_fault_pc_type = ml

The performance for v3 with these settings is close to v2 with the custom preconditioner and multiplicative field split type. The solve does take more iterations, which is associated with the more accurate discretization of the Lagrange multiplier (quadrature points are not at the vertices like they are in v2).

scaling