Step 6: Error 7#

Error Message#

Listing 209 Error message 7 when running Step 6.#
 1$ pylith step06_twofaults.cfg
 2
 3# -- many lines omitted --
 4
 5 -- Solving problem.
 60 TS dt 0.01 time 0.
 7    0 SNES Function norm 2.024143393875e-02 
 8[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
 9[0]PETSC ERROR: Residual norm computed by GMRES recursion formula 3.48613e+10 is far from the computed residual norm 6.92443e+12 at restart, residual norm at start of cycle 6.91369e+12
10# -- lines with PETSc configuration omitted --
11[0]PETSC ERROR: #1 KSPGMRESCycle() at /software/baagaard/petsc-dev/src/ksp/ksp/impls/gmres/gmres.c:126
12[0]PETSC ERROR: #2 KSPSolve_GMRES() at /software/baagaard/petsc-dev/src/ksp/ksp/impls/gmres/gmres.c:243
13# -- many lines of PETSc stack omitted --
14[0]PETSC ERROR: #11 void pylith::problems::TimeDependent::solve()() at /home/pylith-user/src/cig/pylith/libsrc/pylith/problems/TimeDependent.cc:429
15Fatal error. Calling MPI_Abort() to abort PyLith application.
16Traceback (most recent call last):
17  File "/software/baagaard/py38-venv/pylith-debug/lib/python3.8/site-packages/pylith/apps/PetscApplication.py", line 61, in onComputeNodes
18    self.main(*args, **kwds)
19  File "/software/baagaard/py38-venv/pylith-debug/lib/python3.8/site-packages/pylith/apps/PyLithApp.py", line 120, in main
20    self.problem.run(self)
21  File "/software/baagaard/py38-venv/pylith-debug/lib/python3.8/site-packages/pylith/problems/TimeDependent.py", line 141, in run
22    ModuleTimeDependent.solve(self)
23  File "/software/baagaard/py38-venv/pylith-debug/lib/python3.8/site-packages/pylith/problems/problems.py", line 223, in solve
24    return _problems.TimeDependent_solve(self)
25RuntimeError: Error detected while in PETSc function.

Troubleshooting Strategy#

PETSc encounters another error during the solve. This also suggests there is an error in how we setup the problem. We again 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 overlap just below their intersection as shown in Fig. 118. The bottom of each fault is buried, so we need to identify the buried edges so that when PyLith inserts the cohesive cells it can terminate the fault properly.

Fig. 118 Incorrect geometry for the splay and main faults. The two faults overlap just below their intersection. The bottom edge of each fault is buried, so we must identify the buried edges so that PyLith properly terminates the edges of the faults when inserting the cohesive cells.#

Resolution#

Listing 210 Correct error in step06_twofaults.cfg.#
[pylithapp.problem.interfaces.fault]
...
edge = fault_end
edge_value = 21

[pylithapp.problem.interfaces.splay]
...
edge = splay_end
edge_value = 23