Hellow all. I am new to preCICE and found that this is definitly a wonderful tool.
I am trying to use it for a coupling between openFoam 8 and my own code of structure. I use the seriel-explicit coupling scheme and first-participant (Fluid part) for the time window size. My plan is to first calculate the fluid part and use the same time step for the structure part. I thought this should be done by using dt = precice.advanc() in my structure code. However, I found this commond does not give the correct time step that was used by the fluid, they are very close though. I am using adjustable time step in the openfoam.
<mesh name="Fluid-Mesh">
<use-data name="Force" />
<use-data name="Displacement" />
</mesh>
<mesh name="Cylinder-Mesh">
<use-data name="Displacement" />
<use-data name="Force" />
</mesh>
<participant name="Fluid">
<use-mesh name="Fluid-Mesh" provide="yes" />
<use-mesh name="Cylinder-Mesh" from="Cylinder" />
<read-data name="Displacement" mesh="Fluid-Mesh" />
<write-data name="Force" mesh="Fluid-Mesh" />
<mapping:nearest-neighbor
direction="read"
from="Cylinder-Mesh"
to="Fluid-Mesh"
constraint="consistent" />
<mapping:nearest-neighbor
direction="write"
from="Fluid-Mesh"
to="Cylinder-Mesh"
constraint="conservative" />
</participant>
<participant name="Cylinder">
<use-mesh name="Cylinder-Mesh" provide="yes" />
<read-data name="Force" mesh="Cylinder-Mesh" />
<write-data name="Displacement" mesh="Cylinder-Mesh" />
<watch-point mesh="Cylinder-Mesh" name="PointCylinder" coordinate="0.5;0.0" />
<export:vtk directory="coupling-meshes" />
</participant>
<m2n:sockets from="Fluid" to="Cylinder" exchange-directory="../" />
<coupling-scheme:serial-explicit>
<time-window-size method = "first-participant" />
<max-time value="250" />
<participants first="Fluid" second="Cylinder" />
<exchange data="Force" mesh="Cylinder-Mesh" from="Fluid" to="Cylinder" />
<exchange data="Displacement" mesh="Cylinder-Mesh" from="Cylinder" to="Fluid" />
</coupling-scheme:serial-explicit>
For example, the time step used by the foam is 0.00199414, but the one read and used by the structure through precice.advance is 0.00201513.
I would appriciate it if someone can help me with this.