Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add gaps with forced ventilation #2

Closed
wants to merge 93 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
e239f3d
Add gaps with forced ventilation
simon-wacker Oct 11, 2022
598eff9
Use existing `ForcedVentilation` member of `CGasLayer` declared in `L…
simon-wacker Oct 12, 2022
810c099
Set speed and direction for forced ventilation and calculate temperat…
simon-wacker Oct 19, 2022
c555e0c
Assert that neither gap layer around a shade has forced ventilation
simon-wacker Oct 19, 2022
1b927a7
Test temperatures of solid and shade layers surrounding the forced ve…
simon-wacker Nov 9, 2022
6da5e77
Test forced ventilation with non-zero solar radiation
simon-wacker Nov 9, 2022
3c6c5c9
Add forced ventilation with zero air speed
simon-wacker Nov 9, 2022
3f90046
Call `solve` on the Tarcog system after setting it up, change expecte…
simon-wacker Nov 10, 2022
6bbf506
Test the indoor heat flow for a system with a forced radiation gap po…
simon-wacker Nov 10, 2022
ff59ee9
Test natural ventilation of gap at edge
simon-wacker Nov 10, 2022
5a17a51
Test natural ventilation of narrow gap at edge
simon-wacker Nov 10, 2022
9e6c5ce
Call `solve` on the Tarcog system after setting it up to calculate la…
simon-wacker Nov 11, 2022
d30774d
Support and calculate temperatures of sealed forced-ventilation gaps,…
simon-wacker Nov 18, 2022
a07f922
Make scoped traces in tests more expressive
simon-wacker Nov 18, 2022
f1976a8
Test sealed and narrow forced-ventilation gap layer with zero air speed
simon-wacker Nov 18, 2022
288742a
Turn to-do into note and remove legacy questions
simon-wacker Nov 18, 2022
063bfba
Use closed shades to model sealed forced-ventilation gaps
simon-wacker Nov 22, 2022
b0a2f92
Make transmittance and emissivity explicit and tell that reflectance …
simon-wacker Nov 22, 2022
1869b91
Put declarations of air-direction enumerations back to where they use…
simon-wacker Nov 22, 2022
632ea77
Add test for sealed gap at edge with natural ventilation
simon-wacker Nov 24, 2022
df462b6
Add getters for `m_HInput`, `m_HCoefficientModel`, `m_IRCalculatedOut…
simon-wacker Nov 24, 2022
352f72b
Delete ventilation tests with narrow gaps
simon-wacker Nov 24, 2022
b06e310
Improve naming of ventilated gap tests
simon-wacker Nov 24, 2022
f500c6c
Add missing abbreviation IR for infrared to front and back transmitta…
simon-wacker Dec 5, 2022
1622b87
Name `closedShading` but `sealedLayer`
simon-wacker Dec 5, 2022
d939296
ForcedVentilation structure removed since it contained only one membe…
vidanovic Dec 15, 2022
bfad3a2
Separation for setting of geometry vs setting direction.
vidanovic Dec 15, 2022
69bb2d8
Flow geometry is set only once
vidanovic Dec 15, 2022
16402ef
Inlet temperature now have to be set in the separate routine and can …
vidanovic Dec 15, 2022
cebccb8
Outlet temperature for the airflow calculations is moved into ventila…
vidanovic Dec 15, 2022
23de2ec
Setting flow temperatures is moved into ventilated gap class.
vidanovic Dec 15, 2022
dd99fa6
Thermally driven speed of two connected gaps is moved into ventilated…
vidanovic Dec 15, 2022
92638c5
In between shade ventilated gap calculations are moved into ventilate…
vidanovic Dec 15, 2022
8fdd67b
Initialization of forced ventilation air speed moved from calcEdgeSha…
vidanovic Dec 15, 2022
4ceef2d
Airflow reference point calculations are now private functions. This …
vidanovic Dec 15, 2022
e3ba862
Moving more functions into private
vidanovic Dec 16, 2022
97c9f8b
Calculation of airflow for the edge case is now completely moved out …
vidanovic Dec 16, 2022
d3ec632
Thermally driven ventilation between two gaps is moved into Ventilate…
vidanovic Dec 16, 2022
39c8afc
Couple of more functions from ventilated gap moved into the private s…
vidanovic Dec 16, 2022
e96c26e
Top and Bottom opening multipliers are no longer saved with the venti…
vidanovic Dec 16, 2022
4ae8033
Fixed the issue in thermally driven airflow calculations where the in…
vidanovic Dec 16, 2022
b46f1fb
Inlet and outlet temperatures are stored in a single structure.
vidanovic Dec 17, 2022
3ab5111
Forced airflow calculations are now called for non-shading layers in …
vidanovic Dec 17, 2022
f90cf95
Update to unit test that perform forced ventilation of the gap at the…
vidanovic Dec 19, 2022
37a42b1
Forced ventilation on the edge cases with the different values of the…
vidanovic Dec 19, 2022
3981716
Update to all unit test performed. Still missing test for in between …
vidanovic Dec 19, 2022
3566251
Forced ventilation for in between case is now in tests as well.
vidanovic Dec 19, 2022
a079bec
Merge pull request #4 from ise-bipv/airflow-refactoring
simon-wacker Jan 3, 2023
90c7688
Copy example GapLayerAtEdgeForcedVentilationInsideAir.unit.cpp and re…
christoph-maurer Jan 5, 2023
840aae7
Rename the class `TestGapLayerAtEdgeForcedVentilationOutsideAir` to `…
christoph-maurer Jan 18, 2023
6c5799f
The results of the new test indicate that the shading has zero absorp…
christoph-maurer Jan 18, 2023
c748a12
Fail to add absorptance as in DoubleOutsidePerforatedShade_SHGC.unit.…
christoph-maurer Jan 18, 2023
6dd4746
Do not upgrade gap layers that already are ventilated
simon-wacker Jan 19, 2023
7ba05b8
Remove unused includes
simon-wacker Jan 19, 2023
885d09b
Use `CSingleSystem` as `m_TarcogSystem`
simon-wacker Jan 19, 2023
1f1f6c1
Declare missing air temperature variable
simon-wacker Jan 19, 2023
1687b3a
Assert non-nullness of shade layer
simon-wacker Jan 19, 2023
a77ff0b
Solve the system at end of test set-up
simon-wacker Jan 19, 2023
e915396
Give variables more readable and expressive names
simon-wacker Jan 19, 2023
cf4de18
Correct expected numbers
simon-wacker Jan 19, 2023
ec900e5
Correct expected ventilated flow in `DoubleClarIndoorShadeAir` tests
simon-wacker Jan 19, 2023
3c66501
Merge pull request #6 from ise-bipv/fix-outside-air-test
christoph-maurer Jan 23, 2023
0186920
Create three test cases for validation with the software Winther
christoph-maurer Jan 24, 2023
0acb5e3
Create tests for interior screen with varying height and mass flow of…
christoph-maurer Jan 25, 2023
c750c4e
Rename the validation tests to make them more consistend with the oth…
christoph-maurer Jan 25, 2023
8685f9d
Finish renaming the 8 tests for validation and explanation
christoph-maurer Jan 26, 2023
cdfaf88
Use new lines consistently in the blocks of the 8 new tests
christoph-maurer Jan 26, 2023
d0e7cc8
Add test with exterior shading and forced convection with roomTempera…
christoph-maurer Jan 26, 2023
03a1d55
Add tests to compare zero forced convection with the natural convecti…
christoph-maurer Jan 26, 2023
b78d795
Start test with 2 glass panes and 1 shading in between, but the test …
christoph-maurer Jan 26, 2023
1d5827e
Fix test GapBetweenIrradiatedGlassPanesWithIntegratedShadingForcedVen…
christoph-maurer Jan 31, 2023
180b857
Add getters for inlet and outlet temperatures
simon-wacker Feb 1, 2023
e59d39a
Merge pull request #7 from ise-bipv/add-getters-for-inlet-and-oulet-t…
christoph-maurer Feb 2, 2023
723c4ed
Add example with very thick glass to calculate the external and inter…
christoph-maurer Feb 3, 2023
0a0fef4
Fail to print the indoor radiative heat transfer coefficient
christoph-maurer Mar 14, 2023
49a8407
No error message anymore, but no results neither.
christoph-maurer Mar 14, 2023
c9a2ea4
The heat transfer coefficients of the summer validation look fine
christoph-maurer Mar 15, 2023
83c4540
Test the heat transfer coefficients of all three validation cases
christoph-maurer Mar 15, 2023
1131b07
Merge pull request #8 from ise-bipv/print-heat-transfer-coefficients
christoph-maurer Mar 15, 2023
4f96c01
Describe when the is used
christoph-maurer Mar 15, 2023
43c36f4
Add old test from Windows-CalcEngine
christoph-maurer Mar 21, 2023
af0f0be
Remove the tests which are replaced by the tests `GapBetween*`
christoph-maurer Mar 21, 2023
1167e31
Correct expected values
simon-wacker Mar 21, 2023
25815c7
Add test with naturally ventilated and sealed gap to cross validate t…
simon-wacker Mar 21, 2023
d3016c0
Merge pull request #5 from ise-bipv/more-examples-of-gaps-with-forced…
simon-wacker Mar 21, 2023
c68a90c
Revert commit https://github.com/ise-bipv/Windows-CalcEngine/commit/3…
simon-wacker Mar 23, 2023
d56a8c0
Compare with 1mm gap zeroForced and natural convection
christoph-maurer Apr 12, 2023
c0f0b08
Update name of the tests
christoph-maurer Apr 13, 2023
5012ebd
The IRFlow differs between the 1mmGap tests
christoph-maurer Apr 13, 2023
327f77e
The temperatures match with about +/- 0.02 K
christoph-maurer Apr 13, 2023
f25af9b
The IRFlow matches with +/- 0.02 W/m². The energy gain of ZeroForcedC…
christoph-maurer Apr 13, 2023
19977cc
Correct expected values
simon-wacker Apr 13, 2023
a29f592
Merge pull request #9 from ise-bipv/compare-1mm-gap
simon-wacker Apr 13, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add getters for m_HInput, m_HCoefficientModel, `m_IRCalculatedOut…
…side` to environment and to system and test those values in winter and summer tests of forced-ventilation gaps with solar radiation
  • Loading branch information
simon-wacker committed Dec 15, 2022

Verified

This commit was signed with the committer’s verified signature. The key has expired.
xeho91 Mateusz Kadlubowski
commit df462b6d2927a9b7a6911424b237154f10984dc7
15 changes: 15 additions & 0 deletions src/Tarcog/src/Environment.cpp
Original file line number Diff line number Diff line change
@@ -102,6 +102,21 @@ namespace Tarcog
return m_DirectSolarRadiation;
}

double CEnvironment::getHInput() const
{
return m_HInput;
}

BoundaryConditionsCoeffModel CEnvironment::getHCoefficientModel() const
{
return m_HCoefficientModel;
}

double CEnvironment::getIRCalculatedOutside() const
{
return m_IRCalculatedOutside;
}

void CEnvironment::connectToIGULayer(std::shared_ptr<CBaseLayer> const &)
{
//
4 changes: 4 additions & 0 deletions src/Tarcog/src/Environment.hpp
Original file line number Diff line number Diff line change
@@ -34,6 +34,10 @@ namespace Tarcog
double getAirTemperature();
double getAmbientTemperature();

double getHInput() const;
BoundaryConditionsCoeffModel getHCoefficientModel() const;
double getIRCalculatedOutside() const;

virtual void connectToIGULayer(const std::shared_ptr<CBaseLayer> & t_IGULayer);

virtual std::shared_ptr<CEnvironment> cloneEnvironment() const = 0;
16 changes: 16 additions & 0 deletions src/Tarcog/src/SingleSystem.cpp
Original file line number Diff line number Diff line change
@@ -172,6 +172,22 @@ namespace Tarcog
return m_Environment.at(t_Environment)->getAirTemperature();
}

double CSingleSystem::getHInput(Environment const t_Environment) const
{
return m_Environment.at(t_Environment)->getHInput();
}

BoundaryConditionsCoeffModel
CSingleSystem::getHCoefficientModel(Environment const t_Environment) const
{
return m_Environment.at(t_Environment)->getHCoefficientModel();
}

double CSingleSystem::getIRCalculatedOutside(Environment const t_Environment) const
{
return m_Environment.at(t_Environment)->getIRCalculatedOutside();
}

double CSingleSystem::getVentilationFlow(Environment const t_Environment) const
{
return m_IGU.getVentilationFlow(t_Environment);
7 changes: 7 additions & 0 deletions src/Tarcog/src/SingleSystem.hpp
Original file line number Diff line number Diff line change
@@ -13,6 +13,8 @@ namespace Tarcog
{
enum class Environment;

enum class BoundaryConditionsCoeffModel;

class CBaseIGULayer;

class CIGUSolidLayer;
@@ -57,6 +59,11 @@ namespace Tarcog
[[nodiscard]] double getH(Environment t_Environment) const;
[[nodiscard]] double getAirTemperature(Environment t_Environment) const;

[[nodiscard]] double getHInput(Environment t_Environment) const;
[[nodiscard]] BoundaryConditionsCoeffModel
getHCoefficientModel(Environment t_Environment) const;
[[nodiscard]] double getIRCalculatedOutside(Environment t_Environment) const;

// If interior layer have openings, this will return heat flow from airflow
[[nodiscard]] double getVentilationFlow(Environment t_Environment) const;
[[nodiscard]] double getUValue() const;
Original file line number Diff line number Diff line change
@@ -270,3 +270,37 @@ TEST_F(TestGapLayerAtEdgeForcedVentilationWithSolarRadiation, IndoorHeatFlow)
EXPECT_NEAR(-102.81512658453136, radiativeHF, 1e-5);
EXPECT_NEAR(-160.25562868194339, totalHF, 1e-5);
}

TEST_F(TestGapLayerAtEdgeForcedVentilationWithSolarRadiation, IndoorValues)
{
SCOPED_TRACE(
"Begin Test: Test Forced Ventilated Gap Layer At Edge With Solar Radiation - Indoor Values");

auto aSystem = GetSystem();

auto hInput = aSystem->getHInput(Tarcog::ISO15099::Environment::Indoor);
auto hCoefficientModel = aSystem->getHCoefficientModel(Tarcog::ISO15099::Environment::Indoor);
auto iRCalculatedOutside =
aSystem->getIRCalculatedOutside(Tarcog::ISO15099::Environment::Indoor);

EXPECT_NEAR(0, hInput, 1e-5);
EXPECT_EQ(Tarcog::ISO15099::BoundaryConditionsCoeffModel::CalculateH, hCoefficientModel);
EXPECT_NEAR(0, iRCalculatedOutside, 1e-5);
}

TEST_F(TestGapLayerAtEdgeForcedVentilationWithSolarRadiation, OutdoorValues)
{
SCOPED_TRACE(
"Begin Test: Test Forced Ventilated Gap Layer At Edge With Solar Radiation - Outdoor Values");

auto aSystem = GetSystem();

auto hInput = aSystem->getHInput(Tarcog::ISO15099::Environment::Outdoor);
auto hCoefficientModel = aSystem->getHCoefficientModel(Tarcog::ISO15099::Environment::Outdoor);
auto iRCalculatedOutside =
aSystem->getIRCalculatedOutside(Tarcog::ISO15099::Environment::Outdoor);

EXPECT_NEAR(0, hInput, 1e-5);
EXPECT_EQ(Tarcog::ISO15099::BoundaryConditionsCoeffModel::CalculateH, hCoefficientModel);
EXPECT_NEAR(0, iRCalculatedOutside, 1e-5);
}
Original file line number Diff line number Diff line change
@@ -276,3 +276,37 @@ TEST_F(TestGapLayerAtEdgeForcedVentilationWithSolarRadiationInSummer, IndoorHeat
EXPECT_NEAR(-187.91963696055234, radiativeHF, 1e-5);
EXPECT_NEAR(-297.28342288851587, totalHF, 1e-5);
}

TEST_F(TestGapLayerAtEdgeForcedVentilationWithSolarRadiationInSummer, IndoorValues)
{
SCOPED_TRACE("Begin Test: Test Forced Ventilated Gap Layer At Edge With Solar Radiation In "
"Summer - Indoor Values");

auto aSystem = GetSystem();

auto hInput = aSystem->getHInput(Tarcog::ISO15099::Environment::Indoor);
auto hCoefficientModel = aSystem->getHCoefficientModel(Tarcog::ISO15099::Environment::Indoor);
auto iRCalculatedOutside =
aSystem->getIRCalculatedOutside(Tarcog::ISO15099::Environment::Indoor);

EXPECT_NEAR(0, hInput, 1e-5);
EXPECT_EQ(Tarcog::ISO15099::BoundaryConditionsCoeffModel::CalculateH, hCoefficientModel);
EXPECT_NEAR(0, iRCalculatedOutside, 1e-5);
}

TEST_F(TestGapLayerAtEdgeForcedVentilationWithSolarRadiationInSummer, OutdoorValues)
{
SCOPED_TRACE("Begin Test: Test Forced Ventilated Gap Layer At Edge With Solar Radiation In "
"Summer - Outdoor Values");

auto aSystem = GetSystem();

auto hInput = aSystem->getHInput(Tarcog::ISO15099::Environment::Outdoor);
auto hCoefficientModel = aSystem->getHCoefficientModel(Tarcog::ISO15099::Environment::Outdoor);
auto iRCalculatedOutside =
aSystem->getIRCalculatedOutside(Tarcog::ISO15099::Environment::Outdoor);

EXPECT_NEAR(0, hInput, 1e-5);
EXPECT_EQ(Tarcog::ISO15099::BoundaryConditionsCoeffModel::CalculateH, hCoefficientModel);
EXPECT_NEAR(0, iRCalculatedOutside, 1e-5);
}