1 /* Distributed under the Apache License, Version 2.0.
2  See accompanying NOTICE file for details.*/
4 #pragma once
5 #include "controller/System.h"
6 #include "system/environment/SEEnvironment.h"
7 class SEPatient;
8 class SEGasCompartment;
10 class SEThermalCircuit;
17 class PULSE_DECL Environment : public SEEnvironment, public PulseEnvironmentSystem, public PulseSystem
18 {
19  friend class PBPulseEnvironment;//friend the serialization class
20  friend class PulseController;
21  friend class PulseEngineTest;
22 protected:
26 public:
27  virtual ~Environment();
29  void Clear();
31  // Set members to a stable homeostatic state
32  void Initialize();
33  // Set pointers and other member varialbes common to both homeostatic initialization and loading a state
34  void SetUp();
36  void AtSteadyState();
37  void PreProcess();
38  void Process();
39  void PostProcess();
41  void StateChange();
43  void ProcessActions();
44  void CalculateSupplementalValues();
45  double AntoineEquation(double dTemperature_C);
46  void CalculateRadiation();
47  void CalculateConvection();
48  void CalculateEvaporation();
49  void CalculateRespiration();
51  // Serializable member variables (Set in Initialize and in schema)
53  // Stateless member variable (Calculated in Supplemental Method and used in other methods)
58  //Prandtl number calculation
62  //Grashof number calculation
64  // For Convection calculations
67  // Stateless member variable (Set in SetUp())
68  // Patient and Actions
70  // Compartments
73  //Circuits
75  //Nodes
80  //Paths
91 };
SEThermalCircuitPath * m_GroundToEnclosurePath
Definition: Environment.h:86
double m_ThermalExpansion_Per_K
Definition: Environment.h:63
Definition: SEPatient.h:61
Definition: SEGasCompartment.h:12
SEThermalCircuit * m_EnvironmentCircuit
Definition: Environment.h:74
PulseController & m_data
Definition: Environment.h:24
Manages and controls execution of all data/systems in Pulse.
Definition: Controller.h:50
double m_dWaterVaporPressureAtSkin_Pa
Definition: Environment.h:57
SEThermalCircuitPath * m_ClothingToEnclosurePath
Definition: Environment.h:85
double m_dHeatOfVaporizationOfWater_J_Per_kg
Definition: Environment.h:55
virtual void StateChange()
Definition: SEEnvironment.h:37
SEThermalCircuitPath * m_EnvironmentCoreToGroundPath
Definition: Environment.h:90
Definition: SEThermalCircuitPath.h:8
SEThermalCircuitNode * m_ClothingNode
Definition: Environment.h:78
virtual void SetUp()=0
SEThermalCircuitPath * m_ClothingToEnvironmentPath
Definition: Environment.h:87
virtual void Clear()
Definition: SEEnvironment.cpp:42
SEThermalCircuitPath * m_EnvironmentSkinToGroundPath
Definition: Environment.h:89
SEThermalCircuitPath * m_SkinToClothing
Definition: Environment.h:81
The Environment class characterizes the environment and manages interactions between the body its sur...
Definition: Environment.h:17
SEThermalCircuitNode * m_SkinNode
Definition: Environment.h:77
Generic class for handling the Pulse stabilization methodology.
Definition: System.h:10
Definition: SELiquidCompartment.h:10
SEGasCompartment * m_AmbientGases
Definition: Environment.h:71
virtual void Initialize()
Default system values to their homeostatic values
Definition: System.h:16
SEThermalCircuitNode * m_EnclosureNode
Definition: Environment.h:79
Definition: SEThermalCircuit.h:11
virtual void AtSteadyState()
Notify systems that steady state has been achieved.
Definition: System.h:20
double m_dLewisRelation
Definition: Environment.h:54
double m_WaterViscosity_N_s_Per_m2
Definition: Environment.h:60
virtual void PostProcess()=0
SEThermalCircuitPath * m_ActiveTemperaturePath
Definition: Environment.h:83
Definition: PBPulseEnvironment.h:7
SEThermalCircuitPath * m_ActiveSwitchPath
Definition: Environment.h:84
SELiquidCompartment * m_AmbientAerosols
Definition: Environment.h:72
SEPatient * m_Patient
Definition: Environment.h:69
double m_WaterThermalConductivity_W_Per_m_K
Definition: Environment.h:61
double m_WaterSpecificHeat_J_Per_kg_K
Definition: Environment.h:59
SEThermalCircuitPath * m_ActiveHeatTransferRatePath
Definition: Environment.h:82
double m_PatientEquivalentDiameter_m
Definition: Environment.h:65
Definition: SEEnvironment.h:12
Definition: PulsePhysiologySystems.h:47
SEThermalCircuitPath * m_GroundToEnvironmentPath
Definition: Environment.h:88
virtual void Process()=0
Definition: SEThermalCircuitNode.h:7
virtual void PreProcess()=0
double m_dWaterVaporPressureInAmbientAir_Pa
Definition: Environment.h:56
SEThermalCircuitNode * m_ThermalEnvironment
Definition: Environment.h:76