[HELP] ERROR in e_c3d: nonpositive jacobian

I am using CalculiX to solve a force simulation problem on a power pole tower. I am currently using a tower footing model for initial testing, but the following error is generated.

 *ERROR in e_c3d: nonpositive jacobian
        determinant in element        3761

I had never been exposed to the field of FEM before and was not very familiar with the modeling requirements and theory associated with FEM.

The relevant documents are in the following link.

  • JGU2-foot4c.step is the STEP file format tower foot model I used.
  • JGU2-foot4c.inp is the INP file generated using pygccx.
  • JGU2-foot4c_mesh.log is the log file generated using gmsh.
  • JGU2-foot4c_fem.log is the log file generated using ccx.

I hope I can get some help from you all.

I would try solving this with beam elements first. If you want to use solid elements, you will have to fix the geometry (connections between members) and ensure proper mesh size. Currently, elements are way to stretched and otherwise distorted to be usable in an analysis.

Thank you for your reply.
I don’t really understand the difference between beam elements and solid elements. From what the FreeCAD interface shows, my models are solid elements and use embedded connections. I feel I need to learn the difference between modeling elements such as beams and solids.

To use beam elements you would have to model the structure with lines (Draft module can be used for this purpose). There are some examples of such analyses on the FreeCAD forum:

you can do a first calc. with your power pole tower without any fem calc. but by hand.
you make all beam like truss elements, and then you need no fem software.
these step you can also do with an free spreadsheet:


you should use beam fem software.
I would recommend you demo version like RSTAB from Dlubal,
you can not safe it, but you can create a quarter, rotate it and you have your model,
and do your cal. and get all results. another fem software is ruckzuck, but not for free.
For free is Z88, what is recommended before from other users.

second step is mixing truss elements with bending beam elments

Update: Here is a software with a power pole tower as example:

Analysis3D: Download Free FEA Software for Structural Design (cuylaerts.net)

Thank you, Calc_em.
The tower model I am currently using was converted using an STL file and therefore does not have a very clear sketch. I retrieve to see if I can use this mesh to get the beam elements.

Unfortunately, FreeCAD doesn’t have any tools for automated midline extraction so you would have to manually draw the lines based on this solid geometry. But there aren’t that many members and it should be doable with proper snaps in the Draft workbench. Ask on the FreeCAD forum if you encounter any difficulties with this procedure.

Thanks for your reply, dichtstoff.
Your reply helped me to open new thoughts. I think going to calculate the truss structure first is an appropriate solution idea. But currently I don’t have a truss model.
The COMMPUS program in the link looks great, but I can’t download it. Hope I can get your share.
I am shocked and happy with the update, thank you again. I will go ahead and learn about learning this software.

Thanks again for your patient response. I would be happy to try it.

After listening to your suggestions, I used the tower model in analysis3D for FEA and chose B32R as the beam element. However, I again encountered the non-positive Jacobian error. It seems to be because CalculiX extended B32R to C3D20R element. The analysis works fine when I use B31 as the beam element.
Here is my input file.

In order to get more accurate results, I would like to know if there is any better strategy to solve the non-positive Jacobian error when B32R is used as a beam element.


Might be related to this issue: Beam not reconstructed properly - CalculiX

I didn’t use *NORMAL card. I defined the proper 1-direction vector in the 3rd lines of *BEAM SECTION card. However, the model of tower exists lots of knots, which seems to be the problem.

connectivity improperly defined, check beam32r definition, you have used beam element middle node to connect the next element


You have many of those elements. They are not well conected.

I really didn’t think about the connection after the B32 element expansion. Should I use the *MPC card to establish the connection? Or is it some other way?

you have to remesh the geometry to have it done properly.

I got it. It is just a geometry problem. After searching through Gmsh’s functions, I don’t seem to have found a good way to handle it. Gmsh uses the knot point as middle node when using high order meshing. Maybe I should just use B31 element to solve this analysis.

If you can provide the geometry or better a small part of it, I can try to give you some guidance to mesh it in gmsh with parabolic elements. this should be feasible as well.

Thank you very much!
I use a point collection and an edge collection in csv file format to draw the model. Here are the files I used.

but there’s is no geometry in those files. Are you building the FEM model with an spreadsheet?