Mapping in Rotating Systems with OpenFOAM and preCICE Coupling

Hello everyone,
I am working on a wind turbine rotor FSI coupling problem using OpenFOAM with CalculiX through preCICE. I have a question about how preCICE handles mapping consistency when both solvers are performing synchronous rotations.
In OpenFOAM:
I am using the solidBodyDisplacementLaplacian solver, which supports both rigid body motion (rotation by using sliding mesh) and elastic deformation (DisplacementLaplacian). The rotation is defined in the dynamicMeshDict using a specified rotation axis, center, and angular velocity.
In CalculiX:
The structure is also rotating with the same angular velocity using a Predefined Field . This means that the deformation calculated in CalculiX includes the effect of rotation.
Then displacements (pointDisplacement) are transferred from CalculiX to OpenFOAM. Forces are transferred from OpenFOAM to CalculiX.
My Question is if both OpenFOAM and CalculiX are set to rotate synchronously with the same angular velocity, will the point-to-point mapping in preCICE (nearest-neighbor or nearest-projection) still work correctly? Since the CFD mesh in OpenFOAM is rotating, and the structure in CalculiX is also rotating, will preCICE recognize the relative positions of the points correctly during the coupling process?
Any help would be greatly appreciated! Thank you very much!

Hi @Luna927,

we don’t have any examples about this, so you are a bit in uncharted territory.

I assume that the two domains rotate with the same velocity and their relative velocity is zero, and that you are interested in the small displacements on top. I assume you could model this with an overset mesh, and this should be similar to the usual case.

I am not sure of the details here, but my gut feeling tells me that maybe @Claudio might have some clues on this interesting use case.

Hi @Luna927,
Unfortunately, I don’t have much experience with this kind of simulation. I wonder if you can use a moving reference frame for fluid and solid cases. There is room for a lot of experimentation here. If you like, we could try some simple tests to find the best configuration, assuming that what you are looking for is feasible with the current version of all the tools involved. Please reach out to me if you are interested.
Claudio

1 Like

Hi @Claudio ,
Thanks for replying! I’ve spent the last few days trying to couple a rotating wind‑turbine rotor to a structural model.

I get your idea: if both solvers run in the same moving reference frame (MRF), the interface motion is nearly zero and the coupling becomes simpler—definitely worth a try.

For my rotor, though, I’m using a sliding‑mesh (AMI) setup, because I need the transient effects (tip‑vortex shedding, dynamic stall) that MRF tends to smooth out; sliding meshes are the usual choice for blade‑resolved work. If I stick with AMI, do you think it still makes sense for us to search together for the “best” configuration?

Current setup

  • OpenFOAM – AMI + solidBodyDisplacementLaplacian: the grid follows the rigid rotation, then a Laplace solve adds the elastic part.
  • preCICE mapping – built once at t = 0. Since both meshes co‑rotate, only the small elastic displacement remains. I modified the adapter to subtract the rigid motion and send only the elastic part.

The mapping works, but the solver diverges when I pass the full displacement. If I scale it to 1 × 10⁻⁴ the run is stable more than 0.5s(Δt=0.0005s)—still tracking down the cause (possibly mesh quality) :sob:.

Any practical tips on wind‑turbine FSI are welcome. I can share a minimal case if you’d like to experiment.

Cheers,
Luna