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

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.