Are values for readData and writeData in the OpenFOAM adapter arbitrary?


Is there any intrinsic meaning of the values specified under ‘readData’ and ‘writeData’ (see Configure the OpenFOAM adapter | preCICE - The Coupling Library) in the OpenFOAM adapter’s configuration file ‘preciceDict’? For example, I read in the doc that, for FSI, ‘Displacement’ or ‘DisplacementDelta’ are both allowed under ‘readData’ even with a postfix.

  1. It means ‘Displacement0’ or ‘Displacement1’ or ‘Displacemets0’ are all allowed. But, arbitrary names such as ‘SatishDisplacement’ is NOT allowed. Is my understanding correct?

  2. If yes, does it mean that OpenFOAM understands what to expect from a FEA solver by simply reading the terms ‘Displacement0’ or ‘Displacement1’ while ignoring the postfix?

  3. It is written in the doc that “DisplacementDelta”` refers to the last coupling time step, which needs to considered in the case of subcycling. This is not very clear to me. Can someone elaborate on this a bit? By ‘Displacement’, I understand that it corresponds to the incremental displacement with respect to the end of the last coupling step calculated by a FEA solver in an implicit coupling with a CFD solver. If this is correct, what is ‘DisplacementDelta’ then?

Thanks in advance,

Hello @Satish_Chimakurthi,

yes, the adapter uses the prefix of the name to understand the type of what it is coupling (the underlying data structures to use, any conversions needed, etc). The original motivation was exactly Displacement0, names which were coming from CalculiX.

We considered separating the name from the type in the configuration in the past, but this seemed to complicate the code significantly, therefore decided to drop it (unfortunately this discussion is not documented in detail).

Correct. This is also the reason we check for DisplacementDelta before Displacement when reading the config: openfoam-adapter/FSI.C at af5a840fcf4c91cab88f4e63df2c728e76a3d136 · precice/openfoam-adapter · GitHub


By “displacement” we mean “absolute displacement”, i.e., the total displacement from the initial state.

By “displacement delta” we mean what you are describing here. In our terminology, “subcycling” means that one of the solvers executes multiple smaller time steps compared to the coupling time window. The “displacement delta” needs to be computed against the last coupling time and not against these individual smaller steps.

Thanks @Makis for your quick response.

So, just to be clear, ‘Displacement’ refers to the total displacement from the initial state i.e., from the beginning of an analysis (e.g., time=0s), correct? So, if ‘Displacement’ is used, in any coupling step, OF expects the FEA solver to always serve the total displacement with respect to the beginning of the analysis. Is my understanding correct?

On the other hand, if ‘DisplacementDelta’ is used, OF expects the incremental displacement with respect to the end of the last coupling step as I noted in my last message.

Thanks in advance,

Completely correct. :slight_smile:

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.