Pulse adds COVID-19 Simulation Support
×
Nervous.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/SENervousSystem.h"
9 class SEFluidCircuit;
10 
15 class PULSE_DECL Nervous : public PulseNervousSystem
16 {
17  friend class PulseData;
18  friend class PBPulsePhysiology;//friend the serialization class
19  friend class PulseEngineTest;
20 protected:
21  Nervous(PulseData& data);
23 
24 public:
25  virtual ~Nervous();
26 
27  void Clear();
28 
29  // Set members to a stable homeostatic state
30  void Initialize();
31  // Set pointers and other member variables 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  void BaroreceptorFeedback();
43  void CheckBrainStatus();
44  void ChemoreceptorFeedback();
45  void SetPupilEffects();
46  void CerebralSpinalFluidUpdates();
47 
48  // Serializable member variables (Set in Initialize and in schema)
60 
61  //SERIALIZE THESE AARON - should be system values
64 
65  // Stateless member variable (Set in SetUp())
66  double m_dt_s;
67  // Configuration fractions representing the amount by which each quantity can change due to feedback;
77 
82 };
The nervous class holds models of the peripheral and central nervous system. Currently, on the baroreceptor reflex is modeled.
Definition: Nervous.h:15
double m_NormalizedGammaHeartRate
Definition: Nervous.h:68
double m_BaroreceptorSaturationTime_s
Definition: Nervous.h:56
double m_NormalizedAlphaElastance
Definition: Nervous.h:73
double m_ArterialOxygenBaseline_mmHg
Definition: Nervous.h:51
Definition: SEFluidCircuitPath.h:8
double m_NormalizedGammaResistance
Definition: Nervous.h:71
virtual void Clear()
Definition: SENervousSystem.cpp:30
double m_CSFProductionRate_mlPermin
Definition: Nervous.h:63
Definition: Controller.h:64
Definition: PulsePhysiologySystems.h:180
virtual void SetUp()=0
double m_LastMeanArterialPressure_mmHg
Definition: Nervous.h:57
SEFluidCircuitPath * m_BrainVasculatureCompliancePath
Definition: Nervous.h:80
double m_BaroreceptorMeanArterialPressureBaseline_mmHg
Definition: Nervous.h:55
virtual void Process(bool solve_and_transport=true)=0
double m_ArterialCarbonDioxideBaseline_mmHg
Definition: Nervous.h:52
double m_NormalizedGammaElastance
Definition: Nervous.h:69
Definition: PBPulsePhysiology.h:18
double m_NormalizedAlphaHeartRate
Definition: Nervous.h:72
double m_NormalizedGammaCompliance
Definition: Nervous.h:70
SEFluidCircuitNode * m_IntracranialSpace
Definition: Nervous.h:78
virtual void Initialize()
Default system values to their homeostatic values
Definition: System.h:13
Definition: SEFluidCircuitNode.h:7
SEFluidCircuitPath * m_CSFProductAbsorptionPath
Definition: Nervous.h:79
Definition: SEFluidCircuit.h:11
double m_PreviousBloodVolume_mL
Definition: Nervous.h:58
virtual void PostProcess(bool solve_and_transport=true)=0
double m_TotalSympatheticFraction
Definition: Nervous.h:59
double m_NormalizedAlphaCompliance
Definition: Nervous.h:74
double m_NormalizedAlphaResistance
Definition: Nervous.h:75
double m_BaroreceptorActiveTime_s
Definition: Nervous.h:53
double m_NormalizedBetaHeartRate
Definition: Nervous.h:76
Definition: EngineTest.h:28
virtual void ComputeExposedModelParameters()=0
PulseData & m_data
Definition: Nervous.h:22
SEFluidCircuitPath * m_BrainVasculatureResistancePath
Definition: Nervous.h:81
double m_dt_s
Definition: Nervous.h:66
bool m_BaroreceptorFeedbackStatus
Definition: Nervous.h:49
double m_BaroreceptorEffectivenessParameter
Definition: Nervous.h:54
virtual void PreProcess()=0
double m_CSFAbsorptionRate_mLPermin
Definition: Nervous.h:62
virtual void AtSteadyState()=0
Notify systems that steady state has been achieved.
bool m_BaroreceptorSaturationStatus
Definition: Nervous.h:50

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.