In my model, there is a fault with a relatively large scale, and the calculation shows “KSPSolve() has not been converted.”, reason DIVERGED_ITS”， Therefore, I divided this fault into several segments for calculation, and the calculation did not go wrong. May I ask if it is possible to divide a fault into several segments and then add them up for calculation? I conducted a simple test and found that calculating a fault separately and dividing it into several segments and then adding them up directly are not equivalent. May I ask if this method is feasible? Are there any other solutions.

If the bulk rheology is linearly elastic, then it is possible to setup the problem so that a fault can have patches of slip in different simulations that add up to a single patch of slip. This is analogous to the Green’s functions problem. In general, we don’t break up the fault into multiple faults or segments. Rather, we break up the slip on a single fault into patches.

There could be an error with how you setup the problem. If you provide a complete description of the boundary value problem (a diagram helps) and show the simulation output while running with the command line argument `--petsc.ksp_monitor`

, we might be able to provide additional help.

Note: We have a much better predconditioner for elasticity with a fault that will be available in the version 4.1.0 release in about a week.

pylith_test.zip (7.4 MB)

Thank you for your answer. Here is my configuration file and error message in PyLith 4.0.0. It doesn’t work even using a small mesh size.

The mesh has many cells that are severely distorted. This results in very poor conditioning of the matrix and an extremely slow rate of convergence. It will also affect the accuracy of the solution. The condition number is > 1000 (Gmsh reports the inverse, so the smallest ICN values are close to 0.001); 1 is ideal. In most cases, we keep the maximum condition number less than 2. It looks like you have very thin layers. You want to create your geometry so that cells can be a reasonable size and have equal size dimensions in all directions. You also do not want the gradient in mesh size to be larger than about 1.05-1.1.

I suggest correcting the problems with the geometry using a coarse resolution (keep the total number of cells < 100,000). Check the mesh quality and make sure the condition number is not larger than about 2. Then decrease the discretization size by a factor of 2 and evaluate any changes in the solution. Repeat the process until you can resolve the features of interest with a mesh that has good quality.