Better Tetra4(C3D4) to Tetra10(C3D10) converter tool?

Hi, everyone! Does anybody have or know a tool that can convert C3D4 element to C3D10 in the format of calculix or abaqus inp file? I have wroten a fortran program that can work correctly, but the performance is worse, it’s too slow for me. Converting about 90000 C3D4 elements will cost about 5min on my laptop (ThinkPad P15 Gen2 with 32GB Memory) !

So, I am looking for a better tool that can convert elements to second order faster. Better can be call for use in other program like fortran etc.

Thanks for all your help!

Gmsh should be able to do it with the SetOrder 2 command.

2 Likes

Can you explain it in more detail? I am not very familiar with gmsh. My mesh data is a “.vol” file generated by calling netgen in my fortran program then I read the node and element information from the vol file.

Can gmsh convert directly through the “vol” file, or do I need to convert it to “.msh” format first?

it can be opening in CGX and typing command mids to convert to/from any quadratic element

Thank you! I’ll try that. Now I solved the problem using the method that @Calc_em mentioned above by calling gmsh. Because my inp file is writen in fix format, using cgx I need to change it to free format. I’ll try it later.

Netgen vol mesh format also can be read by CGX, then setting to quadratic as previously. described. However, calling to generate quadratic element seems to be possible directly in Netgen, but maybe another reason to not to use.

Yes, Netgen can generate quadratic element, but the midside nodes are always on the geometry, sometimes resulting negative jacob in the fillter corner. So I need to change the element order by myself.

By the way, could the “vol” file be read into cgx and use “mids” command automaticlly or in a bash mode? Just don’t neet to type conmmand in the cgx window.

maybe mesh size setting is too coarse cause of this problem.

CGX is script based parametric modeling for automation, all command lists can be defined in single file.

Which ForTran compiler did you use? In the past I wrote many ForTran codes for different purpose and the efficiency was every time result in a good performance even in huge mesh files

ALex

I use gfortran.
May I ask you to share the code? That will be great helpful!

It’s probably not the compiler but an O(n^2) algorithm like searching for available node numbers for every element.

Yes, it is the algorithm reason.