From 24458384702eccb86b074fb2150c5939ee061cb1 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Thu, 29 Jan 2026 16:40:33 +0100 Subject: [PATCH 1/6] Clarify field support for solvers in README Some fields are only supported by some types of solvers. For example, solid OpenFOAM solvers cannot write force, because that is computed assuming a flow solver. There are probably more like this, we need to check and document. --- docs/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/README.md b/docs/README.md index 3e62d9ad..e5075844 100644 --- a/docs/README.md +++ b/docs/README.md @@ -37,6 +37,9 @@ In addition, the adapter supports the following fields in a volume coupling setu - Pressure (write) - Velocity (read + write) +Some fields might only be supported by specific solver types (e.g., fluid or solid). +For example, writing forces is supported for fluid solvers, but not for solid solvers. + All features of preCICE are supported, including implicit coupling and nearest-projection mapping. Even though OpenFOAM is 3D, this adapter can also work in the 2D mode of preCICE, defining only one layer of interface nodes (automatically). ## Try From 9d6584b405629ab1414c0454286ef5618cbe325d Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Fri, 13 Feb 2026 15:50:52 +0100 Subject: [PATCH 2/6] Add tables of supported fields --- docs/README.md | 81 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 52 insertions(+), 29 deletions(-) diff --git a/docs/README.md b/docs/README.md index e5075844..becb94c3 100644 --- a/docs/README.md +++ b/docs/README.md @@ -12,35 +12,58 @@ This preCICE adapter is a plug-in (function object) for OpenFOAM, which can work ## What can it do? -This adapter can read/write the following fields in a surface coupling setup: - -- Temperature (read + write) -- Temperature surface-normal gradient (read + write) -- Heat flux (read + write) -- Sink temperature (read + write) -- Heat transfer coefficient (read + write) -- Force (read + write) -- Stress (write) -- Displacement (read + write) -- Displacement delta (read) -- Pressure (read + write) -- Pressure surface-normal gradient (read + write) -- Velocity (read + write) -- Velocity surface-normal gradient (read + write) -- Phase fraction (alpha) (read + write) -- Phase fraction (alpha) gradient (read + write) -- Phase flux (phi) (read + write) - -In addition, the adapter supports the following fields in a volume coupling setup: - -- Temperature (write) -- Pressure (write) -- Velocity (read + write) - -Some fields might only be supported by specific solver types (e.g., fluid or solid). -For example, writing forces is supported for fluid solvers, but not for solid solvers. - -All features of preCICE are supported, including implicit coupling and nearest-projection mapping. Even though OpenFOAM is 3D, this adapter can also work in the 2D mode of preCICE, defining only one layer of interface nodes (automatically). +This adapter has been demonstrated on different use cases (conjugate heat transfer, fluid-structure interaction, fluid-fluid coupling), both in 2D (3D with one layer of cells in the z-axis) and 3D, and both for flow and solid OpenFOAM-based solvers (see [tutorials](https://precice.org/tutorials.html)). +The fields to read/write are provided by different adapter modules that one needs to [configure](https://precice.org/adapter-openfoam-config.html) and are currently the following. + +Legend on locations to read/write: + +- **N:** Mesh nodes (surface coupling) +- **F:** Face centers (surface coupling) +- **C:** cell centers (volume coupling) +- ***:** mesh connectivity supported (for e.g., nearest-projection mapping) + +### Module: Conjugate heat transfer + +| Field | Write | Read | Config prefix | +| --- | --- | --- | --- | +| Heat flux | N*, F | N, F* | `Heat-Flux` | +| Heat transfer coefficient | N*, F | N, F* | `Heat-Transfer-Coefficient` | +| Sink temperature | N*, F | N, F* | `Sink-Temperature` | +| Temperature | N*, F, C | N, F*, C | `Temperature` | + +All fields are supported for both flow (compressible/incompressible) and basic (e.g., laplacianFoam) solvers. + +### Module: Fluid-structure interaction + +| Field | Write | Read | Config prefix | +| --- | --- | --- | --- | +| Displacement: absolute | N*, F* | N*, F* | `Displacement` | +| Displacement: relative | N*, F* | N*, F* | `DisplacementDelta` | +| Force | F* (flow) | F* | `Force` | +| Stress | F* (flow) | F* | `Stress` | + +Displacement reading and writing is supported both for flow (compressible or incompressible) and structure solvers. +Force and stress writing in only supported for flow solvers, reading for both. + +### Module: Fluid-fluid coupling + +| Field | Write | Read | Config prefix | +| --- | --- | --- | --- | +| Drag force | F*, C | F*, C | `DragForce` | +| Momentum: explicit | F*, C | F*, C | `ExplicitMomentum` | +| Momentum: implicit | F*, C | F*, C | `ImplicitMomentum` | +| Phase flux | F* | F* | `Phi` | +| Phase fraction | F*, C | F*, C | `Alpha` | +| Phase fraction gradient | F* | F* | `AlphaGradient` | +| Pressure | F*, C | F*, C | `Pressure` | +| Pressure: full gradient | F*, C* | F* | `PressureGradientFull` (TODO: read-only) | +| Pressure: surface-normal gradient | F* | F* | `PressureGradient` | +| Temperature | F* | F* | `FlowTemperature` | +| Temperature surface-normal gradient | F* | F* | `FlowTemperatureGradient` | +| Velocity | F*, C | F*, C | `Velocity` | +| Velocity surface-normal gradient | F* | F* | `VelocityGradient` | + +All fields assume a flow solver. ## Try From 70ca04b9e2836b807cfec245aad5f06b17c341e5 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Fri, 13 Feb 2026 15:52:21 +0100 Subject: [PATCH 3/6] Add changelog entry --- changelog-entries/392.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog-entries/392.md diff --git a/changelog-entries/392.md b/changelog-entries/392.md new file mode 100644 index 00000000..bde68063 --- /dev/null +++ b/changelog-entries/392.md @@ -0,0 +1 @@ +- Added a table of supported fields per read/write in `README.md` [#392](https://github.com/precice/openfoam-adapter/pull/392) \ No newline at end of file From 6d19c434dbb03356489ad882b89750efb2d663a5 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Fri, 13 Feb 2026 15:58:27 +0100 Subject: [PATCH 4/6] Document existence of CFD-DEM fields --- docs/config.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/config.md b/docs/config.md index 7e1c2357..f0c7690e 100644 --- a/docs/config.md +++ b/docs/config.md @@ -217,7 +217,7 @@ solver displacementLaplacian; #### FF -The fluid-fluid coupling module supports reading and writing `Pressure`, `Velocity`, `PressureGradient`, `VelocityGradient`, `FlowTemperature`, `FlowTemperatureGradient`, `Alpha`, `AlphaGradient` and the face flux `Phi`. +The fluid-fluid coupling module supports reading and writing `Pressure`, `Velocity`, `PressureGradient` (surface-normal gradient), `PressureGradientFull` (full pressure gradient), `VelocityGradient`, `FlowTemperature`, `FlowTemperatureGradient`, `Alpha`, `AlphaGradient`, `Phi` (face flux), `DragForce`, `ExplicitMomentum`, `ImplicitMomentum`. Similarly to the CHT module, you need a `fixedValue` boundary condition of the respective primary field in order to read and apply values, and a `fixedGradient` boundary condition of the respective gradient field in order to read and apply gradients. From a0fbb27d3eb15bc9ae4d3b898c8e88106e1e1448 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Fri, 13 Feb 2026 16:08:22 +0100 Subject: [PATCH 5/6] Move disclaimer up to fix rendering of footnotes --- docs/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/README.md b/docs/README.md index becb94c3..ea0237ee 100644 --- a/docs/README.md +++ b/docs/README.md @@ -96,6 +96,10 @@ The volume coupling functionality was contributed by Tina Vladimirova, in the co The adapter is [easily extensible](https://precice.org/adapter-openfoam-extend.html). +{% disclaimer %} +This offering is not approved or endorsed by OpenCFD Limited, producer and distributor of the OpenFOAM software via www.openfoam.com, and owner of the OPENFOAM® and OpenCFD® trade marks. +{% enddisclaimer %} + ### Related literature [^1]: Chourdakis, G., Schneider, D., & Uekermann, B. (2023). OpenFOAM-preCICE: Coupling OpenFOAM with External Solvers for Multi-Physics Simulations. OpenFOAM® Journal, 3, 1–25.
@@ -118,7 +122,3 @@ URL: https://mediatum.ub.tum.de/node?id=1696254&change_language=en [^7]: Tina Vladimirova. Design, implementation, and validation of a volume coupling extension for the OpenFOAM-preCICE adapter. IDP report, School of Computation, Information and Technology, Technical University of Munich, 2023.
URL: https://mediatum.ub.tum.de/1734883 - -{% disclaimer %} -This offering is not approved or endorsed by OpenCFD Limited, producer and distributor of the OpenFOAM software via www.openfoam.com, and owner of the OPENFOAM® and OpenCFD® trade marks. -{% enddisclaimer %} From 93867478ed0f67057b7e359943b56aa3f0b519fa Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Wed, 18 Feb 2026 16:11:16 +0100 Subject: [PATCH 6/6] Update docs/README.md Co-authored-by: David Schneider --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index ea0237ee..72e5943b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -12,7 +12,7 @@ This preCICE adapter is a plug-in (function object) for OpenFOAM, which can work ## What can it do? -This adapter has been demonstrated on different use cases (conjugate heat transfer, fluid-structure interaction, fluid-fluid coupling), both in 2D (3D with one layer of cells in the z-axis) and 3D, and both for flow and solid OpenFOAM-based solvers (see [tutorials](https://precice.org/tutorials.html)). +This adapter has been demonstrated on different use cases (conjugate heat transfer, fluid-structure interaction, fluid-fluid coupling, CFD-DEM), both in 2D (3D with one layer of cells in the z-axis) and 3D, and both for flow and solid OpenFOAM-based solvers (see [tutorials](https://precice.org/tutorials.html)). The fields to read/write are provided by different adapter modules that one needs to [configure](https://precice.org/adapter-openfoam-config.html) and are currently the following. Legend on locations to read/write: