Can preCICE be used with moving meshes?

What happens when the interface is moving?

It depends on what exactly is meant by “moving”. preCICE currently only supports static meshes, i.e. the mesh coordinates cannot be changed during a simulation. A dissertation in progress will introduce support for dynamic meshes. Nevertheless, also with static meshes, one can treat moving geometries and moving meshes if the respective solver uses an Arbitrary-Lagrangian-Eulerian approach.

Moved from our FAQ on precice.org.

Is there any news on this topic?

The reason I’m asking is that I find it a bit confusing because of all the examples with flexible flaps in flow, where forces and displacements are computed and exchanged. I’m interested to hear on the work being don in the dissertation.

@menno Hi!

In case you are following the WCCM ECCOMAS 2020, I am presenting a talk on this exact topic.

2340 - Adaptive Dynamic Meshes for Fully-Parallel Partitioned Multi-Physics in Precice

My goal is to rerecord the talk after the conference and to upload it to our youtube channel. I will let you know once that is done.

2 Likes

Thanks for the update, I’d like to see that on Youtube when available.

Is there any news on this? I see there is a project on KONWIHR regarding to this function. I am wondering when this function will be available to public?

https://www.konwihr.de/konwihr-projects/optimization-of-dynamic-mesh-handling-in-precice/

The video is public now:

There is also a timeline in there, no pressure @fsimonis :grin:

4 Likes

Hi, Makis
I would like to confirm if preCICE will work well if the ALE method is used to simulate large deformation boundaries where the mesh will be changed rather drastically. For example the rotation of wind turbine blades.

Hi @Gong_CHEN,

it is possible, but not trivial. See FSI coupling between OpenFOAM and MBDyn of a cycloidal rotor

hi,all:
I found a function computePartitions(); in initialize() that is supposed to function to send the grid to the other participant during initialization.
My idea is: precice doesn’t support moving grid, the main reason moving grid is changing every step, but precice doesn’t send the grid to each other at every step, out of initialize, if the computePartitions() function is called at every time step, then long be able to realize moving grid.
So still need confirmation from you guys on my thinking, can you?
I need reply!

Hi @ilovenili

This is more or less what @fsimonis is working on. But it is unfortunately a bit more complicated.
We recently collected information on this page:

for coupling between fluent and abaqus, because abaqus’s displacement change followed every step time, how I do?

That’s the classic ALE setting, no? Mapping in the reference domain should work?

in my case, in each step, fluent should receive new displacement from abaqus, also know as moving mesh, I konw precice doesn’t have a generalized method for moving meshes yet, but just for this kind of moving mesh in fluent and abaqus, is it possible to implement it with a simple modification of the existing code?If so, what is this method?

But isn’t this exactly the moving mesh setup that preCICE supports? Could you explain how your situation is different?

you are right, the function have not finish developed, So now it is not possible to implement exchanging the latest mesh of abqus to fluent at every time step, am I wrong in my understanding?

It is currently not possible to use a changing mesh in preCICE (use-mesh / provide-mesh). Many cases don’t require this though and there exist workarounds which are provided on the “Moving or changing meshes” page.

Maybe I’m just being stupid, can you be more specific, I’ve looked at the Perpendicular flap case but I don’t seem to be able to find anything,I don’t have a clue?

The two common workarounds are to either use a static reference mesh with node displacements to simulate a moving mesh, or to receive the mesh of the static participant and perform your own mapping on the participant using the moving mesh. In your case Abaqus uses direct-mesh-access to receive the fluent mesh and the performs its own mapping.

very thanks,Any specific examples you can refer to?,if Perpendicular flap case, Where is the specific code implementation?