Step 6: Error 7#

Error Message#

Listing 320 Output when running Step 6.#
 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 >> software/pylith-debug/lib/python3.12/site-packages/pylith/problems/Problem.py:238:_printInfo
44 -- info (application-flow)
45 -- Scales for nondimensionalization:
46    Length scale: 2500*m
47    Displacement scale: 1*m
48    Time scale: 3.15576e+09*s
49    Rigidity scale: 1e+10*m**-1*kg*s**-2
50    Temperature scale: 1*K
51 >> src/cig/pylith/libsrc/pylith/problems/TimeDependent.cc:342:virtual void pylith::problems::TimeDependent::initialize()
52 -- info (application-flow)
53 -- Component 'timedependent.problem': Initializing problem.
54 >> src/cig/pylith/libsrc/pylith/problems/TimeDependent.cc:473:void pylith::problems::TimeDependent::solve()
55 -- info (application-flow)
56 -- Component 'timedependent.problem': Solving equations.
570 TS dt 0.2 time -0.2
58    0 SNES Function norm 7.734839381701e+00
59      Linear solve converged due to CONVERGED_ATOL iterations 14
60    1 SNES Function norm 5.384136432949e-08
61    Nonlinear solve converged due to CONVERGED_FNORM_ABS iterations 1
621 TS dt 0.2 time 0.
63    0 SNES Function norm 5.384136432949e-08
64    Nonlinear solve converged due to CONVERGED_FNORM_ABS iterations 0
652 TS dt 0.2 time 0.2
66    0 SNES Function norm 3.245094761947e+00
67      Linear solve converged due to CONVERGED_ATOL iterations 13
68    1 SNES Function norm 4.882143081495e-08
69    Nonlinear solve converged due to CONVERGED_FNORM_ABS iterations 1
703 TS dt 0.2 time 0.4
71 >> software/pylith-debug/lib/python3.12/site-packages/pylith/problems/Problem.py:222:finalize
72 -- info (application-flow)
73 -- Finalizing problem.

Troubleshooting Strategy#

The simulation ran without errors. In visualizing the output we notice the slip distribution contains a sharp transition from 0 m to 2.0 m; we intended to prescribe slip that is uniform above y=-20 km and tapers linearly to 0 at y=-30 km. We load the JSON parameter file into the PyLith Parameter Viewer and find that we are using the default query_type of nearest for the earthquake rupture parameters. For our intended piecewise linear variation in slip, we need to use linear for the query_type.

Resolution#

Listing 321 Correct error in step06_twofaults.cfg.#
[pylithapp.problem.interfaces.fault]
...
db_auxiliary_field.query_type = linear