I built 3D model to simulate interseimic deformatin following the step03 in example/subduction-3D. once I precribe slip rate on the fault, the zero pivot apears. Attachments are configure files and error log file.
Many thanks! error.zip (1.3 MB)
We strongly recommend that you update to PyLith v4.2.0. It fixes a bug related to determining a consistent orientation of the fault surface.
A zero pivot means that the Jacobian matrix for the system of equations has a null space. A common way for this to happen is when there are insufficient Dirichlet boundary conditions to prevent rigid body motion (translation or rotation of the entire domain) or you have multiple faults crossing the entire domain without boundary conditions that constrain rigid body motion of the portion between the two faults.
If you cannot resolve the issue based on the above guidance, then provide a diagram or sketch of the boundary value problem you are trying to solve. For more detail about requesting help, please refer to
I encountered dependency issues (glibc) while trying to install PyLith 4.2 on the server. I opted to install PyLith 4.2 in the virtual machine of my laptop instead. but the zero pivot still ocurrs.
Pylith 4.2 building from source in the virual machine of ubuntu-24.04.2-desktop-amd64.
Describe what you are trying to do
Overview of the boundary value problem (diagrams are very helpful)
I am working on solving an interseismic deformation problem where the boundary conditions are constrained by GNSS velocities. The faults cross the upper crust and separate different blocks. Currently, I have only prescribed a uniform slip on one of the faults. (diagram is in the attachment)
Software used to generate the mesh: Cubit 2024.8
Cell type: tet
Type of fault: prescribed slip
Attach the PyLith parameters .json file and entire error message are in the attachment information.zip (125.4 KB)
I don’t see any obvious errors in your input files. You can try different solving settings to see if it helps identify the source of the problem. You can add solver_fault_fieldsplit.cfg to the command line. You will need to specify the absolute path, so it will be something like /Users/MYUSERNAME/pylith/share/settings/solver_fault_fieldsplit.cfg where I am assuming pylith is installed in /Users/MYUSERNAME/pylith.
If you still get errors, here are some other things I would try:
Try running the simulation without a fault. Verify the solution converges in 1 SNES iteration and the deformation field looks consistent with the boundary conditions. If you still get a zero pivot, check the nodesets in CUBIT to make sure they are matching your .cfg files. Also check to make sure you imprint all and merge all before generating the mesh.
Try prescribing zero slip on the fault. This should match #1.