PETSC ERROR: Zero pivot in LU factorization

Hello all,
I successfully installed Pylith 2.22. But I had a little problem with the simulation .
1、 I want to simulate the deformation of the interior of the lithosphere under gravity. I take the 2D model, and I take the quadrilateral mesh.
2、 I set up two lithospheres, plateau and basin, and set their brittle layer as elastic material and ductile layer as viscoelastic material through rheological strength.
3、 No faults are defined within the lithosphere.
4、 I set the sides and bottom of the model to free slip boundaries .

The error message is as follows :

/home/wuhang/Desktop/pylith/pylith/pylith-2.2.2-linux-x86_64/lib/python2.7/site-packages/pylith/problems/Implicit.py:207:step
– implicit(info)
– Solving equations.
0 SNES Function norm 6.234645657084e+00
[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
[0]PETSC ERROR: Zero pivot in LU factorization: http://www.mcs.anl.gov/petsc/documentation/faq.html#zeropivot
[0]PETSC ERROR: Zero pivot row 27913 value 4.88498e-15 tolerance 2.22045e-14

[0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting.
[0]PETSC ERROR: Petsc Release Version 3.10.2, Jul, 01, 2019
[0]PETSC ERROR: /home/wuhang/Desktop/pylith/pylith/pylith-2.2.2-linux-x86_64/bin/mpinemesis on a named ubuntu by wuhang Wed May 17 09:39:51 2023
[0]PETSC ERROR: Configure options --prefix=/home/brad/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=1 --download-f2cblaslapack=1 --with-hwloc=0 --with-ssl=0 --with-x=0 --with-c2html=0 --with-lgrind=0 --with-hdf5=1 --with-hdf5-dir=/home/brad/pylith-binary/dist --with-zlib=1 --LIBS=-lz --with-debugging=0 --with-fc=0 CPPFLAGS=“-I/home/brad/pylith-binary/dist/include -I/home/brad/pylith-binary/dist/include " LDFLAGS=”-L/home/brad/pylith-binary/dist/lib -L/home/brad/pylith-binary/dist/lib64 -L/home/brad/pylith-binary/dist/lib -L/home/brad/pylith-binary/dist/lib64 " CFLAGS=“-g -O2” CXXFLAGS=“-g -O2 -DMPICH_IGNORE_CXX_SEEK” FCFLAGS= PETSC_DIR=/home/brad/pylith-binary/build/petsc-pylith PETSC_ARCH=arch-pylith
[0]PETSC ERROR: #1 MatPivotCheck_none() line 718 in /home/brad/pylith-binary/build/petsc-pylith/include/petsc/private/matimpl.h
[0]PETSC ERROR: #2 MatPivotCheck() line 735 in /home/brad/pylith-binary/build/petsc-pylith/include/petsc/private/matimpl.h
[0]PETSC ERROR: #3 MatLUFactorNumeric_SeqAIJ_Inode() line 1435 in /home/brad/pylith-binary/build/petsc-pylith/src/mat/impls/aij/seq/inode.c
[0]PETSC ERROR: #4 MatLUFactorNumeric() line 3065 in /home/brad/pylith-binary/build/petsc-pylith/src/mat/interface/matrix.c
[0]PETSC ERROR: #5 PCSetUp_ILU() line 176 in /home/brad/pylith-binary/build/petsc-pylith/src/ksp/pc/impls/factor/ilu/ilu.c
[0]PETSC ERROR: #6 PCSetUp() line 932 in /home/brad/pylith-binary/build/petsc-pylith/src/ksp/pc/interface/precon.c
[0]PETSC ERROR: #7 KSPSetUp() line 391 in /home/brad/pylith-binary/build/petsc-pylith/src/ksp/ksp/interface/itfunc.c
[0]PETSC ERROR: #8 PCSetUpOnBlocks_ASM() line 450 in /home/brad/pylith-binary/build/petsc-pylith/src/ksp/pc/impls/asm/asm.c
[0]PETSC ERROR: #9 PCSetUpOnBlocks() line 963 in /home/brad/pylith-binary/build/petsc-pylith/src/ksp/pc/interface/precon.c
[0]PETSC ERROR: #10 KSPSetUpOnBlocks() line 223 in /home/brad/pylith-binary/build/petsc-pylith/src/ksp/ksp/interface/itfunc.c
[0]PETSC ERROR: #11 KSPSolve() line 724 in /home/brad/pylith-binary/build/petsc-pylith/src/ksp/ksp/interface/itfunc.c
[0]PETSC ERROR: #12 SNESSolve_NEWTONLS() line 224 in /home/brad/pylith-binary/build/petsc-pylith/src/snes/impls/ls/ls.c
[0]PETSC ERROR: #13 SNESSolve() line 4396 in /home/brad/pylith-binary/build/petsc-pylith/src/snes/interface/snes.c
[0]PETSC ERROR: #14 void pylith::problems::SolverNonlinear::solve(pylith::topology::Field*, pylith::topology::Jacobian*, const pylith::topology::Field&)() line 152 in …/…/…/pylith-2.2.2/libsrc/pylith/problems/SolverNonlinear.cc
Fatal error. Calling MPI_Abort() to abort PyLith application.
Traceback (most recent call last):
File “/home/wuhang/Desktop/pylith/pylith/pylith-2.2.2-linux-x86_64/lib/python2.7/site-packages/pylith/apps/PetscApplication.py”, line 74, in onComputeNodes
self.main(*args, **kwds)
File “/home/wuhang/Desktop/pylith/pylith/pylith-2.2.2-linux-x86_64/lib/python2.7/site-packages/pylith/apps/PyLithApp.py”, line 138, in main
self.problem.run(self)
File “/home/wuhang/Desktop/pylith/pylith/pylith-2.2.2-linux-x86_64/lib/python2.7/site-packages/pylith/problems/TimeDependent.py”, line 203, in run
self.formulation.step(t, dt)
File “/home/wuhang/Desktop/pylith/pylith/pylith-2.2.2-linux-x86_64/lib/python2.7/site-packages/pylith/problems/Implicit.py”, line 212, in step
self.solver.solve(dispIncr, self.jacobian, residual)
File “/home/wuhang/Desktop/pylith/pylith/pylith-2.2.2-linux-x86_64/lib/python2.7/site-packages/pylith/problems/problems.py”, line 186, in solve
def solve(self, *args): return _problems.SolverNonlinear_solve(self, *args)
RuntimeError: Error detected while in PETSc function.
application called MPI_Abort(MPI_COMM_WORLD, -1) - process 0
/home/wuhang/Desktop/pylith/pylith/pylith-2.2.2-linux-x86_64/bin/nemesis: mpirun: exit 255
/home/wuhang/Desktop/pylith/pylith/pylith-2.2.2-linux-x86_64/bin/pylith: /home/wuhang/Desktop/pylith/pylith/pylith-2.2.2-linux-x86_64/bin/nemesis: exit 1

Does anyone know what caused this and how I can fix it?
Thank you
gravity_infstrain.cfg (10.5 KB)
pylithapp.cfg (18.0 KB)

This error indicates that there is a zero on the diagonal of the Jacobian matrix. Without a fault the mostly likely cause is a problem with the mesh generation, such as the materials are not actually connected to each other. This can happen if you are using CUBIT/Trellis and don’t merge geometry. I would start by checking the topology of the geometry, looking for duplicate curves on the boundary between surfaces.

Thank you very much !After I re-meshed and merge geometry, the simulation was able to run successfully .