2 step simulation with openfoam-calculix adapter

Hi there,

We are trying to simulate a flexible membrane(hyperelastic meterial) response under water pressure. In the simulation, The membrane need to be pre-stretched, then accept load. I did following tests

  1. Applying initial stress using *initial condition card. It worked well with linear elastic model. For hyperelastic material, it doesn’t work.
    2.I tried 2step simulation. First stretch the membrane in ccx in step 1.
    Then I use *restart card for my second step, coupling with openfoam to receive loads. The mesh used by openfoam is obtained by recording the final deformation in step 1. There’s no errors during mapping mesh nodes. However, the fluid field doesn’t converge at second time step.

Does anyone tried such problems and share your experience? Any comments will be appreciated.

Thanks in advance!

Hi Xiang li,

I’m working on a similar case and I didn’t have success with the initialization of pre-load in CalculiX (I used the strategy you describe in 2).
I looked at the calculix adapter code, and it seems like the nodal forces are simply overridden at the interface when the coupling happens. I could imagine that this state does not converge easily. I must say that after several days of testing, I had to discard this option. I hope you find something that works for you.

Hi Luna,

If you are using linear elastic material, the first method should work, at least it works for me.
I finally find a way out use the second method. The problem is caused by inconsistent displacement. You can subtract the initial displacement from the new displacement at each iteration. This solved my problems.

Hope it helps!


Hi @xiangli

So, your solution needed some changes in the CalculiX adapter? (Or did I get this wrong?) If that’s the case it would be really helpful for future readers if you could open a pull request. In the first place, simply to document your changes.

Yes, I made minor changes in the adapter, which is needed for my 2-step cases. I have to admit that this is not a smart way. The best way to do this may be to use python callback action:
However, since I didn’t build preCICE with python support, so I modified the adapter to get quick troubleshooting.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.