ECMOModel.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
15
16namespace pulse
17{
18 class PBEquipment;
19 class EngineTest;
24 class PULSE_DECL ECMOModel : public ECMOSystem, public Model
25 {
26 friend PBEquipment;//friend the serialization class
27 friend EngineTest;
28 public:
29 ECMOModel(Data& pc);
30 virtual ~ECMOModel();
31
32 void Clear() override;
33
34 // Set members to a stable homeostatic state
35 void Initialize() override;
36 // Set pointers and other member varialbes common to both homeostatic initialization and loading a state
37 void SetUp() override;
38
39 void StateChange() override;
40
41 void AtSteadyState() override {}
42 void PreProcess() override;
43 void Process(bool solve_and_transport = true) override;
44 void PostProcess(bool solve_and_transport = true) override;
45
46 protected:
47 void ComputeExposedModelParameters() override;
48 void DisconnectECMO();
49
50 // Serializable member variables (Set in Initialize and in schema)
51
52 // Stateless member variable (Set in SetUp())
53 eECMO_CannulationLocation m_CurrentInflowLocation;
54 eECMO_CannulationLocation m_CurrentOutflowLocation;
55
56 SELiquidCompartment* m_InflowCmpt;
57 SELiquidCompartmentLink* m_lVascularToBloodSamplingPort;
58 SELiquidCompartment* m_cBloodSamplingPort;
59 SELiquidCompartmentLink* m_lBloodSamplingPortToOxygenator;
60 SELiquidCompartment* m_cOxygenator;
61 SELiquidCompartmentLink* m_lOxygenatorToVascular;
62 SELiquidCompartment* m_OutflowCmpt;
63
64
65 SEFluidCircuitNode* m_InflowNode;
66 SEFluidCircuitPath* m_pVascularToBloodSamplingPort;
67 SEFluidCircuitNode* m_nBloodSamplingPort;
68 SEFluidCircuitPath* m_pBloodSamplingPortToGround;
69 SEFluidCircuitPath* m_pGroundToOxygenator;
70 SEFluidCircuitNode* m_nOxygenator;
71 SEFluidCircuitPath* m_pOxygenatorToVascular;
72 SEFluidCircuitNode* m_OutflowNode;
73 };
74END_NAMESPACE
Definition: SEEquipmentActionCollection.h:47
Definition: SEFluidCircuitNode.h:10
Definition: SEFluidCircuitPath.h:9
Definition: SEGasCompartment.h:14
Definition: SEGasSubstanceQuantity.h:10
Definition: SELiquidCompartment.h:11
Definition: Logger.h:14

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.