CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   chtMultiRegionFoam and solar load (https://www.cfd-online.com/Forums/openfoam-solving/255851-chtmultiregionfoam-solar-load.html)

Hawxliquid May 3, 2024 04:08

chtMultiRegionFoam and solar load
 
2 Attachment(s)
Hi everyone.
I am trying a case using chtMultiRegionFoam, but I am having trouble making it work.
The case itself is simple, I represent a city through solid bocks, aswel as a ground. I then have some wind velocity and sunLoad, and I would like to simulate the Temperature in my fluid field as well as solids.



Mainly, I see at first glance two huge issues in my solution


1 - It seems that the temperature of the solids reach a high temperature instantly. Other than being a too high value, why would they reach this temperature instantly on the first iteration?
2 - It seems that the value of that temperature is dependant on the cell size, and it can be seen quite well with the attached image. The center of the field has a refinementRegion and hence smaller cells on the ground, compared to further out of the center. As you can see, the temperature difference is huge, while they should be the same.


Attached are some of my boundary condtions for the ground and the fluid. (domain1 is the fluid, all the other domains (2,3, etc.) are the buildings.



For the ground, 0/T is


Code:

    cellZone_ground_to_domain1
    {
        type            compressible::turbulentTemperatureRadCoupledMixed;
        value          uniform 300;
TnbrT;
        kappaMethod    solidThermo;
        qrNbr          qr;
        qr              none;
        kappa          none;
    }


    domain_bottom
    {
        type            zeroGradient;
    }

    domain_side_ground
    {
        type            zeroGradient;
    }


cellZone_ground_to_domain33
{
    type            compressible::turbulentTemperatureRadCoupledMixed;
    value          uniform 300;
TnbrT;
    kappaMethod    solidThermo;
    qrNbr          none;
    qr              none;
    kappa          none;
}

Regarding fluid to solid T file :


Code:

/*--------------------------------*- C++ -*----------------------------------*\
  =========                |
  \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox
  \\    /  O peration    | Website:  https://openfoam.org
    \\  /    A nd          | Version:  7
    \\/    M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
classvolScalarField;
    location    "0/fluid";
    object      T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [ 0001000 ];

internalField  uniform 300;

boundaryField
{
#includeEtc"caseDicts/setConstraintTypes"

    domain1_to_cellZone_ground
    {
        type            compressible::turbulentTemperatureRadCoupledMixed;
        value          uniform 300;
        Tnbr            T;
        kappaMethod    fluidThermo;
        qrNbr          none;
        qr              qr;
        kappa          none;
    } 

    domain_side_air
    {
        type            inletOutlet;
        value          $internalField;
        inletValue      $internalField;
    }

    domain_top
    {
        type            zeroGradient;

    }

domain1_to_domain33
{
    type            compressible::turbulentTemperatureRadCoupledMixed;
    value          uniform 300;
    Tnbr            T;
    kappaMethod    fluidThermo;
    qrNbr          none;
    qr              qr;
    kappa          none;
}

My radiation properties are as such



Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  v2312                                |
|  \\  /    A nd          | Website:  www.openfoam.com                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
version2.0;
formatascii;
classdictionary;
objectradiationProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

radiationon;

radiationModelsolarLoad;


solarLoadCoeffs
{
sunDirectionModelconstant;
sunDirection            (0-1-1); // Mid September, azimuth is 90°. At 10am 45°, 1pm 90° and 4pm -45°
localStandardMeridian8;    // GMT offset (hours)
startDay22;    // day of the year
startTime10;    // time of the day (hours decimal)
longitude103.84480966701153; // longitude (degrees)
latitude1.281022004174839// latitude (degrees)
gridUp                  (001);    // grid orientation
gridEast                (100);

sunLoadModelfairWeather;

        // Fair Weather Conditions Model Constants.
        // Calculate beta from the Solar calculator or input
skyCloudCoverFraction0;
groundReflectivity0.2;
A2229.78119355// Apparent solar irradiation at air mass m = 0
B0.142064516129// Atmospheric extinction coefficient
C0.058064516129// Solar diffusivity constant
        //beta    45;    // Solar altitude (in degrees) above the horizontal



    // Energy spectrum
spectralDistribution    (11);


    // Radiative flux coupling flags
solidCoupledtrue//Couple through qr the solid regions (default true)
wallCoupledfalse; //Couple through qr wall patches (default false)

    // Reflecting rays
useReflectedRaystrue;
reflecting
    {
nPhi10;
nTheta10;
    }

absorptionEmissionModelnone;
scatterModelnone;
sootModelnone;
}



// Number of flow iterations per radiation iteration
solverFreq1;

absorptionEmissionModelnone;

scatterModelnone;

sootModelnone;


// ************************************************************************* //



and boundaryRadiation


Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  v2312                                |
|  \\  /    A nd          | Website:  www.openfoam.com                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    object      boundaryRadiationProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

".*"
{
    type        transparent;

    wallAbsorptionEmissionModel
    {
        type            multiBandAbsorption;
        emissivity      (1 1);
        absorptivity    (0 0);
    };
}


domain1_to_cellZone_ground
{
    type      opaqueDiffusive;
    wallAbsorptionEmissionModel
    {
        type            multiBandAbsorption;
        absorptivity    (0.9 0.9);
        emissivity      (0.9 0.9);
    };

}









domain1_to_domain33
{
    type        opaqueDiffusive;

    // Fraction of the reflected is diffussive
    fd          0.0; // 0: all specular 1: all diffusive

    wallAbsorptionEmissionModel
    {
        type            multiBandAbsorption;
        absorptivity    (0.4 0.4);
        emissivity      (0.4 0.4);
    };

}

Could you see what gives?


Thanks!






EDIT : The reason for the temperature jumping directly seems to be fixed once I add "thermalInertia true;" to the solid/air and solid/solid boundary conditions. But I still can't explain why bigger cell would be warmer

dasith0001 May 6, 2024 02:42

Hi,

Looks as if the internal boundary of the smaller and bigger cells do not exchange heat at all.

I assume you have used some 'merging'/stitching techniques to create the mesh ? I would rather use on coarse mesh and see if the error occurs again. I am pretty sure you will see sensible result with one clean coarse mesh.

Then work out the refinement later

Hope this helps
Dasith

Hawxliquid May 6, 2024 03:35

Quote:

Originally Posted by dasith0001 (Post 868797)
Hi,

Looks as if the internal boundary of the smaller and bigger cells do not exchange heat at all.

I assume you have used some 'merging'/stitching techniques to create the mesh ? I would rather use on coarse mesh and see if the error occurs again. I am pretty sure you will see sensible result with one clean coarse mesh.

Then work out the refinement later

Hope this helps
Dasith




Hi, thanks for your answer.


It might be it, but how is that possible?
My mesh is created through a classic multi region snappy hex mesh, followed by "splitMeshRegions -cellZones -overwrite".



But even though, the cells that seems to not exchange heat are part of the same region. The difference in cell size is due to a simple refinementRegion..


Edit :


It seems you were on the right track, it seems that conduction does not have time to happen due to the huge domain size. After playing with kappa I can reproduce a normal behaviour, same goes if I simulate in frozen flow for many iterations.
The issue now is that with constant solar Load, my solid temperature increases indefinitely, even though I activated the "opaqueSolid" radiation model on the solids. Same thing with P1 Radiation on the solid. I expect to find a temperature equilibrium because when the temperature of my solid increase, the incoming radiation from the sun should match +- the Stefan-Boltzmann law


All times are GMT -4. The time now is 01:33.