Step 6: Error 3#

Error Message#

Listing 280 Error message 3 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.
53Fatal error. Calling MPI_Abort() to abort PyLith application.
54Traceback (most recent call last):
55  File "/software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/apps/PetscApplication.py", line 55, in onComputeNodes
56    self.main(*args, **kwds)
57  File "/software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/apps/PyLithApp.py", line 101, in main
58    self.problem.verifyConfiguration()
59  File "/software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/problems/Problem.py", line 176, in verifyConfiguration
60    ModuleProblem.verifyConfiguration(self)
61  File "/software/unix/py3.12-venv/pylith-debug/lib/python3.12/site-packages/pylith/problems/problems.py", line 162, in verifyConfiguration
62    return _problems.Problem_verifyConfiguration(self)
63           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
64RuntimeError: Could not find 'lagrange_multiplier_fault' in solution field. Field contains: 'displacement'Abort(-1) on node 0 (rank 0 in comm 0): application called MPI_Abort(MPI_COMM_WORLD, -1) - process 0
65; the missing fields are required for interface 'FaultCohesiveImpulses'.
66/software/unix/py3.12-venv/pylith-debug/bin/nemesis: mpiexec: exit 255
67/software/unix/py3.12-venv/pylith-debug/bin/pylith: /software/unix/py3.12-venv/pylith-debug/bin/nemesis: exit 1

Troubleshooting Strategy#

We no longer have errors during the problem configuration. Now we have errors while doing additional verification of the problem. After the Python Traceback, we see the error message on lines 64-65. The faults check to make sure the solution field contains the necessary subfields, and the splay fault cannot find the lagrange_multiplier_fault subfield. The easiest way to diagnose an error like this is to view the JSON file automatically generated by PyLith; it contains all of the parameters, including any defaults used. We point our web browser to https://geodynamics.github.io/pylith_parameters/ and load the parameter file output/step06_twofaults-parameters.json. In the left panel we navigate to the solution field and see that it the subfields are set to pylith.problems.SolnDisp, so that the solution field only contains a single subfield, displacement. We want the solution field to contain both displacement and lagrange_multiplier_fault.

Resolution#

Listing 281 Correct error in step06_twofaults.cfg.#
[pylithapp.problem]
solution = pylith.problems.SolnDispLagrange