RuntimeError: Determinant of Jacobian (1.25e-10) for cell 0 is smaller than minimum permissible value (1e-06)!

I ran into a problem, so I created a simple model to reproduce it. In this simple model, I created a 101010 cube divided into 10 grid units in all three directions. I applied the boundary condition with shear in the xy plane and axial displacements on -x and +x which paste from an example file, and then I got this error.

My mesh looks like this:

And here are the files to reproduce the problem. (19.9 KB)

I think there is no distortion in the grid itself at all,so I believe the cause is the dimensionless geometric length is much larger than the unit size, but it is really confuse me, How can I check and solve this problem?

1 Like

PyLith is designed to be able to handle a wide range of length scales by nondimensionalizing the input parameters. For most real geodynamics problems, a length scale of 1 km is appropriate, so this is the default length scale used in the nondimensionalization. If you have a discretization size of 1 m (unit cube), then you need to change the length scale used in the nondimensionalization to 1 m.

See the PyLith manual for the other nondimensionalization settings.

normalizer.length_scale = 1.0*m
1 Like

HI baagaard,
Thanks and it works,but I got another error message which reported my problem could not converged.

I have so rare idea about that error, but I let it passed by increasing ‘ksp_rtol’ or ‘ksp_max_it’ ,is that a reasonable solution? I wonder if any another appropriate solutions.
Thanks a lot.


1 Like

There are a number of reasons why your problem may not have converged. Please see the PyLith manual section on recommended solver/preconditioner settings. Additionally, if your other nondimensionalization settings are not set appropriately, it can affect the rate of convergence. You can adjust the solver tolerances to obtain convergence, but you should check the solution carefully to make sure it makes sense and the tolerances are tight enough so that the solution features you are interested in are not affected by the error introduced with looser tolerances.

1 Like

Hi baagaard, thanks a lot,learned so much from you.