Skip to content

Commit c603a2b

Browse files
ntatum94StevenAWhite
authored andcommitted
Fixing a bug created by metabolic changes caused by core temperature (and reverting ranges back to original). This adjustment is no longer needed based on more recetn changes and fixes oscillatory behavior in burn cardioresp parameters.
1 parent 9185751 commit c603a2b

File tree

1 file changed

+3
-2
lines changed
  • projects/biogears/libBiogears/src/engine/Systems

1 file changed

+3
-2
lines changed

projects/biogears/libBiogears/src/engine/Systems/Energy.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -565,14 +565,14 @@ void Energy::CalculateMetabolicHeatGeneration()
565565
{
566566
totalMetabolicRateNew_W = summitMetabolism_W * std::pow(0.94, 34.0 - coreTemperature_degC); //The metabolic heat generated will drop by 6% for every degree below 34 C
567567
GetTotalMetabolicRate().SetValue(totalMetabolicRateNew_W, PowerUnit::W); /// \cite mallet2002hypothermia
568-
} else if (coreTemperature_degC >= 34.0 && coreTemperature_degC < 35.8) //Patient is increasing heat generation via shivering. This caps out at the summit metabolism
568+
} else if (coreTemperature_degC >= 34.0 && coreTemperature_degC < 36.8) //Patient is increasing heat generation via shivering. This caps out at the summit metabolism
569569
{
570570
//Todo: Add an event for shivering
571571
double basalMetabolicRate_W = m_Patient->GetBasalMetabolicRate(PowerUnit::W);
572572
totalMetabolicRateNew_W = basalMetabolicRate_W + (summitMetabolism_W - basalMetabolicRate_W) * (coreTemperatureLow_degC - coreTemperature_degC) / coreTemperatureLowDelta_degC;
573573
totalMetabolicRateNew_W = std::min(totalMetabolicRateNew_W, summitMetabolism_W); //Bounded at the summit metabolism so further heat generation doesn't continue for continue drops below 34 C.
574574
GetTotalMetabolicRate().SetValue(totalMetabolicRateNew_W, PowerUnit::W);
575-
} else if (coreTemperature_degC >= 35.8 && coreTemperature_degC < 40 && !m_PatientActions->HasExercise()) //Basic Metabolic rate
575+
} else if (coreTemperature_degC >= 36.8 && coreTemperature_degC < 40 && !m_PatientActions->HasExercise()) //Basic Metabolic rate
576576
{
577577
double TotalMetabolicRateSetPoint_kcal_Per_day = basalMetabolicRate_kcal_Per_day;
578578
double MetabolicRateGain = 0.0001; //Used to ramp the metabolic rate from its current value to the basal value if the patient meets the basal criteria
@@ -611,6 +611,7 @@ void Energy::CalculateSweatRate()
611611
double dAirTemperature_C = m_data.GetEnvironment().GetConditions().GetAmbientTemperature(TemperatureUnit::C);
612612
double dWaterVaporPressureInAmbientAir_mmHg = GeneralMath::AntoineEquation(dAirTemperature_C);
613613
double m_dWaterVaporPressureInAmbientAir_Pa = Convert(dWaterVaporPressureInAmbientAir_mmHg, PressureUnit::mmHg, PressureUnit::Pa);
614+
LLIM(m_dWaterVaporPressureInAmbientAir_Pa, 0.0);
614615
// double ambientAtmosphericPressure_Pa = m_data.GetEnvironment().GetConditions().GetAtmosphericPressure().GetValue(PressureUnit::Pa);
615616
double maximumEvaporativeCapacity_W = 14.21 * (m_Patient->GetSkinSurfaceArea().GetValue(AreaUnit::m2)) * effectiveClothingEvaporation_im_Per_clo * (133.322 * (std::pow(10, (8.1076 - (1750.286 / (235.0 + (GetSkinTemperature(TemperatureUnit::C))))))) - (m_dWaterVaporPressureInAmbientAir_Pa)); // Still needs effective clothing evaporation
616617

0 commit comments

Comments
 (0)