Building Medical Digital Twins with Pulse: Open Source Simulation Tools for Developers and Researchers
×
PulseConfiguration.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/CommonDefs.h"
7 #include "cdm/engine/SEEngineConfiguration.h"
8 class SENutrition;
14 
15 namespace pulse { class PBConfiguration; }
19 class PULSE_DECL PulseConfiguration : public SEEngineConfiguration
20 {
21  friend pulse::PBConfiguration;//friend the serialization class
22 public:
23 
24  PulseConfiguration(Logger* logger = nullptr);
25  virtual ~PulseConfiguration();
26 
27  virtual void Clear();
28  void Merge(const PulseConfiguration&, SESubstanceManager& subMgr);
29  virtual void Initialize(const std::string& dataDir = "", SESubstanceManager* subMgr = nullptr);
30 
31  bool SerializeToString(std::string& output, eSerializationFormat m) const;
32  bool SerializeToFile(const std::string& filename) const;
33  bool SerializeFromString(const std::string& src, eSerializationFormat m, SESubstanceManager& subMgr);
34  bool SerializeFromFile(const std::string& filename, SESubstanceManager& subMgr);
35 
36 
37  virtual bool HasTimeStep() const;
38  virtual SEScalarTime& GetTimeStep();
39  virtual double GetTimeStep(const TimeUnit& unit) const;
40 
41  virtual eSwitch AllowDynamicTimeStep() const { return m_AllowDynamicTimeStep; }
42  virtual void AllowDynamicTimeStep(eSwitch s) { m_AllowDynamicTimeStep = s; }
43 
44  // You can have either a timed or dynamic stabilization object (cannot have both)
45  virtual bool HasStabilization() const;
46  virtual SEEngineStabilization* GetStabilization();
47  virtual void RemoveStabilization();
48  // Timed Methods, If you have dynamic, calling GetTimedStabilization will remove the dynamic object
49  virtual bool HasTimedStabilization() const;
50  virtual SETimedStabilization& GetTimedStabilization();
51  virtual const SETimedStabilization* GetTimedStabilization() const;
52  virtual void RemoveTimedStabilization();
53  // Dynamic Methods, If you have timed, calling GetDynamicStabilization will remove the timed object
54  virtual bool HasDynamicStabilization() const;
55  virtual SEDynamicStabilization& GetDynamicStabilization();
56  virtual const SEDynamicStabilization* GetDynamicStabilization() const;
57  virtual void RemoveDynamicStabilization();
58 
59  virtual void TrackStabilization(eSwitch s) { m_TrackStabilization = s; }
60  virtual bool IsTrackingStabilization() const { return m_TrackStabilization == eSwitch::On; }
61 
62  virtual bool HasOverrides() const;
63  virtual SEScalarProperties& GetOverrides();
64  virtual const SEScalarProperties& GetOverrides() const;
65 
66  virtual bool HasModifiers() const;
67  virtual SEScalarProperties& GetModifiers();
68  virtual const SEScalarProperties& GetModifiers() const;
69 protected:
70  virtual void InitializeCardiovascularModifiers();
71 
77 
78  SEScalarProperties m_Overrides;
79  SEScalarProperties m_Modifiers;
80 
82 
84 public:
85  virtual bool HasMeanCorpuscularHemoglobin() const;
86  virtual SEScalarMassPerAmount& GetMeanCorpuscularHemoglobin();
87  virtual double GetMeanCorpuscularHemoglobin(const MassPerAmountUnit& unit) const;
88 
89  virtual bool HasMeanCorpuscularVolume() const;
90  virtual SEScalarVolume& GetMeanCorpuscularVolume();
91  virtual double GetMeanCorpuscularVolume(const VolumeUnit& unit) const;
92 
93  virtual bool HasStandardDiffusionDistance() const;
94  virtual SEScalarLength& GetStandardDiffusionDistance();
95  virtual double GetStandardDiffusionDistance(const LengthUnit& unit) const;
96 
97  virtual bool HasStandardOxygenDiffusionCoefficient() const;
98  virtual SEScalarAreaPerTimePressure& GetStandardOxygenDiffusionCoefficient();
99  virtual double GetStandardOxygenDiffusionCoefficient(const AreaPerTimePressureUnit& unit) const;
100 protected:
105 
107 
109 public:
110  virtual bool HasLeftHeartElastanceMaximum() const;
111  virtual SEScalarPressurePerVolume& GetLeftHeartElastanceMaximum();
112  virtual double GetLeftHeartElastanceMaximum(const PressurePerVolumeUnit& unit) const;
113 
114  virtual bool HasLeftHeartElastanceMinimum() const;
115  virtual SEScalarPressurePerVolume& GetLeftHeartElastanceMinimum();
116  virtual double GetLeftHeartElastanceMinimum(const PressurePerVolumeUnit& unit) const;
117 
118  virtual bool HasMinimumBloodVolumeFraction() const;
119  virtual SEScalar0To1& GetMinimumBloodVolumeFraction();
120  virtual double GetMinimumBloodVolumeFraction() const;
121 
122  virtual bool HasRightHeartElastanceMaximum() const;
123  virtual SEScalarPressurePerVolume& GetRightHeartElastanceMaximum();
124  virtual double GetRightHeartElastanceMaximum(const PressurePerVolumeUnit& unit) const;
125 
126  virtual bool HasRightHeartElastanceMinimum() const;
127  virtual SEScalarPressurePerVolume& GetRightHeartElastanceMinimum();
128  virtual double GetRightHeartElastanceMinimum(const PressurePerVolumeUnit& unit) const;
129 
130  virtual bool HasStandardPulmonaryCapillaryCoverage() const;
131  virtual SEScalar& GetStandardPulmonaryCapillaryCoverage();
132  virtual double GetStandardPulmonaryCapillaryCoverage() const;
133 
134  virtual eSwitch UseComputationalLifeExpansion() const { return m_UseComputationalLifeExpansion; }
135  virtual void UseComputationalLifeExpansion(eSwitch s);
136 
137  virtual eSwitch TuneCardiovascularCircuit() const { return m_TuneCardiovascularCircuit; }
138  virtual void TuneCardiovascularCircuit(eSwitch s) { m_TuneCardiovascularCircuit = s; }
139 
140  virtual std::string CardiovascularTuningFile() const { return m_CardiovascularTuningFile; }
141  virtual void CardiovascularTuningFile(const std::string& s) { m_CardiovascularTuningFile = s; }
142 
143 protected:
153 
155 
157 public:
158 
159  virtual bool HasCardiovascularOpenResistance() const;
160  virtual SEScalarPressureTimePerVolume& GetCardiovascularOpenResistance();
161  virtual double GetCardiovascularOpenResistance(const PressureTimePerVolumeUnit& unit) const;
162 
163  virtual bool HasDefaultClosedElectricResistance() const;
164  virtual SEScalarElectricResistance& GetDefaultClosedElectricResistance();
165  virtual double GetDefaultClosedElectricResistance(const ElectricResistanceUnit& unit) const;
166 
167  virtual bool HasDefaultClosedFlowResistance() const;
168  virtual SEScalarPressureTimePerVolume& GetDefaultClosedFlowResistance();
169  virtual double GetDefaultClosedFlowResistance(const PressureTimePerVolumeUnit& unit) const;
170 
171  virtual bool HasDefaultClosedHeatResistance() const;
172  virtual SEScalarHeatResistance& GetDefaultClosedHeatResistance();
173  virtual double GetDefaultClosedHeatResistance(const HeatResistanceUnit& unit) const;
174 
175  virtual bool HasDefaultOpenElectricResistance() const;
176  virtual SEScalarElectricResistance& GetDefaultOpenElectricResistance();
177  virtual double GetDefaultOpenElectricResistance(const ElectricResistanceUnit& unit) const;
178 
179  virtual bool HasDefaultOpenFlowResistance() const;
180  virtual SEScalarPressureTimePerVolume& GetDefaultOpenFlowResistance();
181  virtual double GetDefaultOpenFlowResistance(const PressureTimePerVolumeUnit& unit) const;
182 
183  virtual bool HasDefaultOpenHeatResistance() const;
184  virtual SEScalarHeatResistance& GetDefaultOpenHeatResistance();
185  virtual double GetDefaultOpenHeatResistance(const HeatResistanceUnit& unit) const;
186 
187  virtual bool HasMachineClosedResistance() const;
188  virtual SEScalarPressureTimePerVolume& GetMachineClosedResistance();
189  virtual double GetMachineClosedResistance(const PressureTimePerVolumeUnit& unit) const;
190 
191  virtual bool HasMachineOpenResistance() const;
192  virtual SEScalarPressureTimePerVolume& GetMachineOpenResistance();
193  virtual double GetMachineOpenResistance(const PressureTimePerVolumeUnit& unit) const;
194 
195  virtual bool HasRespiratoryClosedResistance() const;
196  virtual SEScalarPressureTimePerVolume& GetRespiratoryClosedResistance();
197  virtual double GetRespiratoryClosedResistance(const PressureTimePerVolumeUnit& unit) const;
198 
199  virtual bool HasRespiratoryOpenResistance() const;
200  virtual SEScalarPressureTimePerVolume& GetRespiratoryOpenResistance();
201  virtual double GetRespiratoryOpenResistance(const PressureTimePerVolumeUnit& unit) const;
202 
203 protected:
215 
217 
219 public:
220  virtual bool HasOxygenMetabolicConstant() const;
221  virtual SEScalar& GetOxygenMetabolicConstant();
222  virtual double GetOxygenMetabolicConstant() const;
223 
224  virtual bool HasStefanBoltzmann() const;
225  virtual SEScalarPowerPerAreaTemperatureToTheFourth& GetStefanBoltzmann();
226  virtual double GetStefanBoltzmann(const PowerPerAreaTemperatureToTheFourthUnit& unit) const;
227 
228  virtual bool HasUniversalGasConstant() const;
229  virtual SEScalarHeatCapacitancePerAmount& GetUniversalGasConstant();
230  virtual double GetUniversalGasConstant(const HeatCapacitancePerAmountUnit& unit) const;
231 protected:
235 
237 
239 public:
240  virtual bool IsPDEnabled() const { return m_PDEnabled == eSwitch::On; }
241  virtual void UsePDModel(eSwitch s) { m_PDEnabled = (s == eSwitch::NullSwitch) ? eSwitch::On : s; }
242 protected:
243  eSwitch m_PDEnabled;
244 
246 
248 public:
249  virtual bool HasECG() const;
250  virtual SEElectroCardioGram& GetECG();
251  virtual const SEElectroCardioGram* GetECG() const;
252  virtual void RemoveECG();
253  //protected:
255 
257 
259 public:
260  virtual bool HasBodySpecificHeat() const;
261  virtual SEScalarHeatCapacitancePerMass& GetBodySpecificHeat();
262  virtual double GetBodySpecificHeat(const HeatCapacitancePerMassUnit& unit) const;
263 
264  virtual bool HasCarbonDioxideProductionFromOxygenConsumptionConstant() const;
265  virtual SEScalar& GetCarbonDioxideProductionFromOxygenConsumptionConstant();
266  virtual double GetCarbonDioxideProductionFromOxygenConsumptionConstant() const;
267 
268  virtual bool HasCoreTemperatureHigh() const;
269  virtual SEScalarTemperature& GetCoreTemperatureHigh();
270  virtual double GetCoreTemperatureHigh(const TemperatureUnit& unit) const;
271 
272  virtual bool HasCoreTemperatureLow() const;
273  virtual SEScalarTemperature& GetCoreTemperatureLow();
274  virtual double GetCoreTemperatureLow(const TemperatureUnit& unit) const;
275 
276  virtual bool HasDeltaCoreTemperatureLow() const;
277  virtual SEScalarTemperature& GetDeltaCoreTemperatureLow();
278  virtual double GetDeltaCoreTemperatureLow(const TemperatureUnit& unit) const;
279 
280  virtual bool HasEnergyPerATP() const;
281  virtual SEScalarEnergyPerAmount& GetEnergyPerATP();
282  virtual double GetEnergyPerATP(const EnergyPerAmountUnit& unit) const;
283 
284  virtual bool HasSweatHeatTransfer() const;
285  virtual SEScalarHeatConductance& GetSweatHeatTransfer();
286  virtual double GetSweatHeatTransfer(const HeatConductanceUnit& unit) const;
287 
288  virtual bool HasVaporizationEnergy() const;
289  virtual SEScalarEnergyPerMass& GetVaporizationEnergy();
290  virtual double GetVaporizationEnergy(const EnergyPerMassUnit& unit) const;
291 
292  virtual bool HasVaporSpecificHeat() const;
293  virtual SEScalarHeatCapacitancePerMass& GetVaporSpecificHeat();
294  virtual double GetVaporSpecificHeat(const HeatCapacitancePerMassUnit& unit) const;
295 protected:
305 
307 
309 public:
310  virtual bool HasAirDensity() const;
311  virtual SEScalarMassPerVolume& GetAirDensity();
312  virtual double GetAirDensity(const MassPerVolumeUnit& unit) const;
313 
314  virtual bool HasAirSpecificHeat() const;
315  virtual SEScalarHeatCapacitancePerMass& GetAirSpecificHeat();
316  virtual double GetAirSpecificHeat(const HeatCapacitancePerMassUnit& unit) const;
317 
318  virtual bool HasMolarMassOfDryAir() const;
319  virtual SEScalarMassPerAmount& GetMolarMassOfDryAir();
320  virtual double GetMolarMassOfDryAir(const MassPerAmountUnit& unit) const;
321 
322  virtual bool HasMolarMassOfWaterVapor() const;
323  virtual SEScalarMassPerAmount& GetMolarMassOfWaterVapor();
324  virtual double GetMolarMassOfWaterVapor(const MassPerAmountUnit& unit) const;
325 
326  virtual bool HasInitialEnvironmentalConditions() const;
327  virtual SEEnvironmentalConditions& GetInitialEnvironmentalConditions();
328  virtual const SEEnvironmentalConditions* GetInitialEnvironmentalConditions() const;
329 
330  virtual bool HasWaterDensity() const;
331  virtual SEScalarMassPerVolume& GetWaterDensity();
332  virtual double GetWaterDensity(const MassPerVolumeUnit& unit) const;
333 protected:
340 
342 
344 public:
345  virtual bool HasCalciumDigestionRate() const;
346  virtual SEScalarMassPerTime& GetCalciumDigestionRate();
347  virtual double GetCalciumDigestionRate(const MassPerTimeUnit& unit) const;
348 
349  virtual bool HasCalciumAbsorptionFraction() const;
350  virtual SEScalar0To1& GetCalciumAbsorptionFraction();
351  virtual double GetCalciumAbsorptionFraction() const;
352 
353  virtual bool HasCarbohydrateAbsorptionFraction() const;
354  virtual SEScalar0To1& GetCarbohydrateAbsorptionFraction();
355  virtual double GetCarbohydrateAbsorptionFraction() const;
356 
357  virtual bool HasDefaultCarbohydrateDigestionRate() const;
358  virtual SEScalarMassPerTime& GetDefaultCarbohydrateDigestionRate();
359  virtual double GetDefaultCarbohydrateDigestionRate(const MassPerTimeUnit& unit) const;
360 
361  virtual bool HasDefaultFatDigestionRate() const;
362  virtual SEScalarMassPerTime& GetDefaultFatDigestionRate();
363  virtual double GetDefaultFatDigestionRate(const MassPerTimeUnit& unit) const;
364 
365  virtual bool HasDefaultProteinDigestionRate() const;
366  virtual SEScalarMassPerTime& GetDefaultProteinDigestionRate();
367  virtual double GetDefaultProteinDigestionRate(const MassPerTimeUnit& unit) const;
368 
369  virtual bool HasDefaultStomachContents() const;
370  virtual SENutrition& GetDefaultStomachContents();
371  virtual const SENutrition* GetDefaultStomachContents() const;
372 
373  virtual bool HasFatAbsorptionFraction() const;
374  virtual SEScalar0To1& GetFatAbsorptionFraction();
375  virtual double GetFatAbsorptionFraction() const;
376 
377  virtual bool HasProteinToUreaFraction() const;
378  virtual SEScalar0To1& GetProteinToUreaFraction();
379  virtual double GetProteinToUreaFraction() const;
380 
381  virtual bool HasWaterDigestionRate() const;
382  virtual SEScalarVolumePerTime& GetWaterDigestionRate();
383  virtual double GetWaterDigestionRate(const VolumePerTimeUnit& unit) const;
384 
385 protected:
386 
397 
399 
401 public:
402  virtual bool IsCerebrospinalFluidEnabled() const { return m_CerebrospinalFluidEnabled == eSwitch::On; }
403  virtual void EnableCerebrospinalFluid(eSwitch s) { m_CerebrospinalFluidEnabled = (s == eSwitch::NullSwitch) ? eSwitch::On : s; }
404 
405  virtual eSwitch GetBaroreceptorFeedback() const { return m_BaroreceptorFeedback; }
406  virtual void SetBaroreceptorFeedback(eSwitch s) { m_BaroreceptorFeedback = (s == eSwitch::NullSwitch) ? eSwitch::On : s; }
407 
408  virtual eSwitch GetChemoreceptorFeedback() const { return m_ChemoreceptorFeedback; }
409  virtual void SetChemoreceptorFeedback(eSwitch s) { m_ChemoreceptorFeedback = (s == eSwitch::NullSwitch) ? eSwitch::On : s; }
410 
411  virtual bool HasHeartElastanceDistributedTimeDelay() const;
412  virtual SEScalarTime& GetHeartElastanceDistributedTimeDelay();
413  virtual double GetHeartElastanceDistributedTimeDelay(const TimeUnit& unit) const;
414 
415  virtual bool HasHeartRateDistributedTimeDelay() const;
416  virtual SEScalarTime& GetHeartRateDistributedTimeDelay();
417  virtual double GetHeartRateDistributedTimeDelay(const TimeUnit& unit) const;
418 
419  virtual bool HasNormalizedHeartRateIntercept() const;
420  virtual SEScalar& GetNormalizedHeartRateIntercept();
421  virtual double GetNormalizedHeartRateIntercept() const;
422 
423  virtual bool HasNormalizedHeartRateSympatheticSlope() const;
424  virtual SEScalar& GetNormalizedHeartRateSympatheticSlope();
425  virtual double GetNormalizedHeartRateSympatheticSlope() const;
426 
427  virtual bool HasNormalizedHeartRateParasympatheticSlope() const;
428  virtual SEScalar& GetNormalizedHeartRateParasympatheticSlope();
429  virtual double GetNormalizedHeartRateParasympatheticSlope() const;
430 
431  virtual bool HasNormalizedHeartElastanceIntercept() const;
432  virtual SEScalar& GetNormalizedHeartElastanceIntercept();
433  virtual double GetNormalizedHeartElastanceIntercept() const;
434 
435  virtual bool HasNormalizedHeartElastanceSympatheticSlope() const;
436  virtual SEScalar& GetNormalizedHeartElastanceSympatheticSlope();
437  virtual double GetNormalizedHeartElastanceSympatheticSlope() const;
438 
439  virtual bool HasNormalizedResistanceIntercept() const;
440  virtual SEScalar& GetNormalizedResistanceIntercept();
441  virtual double GetNormalizedResistanceIntercept() const;
442 
443  virtual bool HasNormalizedResistanceSympatheticSlope() const;
444  virtual SEScalar& GetNormalizedResistanceSympatheticSlope();
445  virtual double GetNormalizedResistanceSympatheticSlope() const;
446 
447  virtual bool HasNormalizedComplianceIntercept() const;
448  virtual SEScalar& GetNormalizedComplianceIntercept();
449  virtual double GetNormalizedComplianceIntercept() const;
450 
451  virtual bool HasNormalizedComplianceParasympatheticSlope() const;
452  virtual SEScalar& GetNormalizedComplianceParasympatheticSlope();
453  virtual double GetNormalizedComplianceParasympatheticSlope() const;
454 
455  virtual bool HasPupilDiameterBaseline() const;
456  virtual SEScalarLength& GetPupilDiameterBaseline();
457  virtual double GetPupilDiameterBaseline(const LengthUnit& unit) const;
458 
459  virtual bool HasResponseSlope() const;
460  virtual SEScalar& GetResponseSlope();
461  virtual double GetResponseSlope() const;
462 
463  virtual bool HasSystemicResistanceDistributedTimeDelay() const;
464  virtual SEScalarTime& GetSystemicResistanceDistributedTimeDelay();
465  virtual double GetSystemicResistanceDistributedTimeDelay(const TimeUnit& unit) const;
466 
467  virtual bool HasVenousComplianceDistributedTimeDelay() const;
468  virtual SEScalarTime& GetVenousComplianceDistributedTimeDelay();
469  virtual double GetVenousComplianceDistributedTimeDelay(const TimeUnit& unit) const;
470 
471 protected:
490 
492 
494 public:
495  virtual eSwitch UseExpandedKidneys() const { return m_UseExpandedKidneys; }
496  virtual void UseExpandedKidneys(eSwitch s);
497 
498  virtual bool HasPlasmaSodiumConcentrationSetPoint() const;
499  virtual SEScalarMassPerVolume& GetPlasmaSodiumConcentrationSetPoint();
500  virtual double GetPlasmaSodiumConcentrationSetPoint(const MassPerVolumeUnit& unit) const;
501 
502  virtual bool HasPeritubularPotassiumConcentrationSetPoint() const;
503  virtual SEScalarMassPerVolume& GetPeritubularPotassiumConcentrationSetPoint();
504  virtual double GetPeritubularPotassiumConcentrationSetPoint(const MassPerVolumeUnit& unit) const;
505 
506  virtual bool HasLeftGlomerularFilteringSurfaceAreaBaseline() const;
507  virtual SEScalarArea& GetLeftGlomerularFilteringSurfaceAreaBaseline();
508  virtual double GetLeftGlomerularFilteringSurfaceAreaBaseline(const AreaUnit& unit) const;
509 
510  virtual bool HasLeftGlomerularFluidPermeabilityBaseline() const;
511  virtual SEScalarVolumePerTimePressureArea& GetLeftGlomerularFluidPermeabilityBaseline();
512  virtual double GetLeftGlomerularFluidPermeabilityBaseline(const VolumePerTimePressureAreaUnit& unit) const;
513 
514  virtual bool HasLeftTubularReabsorptionFilteringSurfaceAreaBaseline() const;
515  virtual SEScalarArea& GetLeftTubularReabsorptionFilteringSurfaceAreaBaseline();
516  virtual double GetLeftTubularReabsorptionFilteringSurfaceAreaBaseline(const AreaUnit& unit) const;
517 
518  virtual bool HasLeftTubularReabsorptionFluidPermeabilityBaseline() const;
519  virtual SEScalarVolumePerTimePressureArea& GetLeftTubularReabsorptionFluidPermeabilityBaseline();
520  virtual double GetLeftTubularReabsorptionFluidPermeabilityBaseline(const VolumePerTimePressureAreaUnit& unit) const;
521 
522  virtual bool HasMaximumAfferentResistance() const;
523  virtual SEScalarPressureTimePerVolume& GetMaximumAfferentResistance();
524  virtual double GetMaximumAfferentResistance(const PressureTimePerVolumeUnit& unit) const;
525 
526  virtual bool HasMinimumAfferentResistance() const;
527  virtual SEScalarPressureTimePerVolume& GetMinimumAfferentResistance();
528  virtual double GetMinimumAfferentResistance(const PressureTimePerVolumeUnit& unit) const;
529 
530  virtual bool HasRightGlomerularFilteringSurfaceAreaBaseline() const;
531  virtual SEScalarArea& GetRightGlomerularFilteringSurfaceAreaBaseline();
532  virtual double GetRightGlomerularFilteringSurfaceAreaBaseline(const AreaUnit& unit) const;
533 
534  virtual bool HasRightGlomerularFluidPermeabilityBaseline() const;
535  virtual SEScalarVolumePerTimePressureArea& GetRightGlomerularFluidPermeabilityBaseline();
536  virtual double GetRightGlomerularFluidPermeabilityBaseline(const VolumePerTimePressureAreaUnit& unit) const;
537 
538  virtual bool HasRightTubularReabsorptionFilteringSurfaceAreaBaseline() const;
539  virtual SEScalarArea& GetRightTubularReabsorptionFilteringSurfaceAreaBaseline();
540  virtual double GetRightTubularReabsorptionFilteringSurfaceAreaBaseline(const AreaUnit& unit) const;
541 
542  virtual bool HasRightTubularReabsorptionFluidPermeabilityBaseline() const;
543  virtual SEScalarVolumePerTimePressureArea& GetRightTubularReabsorptionFluidPermeabilityBaseline();
544  virtual double GetRightTubularReabsorptionFluidPermeabilityBaseline(const VolumePerTimePressureAreaUnit& unit) const;
545 
546  virtual bool HasTargetSodiumDelivery();
547  virtual SEScalarMassPerTime& GetTargetSodiumDelivery();
548 protected:
550 
553 
558 
563 
566 
568 
569 
571 
573 public:
574  virtual eSwitch UseExpandedLungs() const { return m_UseExpandedLungs; }
575  virtual void UseExpandedLungs(eSwitch s);
576 
577  virtual bool HasCentralControllerCO2PressureSetPoint() const;
578  virtual SEScalarPressure& GetCentralControllerCO2PressureSetPoint();
579  virtual double GetCentralControllerCO2PressureSetPoint(const PressureUnit& unit) const;
580 
581  virtual bool HasCentralVentilatoryControllerGain() const;
582  virtual SEScalar& GetCentralVentilatoryControllerGain();
583  virtual double GetCentralVentilatoryControllerGain() const;
584 
585  virtual bool HasMinimumAllowableInpiratoryAndExpiratoryPeriod() const;
586  virtual SEScalarTime& GetMinimumAllowableInpiratoryAndExpiratoryPeriod();
587  virtual double GetMinimumAllowableInpiratoryAndExpiratoryPeriod(const TimeUnit& unit) const;
588 
589  virtual bool HasMinimumAllowableTidalVolume() const;
590  virtual SEScalarVolume& GetMinimumAllowableTidalVolume();
591  virtual double GetMinimumAllowableTidalVolume(const VolumeUnit& unit) const;
592 
593 
594  virtual bool HasPeripheralControllerCO2PressureSetPoint() const;
595  virtual SEScalarPressure& GetPeripheralControllerCO2PressureSetPoint();
596  virtual double GetPeripheralControllerCO2PressureSetPoint(const PressureUnit& unit) const;
597 
598  virtual bool HasPeripheralVentilatoryControllerGain() const;
599  virtual SEScalar& GetPeripheralVentilatoryControllerGain();
600  virtual double GetPeripheralVentilatoryControllerGain() const;
601 
602  virtual bool HasPulmonaryVentilationRateMaximum() const;
603  virtual SEScalarVolumePerTime& GetPulmonaryVentilationRateMaximum();
604  virtual double GetPulmonaryVentilationRateMaximum(const VolumePerTimeUnit& unit) const;
605 
606  virtual bool HasVentilationTidalVolumeIntercept() const;
607  virtual SEScalarVolume& GetVentilationTidalVolumeIntercept();
608  virtual double GetVentilationTidalVolumeIntercept(const VolumeUnit& unit) const;
609 
610  virtual bool HasVentilatoryOcclusionPressure() const;
611  virtual SEScalarPressure& GetVentilatoryOcclusionPressure();
612  virtual double GetVentilatoryOcclusionPressure(const PressureUnit& unit) const;
613 
614 protected:
625 
627 
629 public:
630  virtual bool IsTissueEnabled() const { return m_TissueEnabled == eSwitch::On; }
631  virtual void EnableTissue(eSwitch s) { m_TissueEnabled = (s == eSwitch::NullSwitch) ? eSwitch::On : s; }
632 protected:
634 };
Definition: SEScalarAreaPerTimePressure.h:8
Definition: SEScalarArea.h:8
Definition: SEScalarElectricResistance.h:8
Definition: SEScalarEnergyPerAmount.h:8
Definition: SEScalarEnergyPerMass.h:8
Definition: SEScalarHeatCapacitancePerAmount.h:8
Definition: SEScalarHeatCapacitancePerMass.h:8
Definition: SEScalarHeatConductance.h:8
Definition: SEScalarHeatResistance.h:8
Definition: SEScalarLength.h:8
Definition: Logger.h:71
Definition: SEScalarMassPerAmount.h:8
Definition: SEScalarMassPerTime.h:8
Definition: SEScalarMassPerVolume.h:8
Definition: SEScalarPowerPerAreaTemperatureToTheFourth.h:8
Definition: SEScalarPressurePerVolume.h:8
Definition: SEScalarPressureTimePerVolume.h:8
Definition: SEScalarPressure.h:8
Pulse specific configuration parameters for all systems/equipment
Definition: PulseConfiguration.h:20
SEScalarHeatCapacitancePerMass * m_VaporSpecificHeat
Definition: PulseConfiguration.h:304
virtual void AllowDynamicTimeStep(eSwitch s)
Definition: PulseConfiguration.h:42
eSwitch m_UseExpandedLungs
Definition: PulseConfiguration.h:615
SEScalarMassPerTime * m_DefaultFatDigestionRate
Definition: PulseConfiguration.h:391
SEScalarPressureTimePerVolume * m_RespiratoryClosedResistance
Definition: PulseConfiguration.h:213
SEScalarPressure * m_PeripheralControllerCO2PressureSetPoint
Definition: PulseConfiguration.h:620
SEScalar0To1 * m_CarbohydrateAbsorptionFraction
Definition: PulseConfiguration.h:389
SEScalarArea * m_RightTubularReabsorptionFilteringSurfaceAreaBaseline
Definition: PulseConfiguration.h:561
SEScalar * m_NormalizedResistanceIntercept
Definition: PulseConfiguration.h:482
SEScalarMassPerTime * m_CalciumDigestionRate
Definition: PulseConfiguration.h:387
SEScalarMassPerVolume * m_PeritubularPotassiumConcentrationSetPoint
Definition: PulseConfiguration.h:552
SEScalar * m_NormalizedHeartRateSympatheticSlope
Definition: PulseConfiguration.h:478
SEScalar * m_NormalizedHeartElastanceIntercept
Definition: PulseConfiguration.h:480
SEScalarElectricResistance * m_DefaultClosedElectricResistance
Definition: PulseConfiguration.h:205
SEScalarPressurePerVolume * m_LeftHeartElastanceMinimum
Definition: PulseConfiguration.h:145
virtual bool IsCerebrospinalFluidEnabled() const
Definition: PulseConfiguration.h:402
SEScalarPressureTimePerVolume * m_MaximumAfferentResistance
Definition: PulseConfiguration.h:564
SEScalarProperties m_Overrides
Definition: PulseConfiguration.h:78
SEDynamicStabilization * m_DynamicStabilization
Definition: PulseConfiguration.h:75
SEScalarTime * m_MinimumAllowableInpiratoryAndExpiratoryPeriod
Definition: PulseConfiguration.h:618
SEScalarMassPerTime * m_DefaultCarbohydrateDigestionRate
Definition: PulseConfiguration.h:390
SEScalarHeatCapacitancePerMass * m_BodySpecificHeat
Definition: PulseConfiguration.h:296
SEScalar * m_NormalizedComplianceIntercept
Definition: PulseConfiguration.h:484
SEScalarEnergyPerMass * m_VaporizationEnergy
Definition: PulseConfiguration.h:303
SEScalar * m_NormalizedHeartRateParasympatheticSlope
Definition: PulseConfiguration.h:479
SEScalarPressureTimePerVolume * m_DefaultOpenFlowResistance
Definition: PulseConfiguration.h:209
SEScalarLength * m_StandardDiffusionDistance
Definition: PulseConfiguration.h:103
SEScalarPressureTimePerVolume * m_MachineOpenResistance
Definition: PulseConfiguration.h:212
SEScalarTemperature * m_DeltaCoreTemperatureLow
Definition: PulseConfiguration.h:300
SEScalar * m_CarbonDioxideProductionFromOxygenConsumptionConstant
Definition: PulseConfiguration.h:297
virtual eSwitch UseExpandedLungs() const
Definition: PulseConfiguration.h:574
SEScalarMassPerVolume * m_AirDensity
Definition: PulseConfiguration.h:334
SEScalar0To1 * m_FatAbsorptionFraction
Definition: PulseConfiguration.h:394
SEScalar * m_OxygenMetabolicConstant
Definition: PulseConfiguration.h:232
SEScalarPressurePerVolume * m_LeftHeartElastanceMaximum
Definition: PulseConfiguration.h:144
SEScalarMassPerAmount * m_MolarMassOfWaterVapor
Definition: PulseConfiguration.h:337
virtual eSwitch GetBaroreceptorFeedback() const
Definition: PulseConfiguration.h:405
virtual eSwitch UseComputationalLifeExpansion() const
Definition: PulseConfiguration.h:134
virtual void SetBaroreceptorFeedback(eSwitch s)
Definition: PulseConfiguration.h:406
SEScalarEnergyPerAmount * m_EnergyPerATP
Definition: PulseConfiguration.h:301
SEScalar0To1 * m_CalciumAbsorptionFraction
Definition: PulseConfiguration.h:388
virtual eSwitch TuneCardiovascularCircuit() const
Definition: PulseConfiguration.h:137
eSwitch m_PDEnabled
Definition: PulseConfiguration.h:243
eSwitch m_UseComputationalLifeExpansion
Definition: PulseConfiguration.h:150
virtual eSwitch GetChemoreceptorFeedback() const
Definition: PulseConfiguration.h:408
SEScalarVolume * m_MinimumAllowableTidalVolume
Definition: PulseConfiguration.h:619
SEScalar * m_NormalizedHeartRateIntercept
Definition: PulseConfiguration.h:477
eSwitch m_TrackStabilization
Definition: PulseConfiguration.h:76
virtual bool IsPDEnabled() const
Definition: PulseConfiguration.h:240
SEScalar * m_CentralVentilatoryControllerGain
Definition: PulseConfiguration.h:617
SEScalarTime * m_HeartRateDistributedTimeDelay
Definition: PulseConfiguration.h:476
SEScalarPressurePerVolume * m_RightHeartElastanceMinimum
Definition: PulseConfiguration.h:148
SEScalarVolumePerTimePressureArea * m_LeftGlomerularFluidPermeabilityBaseline
Definition: PulseConfiguration.h:555
SEScalarMassPerVolume * m_WaterDensity
Definition: PulseConfiguration.h:339
SEScalar0To1 * m_ProteinToUreaFraction
Definition: PulseConfiguration.h:395
SETimedStabilization * m_TimedStabilization
Definition: PulseConfiguration.h:74
SEScalar * m_PeripheralVentilatoryControllerGain
Definition: PulseConfiguration.h:621
SEScalar * m_ResponseSlope
Definition: PulseConfiguration.h:487
virtual void EnableTissue(eSwitch s)
Definition: PulseConfiguration.h:631
virtual void TrackStabilization(eSwitch s)
Definition: PulseConfiguration.h:59
SEScalar * m_NormalizedComplianceParasympatheticSlope
Definition: PulseConfiguration.h:485
SEScalarMassPerVolume * m_PlasmaSodiumConcentrationSetPoint
Definition: PulseConfiguration.h:551
SEScalarHeatCapacitancePerAmount * m_UniversalGasConstant
Definition: PulseConfiguration.h:234
SEScalarMassPerAmount * m_MeanCorpuscularHemoglobin
Definition: PulseConfiguration.h:101
virtual void SetChemoreceptorFeedback(eSwitch s)
Definition: PulseConfiguration.h:409
SEScalarPowerPerAreaTemperatureToTheFourth * m_StefanBoltzmann
Definition: PulseConfiguration.h:233
SEScalarVolumePerTime * m_WaterDigestionRate
Definition: PulseConfiguration.h:396
SEScalar * m_NormalizedResistanceSympatheticSlope
Definition: PulseConfiguration.h:483
SEScalarHeatResistance * m_DefaultOpenHeatResistance
Definition: PulseConfiguration.h:210
SEScalarPressureTimePerVolume * m_RespiratoryOpenResistance
Definition: PulseConfiguration.h:214
eSwitch m_UseExpandedKidneys
Definition: PulseConfiguration.h:549
SEScalarProperties m_Modifiers
Definition: PulseConfiguration.h:79
SEScalarVolumePerTime * m_PulmonaryVentilationRateMaximum
Definition: PulseConfiguration.h:622
SEScalarElectricResistance * m_DefaultOpenElectricResistance
Definition: PulseConfiguration.h:208
SEScalarMassPerAmount * m_MolarMassOfDryAir
Definition: PulseConfiguration.h:336
SEEnvironmentalConditions * m_InitialEnvironmentalConditions
Definition: PulseConfiguration.h:338
SEScalarVolumePerTimePressureArea * m_LeftTubularReabsorptionFluidPermeabilityBaseline
Definition: PulseConfiguration.h:557
SENutrition * m_DefaultStomachContents
Definition: PulseConfiguration.h:393
SEScalarHeatCapacitancePerMass * m_AirSpecificHeat
Definition: PulseConfiguration.h:335
virtual eSwitch AllowDynamicTimeStep() const
Definition: PulseConfiguration.h:41
virtual bool IsTrackingStabilization() const
Definition: PulseConfiguration.h:60
virtual void UsePDModel(eSwitch s)
Definition: PulseConfiguration.h:241
eSwitch m_AllowDynamicTimeStep
Definition: PulseConfiguration.h:73
SEScalarVolume * m_VentilationTidalVolumeIntercept
Definition: PulseConfiguration.h:623
SEScalarTime * m_SystemicResistanceDistributedTimeDelay
Definition: PulseConfiguration.h:488
std::string m_CardiovascularTuningFile
Definition: PulseConfiguration.h:152
SEScalarPressurePerVolume * m_RightHeartElastanceMaximum
Definition: PulseConfiguration.h:147
SEScalarArea * m_LeftGlomerularFilteringSurfaceAreaBaseline
Definition: PulseConfiguration.h:554
eSwitch m_BaroreceptorFeedback
Definition: PulseConfiguration.h:474
SEScalarTemperature * m_CoreTemperatureHigh
Definition: PulseConfiguration.h:299
SEScalarVolumePerTimePressureArea * m_RightTubularReabsorptionFluidPermeabilityBaseline
Definition: PulseConfiguration.h:562
SEScalarPressureTimePerVolume * m_MinimumAfferentResistance
Definition: PulseConfiguration.h:565
SEScalarPressure * m_VentilatoryOcclusionPressure
Definition: PulseConfiguration.h:624
SEScalar * m_NormalizedHeartElastanceSympatheticSlope
Definition: PulseConfiguration.h:481
SEScalarTemperature * m_CoreTemperatureLow
Definition: PulseConfiguration.h:298
SEScalarHeatConductance * m_SweatHeatTransfer
Definition: PulseConfiguration.h:302
SEScalarTime * m_VenousComplianceDistributedTimeDelay
Definition: PulseConfiguration.h:489
SEScalarAreaPerTimePressure * m_StandardOxygenDiffusionCoefficient
Definition: PulseConfiguration.h:104
SEScalarVolumePerTimePressureArea * m_RightGlomerularFluidPermeabilityBaseline
Definition: PulseConfiguration.h:560
SEScalarHeatResistance * m_DefaultClosedHeatResistance
Definition: PulseConfiguration.h:207
SEScalar * m_StandardPulmonaryCapillaryCoverage
Definition: PulseConfiguration.h:149
virtual void CardiovascularTuningFile(const std::string &s)
Definition: PulseConfiguration.h:141
eSwitch m_TuneCardiovascularCircuit
Definition: PulseConfiguration.h:151
SEScalarPressureTimePerVolume * m_DefaultClosedFlowResistance
Definition: PulseConfiguration.h:206
eSwitch m_ChemoreceptorFeedback
Definition: PulseConfiguration.h:473
virtual eSwitch UseExpandedKidneys() const
Definition: PulseConfiguration.h:495
virtual void TuneCardiovascularCircuit(eSwitch s)
Definition: PulseConfiguration.h:138
virtual bool IsTissueEnabled() const
Definition: PulseConfiguration.h:630
eSwitch m_TissueEnabled
Definition: PulseConfiguration.h:633
SEScalarMassPerTime * m_DefaultProteinDigestionRate
Definition: PulseConfiguration.h:392
virtual std::string CardiovascularTuningFile() const
Definition: PulseConfiguration.h:140
virtual void EnableCerebrospinalFluid(eSwitch s)
Definition: PulseConfiguration.h:403
SEElectroCardioGram * m_ECG
Definition: PulseConfiguration.h:254
SEScalarPressureTimePerVolume * m_MachineClosedResistance
Definition: PulseConfiguration.h:211
SEScalarTime * m_TimeStep
Definition: PulseConfiguration.h:72
SEScalar0To1 * m_MinimumBloodVolumeFraction
Definition: PulseConfiguration.h:146
SEScalarArea * m_LeftTubularReabsorptionFilteringSurfaceAreaBaseline
Definition: PulseConfiguration.h:556
SEScalarMassPerTime * m_TargetSodiumDelivery
Definition: PulseConfiguration.h:567
SEScalarVolume * m_MeanCorpuscularVolume
Definition: PulseConfiguration.h:102
SEScalarLength * m_PupilDiameterBaseline
Definition: PulseConfiguration.h:486
eSwitch m_CerebrospinalFluidEnabled
Definition: PulseConfiguration.h:472
SEScalarPressureTimePerVolume * m_CardiovascularOpenResistance
Definition: PulseConfiguration.h:204
SEScalarArea * m_RightGlomerularFilteringSurfaceAreaBaseline
Definition: PulseConfiguration.h:559
SEScalarPressure * m_CentralControllerCO2PressureSetPoint
Definition: PulseConfiguration.h:616
SEScalarTime * m_HeartElastanceDistributedTimeDelay
Definition: PulseConfiguration.h:475
Definition: SEDynamicStabilization.h:9
Definition: SEElectroCardioGram.h:9
Definition: SEEngineConfiguration.h:8
Definition: SEEngineStabilization.h:11
Definition: SEEnvironmentalConditions.h:16
Definition: SENutrition.h:7
Definition: SEScalar0To1.h:8
Definition: SEScalarArea.h:25
Definition: SEScalarAreaPerTimePressure.h:27
Definition: SEScalarElectricResistance.h:24
Definition: SEScalarEnergyPerAmount.h:25
Definition: SEScalarEnergyPerMass.h:27
Definition: SEScalarHeatCapacitancePerAmount.h:24
Definition: SEScalarHeatCapacitancePerMass.h:27
Definition: SEScalarHeatConductance.h:27
Definition: SEScalarHeatResistance.h:27
Definition: SEScalar.h:19
Definition: SEScalarLength.h:29
Definition: SEScalarMassPerAmount.h:34
Definition: SEScalarMassPerTime.h:31
Definition: SEScalarMassPerVolume.h:37
Definition: SEScalarPowerPerAreaTemperatureToTheFourth.h:24
Definition: SEScalarPressure.h:29
Definition: SEScalarPressurePerVolume.h:26
Definition: SEScalarPressureTimePerVolume.h:29
Definition: SEScalarTemperature.h:27
Definition: SEScalarTime.h:28
Definition: SEScalarVolume.h:28
Definition: SEScalarVolumePerTime.h:32
Definition: SEScalarVolumePerTimePressureArea.h:25
Definition: SESubstanceManager.h:9
Definition: SETimedStabilization.h:8
Definition: SEScalarTemperature.h:8
Definition: SEScalarTime.h:8
Definition: SEScalarVolumePerTimePressureArea.h:8
Definition: SEScalarVolumePerTime.h:8
Definition: SEScalarVolume.h:8
Definition: Logger.h:14

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.