Building Medical Digital Twins with Pulse: Open Source Simulation Tools for Developers and Researchers
×
InhalerModel.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 
9 class SEGasCompartment;
12 
13 namespace pulse
14 {
15  class PBEquipment;
16  class EngineTest;
21  class PULSE_DECL InhalerModel : public InhalerSystem, public Model
22  {
23  friend PBEquipment;//friend the serialization class
24  friend EngineTest;
25  public:
26  InhalerModel(Data& pc);
27  virtual ~InhalerModel();
28 
29  void Clear() override;
30 
31  // Set members to a stable homeostatic state
32  void Initialize() override;
33  // Set pointers and other member varialbes common to both homeostatic initialization and loading a state
34  void SetUp() override;
35 
36  // main driver function responsible for calling the various ECG functions:
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  void StateChange() override;
43  void Administer();
44 
45  protected:
46  void ComputeExposedModelParameters() override;
47 
48  // Serializable member variables (Set in Initialize and in schema)
49 
50  // Stateless member variable (Set in SetUp())
51  SEGasCompartment* m_Mouthpiece;
52  SELiquidCompartment* m_AerosolMouthpiece;
53  SEGasCompartment* m_AmbientEnv;
54  SELiquidSubstanceQuantity* m_InhalerDrug;
55  };
56 END_NAMESPACE
Definition: SEGasCompartment.h:14
Definition: SELiquidCompartment.h:11
Definition: SELiquidSubstanceQuantity.h:12
Definition: Logger.h:14

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.