Step 6: Error 4#
Error Message#
1$ pylith step06_twofaults.cfg
2
3 >> software/pylith-debug/lib/python3.12/site-packages/pylith/apps/PyLithApp.py:76:main
4 -- info (application-flow)
5 -- Running on 1 process(es).
6 >> src/cig/pylith/libsrc/pylith/utils/PetscOptions.cc:251:static void pylith::utils::_PetscOptions::write(pythia::journal::info_t&, const char*, const pylith::utils::PetscOptions&)
7 -- info (application-flow)
8 -- Setting PETSc options:
9 dm_reorder_section = true
10 dm_reorder_section_type = cohesive
11 ksp_atol = 1.0e-7
12 ksp_converged_reason = true
13 ksp_error_if_not_converged = true
14 ksp_gmres_restart = 100
15 ksp_guess_pod_size = 8
16 ksp_guess_type = pod
17 ksp_rtol = 1.0e-14
18 mg_fine_ksp_max_it = 5
19 mg_fine_pc_type = vpbjacobi
20 pc_type = gamg
21 snes_atol = 5.0e-7
22 snes_converged_reason = true
23 snes_error_if_not_converged = true
24 snes_monitor = true
25 snes_rtol = 1.0e-14
26 ts_error_if_step_fails = true
27 ts_exact_final_time = matchstep
28 ts_monitor = true
29 ts_type = beuler
30 viewer_hdf5_collective = true
31
32 >> src/cig/pylith/libsrc/pylith/meshio/MeshIOPetsc.cc:204:virtual void pylith::meshio::MeshIOPetsc::_read()
33 -- info (application-flow)
34 -- Component 'meshiopetsc.reader': Reading finite-element mesh from 'mesh_tri.msh'.
35 >> src/cig/pylith/libsrc/pylith/meshio/MeshIO.cc:76:void pylith::meshio::MeshIO::read(pylith::topology::Mesh*, bool)
36 -- info (application-flow)
37 -- Component 'meshiopetsc.reader': Domain bounding box:
38 (-100000, 100000)
39 (-100000, 0)
40 >> src/cig/pylith/libsrc/pylith/problems/TimeDependent.cc:316:virtual void pylith::problems::TimeDependent::verifyConfiguration() const
41 -- info (application-flow)
42 -- Component 'timedependent.problem': Verifying problem configuration.
43 >> src/cig/pylith/libsrc/pylith/topology/FieldOps.cc:223:static void pylith::topology::FieldOps::checkSubfieldsExist(const pylith::string_vector&, const std::string&, const pylith::topology::Field&)
44 -- error (user-input)
45 -- Could not find 'lagrange_multiplier_fault' in domain solution field. Field contains: 'displacement'; the missing fields are required for interface 'FaultCohesiveKin'.
46Fatal error. Calling MPI_Abort() to abort PyLith application.
47Traceback (most recent call last):
48 File "software/pylith-debug/lib/python3.12/site-packages/pylith/apps/PetscApplication.py", line 55, in onComputeNodes
49 self.main(*args, **kwds)
50 File "software/pylith-debug/lib/python3.12/site-packages/pylith/apps/PyLithApp.py", line 84, in main
51 self.problem.verifyConfiguration()
52 File "software/pylith-debug/lib/python3.12/site-packages/pylith/problems/Problem.py", line 206, in verifyConfiguration
53 ModuleProblem.verifyConfiguration(self)
54 File "software/pylith-debug/lib/python3.12/site-packages/pylith/problems/problems.py", line 162, in verifyConfiguration
55 return _problems.Problem_verifyConfiguration(self)
56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
57RuntimeError: Could not find 'lagrange_multiplier_fault' in domain solution field. Field contains: 'displacement'; the missing fields are required for interface 'FaultCohesiveKin'.
58C++ traceback (9 frames):
59 [0] software/pylith-debug/lib/libpylith.so.0(_ZN6pylith8topology8FieldOps19checkSubfieldsExistERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EERKS8_RKNS0_5FieldE+0x480) [0x7eb3a43984c0]
60 [1] software/pylith-debug/lib/libpylith.so.0(_ZNK6pylith6faults16FaultCohesiveKin19verifyConfigurationERKNS_8topology5FieldE+0x37b) [0x7eb3a416dfff]
61 [2] software/pylith-debug/lib/libpylith.so.0(_ZNK6pylith8problems7Problem19verifyConfigurationEv+0x474) [0x7eb3a431cf68]
62 [3] software/pylith-debug/lib/libpylith.so.0(_ZNK6pylith8problems13TimeDependent19verifyConfigurationEv+0x253) [0x7eb3a432c8e5]
63 [4] software/pylith-debug/lib/python3.12/site-packages/pylith/problems/_problems.so(+0x15af4) [0x7eb39de12af4]
64 [5] software/pylith-debug/bin/mpinemesis(+0x15a51) [0x5bd4a7faaa51]
65 [6] /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7eb3c0a29d90]
66 [7] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7eb3c0a29e40]
67 [8] software/pylith-debug/bin/mpinemesis(+0x5805) [0x5bd4a7f9a805]
68
69--------------------------------------------------------------------------
70MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
71 Proc: [[52992,1],0]
72 Errorcode: -1
73
74NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
75You may or may not see output from other processes, depending on
76exactly when Open MPI kills them.
77--------------------------------------------------------------------------
78--------------------------------------------------------------------------
79prterun has exited due to process rank 0 with PID 0 on node igskci164warlng calling
80"abort". This may have caused other processes in the application to be
81terminated by signals sent by prterun (as reported here).
82--------------------------------------------------------------------------
83software/pylith-debug/bin/nemesis: mpiexec: exit 255
84software/pylith-debug/bin/pylith: software/pylith-debug/bin/nemesis: exit 1
Troubleshooting Strategy#
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 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 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#
[pylithapp.problem]
solution = pylith.problems.SolnDispLagrange