Collapsible Tube (OpenFOAM+CalculiX)

Hope you are all well.
I am currently setting up a new case which is analyzing the deformation of a hyper elastic tube. I imported fluid and solid meshes from pointwise and set pressure boundary conditions for inlet and outlet. I also set the material on the solid side to elastic for simplicity and would later like to transition to Neo Hookean properties.
The fluid and solid sides, individually, run fine however, as soon as I couple them, divergence is experienced, on the fluid side, in the first timestep which results in extremely large forces on the solid side which ends coupling.

I have attached the case files below so that any issues can be easily recognized. I tried mapping the field from the fluid side as well, but the case still diverged.

All preCICE related files are pretty much the same as the elastic tube 3d case. Mesh, BCs and some things like timestep were modified.

I have set up different cases but encountered divergence for all of them somehow. Am I missing something?

Would really appreciate any help.

Please find attached the error files:
elastic-tube-error fluid.txt (1.3 KB)
calculix.out (8.0 KB)
foam.out (5.1 KB)

I have only read the logs that you posted. Just to see if I have understood:

  • CalculiX makes 2 iterations: at each coupling forces remain +inf
  • OpenFoam makes 1 iteration in which continuity errors are huge

Then everything crashes. Are you sure about your Fluid setup? If, as you say, the fluid alone works, can you initialize the coupled simulation with a converged solution of the fluid domain?
Maybe it eases converges at the beginning, if no other issues are present.
Hope it helps


Hi @Claudio
Thank you for your response. I tried that too. I mapped the field from the fluid only, to initialize the simulation, but I still experienced case divergence.

then I’d try relax your simulation, for example by performing one-way coupling. You could start with the fluid and send the forces to the structure and see how the structure would deform (without updating the fluid domain). Maybe you have some initial deltas in the configuration. This way you can test it the mapping works and if you are really applying excessive forces to the structure.

1 Like

What exactly do you mean by initial deltas?

Hi, I was trying to say that you might have some initial jumps in forces or displacements because at the beginning the 2 domains are not completely compatible.
If you use the rigid converged solution as 0 in OpenFOAM, it is suspect that you have huge continuity continuity errors at the first iteration. That’s why I was suggesting to try one way coupling to see if the fluid starts and if the structure is able to cope with the fluid forces.

I see.
I tried to run a one-way FSI like you suggested. I used guidance from @Makis in this post:
How to configure one-way coupling - Using preCICE - preCICE Forum on Discourse
However, I encountered the following errors:

it looks like your XML file is wrong, see left panel. I presume it is the precice-config.xml file. If so, you might try to validate it, see for example here: Built-in tooling | preCICE - The Coupling Library


Oh I see what you are saying. I tried running the binprecice command but it says command not found.

Could this be because I am working on a cluster?
precice-config.xml (2.5 KB)
config.yml (235 Bytes)
preciceDict.txt (459 Bytes)

I don’t know why you don’t find the command. It might be, or maybe you didn’t compile it. Anyway it looks like you don’t close the comment in your config, line 54.

I closed it but still encounter the exact same error.
precice-config.xml (2.5 KB)

there are XML issues:

I have corrected them and binprecice likes the file.
precice-config_t.xml (2.5 KB)


Thank you!
I used your file and now the fluid side sets up for master coupling however, the solid side fails with the following error:

I checked the config.yml file and it looks like the elastic pipe case, so I am not sure if there is still some sort of syntax error.

it looks to be a syntax error in the yaml file of the calculix configuration. But without it, it is hard to say where. Can you compare it with some working config file?

If by collapsible tube you mean applying velocity inlet at both tube sides, then your simulation would fail and this has nothing to do with PreCiCe

Why is that?
It is not velocity inlets though. It is a pipe with one inlet and one outlet both with pressure boundary conditions.

Try introducing a ramped velocity inlet and pressure outlet and compare.

Hi @mishal49 ,

sorry for taking some time to consider your case. I am not familiar with one-way coupling and could not figure out the error in your config.yaml file :frowning:

If you want to keep testing the two-way-coupling, I would suggest to remove the DLOAD in CalculiX, and apply a lower pressure difference in the velocity domain to lower the complexity. Did you try that already? Reducing the time step might also not hurt. Then once it works, we can increase the complexity.

Keep us posted :slight_smile:

Thank you for the responses. I tried both of those things @Luna and still no luck.
I tried what @Aissa suggested as well but the case still diverges.

I did however, try taking the elastic pipe and imposing the same boundary conditions. The case ran fine so this brings me to question whether the mesh types of the fluid and solid matter. Do they have to be the same type? Do they have to be coarse because a finer mesh might be more likely to get twisted? Do I change the solver in dynamicmeshdict based on my mesh types maybe?

The tutorial elastic case ran fine for the set boundary conditions but, when I change the material to hyperelastic the case diverges.

Note that in YAML (as this config file), indentation is important. I think that tabs are not allowed (you have one in the last line), and you should definitely not mix tabs and spaces.

1 Like