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

Heating of a building

Register Blogs Community New Posts Updated Threads Search

Like Tree1Likes
  • 1 Post By Bloerb

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   December 31, 2017, 10:37
Default Heating of a building
  #1
Eko
Member
 
Join Date: Dec 2017
Location: Germany
Posts: 48
Rep Power: 8
Eko is on a distinguished road
Hey guys I have started working with OpenFOAM 3weeks ago and need some tips for setting up my case.

I am looking at a building with a heat source (in kW) and want to simulate the heating of the room. I just want to see the air temperature nothing else.

I would like to set a start temperature (for example 293K) and want to see the temperature 1, 2 or 3 hours later.

I already checked some tutorials but didn't find one which has a heat source given in W or J. The hotRoom tutorial seems to work with temperature and doesn't really help me.

So my questions are:

1. How do I set up a start Temperature and where? (T-file?)
2. How and where do I define the heat source?
3. How do I calculate the temperature at 1,2 or 3 hours? (by using calculated
BC in T-file or is there another way?)
4. I would use buoyantBoussinesqPimpleFoam solver. Or should I try
chtMultiRegionFoam?


If you need more information or think that I've forgot something just let me know.
Thank you in advance and happy new year everyone.
Eko is offline   Reply With Quote

Old   December 31, 2017, 11:25
Default
  #2
Senior Member
 
piu58's Avatar
 
Uwe Pilz
Join Date: Feb 2017
Location: Leipzig, Germany
Posts: 744
Rep Power: 15
piu58 is on a distinguished road
I used buoyantBoussinesqPimpleFoam with some success. I did not find a boundary condition that you indent to use. I recommend to use the temperature b.c. and calculate the heat production form the result. In a few steps you should have found a temperature which fulfills the heat production.
__________________
Uwe Pilz
--
Die der Hauptbewegung überlagerte Schwankungsbewegung ist in ihren Einzelheiten so hoffnungslos kompliziert, daß ihre theoretische Berechnung aussichtslos erscheint. (Hermann Schlichting, 1950)
piu58 is offline   Reply With Quote

Old   December 31, 2017, 11:50
Default
  #3
Senior Member
 
Join Date: Sep 2013
Posts: 353
Rep Power: 20
Bloerb will become famous soon enough
buoyantBoussinesqPimpleFoam and chtMultiRegionFoam are essentially identical in recent OF versions since you can choose the Boussinesq assumtion in the thermoPhysicalProperties file. If you need different regions coupled cht is the way to go. E.g If you want to include conduction through the walls and can't treat them as boundary condtions. To answer your questions:

The initial temperature is set in the 0/T file. You can set a uniform value to the entire volume or use the setFields utility to vary it in space.

You can add a volumetric heat source via fvOption

Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  dev                                   |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "constant";
    object      fvOptions;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

options
{
    energySource
    {
        type            scalarSemiImplicitSource;

        selectionMode   all;

        volumeMode      specific;
        injectionRateSuSp
        {
            h      (1.5e6 0);   
        }
    }
}


// ************************************************************************* //
This will add a heat source of 1.5e6 W/m³ to everything. In your case you probably need to define a cellZone and specify selectionMode to that cellZone. You can also change the volumeMode so that your heat source is in W. You can however also specify a heat source as a boundary condtion.
Code:
    heat
    {
        type            externalWallHeatFluxTemperature;
        kappaMethod     fluidThermo;
        mode         flux; // flux for W/m² or power for W
         q        uniform 100; // 100 W/m²
         Q        uniform 100; // 100 W
        value           $internalField; // initial temperature
    }
You can calculate the temperature after 3 hours by simply checking it in paraview. Or you can use a functionObject to calculate it for a specifc patch or the volume etc.
jherb likes this.
Bloerb is offline   Reply With Quote

Old   January 1, 2018, 06:54
Default
  #4
Eko
Member
 
Join Date: Dec 2017
Location: Germany
Posts: 48
Rep Power: 8
Eko is on a distinguished road
Thanks a lot guys
I will try to setup the case within the next days and will tell you if it worked out or if I need more help.
Eko is offline   Reply With Quote

Old   January 8, 2018, 04:41
Default
  #5
Eko
Member
 
Join Date: Dec 2017
Location: Germany
Posts: 48
Rep Power: 8
Eko is on a distinguished road
Quote:
Originally Posted by Bloerb View Post
You can however also specify a heat source as a boundary condtion.
Code:
    heat
    {
        type            externalWallHeatFluxTemperature;
        kappaMethod     fluidThermo;
        mode         flux; // flux for W/m² or power for W
         q        uniform 100; // 100 W/m²
         Q        uniform 100; // 100 W
        value           $internalField; // initial temperature
    }
You can calculate the temperature after 3 hours by simply checking it in paraview. Or you can use a functionObject to calculate it for a specifc patch or the volume etc.
Does this even work with the Boussinesq approximation? It seems like it's implemented for compressible cases and the Boussinesq solver is incompressible.

I am still trying to figure out how to add a heat source. I am trying to add one to the floor of the hot room tutorial case, just to understand it.


Another question: Is it possible to set up a heat source in W/m² by using fvOptions?


Edit: is there any tutorial case with a heat source given in W or W/m²? checked all heatTransfer tutorials but didn't find what I was looking for

Last edited by Eko; January 8, 2018 at 09:48.
Eko is offline   Reply With Quote

Old   January 10, 2018, 04:52
Default
  #6
Eko
Member
 
Join Date: Dec 2017
Location: Germany
Posts: 48
Rep Power: 8
Eko is on a distinguished road
One more question. If I put a solid, for example a cube into the room as heat source. So the air in the room is heaten up by this cube. Does this already count as multiregion? Do I have to use chtMultiRegionFoam in this case or can buoyantBoussinesqPimpleFoam solve this?
Eko is offline   Reply With Quote

Old   January 10, 2018, 06:47
Default
  #7
Senior Member
 
piu58's Avatar
 
Uwe Pilz
Join Date: Feb 2017
Location: Leipzig, Germany
Posts: 744
Rep Power: 15
piu58 is on a distinguished road
May be you can find boundary conditions which are suitable for what happens with the cube. If you want to know the temperature distribution in the cube I see two ways
- multi region

or

if the heat capacity of the room is mauch larger than the one of the cube

- Define the cube as wall and read the temperature distribution of the wall. Make a different simulation with only the cube and set this temperature as b.c.
__________________
Uwe Pilz
--
Die der Hauptbewegung überlagerte Schwankungsbewegung ist in ihren Einzelheiten so hoffnungslos kompliziert, daß ihre theoretische Berechnung aussichtslos erscheint. (Hermann Schlichting, 1950)
piu58 is offline   Reply With Quote

Old   January 10, 2018, 07:05
Default
  #8
Eko
Member
 
Join Date: Dec 2017
Location: Germany
Posts: 48
Rep Power: 8
Eko is on a distinguished road
Quote:
Originally Posted by piu58 View Post
May be you can find boundary conditions which are suitable for what happens with the cube. If you want to know the temperature distribution in the cube I see two ways
- multi region

or

if the heat capacity of the room is mauch larger than the one of the cube

- Define the cube as wall and read the temperature distribution of the wall. Make a different simulation with only the cube and set this temperature as b.c.
I don't really need to know what happens with the cube. I just want to see how the temperature in the room changes. I looked at buoyant and cht cases and the cht ones seem to be easier (at least I understand more ). I still have no clue how I can add a heatsource in W or W/m² while using buoyant solvers (bc didn't work out and I don't know how to properly use fvOptions).

I'm currently setting up a more difficult case with chtMultiRegionFoam and till now it's going well. Just a lot more work to do with the CAD, meshing, setting up files compared to buoyant tasks.

Last edited by Eko; January 10, 2018 at 08:08.
Eko is offline   Reply With Quote

Reply


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
[OpenFOAM.org] OpenFOAM 2.3.0 on CentOS 6.5 entropies OpenFOAM Installation 33 January 4, 2017 05:01
[foam-extend.org] Error compiling OpenFOAM-1.6-ext Canesin OpenFOAM Installation 137 January 20, 2016 14:56
Tool for heating energy and temperature simulation in building badertscher Main CFD Forum 0 June 9, 2013 13:30
Paraview Compiling Error (OpenFOAM 2.1.x + openSUSE 12.2) sfigato OpenFOAM Installation 22 January 31, 2013 10:16
Compilation error OF1.5-dev on Suse10.3 darenyang OpenFOAM Installation 0 April 29, 2009 04:55


All times are GMT -4. The time now is 23:25.