Fluid-Solid-Fluid heat transfer not happening

Dear preCICE users and developers,

first of all thank you for your fine piece of software! I (novice in CFD) needed weeks to get openFOAM cases to properly run using turbulent models and only a day to couple them using preCICE and it run! Kind of…

I have a system consisting of three bodies, all of which have a different mesh. I have hot gas (hotGas) and I have a small pipe (solid) with cool gas (coolGas) inside. All three cases run on their own (using some fitting BC at the interfaces to the other objects), hot and cool Gas use the buoyantSimpleFoam solver with kOmegaSST RAS model and the solid uses a laplacianFoam solver.

I first coupled the coolGas-solid system and it run using preCICE and results looked very promising. But when I try to run the full hotGas-solid-coolGas system I can not get any temperature transfer through the pipe… Residuals oscillate like crazy but preCICE runs without error… The solid seems to be stuck at initial temperature while the two fluids to their thing around it but not exchanging temperature with the solid. I have a part of the solid not in contact with the hotGas, see picture:

The orange part in the middle is the solid at constant T, internalField uniform 320.0; from 0/T. The hotGas is not in contact with the solid everywhere as can be seen. My Temperature files which is what I want to transfer are:

hotGas:

dimensions      [0 0 0 1 0 0 0];
internalField   uniform 323.0;
boundaryField
{
    inlet
    {
        type        inletOutlet;
        inletValue  uniform 323.0;
        value       uniform 323.0;
    }
    open
    {
        type        inletOutlet;
        inletValue  uniform 323.0;
        value       uniform 323.0;
    }
    interfacehotGastosolid // interface will be handled by preCICE
    {
		 type zeroGradient;
	}
    wall
    {
        type        zeroGradient;
    }
    defaultFaces
    {
        type        zeroGradient;
    }
}

coolGas:

dimensions      [0 0 0 1 0 0 0];
internalField   uniform 278.0;
boundaryField
{
    inlet
    {
        type        inletOutlet;
        inletValue  uniform 278.0;
        value       uniform 278.0;
    }
    adiabatic
    {
        type        zeroGradient;
    }
    interfacecoolGastosolid // will be handled by preCICE
    {
		 type zeroGradient;
		 value $internalField;
	 }
    outlet
    {
        type        inletOutlet;
        inletValue  uniform 278.0;
        value       uniform 278.0;
    }
    defaultFaces
    {
        type        zeroGradient;
        value       $internalField;
    }
}

and solid:

dimensions      [0 0 0 1 0 0 0];
internalField   uniform 320.0;
boundaryField
{
    interfacesolidtohotGas // interface to hot gas (outer pipe surface)
    {
        type        fixedGradient;
        gradient    uniform 0;
    }
    xsPipe
    {
        type        zeroGradient;
    }
    interfacesolidtocoolGas // interface to cool gas (inner pipe surface)
    {
        type        fixedGradient;
        gradient    uniform 0;
    }
    defaultFaces
    {
        type        zeroGradient;
    }
}

my preCICE config is attached. See also the config as graph:

precice-config.xml (3.2 KB)

Do you have any ideas why the two part heat transfer works but as soon as I include hotGas it fails? Thank you for any input and have a nice day!

Simon

The OpenFOAM configuration looks correct to me. I think the issue is in the coupling scheme configuration. Could you try switching to parallel-explicit schemes?

Documentation: Multi coupling configuration | preCICE - The Coupling Library

Thanks for the reply.

Switching both couplings to parallel-explicit did not wanted to start, solid and hotGas crashed with the same error:
---[precice] ERROR: Sending data to another participant (using sockets) failed with a system error: write: Broken pipe [system:32]. This often means that the other participant exited with an error (look there).

Then using parallel-explicit for solid-coolGas and serial-explicit for solid-hotGas let me run preCICE but with the same problem of no heat transfer. Solid stays at constant temperature with residuals doing zig-zags…

Edit: different coupling schemes combinations let the temperature in the solid change, but it crashed after 3 iterations since the Temperature exploded… Changing the interfaces to

interfacehotGastosolid // interface will be handled by preCICE
{
	 //type zeroGradient;
	 type            mixed;
	 refValue        uniform 323;
	 valueFraction   uniform 0.5;
	 refGradient     uniform 0;
 }

and likewise for the coolGas starts the run, but Temperatures in the solid quickly rise to 1e5 K and just stay there, I have no idea where all this heat is coming from since I have limited the temperature of the two fluids. Seems to be a openFOAM related problem, I will ask in their forum.

Edit2: Might not be openFOAM problem but heat flux direction in the coupling that causes it

Edit3: Yes it was the use of heat flux and a sign mismatch (similar to Wrong heat-flux direction with OpenFoam CHT ) that heated up the pipe in nonphysical regimes. I finally used the same method as the heat-exchanger tutorial and only read/write Sink-Temperatures and Heat-Transfer-Coefficients. Guess I will not use heat flux :slight_smile:

1 Like

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