Energy.h
1 /* Distributed under the Apache License, Version 2.0.
2  See accompanying NOTICE file for details.*/
3 
4 #pragma once
5 #include "controller/System.h"
6 #include "system/physiology/SEEnergySystem.h"
7 class SEPatient;
10 class SEThermalCircuit;
14 
18 class PULSE_DECL Energy : public SEEnergySystem, public PulseEnergySystem, public PulseSystem
19 {
20  friend class PBPulsePhysiology;//friend the serialization class
21  friend class PulseController;
22  friend class PulseEngineTest;
23 protected:
24  Energy(PulseController& data);
26 
27 public:
28  ~Energy(void);
29 
30  void Clear();
31 
32 protected:
33  // Set members to a stable homeostatic state
34  void Initialize();
35  // Set pointers and other member varialbes common to both homeostatic initialization and loading a state
36  void SetUp();
37 
38  void AtSteadyState();
39  void PreProcess();
40  void Process();
41  void PostProcess();
42 
43  // Preprocess Methods
44  void CalculateMetabolicHeatGeneration();
45  void CalculateSweatRate();
46  void UpdateHeatResistance();
47  // Actions/Conditions
48  void Exercise();
49  // These are both part of the consume meal condition.
50  //void Dehydration(double time); // Need to revisit
51  //void Starvation(double time); // Need to revisit
52  // Used in Reset & Starvation
53  void CalculateBasalMetabolicRate();
54 
55  // Process Methods
56  void CalculateVitalSigns();
57 
58  // Serializable member variables (Set in Initialize and in schema)
65 
66  // Stateless member variable (Set in SetUp())
67  double m_dT_s;
69  // Cmpts,Substance, and nodes
71  //Nodes
74  //Paths
78  //Circuits
82 };
83 
virtual void Clear()
Definition: SEEnergySystem.cpp:36
Definition: PulsePhysiologySystems.h:40
PulseController & m_data
Definition: Energy.h:25
Definition: SEPatient.h:61
double m_MediumPowerEnergyStore_J
Definition: Energy.h:61
double m_dT_s
Definition: Energy.h:67
Manages and controls execution of all data/systems in Pulse.
Definition: Controller.h:50
SEFluidCircuitPath * m_skinExtravascularToSweatingGroundPath
Definition: Energy.h:77
Definition: SEFluidCircuitPath.h:8
SEThermalCircuit * m_TemperatureCircuit
Definition: Energy.h:80
SELiquidSubstanceQuantity * m_AortaHCO3
Definition: Energy.h:70
SEThermalCircuitPath * m_coreToSkinPath
Definition: Energy.h:76
SEThermalCircuit * m_InternalTemperatureCircuit
Definition: Energy.h:79
Definition: SEThermalCircuitPath.h:8
virtual void SetUp()=0
Definition: SERunningAverage.h:7
Definition: SELiquidSubstanceQuantity.h:11
SEThermalCircuitNode * m_skinNode
Definition: Energy.h:73
Generic class for handling the Pulse stabilization methodology.
Definition: System.h:10
SEThermalCircuitPath * m_temperatureGroundToCorePath
Definition: Energy.h:75
SEThermalCircuitCalculator * m_circuitCalculator
Definition: Energy.h:81
SERunningAverage * m_BloodpH
Definition: Energy.h:63
Definition: PBPulsePhysiology.h:18
virtual void Initialize()
Default system values to their homeostatic values
Definition: System.h:16
Definition: SEThermalCircuit.h:11
virtual void AtSteadyState()
Notify systems that steady state has been achieved.
Definition: System.h:20
SEThermalCircuitNode * m_coreNode
Definition: Energy.h:72
SERunningAverage * m_BicarbonateMolarity_mmol_Per_L
Definition: Energy.h:64
Definition: SEEnergySystem.h:7
virtual void PostProcess()=0
Definition: Energy.h:18
Definition: SEThermalCircuitCalculator.h:8
double m_EnduranceEnergyStore_J
Definition: Energy.h:62
virtual void Process()=0
Definition: SEThermalCircuitNode.h:7
SEPatient * m_Patient
Definition: Energy.h:68
virtual void PreProcess()=0
double m_PeakPowerEnergyStore_J
Definition: Energy.h:60
double m_UsableEnergyStore_J
Definition: Energy.h:59