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