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"
8class SENutrition;
14
15namespace pulse { class PBConfiguration; }
20{
21 friend pulse::PBConfiguration;//friend the serialization class
22public:
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;
66protected:
67
72
73 SEScalarProperties m_Overrides;
74 SEScalarProperties m_Modifiers;
75
77
79public:
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;
95protected:
100
102
104public:
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
138protected:
148
150
152public:
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
198protected:
210
212
214public:
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;
226protected:
230
232
234public:
235 virtual bool IsPDEnabled() const { return m_PDEnabled == eSwitch::On; }
236 virtual void UsePDModel(eSwitch s) { m_PDEnabled = (s == eSwitch::NullSwitch) ? eSwitch::On : s; }
237protected:
238 eSwitch m_PDEnabled;
239
241
243public:
244 virtual bool HasECG() const;
245 virtual SEElectroCardioGram& GetECG();
246 virtual const SEElectroCardioGram* GetECG() const;
247 virtual void RemoveECG();
248 //protected:
250
252
254public:
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;
290protected:
300
302
304public:
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;
328protected:
335
337
339public:
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
380protected:
381
392
394
396public:
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
466protected:
485
487
489public:
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();
543protected:
545
548
553
558
561
563
564
566
568public:
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
609protected:
620
622
624public:
625 virtual bool IsTissueEnabled() const { return m_TissueEnabled == eSwitch::On; }
626 virtual void EnableTissue(eSwitch s) { m_TissueEnabled = (s == eSwitch::NullSwitch) ? eSwitch::On : s; }
627protected:
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.