Building Medical Digital Twins with Pulse: Open Source Simulation Tools for Developers and Researchers
×
EndocrineModel.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 
10 
11 namespace pulse
12 {
13  class PBPhysiology;
14  class EngineTest;
22  class PULSE_DECL EndocrineModel : public EndocrineSystem, public Model
23  {
24  friend PBPhysiology;//friend the serialization class
25  friend EngineTest;
26  public:
27  EndocrineModel(Data& data);
28  virtual ~EndocrineModel();
29 
30  void Clear() override;
31 
32  // Set members to a stable homeostatic state
33  void Initialize() override;
34  // Set pointers and other member variables common to both homeostatic initialization and loading a state
35  void SetUp() override;
36 
37  void AtSteadyState() override;
38  void PreProcess() override {}
39  void Process(bool solve_and_transport = true) override;
40  void PostProcess(bool solve_and_transport = true) override;
41 
42  protected:
43  void ComputeExposedModelParameters() override;
44 
45  void SynthesizeInsulin();
46  void ReleaseEpinephrineAndNorepinephrine();
47 
48  // Serializable member variables (Set in Initialize and in schema)
49 
50  // Stateless member variable (Set in SetUp())
51  double m_insulinMolarMass_g_Per_mol;
52  SELiquidSubstanceQuantity* m_aortaNorepinephrine = nullptr;
53  SELiquidSubstanceQuantity* m_rKidneyEpinephrine = nullptr;
54  SELiquidSubstanceQuantity* m_lKidneyEpinephrine = nullptr;
55  SELiquidSubstanceQuantity* m_splanchnicInsulin = nullptr;
56  };
57 END_NAMESPACE
Definition: PBPhysiology.h:24
Definition: SELiquidSubstanceQuantity.h:12
Definition: Logger.h:14

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.