|
[Sponsors] |
May 3, 2024, 05:08 |
chtMultiRegionFoam and solar load
|
#1 |
New Member
Boris
Join Date: Jan 2017
Posts: 26
Rep Power: 9 |
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; } 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; } 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; // ************************************************************************* // 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); }; } 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 Last edited by Hawxliquid; May 3, 2024 at 10:00. |
|
May 6, 2024, 03:42 |
|
#2 |
Senior Member
Desh
Join Date: Mar 2021
Location: Sydney
Posts: 118
Rep Power: 5 |
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 |
|
May 6, 2024, 04:35 |
|
#3 | |
New Member
Boris
Join Date: Jan 2017
Posts: 26
Rep Power: 9 |
Quote:
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 Last edited by Hawxliquid; May 6, 2024 at 09:52. |
||
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Modelling temperature inside a tent under solar radiation and wind | SimonHb | OpenFOAM Running, Solving & CFD | 0 | October 22, 2021 13:33 |
Chtmultiregionfoam + fvdom | Atieh.alizadeh | OpenFOAM Running, Solving & CFD | 3 | June 22, 2021 09:02 |