34double conductiveHeatRate(
double conductivityA,
double conductivityB,
double areaM2,
double distanceM,
double tempAK,
double tempBK);
38template <
typename HeatRateFn>
40 if (dt <= 0.0)
return;
42 if (capacity <= 0.0)
return;
44 double remaining = dt;
46 while (remaining > 0.0 && guard++ < 4096) {
47 const double rate = heatRateAtTemp(props.
tempK);
48 if (!std::isfinite(rate) || rate == 0.0)
break;
51 const double stepByTemp = maxDelta * capacity / std::abs(rate);
53 if (subDt <= 0.0 || !std::isfinite(subDt))
break;
double specificEntropyChange(double specificHeatJPerKgK, double fromTempK, double toTempK)
double conductiveHeatRate(double conductivityA, double conductivityB, double areaM2, double distanceM, double tempAK, double tempBK)
double effectiveConductivity(const ThermalProperties &props, double tempK)
constexpr double kMaxTemperatureStepFraction
double effectiveAbsorptivity(const ThermalProperties &props, double tempK)
double convectionHeatRate(const ThermalProperties &props, double areaM2, double ambientTempK)
constexpr double kMaxThermalStepSeconds
void applyConductiveExchange(ThermalProperties &a, double massA, ThermalProperties &b, double massB, double areaM2, double distanceM, double dt)
constexpr double kMaxTemperatureK
void integrateTemperature(ThermalProperties &props, double massKg, double dt, HeatRateFn &&heatRateAtTemp)
double heatCapacity(double massKg, const ThermalProperties &props)
constexpr double kMinTemperatureK
double activeThermalMass(double massKg, const ThermalProperties &props)
double effectiveSpecificHeat(const ThermalProperties &props, double tempK)
void applyThermalEnergy(ThermalProperties &props, double massKg, double energyJ)
double effectiveDensity(const ThermalProperties &props, double tempK)
constexpr double kMinConductionDistance
double externalHeatFluxRate(const ThermalProperties &props, double areaM2)
double thermalDiffusivity(const ThermalProperties &props, double tempK)
double ambientRadiationHeatRate(const ThermalProperties &props, double areaM2, double ambientTempK)
double biotNumber(const ThermalProperties &props, double characteristicLengthM)
double clampTemperature(double tempK)
double effectiveEmissivity(const ThermalProperties &props, double tempK)
constexpr double kMaxTemperatureStepK
double carnotEfficiency(double hotTempK, double coldTempK)
double fourthPower(double value)
double linearTemperatureFactor(double coeffPerK, double tempK, double referenceTempK)
double fourierNumber(const ThermalProperties &props, double characteristicLengthM, double elapsedSeconds)