Step 6: Error 6#
Error Message#
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.001189838638e-02
8[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
9[0]PETSC ERROR: Zero pivot in LU factorization: https://petsc.org/release/faq/#zeropivot
10[0]PETSC ERROR: Zero pivot row 78 value 1.11022e-16 tolerance 2.22045e-14
11# -- lines with PETSc configuration omitted --
12[0]PETSC ERROR: #1 MatPivotCheck_none() at /software/baagaard/petsc-dev/include/petsc/private/matimpl.h:802
13[0]PETSC ERROR: #2 MatPivotCheck() at /software/baagaard/petsc-dev/include/petsc/private/matimpl.h:821
14# -- many lines of PETSc stack omitted --
15[0]PETSC ERROR: #34 void pylith::problems::TimeDependent::deallocate()() at /home/baagaard/src/cig/pylith/libsrc/pylith/problems/TimeDependent.cc:92
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 a zero pivot during the LU factorization.
This suggests there is an error in how we setup the problem.
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. 114.
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.
Resolution#
# Error
[pylithapp.problem]
interfaces = [splay, fault]
# Correct
[pylithapp.problem]
interfaces = [fault, splay]