Some attempts at engineering problems with Prepromax!

Recently I was using prepromax to deal with an engineering problem in the auto parts industry. The problem is very simple, but the model is very complex, with many bad surfaces, and it is difficult to directly mesh. I used ansys scdm and hypermesh to deal with it for 2 days to get prepromax available However, I can finally draw the mesh (ansys workbench cannot directly draw the mesh, it can be seen that the meshing ability of prepromax is still good)
I encountered a problem, because my pipe wall is very thin, I used a single-layer second-order tetrahedron for mesh division (in order to prevent the number of meshes from being too large), and turned on the large deformation switch at the same time, considering the plasticity of the material, calculated The deformation value is 26mm, while abaqus calculates it to be about 33mm. The difference is a bit big. I guess it is because the number of meshes in the thickness direction is too small, which causes the model to be excessively stiffened, resulting in a smaller deformation calculation result than abaqus.
Therefore, I encrypted the mesh. Since the thickness direction is not easy to be locally encrypted, I can only use the overall encryption method to ensure that there are two layers of second-order tetrahedral meshes in the thickness direction, so that the number of my meshes is about 1.5 million. , about 2.5 million nodes, but there is a problem, calculix seems to be unable to solve the problem of this scale, and there is always an inexplicable termination.
The solvers I use are:

Downloaded the solver, tried PasTiX and Pardiso, in the process of using Pardiso, it seems that some library files are missing.
So I’m still trying, trying to solve this problem, if there is a good solution, I will reply, and you can also make suggestions.



3

I tried to install the Pardiso solver in the past on PrePoMax but achieve no success. I’m also interested in the solution to large models using this solver.

Yes, I tried many times, the solver under windows can’t calculate meshes with millions of meshes

Hi, from my experience, for this case and to get displacements as results, I would use second order shell elements in both CalculiX and others (even more, structured quad mesh, even for the bellows). I have made some comparations, and CalculiX shell elements are good enouhg, at least in overal displacement against comercial solvers. You should not have such a big difference in displacement results, and going to tet elements doesn´t seems to me a good choice.

I have worked in automotive industrie for years, feel free to send me the model in case you need some help.

1 Like

Which file from Igor’s site do you have? I downoladed some time ago version with date 8.01.2022, (file size 45 mb), and pardiso is working well (tested on Prepomax 1.3.2, and 1.3.3)

I’ve also downloaded the package containing Pardiso solver from Ihor’s site and it works well. The solver executable is named ccx_dynamic.exe and I set the default solver to Pardiso. Here’s the content of the Solver folder:

package

Maybe some of these libraries are missing in your case or your OS is different than mine (Windows 10).

You’re right, the shell model is a better choice, but his model is not good enough to extract the mid-surface, so I didn’t use the shell model, which also focuses on stress. So the final use is the entity unit.
simply2.zip (6.0 MB)

If you are using the Pardiso solver in win10, do you need to install it on your computer: oneAPI HPC Toolkit?

Yes, all of these libraries are available, and I have downloaded the libraries that don’t exist, but it seems that the Pardiso solver doesn’t work. I submitted the solution directly using prepomax. Submitting a solution always fails!

07/20/2022 19:40:53

######## Starting run step number: 1 Increment number: 1 ########

Running command: E:\zj\ccx_219\calculix\ccx_win10.cmd Analysis-1

E:\zj\test>rem Batch file for ccx with PaSTiX/SPOOLES/Pardiso

E:\zj\test>rem @echo off

E:\zj\test>rem ==== Set path to CalculiX executable here ====

E:\zj\test>set CCX_PATH=E:\zj\ccx_219\calculix

E:\zj\test>rem ==== CalculiX settings ========

E:\zj\test>set CCX_NPROC_RESULTS=16

E:\zj\test>set CCX_NPROC_STIFFNESS=16

E:\zj\test>set OMP_NUM_THREADS=16

E:\zj\test>rem ==== MKL (Pardiso) settings ========

E:\zj\test>set MKL_NUM_THREADS=16

E:\zj\test>rem set MKL_DOMAIN_NUM_THREADS=“MKL_BLAS=4”

E:\zj\test>set MKL_DYNAMIC=FALSE

E:\zj\test>set OMP_DYNAMIC=FALSE

E:\zj\test>rem ==== PasTiX settings ===========

E:\zj\test>set OPENBLAS_NUM_THREADS=1

E:\zj\test>rem Must be used for this version

E:\zj\test>set PASTIX_MIXED_PRECISION=1

E:\zj\test>rem 1 - yes(*), 0 - no

E:\zj\test>set PASTIX_ORDERING=0

E:\zj\test>rem 0 - Scotch(*), 1 - Metis

E:\zj\test>set PASTIX_SCHEDULER=0

E:\zj\test>rem 0 - Static(*), 1 - StarPU, 3 - Sequential, 2 - parsec (not working yet)

E:\zj\test>rem === Final CCX run command ===

E:\zj\test>E:\zj\ccx_219\calculix\ccx_dynamic.exe -i Analysis-1


CalculiX Version 2.19, Copyright(C) 1998-2021 Guido Dhondt
CalculiX comes with ABSOLUTELY NO WARRANTY. This is free
software, and you are welcome to redistribute it under
certain conditions, see gpl.htm


You are using an executable made on Sat Dec 18 23:04:40 2021

The numbers below are estimated upper bounds

number of:

nodes: 109018
elements: 74985
one-dimensional elements: 0
two-dimensional elements: 0
integration points per element: 4
degrees of freedom per node: 3
layers per element: 1

distributed facial loads: 1420
distributed volumetric loads: 0
concentrated loads: 0
single point constraints: 17526
multiple point constraints: 1
terms in all multiple point constraints: 1
tie constraints: 0
dependent nodes tied by cyclic constraints: 0
dependent nodes in pre-tension constraints: 0

sets: 9
terms in all sets: 233657

materials: 1
constants per material and temperature: 2
temperature points per material: 1
plastic data points per material: 0

orientations: 0
amplitudes: 5
data points in all amplitudes: 5
print requests: 0
transformations: 0
property cards: 0

STEP 1

Static analysis was selected

Job failed - no results exist.

Process elapsed time: 12.456 s

You could work with the external surface, and adjust the shell offset to compensate. Better to have a slighty non canonical shell model with good enough results…than no result at all. Will try to mesh the part in Salome later, doesn´t look too complicated.

The installation of the Pardiso solver is not needed. Only files shown in the figure of the @FEAnalyst post are needed. You can get the files by installation or by downloading them from somewhere else.

I tested the PASTIX i8 solver on an AMD 32-core 256GB memory machine to calculate a model with 2 million nodes. It is estimated that the memory needs about 80g, which is acceptable.
The reason why the Pardiso solver doesn’t work is because most of my computers are AMD CPUs

Thank you, I have tested your suggestion, the problem lies in the shell mesh drawn by prepomax, there are many problems with negative Jacobian matrix, it may be the reason why the meshing tool is not powerful enough, I use ansys to divide the mesh After that, export it as an inp file, and then read it into prepomax, but prepomax only includes all quadrilateral meshes, and triangular degenerate meshes cannot be read in, so I gave up the shell method.

I would be interested in the mesh .inp file that cannot be read by PrePoMax. If possible, I will try to fix it.

I try yesterday to mesh your part using shell elements, and the same as you, lot of error with the negative Jacobian element´s. I look at the bellows, and it doesn´t seems to be modeled with constant thikness, if you look in the interior side, you’ll see some radius are omitted. Also, in the exterior side, some radius are too small, they must be higher than thikness of the part. Another point is that there are some surfaces not well generated, even in the straight zones of the tube.
I would improve the CAD modeling before meshing (lot of human time), and as free mesh will lead to
lot of element, swithc to some structured mesh in Salome. Or as you did, use the best tet mesh with the actual part (lot of cpu time).

Hi, xupeiwust

Your stp shows the bellows in their assembly position.

¿Are the bellows supplied with that shape?.

¿Could this be the difference in displacements that you have noticed?

I’m using AMD with Pardiso MKL out of core without any problem but my models are < 2 million nodes.

Gmsh delivers a pretty good mesh. Density .5mm.
Your bellows inside seems too sharp as Sergio said.
¿Do you have some additional BC data to give a try?


I am very grateful to many people who are interested in trying it out. I will upload the material parameters and boundary conditions below. During the calculation process, the large deformation switch needs to be turned on and the material plasticity is considered.
The calculation of burst pressure is actually to add internal pressure, knowing that the stress of the structure is close to the failure stress
This is the result calculated by others using abaqus. The stress calculated by me using prepomax is close, but the displacement is 10mm smaller. My displacement result is close to the calculation result of ansys, but the stress result is different. Ansys shows the average stress and my result. The difference is very large, but when the ansys results do not do stress averaging, they are close to my results。

Also is there a value for logarithmic strain in prepomax?




I don’t think you should take the inner surface, you should take the outer surface, and generally it’s better to use a quad mesh