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