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
11namespace 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 };
57END_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.