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 diff --git a/docs/README.md b/docs/README.md index 3e62d9ad..72e5943b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -12,32 +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) - -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, 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: + +- **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 @@ -70,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.
@@ -92,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 %} 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.