View source: R/HomoTherm_var.R
HomoTherm_var | R Documentation |
This is a multi-part application of the endoR model to a human. It simulates runs the HomoTherm function across a sequence of environments.
HomoTherm_var(MASS = 70, QMETAB_REST = 105, ACTIVE = FALSE, MET = 1, INSDEPDs = c(1e-02, rep(6e-03, 3)), INSDEPVs = c(1e-09, rep(6e-03, 3)), TAs = 21, TGRDs = TAs, TSKYs = TAs, VELs = 0.1, RHs = 50, QSOLRs = 0, Zs = 20,...)
MASS |
= 70, mass of person (kg) |
QMETAB_REST |
= 105, resting metabolic rate (W) |
ACTIVE |
= FALSE, activity state (-) |
MET |
= 1, MET units of activity (-) |
INSDEPDs |
= c(1e-02, rep(6e-03, 3)), clothing depth, dorsal (m) |
INSDEPVs |
= c(1e-09, rep(6e-03, 3)), clothing depth, ventral (m) |
TAs |
= 21, air temperature at local height (°C) |
TSKYs |
= TAs, sky temperature (°C) |
TGRDs |
= TAs, ground temperature (°C) |
VELs |
= 0.1, wind speed (m/s) |
RHs |
= 50, relative humidity (%) |
QSOLRs |
= 0, solar radiation, horizontal plane (W/m2) |
Zs |
= 20, zenith angle of sun (degrees from overhead) |
Parameters controlling how the model runs:
EXCEED.TCMAX
= TRUE, allow the mode to continue increasing core temperature? (-)
MAXITER
= 500, maximum iterations beyond TC_MAX allowed when EXCEED.TMAX = TRUE
Environment:
TAREF
= TA, air temperature at reference height (°C)
SHADE
= 0, shade on person (radiates at reference height temperature) (%)
ELEV
= 0, elevation (m)
ABSSB
= 0.85, solar absorptivity of substrate (fractional, 0-1)
BP
= -1, Pa, negative means elevation is used
O2GAS
= 20.95, oxygen concentration of air, to account for non-atmospheric concentrations e.g. in burrows (%)
N2GAS
= 79.02, nitrogen concetration of air, to account for non-atmospheric concentrations e.g. in burrows (%)
CO2GAS
= 0.0412, carbon dioxide concentration of air, to account for non-atmospheric concentrations e.g. in burrows (%)
PDIF
= 0.15, proportion of solar radiation that is diffuse (fractional, 0-1)
GRAV
= 9.80665, acceleration due to gravity, (m/s^2)
Refhyt
= 2, height of weather observations (m)
RUF
= 0.004, roughness height for calculating air/wind/humidity profile with get_profile (m)
ZH
= 1, heat transfer roughness height for calculating air/wind/humidity profile with get_profile (m) (-)
D0
= 1, zero plane displacement correction factor for calculating air/wind/humidity profile with get_profile (m)
CONV_ENHANCE
= 1, convective enhancement factor (> 1 for turbulent outdoor conditions) (-)
Whole body parameters:
MAXSWEAT
= 1500, maximum sweating rate (g/h)
Q10
= 2, Q10 factor for adjusting BMR for TC
RQ
= 0.80, respiratory quotient (fractional, 0-1)
EXTREF
= 20, O2 extraction efficiency (%)
Part-specific morphological parameters (head, torso, arms, legs):
DENSITYs
= rep(1050, 4), body density (kg/m^3)
MASSFRACs
= c(0.0761, 0.501, 0.049, 0.162), fraction of total mass (-)
AREAFRACs
= c(0.0829, 0.327, 0.110, 0.185), fraction of total surface area (-)
PJOINs
= c(0.0275, 0.0824, 0.02174, 0.0333), fraction of part joined with rest of body (-)
SUBQFATs
= rep(1, 4), is subcutaneous fat present? (0 is no, 1 is yes)
FATPCT
= c(5, 36, 10, 23) * 0.5, % body fat
SHAPE_Bs
= c(1.6, 1.9, 11, 7.0), ratio between long and short axis (-)
FSKREFs
= c(0.50, 0.42, 0.35, 0.35), configuration factor to sky
FGDREFs
= c(0.38, 0.42, 0.35, 0.35), reference configuration factor to ground
EMISANs
= rep(0.95, 4), emissivity each body part (-)
REFLD
= rep(0.3, 4), solar reflectivity dorsal (fractional, 0-1)
REFLV
= rep(0.3, 4), solar reflectivity ventral (fractional, 0-1)
heights
= rep(NA, 4), height of mid-point of each body part (m), can be calculated with the 'get_heights' function
Part-specific physiological parameters (head, torso, arms, legs):
TC_RESTs
= rep(36.8, 4), resting core temperature (°C)
TC_ACTIVEs
= rep(37.5, 4), active core temperature (°C)
TC_INCs
= rep(0.04, 4), core temperature increment (°C)
TC_MAXs
= rep(38, 4), maximum tolerated core temperature (°C)
PCTWETs
= rep(4, 4), skin wettedness (%)
PCTWET_INCs
= rep(0.5, 4), skin wettedness increment (%)
PCTWET_MAXs
= rep(100, 4), maximum skin surface area that can be wet (%)
CLOWETs
= rep(0, 4), insulation wettedness (%)
PCTBAREVAPs
= c(60, 0, 0, 0), bare area where free and forced evaporation can occur (%)
KFLESHs
= c(0.9, 0.9, 0.5, 0.5), flesh thermal conductivity (W/m°C)
KFLESH_INCs
= rep(0.05, 4), surface thermal conductivity increment (W/m°C)
KFLESH_MAXs
= rep(5, 4), maximum flesh conductivity (W/m°C)
KFATs
= rep(0.23, 4), fat conductivity (W/m°C)
Insulation properties:
KCLOs
= rep(0, 4), insulation thermal conductivity manual override values (computed internally if zero) (W/mC)
DHAIRDs
= c(7.5e-5, rep(1E-06, 3)), fibre diameter, dorsal (m)
DHAIRVs
= c(7.5e-5, rep(1E-06, 3)), fibre diameter, ventral (m)
LHAIRDs
= c(50e-3, 50e-3, 50e-3, 50e-3), fibre length, dorsal (m)
LHAIRVs
= c(1e-9, 50e-3, 50e-3, 50e-3), fibre length, ventral (m)
INSDENDs
= rep(3e+08, 4), fibre density, dorsal (1/m2)
INSDENVs
= c(3e+05, rep(3e+08, 3)), fibre density, ventral (1/m2)
Outputs:
balance variables (general, whole-body output):
1 T_CORE - core temperature (°C)
2 T_LUNG - lung temperature (°C)
3 T_SKIN - skin temperature (°C)
4 T_CLO - insulation temperature (°C)
5 PCTWET - skin wettedness (%)
6 K_FLESH - thermal conductivity of flesh (W/m°C)
7 EVAP_CUT_L - cutaneous water loss (L/h)
8 EVAP_RESP_L - respiratory water loss (L/h)
9 SWEAT_L - water lost as sweat (may be higher than EVAP_CUT_L due to dripping) (L/h)
10 K_FLESH - thermal conductivity of flesh (W/m°C)
11 QMETAB - metabolic heat production (W)
12 QSLR - solar radiation absorbed (W)
13 QIRIN - longwave (infra-red) radiation absorbed (W)
14 QIROUT - longwave (infra-red) radiation lost (W)
15 QCONV_RESP - respiratory sensible heat (W)
16 QEVAP_RESP - respiratory evaporative heat (W)
17 QEVAP_CUT - cutaneous evaporation (W)
18 QCONV - convection (W)
19 AREA - total surface area (m^2)
20 AREA_RAD - total area for radiation exchange (m^2)
respire variables (respiratory response):
1 AIR_L - air flowing through the lungs (L/h)
2 O2_L - O2 consumed (L/h)
3 O2_mol_in - inspired O2 (mol/h)
4 O2_mol_out - expired O2 (mol/h)
5 AIR_mol_in - inspired air (mol/h)
6 AIR_mol_out - expired air (mol/h)
treg (thermoregulatory response variables, one table per body part):
1 T_CORE - core temperature (°C)
2 TSKIN_D - dorsal skin temperature (°C)
3 TSKIN_V - ventral skin temperature (°C)
4 TCLO_D - dorsal fur-air interface temperature (°C)
5 TCLO_V - ventral fur-air interface temperature (°C)
6 PCTWET - part of the skin surface that is wet (%)
7 K_FLESH - thermal conductivity of flesh (W/m°C)
8 K_CLO_D - thermal conductivity of dorsal fur (W/m°C)
9 Q10 - Q10 multiplier on metabolic rate (-)
morph variables (morphological traits, one table per body part):
1 MASS - mass (kg)
2 AREA - total outer surface area (m2)
3 VOLUME - total volume (m3)
4 CHAR_DIMENSION - characteristic dimension for convection (m)
5 MASS_FAT - fat mass (kg)
6 FAT_THICK - thickness of fat layer (m)
7 FLESH_VOL - flesh volume (m3)
8 LENGTH - length (without fur) (m)
9 WIDTH - width (without fur) (m)
10 HEIGHT - height (without fur) (m)
11 R_SKIN - radius, core to skin (m)
12 R_FUR - radius, core to fur (m)
13 AREA_SILHOUETTE - silhouette area (m2)
14 AREA_SKIN - total skin area (m2)
15 AREA_SKIN_EVAP - skin area available for evaporation (m2)
16 AREA_CONV - area for convection (m2)
17 AREA_JOIN - area for conduction (m2)
18 F_SKY - configuration factor to sky (-)
19 F_GROUND - configuration factor to ground (-)
enbal variables (energy balance, one table per body part):
1 QSOL - solar radiation absorbed (W)
2 QIRIN - longwave (infra-red) radiation absorbed (W)
3 QGEN - metabolic heat production (W)
4 QEVAP - evaporation (W)
5 QIROUT - longwave (infra-red) radiation lost (W)
6 QCONV - convection (W)
7 ENB - energy balance (W)
8 NTRY - iterations required for a solution (-)
9 SUCCESS - was a solution found (0=no, 1=yes)
library(NicheMapR)
# environment
TAs <- seq(-5, 50) # sequence of air temperatures, °C
VELs <- rep(0.1, length(TAs)) # keep wind speeds constant, m/s
RHs <- rep(50, length(TAs)) # keep humidity constant, %
# set insulation depth, flesh conductivity and fat
INSDEPDs <- c(1e-02, rep(6.15e-03, 3)) # 'dorsal' clothing depth, m
INSDEPVs <- c(1e-09, rep(6.15e-03, 3)) # 'ventral' clothing depth, m
KCLOs <- rep(0.04, 4) # clothing thermal conductivity, W/m·K
FATPCTs <- c(5, 36, 10, 23) * 0.5 # body fat %s
HomoTherm.out <- HomoTherm_var(INSDEPDs = INSDEPDs * 0,
INSDEPVs = INSDEPVs * 0,
KCLOs = KCLOs,
FATPCTs = FATPCTs,
TAs = TAs,
VELs = VELs,
RHs = RHs,
EXCEED.TCMAX = TRUE)
balance <- HomoTherm.out$balance
LCT <- TAs[which(balance$K_FLESH > balance$K_FLESH[1])[1]-1]
UCT <- TAs[balance$T_SKIN > 34][1]
plot(TAs, balance$QMETAB, type = 'l', col = 'red', lwd = 1.5, ylim = c(0, 300), ylab = 'watts', xlab = 'air temperature, °C', xaxs = 'i', yaxs = 'i')
points(TAs, (balance$QEVAP_RESP + balance$QEVAP_CUT) * -1, type = 'l', col = 'blue', lwd = 1.5)
points(TAs, balance$PCTWET, type = 'l', col = 'lightblue', lwd = 1.5)
points(TAs, balance$K_FLESH * 10, type = 'l', lty = 2, col = 'red')
legend(x = -5, y = 300, legend = c("Q_metab", "Q_evap", "% wet", "k_flesh×10"), col = c("red", "blue", "lightblue", "red"), lty = c(1, 1, 1, 2), bty = "n", cex = 0.75)
abline(v = LCT, lty = 2)
abline(v = UCT, lty = 2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.