Help: Using preCICE adaptor with own solver in OpenFOAM - Heat transfer direction is wrong!


I am trying to use preCICE adaptor with an in-house solver in OpenFOAM. We are trying to get the steady state solution for a reacting flow where the flame is positioned above a burner plate and there is conjugate heat transfer through the plate. We have incoming fuel + oxidiser mixture at T~290K and then the combustion products at T~1890K. Most of the incoming mixture has temperature close to 290K. The initial state at t=0 is shown below. The small rectangle at the bottom right of the image is the solid part.

We assume that the burner plate is initially at a temperature of 400K and we expect the heat to flow from the upper side of the plate (where the flame is located) and then heat up the incoming mixture through the side wall of the plate.

While running the simulation, we did not get any error and the coupling between the reacting solver and laplacianFoam worked fine. However, the final result gives heat transfer in the reverse direction i.e., we see that the temperature of the fluid close to wall decreases while the temperature of the solid increases.
Here, you can see a small region of cold flow close to the wall.

Also, the heating occurs on both sides of the wall, rather than having a direction of heat flow from top to the side wall (through the solid domain).

We also found that for the final time step, the T file for ‘solid-openfoam’ gave uniform value rather than a non-uniform distribution in temperature.

        type            fixedValue;
        value           uniform 409.1182552;

If possible, could you help us in determining why the heat transfer is in the opposite direction? Perhaps, we may be overlooking something trivial?

Hi @AswathySurendran,

what fields are you coupling and with which direction?

If you are coupling temperature and heat flux, heat flux is reversed when reading: openfoam-adapter/HeatFlux.C at develop · precice/openfoam-adapter · GitHub (see the - sign in the read() function, line 98).

In our tutorials, we assume that the solid heats up the flow. I am not sure how this could be wrong in your case, but you could try reversing the direction of temperature and heat flux (Dirichlet-Neumann vs Neumann-Dirichlet).

Hi @Makis : Thank you for the reply. We got it to work eventually. But, what we face right now is a different problem. We are running a transient simulation where we want to compute the heat flux transferred into the solid. We thought writing down “gradTx” and “gradTy” (files that are written down in the solid-openfoam folder), averaged over the respective surfaces (boundary surface) for every time step would suffice. However, OF doesn’t recognise these variables. We are currently trying to figure this out. While doing so, we found that, compared to the Gradient calculated from “T” values in ParaView, the “gradT” files that are written in solid-openfoam folder have really large values (of the order 1e6) that look unphysical especially close to the boundaries. Could you please let us know if you have encountered this before? I have attached the plots for “gradTx” and “gradTy” got from simulation and calculated from ParaView below.


gradTx didn’t show up. So, I am pasting it again.

I have not encountered this before, nor I recall any other case where a user encountered it.

Does reversing the coupling direction (Dirichlet-Neumann / Neumann-Dirichlet) help? I wonder if there is a bug related to the direction of the gradient. You could also try to reproduce your problem with the standard flow-over-heated-plate tutorial.

By the way, it would also be nice to comment on how you got your previous problem fixed (and generally open one thread per question/problem).