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
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) .
Any practical tips on windâturbine FSI are welcome. I can share a minimal case if youâd like to experiment.
Cheers,
Luna