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 PulseController;
21  friend class PBPulsePhysiology;//friend the serialization class
22  friend class PulseEngineTest;
23 public:
24  Energy(PulseData& data);
25  ~Energy(void);
26 
27  void Clear();
28 
29  // Set members to a stable homeostatic state
30  void Initialize();
31  // Set pointers and other member varialbes common to both homeostatic initialization and loading a state
32  void SetUp();
33 
34  void AtSteadyState();
35  void PreProcess();
36  void Process(bool solve_and_transport=true);
37  void PostProcess(bool solve_and_transport=true);
38 
39 protected:
40  void ComputeExposedModelParameters() override;
41 
42  // Preprocess Methods
43  void CalculateMetabolicHeatGeneration();
44  void CalculateSweatRate();
45  void UpdateHeatResistance();
46  // Actions/Conditions
47  void Exercise();
48  // These are both part of the consume meal condition.
49  //void Dehydration(double time); // Need to revisit
50  //void Starvation(double time); // Need to revisit
51  // Used in Reset & Starvation
52  void CalculateBasalMetabolicRate();
53 
54  // Process Methods
55  void CalculateVitalSigns();
56 
57  // Serializable member variables (Set in Initialize and in schema)
64 
65  // Stateless member variable (Set in SetUp())
66  // Cmpts,Substance, and nodes
68  //Nodes
71  //Paths
75  //Circuits
79 };
80 
virtual void ComputeExposedModelParameters()=0
Definition: PulsePhysiologySystems.h:137
Definition: SEPatient.h:12
double m_MediumPowerEnergyStore_J
Definition: Energy.h:60
void Clear() override
Definition: PulsePhysiologySystems.h:143
Manages and controls execution of all data/systems in Pulse.
Definition: Controller.h:219
SEFluidCircuitPath * m_skinExtravascularToSweatingGroundPath
Definition: Energy.h:74
Definition: SEFluidCircuitPath.h:8
SEThermalCircuit * m_TemperatureCircuit
Definition: Energy.h:77
SELiquidSubstanceQuantity * m_AortaHCO3
Definition: Energy.h:67
SEThermalCircuitPath * m_coreToSkinPath
Definition: Energy.h:73
Definition: Controller.h:66
SEThermalCircuit * m_InternalTemperatureCircuit
Definition: Energy.h:76
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:70
SEThermalCircuitPath * m_temperatureGroundToCorePath
Definition: Energy.h:72
SEThermalCircuitCalculator * m_circuitCalculator
Definition: Energy.h:78
SERunningAverage * m_BloodpH
Definition: Energy.h:62
Definition: PBPulsePhysiology.h:18
virtual void Initialize()
Default system values to their homeostatic values
Definition: System.h:16
Definition: SEThermalCircuit.h:11
SEThermalCircuitNode * m_coreNode
Definition: Energy.h:69
SERunningAverage * m_BicarbonateMolarity_mmol_Per_L
Definition: Energy.h:63
virtual void PostProcess(bool solve_and_transport=true)=0
Definition: Energy.h:18
Definition: SEThermalCircuitCalculator.h:8
Definition: EngineTest.h:28
double m_EnduranceEnergyStore_J
Definition: Energy.h:61
Definition: SEThermalCircuitNode.h:8
virtual void PreProcess()=0
double m_PeakPowerEnergyStore_J
Definition: Energy.h:59
double m_UsableEnergyStore_J
Definition: Energy.h:58
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.