CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM

chtMultiRegionFoam: Fluid in temperature domain decreases below initial temp.

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   July 9, 2020, 10:25
Default chtMultiRegionFoam: Fluid in temperature domain decreases below initial temp.
  #1
New Member
 
Dan Padrao
Join Date: Jun 2020
Posts: 14
Rep Power: 5
DanPad07 is on a distinguished road
air.0000.jpgHi all,

I've recently come across a problem in OpenFOAM where the temperature in my fluid domain falls below the initial set temperature of 300K when I increase the speed of the air flow from the inlet to a high value.

As you can see on the picture in the attachements, the air temperature instantly cools to approximately 200K before it passes through the structure and is heated up, which shouldn't happen.

I have a feeling that it has something to do with my pressure boundary conditions since the temperature, air speed and pressure are all linked to each other. If I decrease the air speed to an order of magnitude lower then I don't get this problem and the air flows in with a temperature of 300K. Could someone help me please?

Just to give some context to the picture, air is flowing in from the left through some channels in the structure. The structure is being heated from below (i.e. fixed temperature of 320K on the bottom surface) and the air should cool down the structure.

I've also included the changeDictionaryDict file of my fluid domain here for you all to see (where minY and maxY are inlet and outlet respectively).

Code:
U
{
    internalField   uniform (0 0 0);

    boundaryField
    {
        ".*"
        {
            type            fixedValue;
	    value	      uniform (0 0 0);
        }
	"procBoundary.*"
        {
            type            processor;
        }
	minY
	{
	    type				flowRateInletVelocity;
	    volumetricFlowRate	0.0016667
	    value				uniform (0 0 0);
	}
	maxY
	{
		type			zeroGradient;
	}
    }
}

T
{
    internalField   uniform 300;

    boundaryField
    {
        ".*"
        {
            type              zeroGradient;
	    value 		$internalField;
        }
        "procBoundary.*"
        {
            type            processor;
        }
        "air_to_.*"
        {
            type                  compressible::turbulentTemperatureCoupledBaffleMixed;
            Tnbr                  T;
            kappaMethod     fluidThermo;
            value                $internalField;
        }
    }
}

epsilon
{
    // Set the value on all bc to non-zero. Not used in simulation
    // since zeroGradient; only used in initialisation.
    internalField   uniform 0.01;

    boundaryField
    {
        ".*"
        {
            type            epsilonWallFunction;
            value           uniform 0.01;
        }
        minY
        {
            type            zeroGradient;
	    value	      $internalField;
        }
	maxY
        {
            type            zeroGradient;
        }
	"procBoundary.*"
        {
            type            processor;
        }
    }
}

k
{
    internalField   uniform 0.1;

    boundaryField
    {
        ".*"
        {
            type            kqRWallFunction;
            value           $internalField;
        }
        minY
        {
            type            zeroGradient;
	    value	      $internalField;
        }
	maxY
        {
            type            zeroGradient;
        }
	"procBoundary.*"
        {
            type            processor;
        }
    }
}

p_rgh
{
    internalField   uniform 1e5;

    boundaryField
    {
        ".*"
        {
            type            fixedFluxPressure;
            value           uniform 1e5;
        }
        "procBoundary.*"
        {
            type            processor;
        }
	minY
        {
            type            zeroGradient;
	    value 	      uniform 1e5;
        }
	maxY
        {
            type            fixedValue;
            value           uniform 1e5;
        }
    }
}

p
{
    internalField   uniform 1e5;

    boundaryField
    {
        ".*"
        {
            type            calculated;
            value           uniform 1e5;
        }
        "procBoundary.*"
        {
            type            processor;
        }
    }
}

alphat
{
    internalField   uniform 2.33e-05;

    boundaryField
    {
        ".*"
        {
            type            calculated;
            value           uniform 0;
        }
        "procBoundary.*"
        {
            type            processor;
        }		
    }
}

nut
{
    internalField   uniform 1.48e-05;

    boundaryField
    {
        ".*"
        {
            type            calculated;
            value           uniform 0;
        }
        "procBoundary.*"
        {
            type            processor;
        }		
    }
}

Last edited by DanPad07; July 9, 2020 at 10:33. Reason: Making code easier to read
DanPad07 is offline   Reply With Quote

Old   September 1, 2021, 09:36
Default
  #2
New Member
 
ibrahim
Join Date: Jun 2018
Location: Germany
Posts: 3
Rep Power: 7
leke102 is on a distinguished road
Did you solve it ?
leke102 is offline   Reply With Quote

Old   September 2, 2021, 11:58
Default
  #3
New Member
 
Dan Padrao
Join Date: Jun 2020
Posts: 14
Rep Power: 5
DanPad07 is on a distinguished road
Hi Ibrahim,

I believe I have found a solution, but this was just over a year ago so I can't remember what I did exactly to solve it. I've listed a few of the improvements I have made since this post (which I can remember) below in the hopes that they help you.

I limited the minimum and maximum temperature in the domain using the fvOptions file, with an excerpt found below:
Code:
limitTAir
{
    type            limitTemperature;
    active          yes;

    selectionMode   all;
    min             290;
    max             350;
}
While this isn't the best method (as it doesn't remove the issues with the calculation itself), it means that if the simulation is unstable at the start then it can still run and stabilise without reaching a negative temperature and breaking the calculation. Make sure to set the min and max values outside your expected range of values however so that you can catch any errors.

In addition, I also made sure that the internal field of my U field matched the inlet velocity that's fixed (instead of having it all at 0).

I also began using the pressureInletOutletVelocity bc for the outlet patch of my fluid (you can find more information regarding this bc online).

Finally, I can't remember whether this was a compressible or incompressible solver (that's my fault for not uploading the case directory, lesson learnt), but I have been using the incompressible solvers for the better part of the last year, which may have helped if the absolute values of the pressure I was using before were incorrect.

Please let me know if any of this information helps!
DanPad07 is offline   Reply With Quote

Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Problem with chtMultiregionFoam radiation boundary condition baran_foam OpenFOAM Running, Solving & CFD 10 December 17, 2019 17:36
Suppress twoPhaseEulerFoam energy AlmostSurelyRob OpenFOAM Running, Solving & CFD 33 September 25, 2018 17:45
Unstabil Simulation with chtMultiRegionFoam mbay101 OpenFOAM Running, Solving & CFD 13 December 28, 2013 13:12
Orifice Plate with a fully developed flow - Problems with convergence jonmec OpenFOAM Running, Solving & CFD 3 July 28, 2011 05:24
Error while running rhoPisoFoam.. nileshjrane OpenFOAM Running, Solving & CFD 8 August 26, 2010 12:50


All times are GMT -4. The time now is 02:38.