Nonpositive Jacobian error when reducing model size

I’m performing a static strength analysis of a bar model. If the bar size is millimeters, the calculation completes successfully. When I reduce the bar size and mesh parameters by a factor of 1000, a Nonpositive Jacobian error appears. I’ve tried changing the mesh order to first, setting the “Midside nodes on geometry” mesh parameter, and building the mesh in PrePoMax and Gmsh. I can’t figure out what the problem is. Please help.

So what are the actual dimensions of the bar ? Why are you using the unit system with meters ? Can you share the .pmx file ?

I use the SI system of measurement. It’s convenient for me. The dimensions of the block are 5x10x30 mm.

File 160 MB

Ok, but this is the size that you can mesh and the issue occurs only when you scale it down 1000 times ? So the problematic size is 0.005 x 0.01 x 0.03 mm (5 x 10 x 30 µm) ?

Yes. That’s right. I need to do a calculation in which objects will have dimensions between 10 and 100 microns. But I ran into this problem. I started studying it using bar as an example.

The mesh is very dense. It works with a coarse one. Did you try refining it gradually ?

I tried gradually refining the grid. If the grid is coarse, there are no errors. When the grid becomes fine, an error appears. But I need to make the grid finer in the area I’m interested in, where all the changes occur.

When I refine the grid in the place where I’m interested, elements with Nonpositive Jacobian appear in that place.

And this error appears on grids of tetrahedrons and hexahedrons.

Can you try with SI(mm) unit system ? It might be a limitation of the CalculiX solver happening because of the very low numbers when using the SI(m) system.

Also, how many CPUs are you using for this analysis ? You could submit it outside of PrePoMax for testing: Using standalone CalculiX

My core count is set to 16.
I’ll try it in mm now.

I tried doing it with the SI(mm) setting. The error remained.

I’ll try this option later.

I think you should use more convenient units for that scale.

1 Like

Right, I just noticed that the length is actually 300 µm instead of 30 µm. One has to be careful about scaling and export units too.

Mesh of the same min/max range for a properly scaled model looks like this:

and seems to run fine using the SI(mm) units.

Using meters for a microscale model may mean operating close to software tolerance limits.

1 Like

I checked again. When using SI (mm), the calculation completes without error. Last time, I forgot to scale the model.

I agree. In this case, it is more appropriate to use microns. But I don’t know how to change them.

You would have to use the Unitless system and ensure consistent units yourself. But millimeters should be sufficient.

1 Like

The use of dimensionless units of measurement is inconvenient. But everything works in millimeters, and now I’m satisfied with everything. Thank you.

1 Like

Moving this topic to General Questions.