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
12
13namespace 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 };
56END_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.