Step 6: Error 6#

Error Message#

Listing 286 Error message 6 when running Step 6.#
  1$ pylith step06_twofaults.cfg
  2
  3 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/apps/PyLithApp.py:77:main
  4 -- pylithapp(info)
  5 -- Running on 1 process(es).
  6 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/meshio/MeshIOObj.py:38:read
  7 -- meshiopetsc(info)
  8 -- Reading finite-element mesh
  9 >> /src/cig/pylith/libsrc/pylith/meshio/MeshIO.cc:85:void pylith::meshio::MeshIO::read(pylith::topology::Mesh *, const bool)
 10 -- meshiopetsc(info)
 11 -- Component 'reader': Domain bounding box:
 12    (-100000, 100000)
 13    (-100000, 0)
 14 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/faults/FaultCohesiveKin.py:87:preinitialize
 15 -- faultcohesivekin(info)
 16 -- Pre-initializing fault 'splay'.
 17 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/faults/FaultCohesiveKin.py:87:preinitialize
 18 -- faultcohesivekin(info)
 19 -- Pre-initializing fault 'fault'.
 20 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/problems/Problem.py:116:preinitialize
 21 -- timedependent(info)
 22 -- Performing minimal initialization before verifying configuration.
 23 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/problems/Solution.py:39:preinitialize
 24 -- solution(info)
 25 -- Performing minimal initialization of solution.
 26 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/materials/RheologyElasticity.py:35:preinitialize
 27 -- isotropiclinearelasticity(info)
 28 -- Performing minimal initialization of elasticity rheology 'bulk_rheology'.
 29 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/materials/RheologyElasticity.py:35:preinitialize
 30 -- isotropiclinearelasticity(info)
 31 -- Performing minimal initialization of elasticity rheology 'bulk_rheology'.
 32 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/materials/RheologyElasticity.py:35:preinitialize
 33 -- isotropiclinearelasticity(info)
 34 -- Performing minimal initialization of elasticity rheology 'bulk_rheology'.
 35 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/bc/DirichletTimeDependent.py:86:preinitialize
 36 -- dirichlettimedependent(info)
 37 -- Performing minimal initialization of time-dependent Dirichlet boundary condition 'bc_xneg'.
 38 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/bc/DirichletTimeDependent.py:86:preinitialize
 39 -- dirichlettimedependent(info)
 40 -- Performing minimal initialization of time-dependent Dirichlet boundary condition 'bc_xpos'.
 41 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/bc/DirichletTimeDependent.py:86:preinitialize
 42 -- dirichlettimedependent(info)
 43 -- Performing minimal initialization of time-dependent Dirichlet boundary condition 'bc_yneg'.
 44 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/faults/FaultCohesiveKin.py:87:preinitialize
 45 -- faultcohesivekin(info)
 46 -- Pre-initializing fault 'splay'.
 47 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/faults/FaultCohesiveKin.py:87:preinitialize
 48 -- faultcohesivekin(info)
 49 -- Pre-initializing fault 'fault'.
 50 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/problems/Problem.py:174:verifyConfiguration
 51 -- timedependent(info)
 52 -- Verifying compatibility of problem configuration.
 53 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/problems/Problem.py:219:_printInfo
 54 -- timedependent(info)
 55 -- Scales for nondimensionalization:
 56    Length scale: 1000*m
 57    Time scale: 3.15576e+09*s
 58    Pressure scale: 3e+10*m**-1*kg*s**-2
 59    Density scale: 2.98765e+23*m**-3*kg
 60    Temperature scale: 1*K
 61 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/problems/Problem.py:185:initialize
 62 -- timedependent(info)
 63 -- Initializing timedependent problem with quasistatic formulation.
 64 >> /src/cig/pylith/libsrc/pylith/utils/PetscOptions.cc:239:static void pylith::utils::_PetscOptions::write(pythia::journal::info_t &, const char *, const PetscOptions &)
 65 -- petscoptions(info)
 66 -- Setting PETSc options:
 67dm_reorder_section = true
 68dm_reorder_section_type = cohesive
 69ksp_atol = 1.0e-12
 70ksp_converged_reason = true
 71ksp_error_if_not_converged = true
 72ksp_guess_pod_size = 8
 73ksp_guess_type = pod
 74ksp_rtol = 1.0e-12
 75mg_fine_pc_type = vpbjacobi
 76pc_type = gamg
 77snes_atol = 1.0e-9
 78snes_converged_reason = true
 79snes_error_if_not_converged = true
 80snes_monitor = true
 81snes_rtol = 1.0e-12
 82ts_error_if_step_fails = true
 83ts_monitor = true
 84ts_type = beuler
 85
 86 >> /software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/problems/TimeDependent.py:132:run
 87 -- timedependent(info)
 88 -- Solving problem.
 890 TS dt 0.2 time -0.2
 90    0 SNES Function norm 1.989081034695e-02
 91      Linear solve converged due to CONVERGED_RTOL iterations 2
 92    1 SNES Function norm 1.989081034695e-02
 93    Nonlinear solve did not converge due to DIVERGED_MAX_IT iterations 1
 94[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
 95[0]PETSC ERROR: SNESSolve has not converged
 96[0]PETSC ERROR: See https://petsc.org/release/faq/ for trouble shooting.
 97[0]PETSC ERROR: Petsc Development GIT revision: v3.21.2-167-g4fed2113cae  GIT Date: 2024-05-31 10:11:14 -0400
 98[0]PETSC ERROR: /software/unix/py3.12-venv/pylith-debug/bin/mpinemesis on a arch-clang-15.0_debug named IGSKCI164LM006 by baagaard Wed Jun  5 13:47:43 2024
 99[0]PETSC ERROR: Configure options --PETSC_ARCH=arch-clang-15.0_debug --with-debugging=1 --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 --download-ml=1 --download-superlu=1 --with-fc=0 --download-f2cblaslapack --with-hdf5=1 --with-hdf5-include=/software/unix/hdf5-1.14/clang-15.0/include --with-hdf5-lib=/software/unix/hdf5-1.14/clang-15.0/lib/libhdf5.dylib --with-zlib=1
100[0]PETSC ERROR: #1 SNESSolve() at /software/unix/petsc-dev/src/snes/interface/snes.c:4751
101[0]PETSC ERROR: #2 TSTheta_SNESSolve() at /software/unix/petsc-dev/src/ts/impls/implicit/theta/theta.c:174
102[0]PETSC ERROR: #3 TSStep_Theta() at /software/unix/petsc-dev/src/ts/impls/implicit/theta/theta.c:225
103[0]PETSC ERROR: #4 TSStep() at /software/unix/petsc-dev/src/ts/interface/ts.c:3391
104[0]PETSC ERROR: #5 TSSolve() at /software/unix/petsc-dev/src/ts/interface/ts.c:4037
105[0]PETSC ERROR: #6 void pylith::problems::TimeDependent::solve()() at /src/cig/pylith/libsrc/pylith/problems/TimeDependent.cc:487
106Fatal error. Calling MPI_Abort() to abort PyLith application.
107Traceback (most recent call last):
108  File "/software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/apps/PetscApplication.py", line 55, in onComputeNodes
109    self.main(*args, **kwds)
110  File "/software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/apps/PyLithApp.py", line 114, in main
111    self.problem.run(self)
112  File "/software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/problems/TimeDependent.py", line 134, in run
113    ModuleTimeDependent.solve(self)
114  File "/software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/problems/problems.py", line 217, in solve
115    return _problems.TimeDependent_solve(self)
116           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
117RuntimeError: Error detected while in PETSc function.
118Abort(-1) on node 0 (rank 0 in comm 0): application called MPI_Abort(MPI_COMM_WORLD, -1) - process 0
119/software/unix/py3.12-venv/pylith-debug/bin/nemesis: mpiexec: exit 255

Troubleshooting Strategy#

The PETSc nonlinear solver fails to converge in 1 iteration. Because this is a linear problem, we set the maximum number of nonlinear solver (SNES) iterations to 1, so that we would get this error as a way of identifying errors in the problem setup. We examine the parameters in step06_twofaults.cfg, and we do not find any obvious errors. We load the info files into ParaView to visualize their contents for errors. After loading step06_twofaults-fault_info.xmf and step06_twofaults-splay_info.xmf, we see that the faults cross each other as shown in Fig. 178. In step06_twofaults.cfg we see that the splay fault is listed first in the array of faults. The through-going fault (main fault) should be listed first.

Fig. 178 Incorrect geometry for the splay and main faults. The splay fault crosses the main fault instead of terminating where they intersect.#

Resolution#

Listing 287 Correct error in step06_twofaults.cfg.#
# Error
[pylithapp.problem]
interfaces = [splay, fault]

# Correct
[pylithapp.problem]
interfaces = [fault, splay]