What’s New in the Pulse Physiology Engine 4.4.0
×
NervousModel.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
5
6#include "engine/common/system/Model.h"
7#include "engine/common/system/Systems.h"
8
11class SEFluidCircuit;
12
13namespace pulse
14{
15 class PBPhysiology;
16 class EngineTest;
21 class PULSE_DECL NervousModel : public NervousSystem, public Model
22 {
23 friend PBPhysiology;//friend the serialization class
24 friend EngineTest;
25 public:
26 NervousModel(Data& data);
27 virtual ~NervousModel();
28
29 void Clear() override;
30
31 // Set members to a stable homeostatic state
32 void Initialize() override;
33 // Set pointers and other member variables common to both homeostatic initialization and loading a state
34 void SetUp() override;
35
36 void AtSteadyState() override;
37 void PreProcess() override;
38 void Process(bool solve_and_transport = true) override;
39 void PostProcess(bool solve_and_transport = true) override;
40
41
42 virtual void SetBaroreceptorFeedback(eSwitch s) override;
43 virtual void SetChemoreceptorFeedback(eSwitch s) override;
44
45 protected:
46 void ComputeExposedModelParameters() override;
47
48 void BaroreceptorFeedback();
49 void CheckBrainStatus();
50 void ChemoreceptorFeedback();
51 void SetPupilEffects();
52 void CerebralSpinalFluidUpdates();
53 void SetBaroreceptorBaselines();
54 void SetChemoreceptorBaselines();
55
56
57 // Serializable member variables (Set in Initialize and in schema)
58 double m_BaroreceptorEffectivenessParameter;
59 bool m_BaroreceptorSaturationStatus;
60 double m_PreviousBloodVolume_mL;
61 double m_TargetHeartRate_Per_min;
62 double m_TargetMeanArterialOxygenPressure_mmHg;
63 double m_TargetMeanArterialCarbonDioxidePressure_mmHg;
64 double m_TargetMeanArterialPressure_mmHg;
65
66 //SERIALIZE THESE AARON - should be system values
67 double m_CSFAbsorptionRate_mLPermin;
68 double m_CSFProductionRate_mlPermin;
69
70 // Stateless member variable (Set in SetUp())
71 // Configuration fractions representing the amount by which each quantity can change due to feedback;
72 double m_NormalizedGammaHeartRate;
73 double m_NormalizedGammaElastance;
74 double m_NormalizedGammaCompliance;
75 double m_NormalizedGammaResistance;
76 double m_NormalizedAlphaHeartRate;
77 double m_NormalizedAlphaElastance;
78 double m_NormalizedAlphaCompliance;
79 double m_NormalizedAlphaResistance;
80 double m_NormalizedBetaHeartRate;
81
82 SEFluidCircuitNode* m_IntracranialSpace;
83 SEFluidCircuitPath* m_CSFProductAbsorptionPath;
84 SEFluidCircuitPath* m_BrainVasculatureCompliancePath;
85 SEFluidCircuitPath* m_BrainVasculatureResistancePath;
86 };
87END_NAMESPACE
Definition: PBPhysiology.h:25
Definition: SEFluidCircuit.h:12
Definition: SEFluidCircuitNode.h:10
Definition: SEFluidCircuitPath.h:9
Definition: Logger.h:14

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.