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