Seeking Advice on Axisymmetric FSI Coupling: OpenFOAM (Wedge) with CalculiX (CAX4)

Hello everyone,

I am working on a Fluid-Structure Interaction (FSI) problem using preCICE to couple OpenFOAM and CalculiX. My geometry and boundary conditions are fully axisymmetric, so I’m aiming to use an axisymmetric modeling approach to significantly reduce computational cost.

However, I’ve encountered some fundamental challenges regarding the different ways OpenFOAM and CalculiX handle axisymmetry. I have two main questions and would greatly appreciate your insights and recommendations.

Background:

  • Fluid Solver: OpenFOAM, using a 3D wedge mesh with the ‘wedge’ boundary condition for axisymmetry.
  • Solid Solver: CalculiX, for which I plan to use 2D axisymmetric elements, specifically ‘CAX4’
  • Coupling Framework: preCICE.

Question 1: Best Strategy for Coupling a 3D Wedge (OpenFOAM) with a 2D Axisymmetric Plane (CalculiX)?

The core issue is the dimensional mismatch between the OpenFOAM wedge model (a thin 3D slice) and the CalculiX CAX4 model (a 2D cross-section). I can think of two potential strategies, but I’m unsure which is more robust or even feasible.

  • Strategy A: 2D-3D Mapping in preCICE In this approach, I would keep the CalculiX model as a standard 2D CAX4 mesh (e.g., in the XY-plane). I would then need to configure the preCICE mapping to correctly transfer data between the 3D wedge patch in OpenFOAM and the 2D CAX4 mesh. This would likely involve projecting the OpenFOAM interface mesh onto the 2D plane of the CalculiX model. Is this a recommended practice? Are there best-practice examples or specific mapping configurations for this kind of dimensional reduction?
  • Strategy B: Building a “Wedge” in CalculiX An alternative would be to create a 3D wedge mesh in CalculiX using standard 3D elements (like C3D8). Then, I could enforce axisymmetry by applying a cyclic symmetry boundary condition (*TIE with TYPE=CYCLIC or similar) on the two faces of the wedge. This would make the two models geometrically consistent (both are 3D wedges). However, this seems to defeat the purpose of using highly efficient 2D axisymmetric elements.

Which of these strategies is the standard or preferred method for this type of coupling? Or is there another, better way to handle this?

Question 2: How to Correctly Apply Loads in a CalculiX Axisymmetric Model?

While investigating the CalculiX side, I discovered a critical issue with how concentrated loads (*CLOAD) are interpreted in axisymmetric analyses.

When I apply an identical *CLOAD value to all nodes on a coupling interface, the resulting stress is not uniform. Instead, the force seems to be amplified on nodes closer to the axis of symmetry (i.e., smaller radius r). My understanding is that CalculiX interprets the *CLOAD value as the total force acting on the entire 360-degree hoop represented by that node. This leads to an effective line load of F / (2πr), which is physically incorrect for a uniform pressure load.

This seems to be a fundamental “feature” of how CalculiX handles *CLOAD in axisymmetric models, not a bug. If I were to couple Forces from OpenFOAM to CalculiX using *CLOAD, this would lead to completely wrong results.

My question is: What is the correct way to transfer loads in this scenario?

Should I abandon transferring Forces and instead transfer Pressure from OpenFOAM, applying it to the CalculiX model using a distributed load (*DLOAD)? My hypothesis is that *DLOAD correctly handles the 2πr integration internally, providing a physically accurate result. Is this the standard solution to this problem?

Thank you in advance for your time and help!

@Yang have you maybe made any progress in this issue?

I cannot help here, but maybe one of the @calculix-users can (consider adding yourself to this group).