diff --git a/.gitignore b/.gitignore
index 5dbb65f484aad00293fd30af04d3c470a8b5a1e3..b9c416431ce349830f90cf17e8ee456d0e591d16 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,4 +19,4 @@ proj/eclipse/build
/src/python/.idea/*
/src/python/pulse.egg*
-/proj/eclipse/build
+/proj/*
diff --git a/bin/InitialPatientState.json b/bin/InitialPatientState.json
index db1697d64a9a2e93ee371190531f214ab4f15ccf..49b9804c4ff47905b02d212c737e1452c54990e6 100644
--- a/bin/InitialPatientState.json
+++ b/bin/InitialPatientState.json
@@ -1,8 +1,6 @@
{
"Configuration": {
- "WritePatientBaselineFile": "On",
- "CardiovascularConfiguration" : { "UseExpandedVasculature" : "Off" },
- "RespiratoryConfiguration" : { "UseExpandedRespiratory" : "Off" }
+ "RespiratoryConfiguration" : { "ExpandedLungs" : "Off" }
},
"Scenario": {
"Name": "InitialStableState",
diff --git a/data/config/EngineUnitTests.config b/data/config/EngineUnitTests.config
index facc2d262b4a635bc0474b5619287b3e778b4ebb..256a036241d232c99c20627d09a30c40199d560b 100644
--- a/data/config/EngineUnitTests.config
+++ b/data/config/EngineUnitTests.config
@@ -50,16 +50,26 @@ RespiratoryDriver = EngineUnitTest Results=RespiratoryDriverOutput
AnesthesiaMachineCircuitAndTransport = EngineUnitTest Results=AnesthesiaMachineCircuitOutput,AnesthesiaMachineTransportOutput
RespiratoryWithAnesthesiaMachineCircuitAndTransport = EngineUnitTest Results=RespiratoryAndAnesthesiaMachineCircuitOutput,RespiratoryAndAnesthesiaMachineTransportOutput
+@group Inhaler
+RespiratoryWithInhalerCircuitAndTransport = EngineUnitTest Results=RespiratoryAndInhalerCircuitOutput,RespiratoryAndInhalerTransportOutput,AerosolInhalerTransportOutput
+
@group MechanicalVentilator
MechanicalVentilatorCircuitAndTransport = EngineUnitTest Results=MechanicalVentilatorCircuitOutput,MechanicalVentilatorTransportOutput
RespiratoryWithMechanicalVentilatorCircuitAndTransport = EngineUnitTest Results=RespiratoryAndMechanicalVentilatorCircuitOutput,RespiratoryAndMechanicalVentilatorTransportOutput
-@group Inhaler
-RespiratoryWithInhalerCircuitAndTransport = EngineUnitTest Results=RespiratoryAndInhalerCircuitOutput,RespiratoryAndInhalerTransportOutput,AerosolInhalerTransportOutput
-
@group MechanicalVentilation
RespiratoryWithMechanicalVentilationCircuitAndTransport = EngineUnitTest Results=RespiratoryAndMechanicalVentilationCircuitOutput,RespiratoryAndMechanicalVentilationTransportOutput,AerosolMechanicalVentilationTransportOutput
+@group ExpandedLungs
+ExpandedLungsCardiovascularCircuitAndTransport = EngineUnitTest Results=ExpandedLungsCardiovascularCircuitOutput,ExpandedLungsCardiovascularTransportOutput
+ExpandedLungsFullCardiovascularCircuitAndTransport = EngineUnitTest Results=ExpandedLungsFullCardiovascularCircuitOutput,ExpandedLungsFullCardiovascularTransportOutput
+ExpandedLungsCardiovascularBloodGases = EngineUnitTest Results=ExpandedLungsCardiovascularBloodGasesTestCircuitOutput,ExpandedLungsCardiovascularBloodGasesTestTransportOutput
+ExpandedLungsRespiratoryCircuitAndTransport = EngineUnitTest Results=ExpandedLungsRespiratoryCircuitOutput,ExpandedLungsRespiratoryTransportOutput
+ExpandedLungsRespiratoryWithAnesthesiaMachineCircuitAndTransport = EngineUnitTest Results=ExpandedLungsRespiratoryAndAnesthesiaMachineCircuitOutput,ExpandedLungsRespiratoryAndAnesthesiaMachineTransportOutput
+ExpandedLungsRespiratoryWithInhalerCircuitAndTransport = EngineUnitTest Results=ExpandedLungsRespiratoryAndInhalerCircuitOutput,ExpandedLungsRespiratoryAndInhalerTransportOutput,ExpandedLungsAerosolInhalerTransportOutput
+ExpandedLungsRespiratoryWithMechanicalVentilatorCircuitAndTransport = EngineUnitTest Results=ExpandedLungsRespiratoryAndMechanicalVentilatorCircuitOutput,ExpandedLungsRespiratoryAndMechanicalVentilatorTransportOutput
+ExpandedLungsRespiratoryWithMechanicalVentilationCircuitAndTransport = EngineUnitTest Results=ExpandedLungsRespiratoryAndMechanicalVentilationCircuitOutput,ExpandedLungsRespiratoryAndMechanicalVentilationTransportOutput
+
@group Environment
InternalTemperatureVariableBMRCircuitTest = EngineUnitTest Results=InternalTemperatureVariableBMRCircuitOutput
InternalTemperatureVariableSkinCircuitTest = EngineUnitTest Results=InternalTemperatureVariableSkinCircuitOutput
@@ -69,6 +79,8 @@ CombinedInternalAndEnvironmentVariableBMRandTemperatureCircuitTest = EngineUnitT
CombinedInternalAndEnvironmentSkinTempDropCircuitTest = EngineUnitTest Results=CombinedInternalAndEnvironmentSkinTempDropCircuitOutput
EnvironmentISO7730ComparisonTest = EngineUnitTest Results=EnvironmentISO7730Comparison
+
+
@group AcidBaseBinding
AcidBaseMath = EngineUnitTest
AcidBaseFeedback = EngineUnitTest
diff --git a/data/config/PatientVerification.config b/data/config/PatientVerification.config
index 648a1855ccaf905a236e9676598b510efd77eb8a..0abdbb79c73aa22710ae3c789ead893436eed68f 100644
--- a/data/config/PatientVerification.config
+++ b/data/config/PatientVerification.config
@@ -2,6 +2,12 @@
# DASH = Don't Run
# ASTERISK = Expected Failure, don't run and put it in the expected failures table (Run Yellow)
+# FastPlot = Plot every nth data point (hardcoded)
+# FullPlot = Plot all data points
+# FastPlotErrors = Only plot failures and only every nth data point (hardcoded)
+# FullPlotErrors = Plot all data points only for failing data
+# MemoryFastPlot = Do a fast plot, but manage memory better, slower plotting, but can handle larger files
+
ReportName=Patients Verification Test Summary
ExecuteTests=true
PlotResults=true
@@ -23,8 +29,9 @@ Patients=all
Executor=com.kitware.pulse.engine.testing.ScenarioTestDriver
-Macro ScenarioTest=ScenarioTestDriver FastPlot Baseline=scenarios/ Computed=./test_results/scenarios
+Macro ScenarioTest=ScenarioTestDriver FastPlotErrors Baseline=scenarios/ Computed=./test_results/scenarios
@group Patient-Validation
validation/Patient-Validation.json = ScenarioTest
+validation/Patient-Validation-ExpandedLungs.json = ScenarioTest
diff --git a/data/config/ScenarioVerification.config b/data/config/ScenarioVerification.config
index 336cfb3324f13ebf9ab2ef302af28e57dc4cb00e..80abe9d87c9dcbe93943a429f652c913af5476a3 100644
--- a/data/config/ScenarioVerification.config
+++ b/data/config/ScenarioVerification.config
@@ -106,10 +106,12 @@ patient/DyspneaVaried.json = ScenarioTest
patient/EffusionCondition.json = ScenarioTest
patient/EffusionConditionPlus.json = ScenarioTest
patient/HemothoraxVaried.json = ScenarioTest
+patient/HeterogeneousARDSExacerbation.json = ScenarioTest
patient/PneumoniaExacerbation.json = ScenarioTest
patient/PneumoniaModerateBothLungs.json = ScenarioTest
patient/PneumoniaSevereLeftLobe.json = ScenarioTest
patient/PneumoniaSevereRightLung.json = ScenarioTest
+patient/PrimaryBlastLungInjury.json = ScenarioTest
patient/PulmonaryFibrosisSevere.json = ScenarioTest
patient/RenalStenosisSevereBilateral.json = ScenarioTest
patient/RenalStenosisModerateUnilateral.json = ScenarioTest
diff --git a/data/human/adult/baselines/scenarios/patient/HeterogeneousARDSExacerbation.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HeterogeneousARDSExacerbation.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..d72b1e1a085fcbb02941534b71e887c35520250c
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/patient/HeterogeneousARDSExacerbation.zip.sha512
@@ -0,0 +1 @@
+7db09c5bfe66d834c0af43bb146fce58c89698ab9ba06d77002f981d15f7b439c0a99b1857360048c4bc69e5aba96eb0f4e15c58604efe75d1ffcd5794dee17b
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/patient/PrimaryBlastLungInjury.zip.sha512 b/data/human/adult/baselines/scenarios/patient/PrimaryBlastLungInjury.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..17e3126700e4470660e04b3e743e7261ba10f45f
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/patient/PrimaryBlastLungInjury.zip.sha512
@@ -0,0 +1 @@
+c6b7939149ad9f580e3a22dd3e8fcaca672c1d4945dc40c527f56fc5a6f38d25284cd5aa9f3f1ed0a96e1cddabd228755108b5672c48dfebf2c41b5f550d1b6f
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Bradycardic.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Bradycardic.zip.sha512
index 1cc8571c26ad9329dcf8532d3a8bd1d46e67c591..1a087799095e7662fe262664a9625e39b98978c4 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Bradycardic.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Bradycardic.zip.sha512
@@ -1 +1 @@
-a29db7ff447c12ae84a16361040eb4bed9ab1457d3f245005e0b17125f1e230ffa4d76dbb937f14ff48cd1098681243fb374ef65335029b34c098abbe545426c
\ No newline at end of file
+925694d20804ae484ffb106ef8e6324f2e4d93ce4ab63cef7cd01ec8ad04c0f15705d3881d1214ef60b212e1e0f763235d7f4c3652179c14525e916ce25e4a01
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Carol.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Carol.zip.sha512
index 6d17994c960249e5db344ea31c5793eb3222c385..804024100845b822762135c7a55d55fe435907f0 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Carol.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Carol.zip.sha512
@@ -1 +1 @@
-1d29cd4f4927fce041c74c486e3d4eefba8e320033c55f8f62b793b3917ed0811f9ce049489ab52aa517d29f08974fadfa3ccb79f35ac98e47d984dc7f214baa
\ No newline at end of file
+7cd826b0573cab28ceff3d26bca8bb2f304520ce6301ab9d2fac05bada69657b20691e7c23263388a6422e51579f204b0b508bf9ca47f7dd89d57685512b4283
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Cynthia.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Cynthia.zip.sha512
index 4cea09b09678c42bcc9d476abb012a21f8f176ba..3427f1dad72bc0afbeae6836e6f8173ab0b3b6e2 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Cynthia.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Cynthia.zip.sha512
@@ -1 +1 @@
-cb8682ccd6d66f428592a6cd50338359a0e40505f736d243e989ea418e8e3dc470e7421266a83a8021f37cde81e0ccfca047a98db17d3ec07ac1af934c2f2839
\ No newline at end of file
+c406977678224ecd0330c6df78d9514132b090670bbaead97dd18b588de3154c201224e8e4998ef628a08b479735f625f36a0f1509500c2a67e3d255dcef87b6
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-DefaultFemale.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-DefaultFemale.zip.sha512
index c2a319c9fb46bffa885c99604adc26be0c0dd642..e86ae1453a9d784bd10c517d227520421ecc9de5 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-DefaultFemale.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-DefaultFemale.zip.sha512
@@ -1 +1 @@
-a6956beb3b3d2521a125e8979e09249192ac6e686f7b30bb7a27ffe6fb00c30fdaa7b267d80cd66f8211e8da81d829633ef97848bbcd00835f33d4fa57e17005
\ No newline at end of file
+80da553e09c9c36beff25d5639384423bc9ba67af273b01dade702272ab7ea609088b4df2e3c9eabbec3733e902ab83f399256e77d38d79eb7beccb159d8ea7e
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-DefaultMale.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-DefaultMale.zip.sha512
index d466245fcb89c597a90d8ee579973cedbc3af222..eb58b9615627e0ff5b7ba930ad1a837d8216c99b 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-DefaultMale.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-DefaultMale.zip.sha512
@@ -1 +1 @@
-71e0a964cfd61bd67ee22b65ac9069ad1120e561143f5d12fde3f893a5606a5f197f89e4cd32a1ddb6fc4e6db505a39c0622cf65b9c154aa56c1ebc650362c2e
\ No newline at end of file
+f22415065873dd70d170e2a13096c78a60683eae74941f5774155ef7ba7324a79aba2aa327c52bb568d850b0a6d418ae799eb1f96507c386e9f7ff5051b14360
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Bradycardic.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Bradycardic.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..dcae6b9082e4e671d3bf68e70c4664cf715d9370
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Bradycardic.zip.sha512
@@ -0,0 +1 @@
+ce6ed4facc725c381b304b1c716396012279a9a6c86d1cccd01c21916f077ee31d6ec6463a8ed978a7791a98092fae0261ef7538c7a8229fd449f7755d93c13c
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Carol.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Carol.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..2df5ae052cad1af538c1e0cdb515060bbff0a477
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Carol.zip.sha512
@@ -0,0 +1 @@
+64ed410dcbdc3f7389bcdfd0636a42bd579a7bd3a9a6b391d220dce473609f8cf7fcfbc404f2fe0326b350271d5e67241a6b74efad2f33b3fb9dd4c336caa650
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Cynthia.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Cynthia.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..618400724404a8dd38c7fabd8d47ccb0fcc5ec71
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Cynthia.zip.sha512
@@ -0,0 +1 @@
+6e776eeea9ed7decff00938f5501dd4b6e8930880a18779f439fd875894fe3f33cf7846a3dc6ea47034efa6c4f6bc10d7b0dd47d8aa3cf22e53059bcedbbed03
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-DefaultFemale.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-DefaultFemale.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..fc8796fad1c2b0527bbb09d394fdccd588a4aa57
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-DefaultFemale.zip.sha512
@@ -0,0 +1 @@
+0e3aa29c229aeecff954cb0342ffa177f00fa33e6296a3bbde21377e7b88494e7569879befc82432b8ada12e4b4987764355f14b613cda33fd3cb672fac2c9ef
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-DefaultMale.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-DefaultMale.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..9fd6e3c43cdc24fc68da42164c66b1cf4732c29c
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-DefaultMale.zip.sha512
@@ -0,0 +1 @@
+fc498972f75718a5ff3ca3a73e25d2cd81494cfbbadc3b82d672c2ade8678c5e826221c85986aa3303c738e2fb0960becfc7d3fd8debb460d9a33581a6d0cbd1
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-ExtremeFemale.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-ExtremeFemale.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..cc74cb857c67c85f9ce241477efcbd872c52e5ff
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-ExtremeFemale.zip.sha512
@@ -0,0 +1 @@
+b91980081bd68f4a7b37fddf1f65ecabdb6ae87e51415f8af5a9baa3f03638ec5c68226482e0566b296f8f881a31673c69e78b0c9184e1514b8e8dce0410fe75
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-ExtremeMale.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-ExtremeMale.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..8561fe3f87684c3b3b81605cc4b26555067cc9d0
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-ExtremeMale.zip.sha512
@@ -0,0 +1 @@
+c4ba776d0a90fc9fd72767f580a2f887785a48176e9fd4fdbb51086baf4042037ac235edefd4f2c27858b952e4dc47bb27257ce1e21cebc9a8288fe6d06196ab
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Gus.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Gus.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..4085042cb1cd67cc74b60a1ecd3087814626e8a1
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Gus.zip.sha512
@@ -0,0 +1 @@
+53a27b749d1f6e9affffe6e065549ed9aec26323733a5a7693a80eff92fa9f788d872f0b0b5bad22d1d351108aebc024fe671b26ffb9fae41cc0cca0bd2410c7
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Hassan.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Hassan.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..89210b35ebf1f2a528a734171057c6d05c93da38
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Hassan.zip.sha512
@@ -0,0 +1 @@
+c5bef1995669214bd1c6423545f59d7050af7c606f6895fca53c8eedae812fcf0b18454d2ecbc40348607c3b7f357ef7c5ed1c19e5442015c67afca7e348e066
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Jane.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Jane.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..eec6bf0a06c7c90ea7ffa82876929ed3431e496d
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Jane.zip.sha512
@@ -0,0 +1 @@
+5676864387e5aaa0b6b0b50bcaa415cce970488ec3530cd48fb4a5cb2397b84cabbe68b6e3c6240dea4746ec224bd9ddf31790a491ac73da1d693ff0539a3f17
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Jeff.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Jeff.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..24c307a7182e97176975f53a73a5760061fba124
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Jeff.zip.sha512
@@ -0,0 +1 @@
+aeb0eeb5f890d36221f23ef640d904b1774697af092d87af3d84f9f842fb90c06125da09e4e2ebedcf349596a6be15917d851cefd9f416bf511f9b95e82658ed
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Joel.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Joel.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..aa5a518bcd5226e8c2cf2c1b795d74544f6ca223
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Joel.zip.sha512
@@ -0,0 +1 @@
+69422c4c2844c666a66a9eab45f7937a70d2405f1533809d53c09c1727d3b90be6df3e779ddad793d845f35a5e4206647ae69209d8e15ae6d8daab26797dd669
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Nathan.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Nathan.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..96a4a960ca2e4f1e4e926e663b91036a75cf5e7c
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Nathan.zip.sha512
@@ -0,0 +1 @@
+360cb1f85c0e2345e6a1161b26ef4b82137b4da0b692144047fffe7f292e9da2085dfefe93bd8b64d5ada2fe3152b97a674881035f90deb3e59c505097f7fcbe
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Overweight.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Overweight.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..4c548f336bccade9963eb2895c80e15887b9beb0
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Overweight.zip.sha512
@@ -0,0 +1 @@
+882b71e88ec6b81db9f488b0d74c9f69bb2fd94224ad8c0fdcdd30d076ca5a7226e7369aec0c9dcc27e67fc90f2cbd6b4e7f4d51862fafcfa348752fd40f0462
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Rick.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Rick.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..b6a7ebd996d9da3f621ed38069131231c915209a
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Rick.zip.sha512
@@ -0,0 +1 @@
+6bcbb64708f8580168c1df9372f9735ed359d6a697c09a482c98708f2cfd1ff97ce45426b66006ad8ddc1298bd405ed98e3e6d181d652eca1479b8aad91eea7a
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Soldier.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Soldier.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..85a211cad003cebaa41860cf77022da6f5cd29e1
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Soldier.zip.sha512
@@ -0,0 +1 @@
+779a3f3cfe1605b3e15f5c22280e9dbc389e0ccc27fefb2525edd06a9ea3899ea91d217a94bcae9278bd5153ec750a1f3f68d05ee7be706647acb7072d1232de
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-StandardFemale.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-StandardFemale.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..46234532f89b12e7f45f7c085f110c2a7f65cf9d
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-StandardFemale.zip.sha512
@@ -0,0 +1 @@
+caf4564831e9fbb01e7113564edc398277743ed59638648b18c2706ca1f174a8883f9f60f5db4f304060bbef953d6a2510c3e3656e84c7fa92f0cb74e30a1e5c
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-StandardMale.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-StandardMale.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..5396bb938c76802e7d3c56c304dfb02f68356e0d
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-StandardMale.zip.sha512
@@ -0,0 +1 @@
+d60b58bc2ef43eb5f04a89c9112f52d1103b0b33bd6e7ac5648d6484d86f4f59ad34190029c683fd685f24751c3fd70052f1dd366040470182d352e4fde54d71
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Tachycardic.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Tachycardic.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..18445377c292120d41c1047684aa231e3a7e4d64
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Tachycardic.zip.sha512
@@ -0,0 +1 @@
+837170d284129cfd16ceeacf5fd8530b28a071de85104c098839d1b3c1da710d36c5b3faef933f3b8f475514809f123fc4d7a97e31b4e8aec9866ad5361b6378
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Underweight.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Underweight.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..8ef1d817c74f9cdd0d4147793f235f9f6d00a82d
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Underweight.zip.sha512
@@ -0,0 +1 @@
+8e072c950beb9e9f65a4a7146b7e5a47679f47ef3d54f71ed58cc05d9448191f13d3fa6aff6e06c399e76513013d1882415d109fcc029950799f5208ec7ee13c
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Ventilated.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Ventilated.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..e340c7bc7879d554d1eaececdad405d85305b39f
--- /dev/null
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExpandedLungs-Ventilated.zip.sha512
@@ -0,0 +1 @@
+dbba53c0a415fe17d0a1438387910ad4343a10b027f529ff942fe7eb6d203c6a832a17f3f056f9752a633637d05cac8aa76dff600a34f23767ad6d18fe0aa66e
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExtremeFemale.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExtremeFemale.zip.sha512
index 26e98667d92f2d7c7590db1fe92e08c76c3d629c..29efd4ef33912331bce4b712baca1cfd6ddc3706 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExtremeFemale.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExtremeFemale.zip.sha512
@@ -1 +1 @@
-ee30f6921a243aa90330e592f1f134a44d9c1a3d09443e09d44ca93bd7fa57420c0be9a2c310b157ea794b48c0aa3c7cf3b7dab854ed0490120debf7e26a36a9
\ No newline at end of file
+f00dedcb2acf1264b0d0fddd2777e1275bb6285c926364e4020c6c6b9a46838adfc0823f4459e4668d3bf8c0c6bae36b853e460f922b0f3acdbf2143106811d6
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExtremeMale.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExtremeMale.zip.sha512
index 96611f9c37616c05d50748981209da542a3604d1..652379340f5af1f73e243384b728bbdc769d5a80 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExtremeMale.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-ExtremeMale.zip.sha512
@@ -1 +1 @@
-8809f2d9921234098bf5cbd85b4ce97fc86cfb323cb19e93e91824aaf4a9e30dcdf34843f4c704762520b565598df81a5fea7838ad0d013de3f5de38ac44158d
\ No newline at end of file
+df3c6b675076551b15c749bf9d89114720c51d12af00488776b03bd4c5ea5053f225ae5dba19bd15ee03eedd60895f5d74c2238f6c5f5b9fa7cef731dd2b6bb1
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Gus.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Gus.zip.sha512
index 091440cbfdd580199d1a653c77538888b0e6d3b7..d0b1e8508f1aeaed7802edfd7e879c37e26bd189 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Gus.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Gus.zip.sha512
@@ -1 +1 @@
-ea7403789c3c4da280884098d8cd5e3627b090eb0944638ef4369121efab7d3d4dbd523565c35e00bebf43a4c5e15753dd11520b157cf1bee250d4c07ba66915
\ No newline at end of file
+3a6fe81393403fa3da929d08e29e3d37f8d64ada0bc08cad4e3306bb46dba4ec5ebd1a311bfa6372ffcde651ea3316c85f670f05aea6933a611313dc8d868bc5
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Hassan.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Hassan.zip.sha512
index de9f1f6e19e23b2c7b2a3d5ba3ffb5daf7e2097e..bfc4a016eeb48cb50ca777de2239116a1b403dc2 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Hassan.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Hassan.zip.sha512
@@ -1 +1 @@
-502a3e54ab9f2abd9586d56c43e483d0d750b2c6fd24ebf30227e27cee8d68448d3cffc0486ac99f973813c56459f63079f60f0fed6f008b9b123c09799b877c
\ No newline at end of file
+5bed68c0e934464fd9f1f2b7cdf8c47c15a747218d3204a993c5031d9a19fffbe2b7c981b8e28514205539576703f4e79805e9df0f53033391ee83abb88995e7
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Jane.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Jane.zip.sha512
index fb93070be82c6a66eec46ed3e293af5d072f0991..e022b8ca6bbce8162a466f26ade8122be10195c1 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Jane.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Jane.zip.sha512
@@ -1 +1 @@
-20e9ba52776d27c808f0535e01b389b623f4fbda78933d39c4faf7eb3622d707b359bd17725ecbf408c3bdc67c84272c60fa84759a475309247dcdd6020a0bcc
\ No newline at end of file
+522cb841aef39d0be3033997887d45eb39fa0b0abe718fb231656c4d9dff0475bfd7a54ac892809ffd80c43165f02ed8b12b1ab0a6fa45fe863c1caa4c734bd1
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Jeff.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Jeff.zip.sha512
index 9e4768432686185bdd37372411c9aaa8b8011e24..729482f849930138d6b4d6ddcd674c0bfc22c35b 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Jeff.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Jeff.zip.sha512
@@ -1 +1 @@
-3fda20ce8bd5cc6d84e6bb469143fc658ba2b03ecbad7ba2ff802526ed8238a376f12edfa284121ec6465448303024f74053c0363e4f117ccce01ccc7633e4a0
\ No newline at end of file
+ee78b592423871be28899a9233537090145db61393af7075f38c669200203b60dea5e87e30f1ea4d8c058598cd3cd5de1166b6f8159339e8a3e28366e7f48bb6
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Joel.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Joel.zip.sha512
index c8df7c14cc74275b60614210e8c62ed89dad21cb..99360ecc27a4ef6b381fe7f48a1c2e35bd384ea6 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Joel.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Joel.zip.sha512
@@ -1 +1 @@
-81268820a982737833a7765b533021f4857dee583ee2618764831b5278a22e9d6851a1f67bc84f27ce412b7eda564eaae49d31edaf7e23b6fa8e5048dfb167d6
\ No newline at end of file
+940e457cccf777cc1bf6adffccda9a59ecd0525d3c9499b24f86fd633fa58158d4ddb82eb6016f570feca0b3e6d973edca940930b108aad84ffe9691a77be692
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Nathan.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Nathan.zip.sha512
index 999910f8b15d55f5d99076d9b60527b98e076062..c4814087b4d2d0b3a1c2bc45c8001710e5ddaf27 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Nathan.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Nathan.zip.sha512
@@ -1 +1 @@
-857417caa3b9bf6bf346f9f8dec674a5473318e537d31758a763fc581cac32407dc04da625175348d96323dff76cfef1a603b7060da58b6bb2bc029c68c579c0
\ No newline at end of file
+d31a6bdd15f617119ef9149d306d9aace6f4ac7876515237a443f711ce806dd9174303b6fc085dbd759b94afc06f67d3d14fb98e2274f536286bbe06afd56c79
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Overweight.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Overweight.zip.sha512
index 3db6b52d262042be88ebd6267d17bbc5061e57be..70ea8a165dbac9cca12c2a27054f0f601881736c 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Overweight.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Overweight.zip.sha512
@@ -1 +1 @@
-80e614893e7c8b052d4b9f96438b6c04b8a3ae7f8681b4e9a8d2e40536b7a591af748f563f6e06545c6f80e49489c91fb0bbab81fc321a0d2f68df9f88fe73fc
\ No newline at end of file
+fd4f1708160800f3a3a2b66aa2d6de707afbdb8387e785cd2911c622ed7e0cfdac7bd3107d92f58fc4be5b80a0a2427e0366e44e34bc47ff7dc1d0a886ea9159
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Rick.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Rick.zip.sha512
index c54d86eaf01a269c6ab69510706e6835f3de6b34..a49d8af94554852ed9284bb097bae94d7c8a3e02 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Rick.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Rick.zip.sha512
@@ -1 +1 @@
-ccf03e9b5a492e0e3309113312890d10e6657c4d465d75ae6135093e2de3f093b3dcc3e2c53e8ce0adb736deeb4ed4b0db346b007ccb8e0447ad1dc5eb4b5aa9
\ No newline at end of file
+a932db55136bb9ead0c93fbb89077870f5e0072379b4057a8ed43eda1800f944f44f170f17296a14446cb5248591173f157649aab3e4edc3f492335b8e329d62
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Soldier.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Soldier.zip.sha512
index 8a240c074ca18e8aa3ef36b2acc054df615c3cd4..e1809156b432db04bd70273be9ad59256d56b28f 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Soldier.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Soldier.zip.sha512
@@ -1 +1 @@
-7ad2df9dc402cd66ffba8bce2d1d26694df129d81a5e081f73f58593ae2c28aa280a22c42c6d9066e0e8b7d505ee86cead8615299e480599e9277c9db9f888bf
\ No newline at end of file
+ece817d14fe017f654ebc32bb124c48dea654b59286181d3f0f9cb54cd60f5935b12912970c45014409c788eb1045faa4818650cefc2c086df9b0f7bae8a8672
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-StandardFemale.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-StandardFemale.zip.sha512
index 8d86e9b75d3b8f4a027e94a972629d3fd49cc63e..47f86daeffead823577e158c9e1c72427315070a 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-StandardFemale.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-StandardFemale.zip.sha512
@@ -1 +1 @@
-5bd13a9fb68fbc42eb69d4928ae151e71c87b5d9f31e36b3b9317d6192e131d49c6ec6618af91e8053143c4292c46031fb6d38cf424c81d11be7e54ae0d4645f
\ No newline at end of file
+d3d62eeb5481b0057867a1d308488fd572e733167f0a9304d28f6ade89c8f4d07c7707a1857b972d6ec986f34e3afefa749c300ca7b6c690f3928c4942cf48a5
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-StandardMale.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-StandardMale.zip.sha512
index 8232e2097f107879d4158d964a947dca828a2bfe..eaa4b3cad9865a164b25aaaa664ab95c8ad53e7f 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-StandardMale.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-StandardMale.zip.sha512
@@ -1 +1 @@
-93c7b3be3585ce5c2102afe82029790621cc2998116c9a64d8880a5f7d8c594ac42965fddad2ad0ba6c5734045de0886a55f8b1a7a0fa95571c3cc61e577044e
\ No newline at end of file
+284be731e93009d87d8134b58338f1553c843e68c9e522d44cbb9191f5963b181cfc563cc43e93b17fe52ea9942d4a4310ee4daa1d64a53cf8883ad977c90ffa
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Tachycardic.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Tachycardic.zip.sha512
index d304925c4f567b7e46d650d435ebea062412bb38..6f0ed78bbb870d864e3e744daa477463fc63d6e4 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Tachycardic.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Tachycardic.zip.sha512
@@ -1 +1 @@
-59b21fe1e8c0a7c7e184b32292ef4edffafff7d644a80c48d5099f24b0c9ceb462b5659e9fe58ba4e84119d03001f89544888cce9aafe7cda514a75109e5a56a
\ No newline at end of file
+5cd0616965b3ebc6e22c7367f1899c7c0bc36d3d14938084c962004ba587a27a501157438b73ce4e79c6f2586f88607e078064da33a19639b80084316367f0dc
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Underweight.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Underweight.zip.sha512
index 357e56c04394d3fce6c1d762f333c89912961e34..2a2f3a114cbeab3d35b0200a8479256e06da83b5 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Underweight.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Underweight.zip.sha512
@@ -1 +1 @@
-e80326c0bcdebaa6d79f6eb83532926aaf508e11d21957babef5e4a5cf87e535b7cc21aa5876c8e907fbe089f7b637a71bc6382dd282d768e198e7918c5a4185
\ No newline at end of file
+45012f6ac9c0767316f0955a90186965126c7b8ae5a1182eed289a63c2384ef77d343b5d85a874cf8b9cb4396aae19ffc40eacdf84e73a90e59278ea255aa1ed
\ No newline at end of file
diff --git a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Ventilated.zip.sha512 b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Ventilated.zip.sha512
index 2259e7b211a15fa5de6413e4bfe68c1a2de65a8c..c9b2b696b14c39937818e511aeff74d8f3523a8c 100644
--- a/data/human/adult/baselines/scenarios/validation/Patient-Validation-Ventilated.zip.sha512
+++ b/data/human/adult/baselines/scenarios/validation/Patient-Validation-Ventilated.zip.sha512
@@ -1 +1 @@
-0be130da83e2d7dc3e7c0cc85b1c3e7131bbde254bc97cb38db4f8fe96dab752972fe6391af959f4736b337b66f09def85a2b7cec2a92391c47f43479c63f175
\ No newline at end of file
+0aed45ffdf000a2aba4885041c0f46f263c7c293adc6e3d60e575ce20b5579090f5ee3c3e7f16f2c1d794bd82d02efcf613362a139badba9514c4219af964218
\ No newline at end of file
diff --git a/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsCardiovascularBloodGasesTestCircuitOutput.zip.sha512 b/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsCardiovascularBloodGasesTestCircuitOutput.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..c9929ce3aa611c817bfdf30a05c32b04a092c1df
--- /dev/null
+++ b/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsCardiovascularBloodGasesTestCircuitOutput.zip.sha512
@@ -0,0 +1 @@
+16bda466ad31ec0ff5ba178ee87f53cbebf7ad2b2946670c299a6504a6d4b4bd282d9caa30c02459fe4759b3b0d7ca7ded3023f5641cc6f00f8179a03696254c
\ No newline at end of file
diff --git a/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsCardiovascularCircuitOutput.zip.sha512 b/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsCardiovascularCircuitOutput.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..fcf80e13f9762acc70d1ec7c263e5cbeef03126a
--- /dev/null
+++ b/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsCardiovascularCircuitOutput.zip.sha512
@@ -0,0 +1 @@
+01046da19ae0426fbcf920facea624393cec014687bb0c0fd0fe0e970020209b14a98a93f0f256c4a4593ee7f2c0d44815e18457dfda06f6586016c8c3f1a2b2
\ No newline at end of file
diff --git a/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsFullCardiovascularCircuitOutput.zip.sha512 b/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsFullCardiovascularCircuitOutput.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..1fffcfbd80613807ea40566d059bdcdc32002b26
--- /dev/null
+++ b/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsFullCardiovascularCircuitOutput.zip.sha512
@@ -0,0 +1 @@
+6b7e26b87f82be420d164bf30267a4a2c6a29a84e8605cb1c13f285ae8171237775c339414d63a40c50f06e91a7ea01a36f6fddca3e8e4b9971b448dd1b70a95
\ No newline at end of file
diff --git a/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsRespiratoryAndAnesthesiaMachineCircuitOutput.zip.sha512 b/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsRespiratoryAndAnesthesiaMachineCircuitOutput.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..b67d9d1ec0d7031cb86558607b80cac58438b8d4
--- /dev/null
+++ b/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsRespiratoryAndAnesthesiaMachineCircuitOutput.zip.sha512
@@ -0,0 +1 @@
+1bce7346584577642fd38c1a937af3ea71a226cd4a71ed9ff3b9289df50294c521ac19f43ffe7de8987fe89f0731174c579b6411ebfcb74b9d7d94fcf1c00b72
\ No newline at end of file
diff --git a/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsRespiratoryAndInhalerCircuitOutput.zip.sha512 b/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsRespiratoryAndInhalerCircuitOutput.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..8859b3b141fd920650aead7324177780138a1683
--- /dev/null
+++ b/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsRespiratoryAndInhalerCircuitOutput.zip.sha512
@@ -0,0 +1 @@
+38fcf62c9c3dd5ca647a9d65730c932283666002d674a060d2c7c83a77c9504c1004287883ab28bfcd83226d3fc76aa3cc802bb70bb48857ff1579f7cc839378
\ No newline at end of file
diff --git a/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsRespiratoryAndMechanicalVentilationCircuitOutput.zip.sha512 b/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsRespiratoryAndMechanicalVentilationCircuitOutput.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..9f2ec2347cba40fcb661f4b89b9f2e4a0bc50151
--- /dev/null
+++ b/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsRespiratoryAndMechanicalVentilationCircuitOutput.zip.sha512
@@ -0,0 +1 @@
+08e6398f249362888262dae2594336085a4ef6fdb68123cc5c0440ab6e03a2146b8a421ee06795ddf11c0fe0e71d8a2ba9c3e68a568aa0c5da2ec47c42db18f1
\ No newline at end of file
diff --git a/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsRespiratoryAndMechanicalVentilatorCircuitOutput.zip.sha512 b/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsRespiratoryAndMechanicalVentilatorCircuitOutput.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..58f5032894933256fbb4666a59d97dd518b8b390
--- /dev/null
+++ b/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsRespiratoryAndMechanicalVentilatorCircuitOutput.zip.sha512
@@ -0,0 +1 @@
+9269f3f79584d9e08e5397eb0fedb6119dea0d6053bf328344a1d4d2f6f1fe9291afee0d3bf7df3f2ec7fa395b9c29b79755f6dd7baff63c53879d4dc3284944
\ No newline at end of file
diff --git a/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsRespiratoryCircuitOutput.zip.sha512 b/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsRespiratoryCircuitOutput.zip.sha512
new file mode 100644
index 0000000000000000000000000000000000000000..b8fe2f92bf4df189239f82367b0fc566c03073e6
--- /dev/null
+++ b/data/human/adult/baselines/unit_tests/pulse/ExpandedLungsRespiratoryCircuitOutput.zip.sha512
@@ -0,0 +1 @@
+5a0a9031d5bd96ccc6e0feaad9597ee753941a07c621e2ed9b5820f93100bb6ddcdcfb34b9372c470b5a11ab37a71cc362f38a8496b103dfccfc9897edc07a86
\ No newline at end of file
diff --git a/data/human/adult/scenarios/ExpandedLungsDataRequests.json b/data/human/adult/scenarios/ExpandedLungsDataRequests.json
new file mode 100644
index 0000000000000000000000000000000000000000..898bb5986bafb63bf2009a749ab70af84b2ee948
--- /dev/null
+++ b/data/human/adult/scenarios/ExpandedLungsDataRequests.json
@@ -0,0 +1,114 @@
+{
+ "DataRequest":
+ [
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightSuperiorLobeApicalAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightSuperiorLobeApicalAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightSuperiorLobeApicalAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightSuperiorLobeApicalPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightSuperiorLobeApicalPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightSuperiorLobePosteriorAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightSuperiorLobePosteriorAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightSuperiorLobePosteriorAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightSuperiorLobePosteriorPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightSuperiorLobePosteriorPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightSuperiorLobeAnteriorAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightSuperiorLobeAnteriorAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightSuperiorLobeAnteriorAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightSuperiorLobeAnteriorPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightSuperiorLobeAnteriorPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightMiddleLobeLateralAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightMiddleLobeLateralAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightMiddleLobeLateralAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightMiddleLobeLateralPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightMiddleLobeLateralPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightMiddleLobeMedialAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightMiddleLobeMedialAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightMiddleLobeMedialAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightMiddleLobeMedialPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightMiddleLobeMedialPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightInferiorLobeSuperiorAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightInferiorLobeSuperiorAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightInferiorLobeSuperiorAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightInferiorLobeSuperiorPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightInferiorLobeSuperiorPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightInferiorLobeMedialBasalAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightInferiorLobeMedialBasalAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightInferiorLobeMedialBasalAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightInferiorLobeMedialBasalPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightInferiorLobeMedialBasalPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightInferiorLobeAnteriorBasalAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightInferiorLobeAnteriorBasalAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightInferiorLobeAnteriorBasalAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightInferiorLobeAnteriorBasalPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightInferiorLobeAnteriorBasalPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightInferiorLobeLateralBasalAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightInferiorLobeLateralBasalAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightInferiorLobeLateralBasalAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightInferiorLobeLateralBasalPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightInferiorLobeLateralBasalPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightInferiorLobePosteriorBasalAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightInferiorLobePosteriorBasalAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "RightInferiorLobePosteriorBasalAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightInferiorLobePosteriorBasalPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "RightInferiorLobePosteriorBasalPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftInferiorLobePosteriorBasalAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftInferiorLobePosteriorBasalAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftInferiorLobePosteriorBasalAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "LeftInferiorLobePosteriorBasalPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "LeftInferiorLobePosteriorBasalPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftInferiorLobeLateralBasalAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftInferiorLobeLateralBasalAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftInferiorLobeLateralBasalAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "LeftInferiorLobeLateralBasalPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "LeftInferiorLobeLateralBasalPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftInferiorLobeAnteromedialBasalAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftInferiorLobeAnteromedialBasalAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftInferiorLobeAnteromedialBasalAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftInferiorLobeSuperiorAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftInferiorLobeSuperiorAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftInferiorLobeSuperiorAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "LeftInferiorLobeSuperiorPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "LeftInferiorLobeSuperiorPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftSuperiorLobeInferiorLingulaAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftSuperiorLobeInferiorLingulaAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftSuperiorLobeInferiorLingulaAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftSuperiorLobeSuperiorLingulaAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftSuperiorLobeSuperiorLingulaAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftSuperiorLobeSuperiorLingulaAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftSuperiorLobeAnteriorAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftSuperiorLobeAnteriorAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftSuperiorLobeAnteriorAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "LeftSuperiorLobeAnteriorPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "LeftSuperiorLobeAnteriorPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftSuperiorLobeApicoposteriorAlveoli", "PropertyName": "Volume", "Unit": "mL" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftSuperiorLobeApicoposteriorAlveoli", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "GasCompartment", "CompartmentName": "LeftSuperiorLobeApicoposteriorAlveoli", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "LeftSuperiorLobeApicoposteriorPulmonaryCapillaries", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+ { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "LeftSuperiorLobeApicoposteriorPulmonaryCapillaries", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" },
+
+
+ ]
+}
diff --git a/data/human/adult/scenarios/patient/HeterogeneousARDSExacerbation.json b/data/human/adult/scenarios/patient/HeterogeneousARDSExacerbation.json
new file mode 100644
index 0000000000000000000000000000000000000000..254c4dad398b6546c3cfb03df82a9b00c4d52b87
--- /dev/null
+++ b/data/human/adult/scenarios/patient/HeterogeneousARDSExacerbation.json
@@ -0,0 +1,91 @@
+{
+ "Configuration": {
+ "RespiratoryConfiguration" : { "ExpandedLungs" : "On" }
+ },
+ "Scenario": {
+ "Name": "HeterogeneousARDSExacerbation",
+ "Description": "Increasing severities of ARDS.",
+ "PatientConfiguration": { "PatientFile": "StandardMale.json" },
+ "DataRequestFile": [
+ "StandardDataRequests.json",
+ "RespiratoryDataRequests.json",
+ "ExpandedLungsDataRequests.json"
+ ],
+ "AnyAction":
+ [
+ { "AdvanceTime": { "Time": { "ScalarTime": { "Value": 2.0, "Unit": "min" }}}},
+ { "PatientAction": { "AcuteRespiratoryDistressSyndromeExacerbation":
+ {
+ "Severity": [
+ { "Compartment": "RightSuperiorLobeApical", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightSuperiorLobePosterior", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightSuperiorLobeAnterior", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightMiddleLobeLateral", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightMiddleLobeMedial", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightInferiorLobeSuperior", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightInferiorLobeMedialBasal", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightInferiorLobeAnteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightInferiorLobeLateralBasal", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightInferiorLobePosteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "LeftInferiorLobePosteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "LeftInferiorLobeLateralBasal", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "LeftInferiorLobeAnteromedialBasal", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "LeftInferiorLobeSuperior", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "LeftSuperiorLobeInferiorLingula", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "LeftSuperiorLobeSuperiorLingula", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "LeftSuperiorLobeAnterior", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "LeftSuperiorLobeApicoposterior", "Severity": { "Scalar0To1": { "Value": 0.3 }}}]
+ }}
+ },
+ { "AdvanceTime": { "Time": { "ScalarTime": { "Value": 5.0, "Unit": "min" }}}},
+ { "PatientAction": { "AcuteRespiratoryDistressSyndromeExacerbation":
+ {
+ "Severity": [
+ { "Compartment": "RightSuperiorLobeApical", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightSuperiorLobePosterior", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightSuperiorLobeAnterior", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightMiddleLobeLateral", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightMiddleLobeMedial", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightInferiorLobeSuperior", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightInferiorLobeMedialBasal", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightInferiorLobeAnteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightInferiorLobeLateralBasal", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightInferiorLobePosteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "LeftInferiorLobePosteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "LeftInferiorLobeLateralBasal", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "LeftInferiorLobeAnteromedialBasal", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "LeftInferiorLobeSuperior", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "LeftSuperiorLobeInferiorLingula", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "LeftSuperiorLobeSuperiorLingula", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "LeftSuperiorLobeAnterior", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "LeftSuperiorLobeApicoposterior", "Severity": { "Scalar0To1": { "Value": 0.6 }}}]
+ }}
+ },
+ { "AdvanceTime": { "Time": { "ScalarTime": { "Value": 5.0, "Unit": "min" }}}},
+ { "PatientAction": { "AcuteRespiratoryDistressSyndromeExacerbation":
+ {
+ "Severity": [
+ { "Compartment": "RightSuperiorLobeApical", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightSuperiorLobePosterior", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightSuperiorLobeAnterior", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightMiddleLobeLateral", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightMiddleLobeMedial", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightInferiorLobeSuperior", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightInferiorLobeMedialBasal", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightInferiorLobeAnteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightInferiorLobeLateralBasal", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightInferiorLobePosteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "LeftInferiorLobePosteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "LeftInferiorLobeLateralBasal", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "LeftInferiorLobeAnteromedialBasal", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "LeftInferiorLobeSuperior", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "LeftSuperiorLobeInferiorLingula", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "LeftSuperiorLobeSuperiorLingula", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "LeftSuperiorLobeAnterior", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "LeftSuperiorLobeApicoposterior", "Severity": { "Scalar0To1": { "Value": 0.9 }}}]
+ }}
+ },
+ { "AdvanceTime": { "Time": { "ScalarTime": { "Value": 5.0, "Unit": "min" }}}}
+ ]
+ }
+}
diff --git a/data/human/adult/scenarios/patient/PrimaryBlastLungInjury.json b/data/human/adult/scenarios/patient/PrimaryBlastLungInjury.json
new file mode 100644
index 0000000000000000000000000000000000000000..8ad86048d135aa1a68952ba33ffa31f13e5f033b
--- /dev/null
+++ b/data/human/adult/scenarios/patient/PrimaryBlastLungInjury.json
@@ -0,0 +1,92 @@
+{
+ "Configuration": {
+ "RespiratoryConfiguration" : { "ExpandedLungs" : "On" }
+ },
+ "Scenario":
+ {
+ "Name": "PrimaryBlastLungInjury",
+ "Description": "Increasing severities of ARDS.",
+ "PatientConfiguration": { "PatientFile": "StandardMale.json" },
+ "DataRequestFile": [
+ "StandardDataRequests.json",
+ "RespiratoryDataRequests.json",
+ "ExpandedLungsDataRequests.json"
+ ],
+ "AnyAction":
+ [
+ { "AdvanceTime": { "Time": { "ScalarTime": { "Value": 2.0, "Unit": "min" }}}},
+ { "PatientAction": { "PrimaryBlastLungInjury":
+ {
+ "Severity": [
+ { "Compartment": "RightSuperiorLobeApical", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightSuperiorLobePosterior", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightSuperiorLobeAnterior", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightMiddleLobeLateral", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightMiddleLobeMedial", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightInferiorLobeSuperior", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightInferiorLobeMedialBasal", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightInferiorLobeAnteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightInferiorLobeLateralBasal", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "RightInferiorLobePosteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "LeftInferiorLobePosteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "LeftInferiorLobeLateralBasal", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "LeftInferiorLobeAnteromedialBasal", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "LeftInferiorLobeSuperior", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "LeftSuperiorLobeInferiorLingula", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "LeftSuperiorLobeSuperiorLingula", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "LeftSuperiorLobeAnterior", "Severity": { "Scalar0To1": { "Value": 0.3 }}},
+ { "Compartment": "LeftSuperiorLobeApicoposterior", "Severity": { "Scalar0To1": { "Value": 0.3 }}}]
+ }}
+ },
+ { "AdvanceTime": { "Time": { "ScalarTime": { "Value": 5.0, "Unit": "min" }}}},
+ { "PatientAction": { "PrimaryBlastLungInjury":
+ {
+ "Severity": [
+ { "Compartment": "RightSuperiorLobeApical", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightSuperiorLobePosterior", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightSuperiorLobeAnterior", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightMiddleLobeLateral", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightMiddleLobeMedial", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightInferiorLobeSuperior", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightInferiorLobeMedialBasal", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightInferiorLobeAnteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightInferiorLobeLateralBasal", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "RightInferiorLobePosteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "LeftInferiorLobePosteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "LeftInferiorLobeLateralBasal", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "LeftInferiorLobeAnteromedialBasal", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "LeftInferiorLobeSuperior", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "LeftSuperiorLobeInferiorLingula", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "LeftSuperiorLobeSuperiorLingula", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "LeftSuperiorLobeAnterior", "Severity": { "Scalar0To1": { "Value": 0.6 }}},
+ { "Compartment": "LeftSuperiorLobeApicoposterior", "Severity": { "Scalar0To1": { "Value": 0.6 }}}]
+ }}
+ },
+ { "AdvanceTime": { "Time": { "ScalarTime": { "Value": 5.0, "Unit": "min" }}}},
+ { "PatientAction": { "PrimaryBlastLungInjury":
+ {
+ "Severity": [
+ { "Compartment": "RightSuperiorLobeApical", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightSuperiorLobePosterior", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightSuperiorLobeAnterior", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightMiddleLobeLateral", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightMiddleLobeMedial", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightInferiorLobeSuperior", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightInferiorLobeMedialBasal", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightInferiorLobeAnteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightInferiorLobeLateralBasal", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "RightInferiorLobePosteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "LeftInferiorLobePosteriorBasal", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "LeftInferiorLobeLateralBasal", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "LeftInferiorLobeAnteromedialBasal", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "LeftInferiorLobeSuperior", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "LeftSuperiorLobeInferiorLingula", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "LeftSuperiorLobeSuperiorLingula", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "LeftSuperiorLobeAnterior", "Severity": { "Scalar0To1": { "Value": 0.9 }}},
+ { "Compartment": "LeftSuperiorLobeApicoposterior", "Severity": { "Scalar0To1": { "Value": 0.9 }}}]
+ }}
+ },
+ { "AdvanceTime": { "Time": { "ScalarTime": { "Value": 10.0, "Unit": "min" }}}}
+ ]
+ }
+}
diff --git a/data/human/adult/scenarios/validation/Patient-Validation-ExpandedLungs.json b/data/human/adult/scenarios/validation/Patient-Validation-ExpandedLungs.json
new file mode 100644
index 0000000000000000000000000000000000000000..9e16f3137c4690a49eff48f650115973f0378730
--- /dev/null
+++ b/data/human/adult/scenarios/validation/Patient-Validation-ExpandedLungs.json
@@ -0,0 +1,37 @@
+{
+ "Configuration": {
+ "RespiratoryConfiguration" : { "ExpandedLungs" : "On" }
+ },
+ "Scenario": {
+ "Name": "System-Validation-ExpandedLungs",
+ "Description": "Validation of all system data, including the ExpandedLungs.",
+ "PatientConfiguration": { "PatientFile": "StandardMale.json" },
+ "DataRequestFile":
+ [
+ "./validation/requests/Patient.json",
+ "./validation/requests/BloodChemistry.json",
+ "./validation/requests/Cardiovascular.json",
+ "./validation/requests/CardiovascularCompartments.json",
+ "./validation/requests/CardiovascularExpandedLungsCompartments.json",
+ "./validation/requests/Endocrine.json",
+ "./validation/requests/Energy.json",
+ "./validation/requests/Gastrointestinal.json",
+ "./validation/requests/Renal.json",
+ "./validation/requests/RenalCompartments.json",
+ "./validation/requests/RenalSubstances.json",
+ "./validation/requests/Respiratory.json",
+ "./validation/requests/RespiratoryCompartments.json",
+ "./validation/requests/RespiratoryExpandedLungsCompartments.json",
+ "./validation/requests/Tissue.json",
+ "./validation/requests/TissueCompartments.json"
+ ],
+ "AnyAction":
+ [
+ { "AdvanceTime": { "Time": { "ScalarTime": { "Value": 2.0, "Unit": "min" }}}},
+ { "PatientAction": { "Assessment": { "Type": "ArterialBloodGasTest" }}},
+ { "PatientAction": { "Assessment": { "Type": "CompleteBloodCount" }}},
+ { "PatientAction": { "Assessment": { "Type": "ComprehensiveMetabolicPanel" }}},
+ { "PatientAction": { "Assessment": { "Type": "Urinalysis" }}}
+ ]
+ }
+}
\ No newline at end of file
diff --git a/data/human/adult/validation/SystemValidationData.xlsx b/data/human/adult/validation/SystemValidationData.xlsx
index a0564cfba726ef241352afaf180e13a2660ff020..e5b6c072971b8ead35ac6b77b897b6ba31ca9d6e 100644
Binary files a/data/human/adult/validation/SystemValidationData.xlsx and b/data/human/adult/validation/SystemValidationData.xlsx differ
diff --git a/docs/Markdown/Interface.md b/docs/Markdown/Interface.md
index da243cf9d3a86a5f925a12444b800be8b78c770f..74ca908e23444a320a23d6ea279c4f7919ff337d 100644
--- a/docs/Markdown/Interface.md
+++ b/docs/Markdown/Interface.md
@@ -337,6 +337,7 @@ You will need to create an instance of an action class, fill it out with the nec
@refitem MechanicalVentilationTable "Mechanical Ventilation"
@refitem NeedleDecompressionTable "Needle Decompression"
@refitem PericardialEffusionTable "Pericardial Effusion"
+ @refitem PrimaryBlastLungInjuryTable "Primary Blast Lung Injury"
@refitem PulmonaryShuntExacerbationTable "Pulmonary Shunt Exacerbation"
@refitem RespiratoryFatigueTable "Respiratory Fatigue"
@refitem RespiratoryMechanicsConfigurationTable "Respiratory Mechanics Configuration"
diff --git a/proj/eclipse/.gitignore b/proj/eclipse/.gitignore
deleted file mode 100644
index 84c048a73cc2e5dd24f807669eb99b0ce3123195..0000000000000000000000000000000000000000
--- a/proj/eclipse/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build/
diff --git a/src/cpp/cdm/engine/SEPatientActionCollection.cpp b/src/cpp/cdm/engine/SEPatientActionCollection.cpp
index c040827e4ae180d7e0a8a59a9679479f749645a3..60f4246a15c87a54b6152d18011b90fc18e9dc56 100644
--- a/src/cpp/cdm/engine/SEPatientActionCollection.cpp
+++ b/src/cpp/cdm/engine/SEPatientActionCollection.cpp
@@ -29,6 +29,7 @@
#include "cdm/patient/actions/SENeedleDecompression.h"
#include "cdm/patient/actions/SEPericardialEffusion.h"
#include "cdm/patient/actions/SEPneumoniaExacerbation.h"
+#include "cdm/patient/actions/SEPrimaryBlastLungInjury.h"
#include "cdm/patient/actions/SEPulmonaryShuntExacerbation.h"
#include "cdm/patient/actions/SERespiratoryFatigue.h"
#include "cdm/patient/actions/SERespiratoryMechanicsConfiguration.h"
@@ -81,6 +82,7 @@ SEPatientActionCollection::SEPatientActionCollection(SESubstanceManager& subMgr)
m_RespiratoryMechanicsModification = nullptr;
m_PericardialEffusion = nullptr;
m_PneumoniaExacerbation = nullptr;
+ m_PrimaryBlastLungInjury = nullptr;
m_PulmonaryShuntExacerbation = nullptr;
m_SupplementalOxygen = nullptr;
m_LeftOpenTensionPneumothorax = nullptr;
@@ -121,6 +123,7 @@ SEPatientActionCollection::~SEPatientActionCollection()
SAFE_DELETE(m_RightNeedleDecompression);
SAFE_DELETE(m_PericardialEffusion);
SAFE_DELETE(m_PneumoniaExacerbation);
+ SAFE_DELETE(m_PrimaryBlastLungInjury);
SAFE_DELETE(m_PulmonaryShuntExacerbation);
SAFE_DELETE(m_RespiratoryFatigue);
SAFE_DELETE(m_RespiratoryMechanicsConfiguration);
@@ -168,6 +171,7 @@ void SEPatientActionCollection::Clear()
RemoveRightNeedleDecompression();
RemovePericardialEffusion();
RemovePneumoniaExacerbation();
+ RemovePrimaryBlastLungInjury();
RemovePulmonaryShuntExacerbation();
RemoveRespiratoryFatigue();
RemoveRespiratoryMechanicsConfiguration();
@@ -541,6 +545,16 @@ bool SEPatientActionCollection::ProcessAction(const SEPatientAction& action)
return true;
}
+ const SEPrimaryBlastLungInjury* pbli = dynamic_cast(&action);
+ if (pbli != nullptr)
+ {
+ GetPrimaryBlastLungInjury().Copy(*pbli, true);
+ m_PrimaryBlastLungInjury->Activate();
+ if (!m_PrimaryBlastLungInjury->IsActive())
+ RemovePrimaryBlastLungInjury();
+ return true;
+ }
+
const SEPulmonaryShuntExacerbation* pulshuntex = dynamic_cast(&action);
if (pulshuntex != nullptr)
{
@@ -1333,6 +1347,26 @@ void SEPatientActionCollection::RemovePneumoniaExacerbation()
m_PneumoniaExacerbation->Deactivate();
}
+bool SEPatientActionCollection::HasPrimaryBlastLungInjury() const
+{
+ return m_PrimaryBlastLungInjury == nullptr ? false : m_PrimaryBlastLungInjury->IsActive();
+}
+SEPrimaryBlastLungInjury& SEPatientActionCollection::GetPrimaryBlastLungInjury()
+{
+ if (m_PrimaryBlastLungInjury == nullptr)
+ m_PrimaryBlastLungInjury = new SEPrimaryBlastLungInjury(GetLogger());
+ return *m_PrimaryBlastLungInjury;
+}
+const SEPrimaryBlastLungInjury* SEPatientActionCollection::GetPrimaryBlastLungInjury() const
+{
+ return m_PrimaryBlastLungInjury;
+}
+void SEPatientActionCollection::RemovePrimaryBlastLungInjury()
+{
+ if (m_PrimaryBlastLungInjury)
+ m_PrimaryBlastLungInjury->Deactivate();
+}
+
bool SEPatientActionCollection::HasPulmonaryShuntExacerbation() const
{
return m_PulmonaryShuntExacerbation == nullptr ? false : m_PulmonaryShuntExacerbation->IsActive();
@@ -1781,6 +1815,8 @@ void SEPatientActionCollection::GetAllActions(std::vector& acti
actions.push_back(GetPericardialEffusion());
if (HasPneumoniaExacerbation())
actions.push_back(GetPneumoniaExacerbation());
+ if (HasPrimaryBlastLungInjury())
+ actions.push_back(GetPrimaryBlastLungInjury());
if (HasPulmonaryShuntExacerbation())
actions.push_back(GetPulmonaryShuntExacerbation());
if (HasRespiratoryFatigue())
@@ -1884,6 +1920,8 @@ const SEScalar* SEPatientActionCollection::GetScalar(const std::string& actionNa
return GetPericardialEffusion().GetScalar(property);
if (actionName == "PneumoniaExacerbation")
return GetPneumoniaExacerbation().GetScalar(property);
+ if (actionName == "PrimaryBlastLungInjury")
+ return GetPrimaryBlastLungInjury().GetScalar(property);
if (actionName == "PulmonaryShuntExacerbation")
return GetPulmonaryShuntExacerbation().GetScalar(property);
if (actionName == "RespiratoryFatigue")
diff --git a/src/cpp/cdm/engine/SEPatientActionCollection.h b/src/cpp/cdm/engine/SEPatientActionCollection.h
index d885e4b476370d6e4fae87e6bbdbf27e06f7e999..356a3331798f723b9b1d3781ca7b97bf1daf857b 100644
--- a/src/cpp/cdm/engine/SEPatientActionCollection.h
+++ b/src/cpp/cdm/engine/SEPatientActionCollection.h
@@ -30,6 +30,7 @@ class SEMechanicalVentilation;
class SENeedleDecompression;
class SEPericardialEffusion;
class SEPneumoniaExacerbation;
+class SEPrimaryBlastLungInjury;
class SEPulmonaryShuntExacerbation;
class SERespiratoryFatigue;
class SERespiratoryMechanicsConfiguration;
@@ -203,6 +204,11 @@ public:
const SEPneumoniaExacerbation* GetPneumoniaExacerbation() const;
void RemovePneumoniaExacerbation();
+ bool HasPrimaryBlastLungInjury() const;
+ SEPrimaryBlastLungInjury& GetPrimaryBlastLungInjury();
+ const SEPrimaryBlastLungInjury* GetPrimaryBlastLungInjury() const;
+ void RemovePrimaryBlastLungInjury();
+
bool HasPulmonaryShuntExacerbation() const;
SEPulmonaryShuntExacerbation& GetPulmonaryShuntExacerbation();
const SEPulmonaryShuntExacerbation* GetPulmonaryShuntExacerbation() const;
@@ -327,6 +333,7 @@ protected:
SENeedleDecompression* m_RightNeedleDecompression;
SEPericardialEffusion* m_PericardialEffusion;
SEPneumoniaExacerbation* m_PneumoniaExacerbation;
+ SEPrimaryBlastLungInjury* m_PrimaryBlastLungInjury;
SEPulmonaryShuntExacerbation* m_PulmonaryShuntExacerbation;
SERespiratoryFatigue* m_RespiratoryFatigue;
SERespiratoryMechanicsConfiguration* m_RespiratoryMechanicsConfiguration;
diff --git a/src/cpp/cdm/files.cmake b/src/cpp/cdm/files.cmake
index 8d0fad42d5e1176cf976ecd7662a38936d188c09..6e08830c49cee280926debb5099a0efda0fb8a1e 100644
--- a/src/cpp/cdm/files.cmake
+++ b/src/cpp/cdm/files.cmake
@@ -155,6 +155,7 @@ set(CDM_H_FILES
cdm/patient/actions/SEPatientAssessmentRequest.h
cdm/patient/actions/SEPericardialEffusion.h
cdm/patient/actions/SEPneumoniaExacerbation.h
+ cdm/patient/actions/SEPrimaryBlastLungInjury.h
cdm/patient/actions/SEPulmonaryShuntExacerbation.h
cdm/patient/actions/SERespiratoryFatigue.h
cdm/patient/actions/SERespiratoryMechanicsConfiguration.h
@@ -531,6 +532,7 @@ set(CDM_CPP_FILES
cdm/patient/actions/SEPatientAssessmentRequest.cpp
cdm/patient/actions/SEPericardialEffusion.cpp
cdm/patient/actions/SEPneumoniaExacerbation.cpp
+ cdm/patient/actions/SEPrimaryBlastLungInjury.cpp
cdm/patient/actions/SEPulmonaryShuntExacerbation.cpp
cdm/patient/actions/SERespiratoryFatigue.cpp
cdm/patient/actions/SERespiratoryMechanicsConfiguration.cpp
diff --git a/src/cpp/cdm/io/protobuf/PBEngine.cpp b/src/cpp/cdm/io/protobuf/PBEngine.cpp
index b7600c0060998ebbacd049e1d706316a6ba798c0..2879552518db80a551cf397ada1ce2dd773d7dfd 100644
--- a/src/cpp/cdm/io/protobuf/PBEngine.cpp
+++ b/src/cpp/cdm/io/protobuf/PBEngine.cpp
@@ -100,6 +100,7 @@ POP_PROTO_WARNINGS
#include "cdm/patient/actions/SENeedleDecompression.h"
#include "cdm/patient/actions/SEPericardialEffusion.h"
#include "cdm/patient/actions/SEPneumoniaExacerbation.h"
+#include "cdm/patient/actions/SEPrimaryBlastLungInjury.h"
#include "cdm/patient/actions/SEPulmonaryShuntExacerbation.h"
#include "cdm/patient/actions/SERespiratoryFatigue.h"
#include "cdm/patient/actions/SERespiratoryMechanicsConfiguration.h"
@@ -377,6 +378,8 @@ void PBEngine::Serialize(const SEPatientActionCollection& src, CDM_BIND::ActionL
dst.mutable_anyaction()->AddAllocated(PBAction::Unload(*src.m_PericardialEffusion));
if (src.HasPneumoniaExacerbation())
dst.mutable_anyaction()->AddAllocated(PBAction::Unload(*src.m_PneumoniaExacerbation));
+ if (src.HasPrimaryBlastLungInjury())
+ dst.mutable_anyaction()->AddAllocated(PBAction::Unload(*src.m_PrimaryBlastLungInjury));
if (src.HasPulmonaryShuntExacerbation())
dst.mutable_anyaction()->AddAllocated(PBAction::Unload(*src.m_PulmonaryShuntExacerbation));
if (src.HasRespiratoryFatigue())
diff --git a/src/cpp/cdm/io/protobuf/PBPatientActions.cpp b/src/cpp/cdm/io/protobuf/PBPatientActions.cpp
index 05f6f217189d560a58b16ad92f2bf8b236cfdd6e..a89bdc3e269f839c648819fc29abc1682c917575 100644
--- a/src/cpp/cdm/io/protobuf/PBPatientActions.cpp
+++ b/src/cpp/cdm/io/protobuf/PBPatientActions.cpp
@@ -42,6 +42,7 @@ POP_PROTO_WARNINGS
#include "cdm/patient/actions/SENeedleDecompression.h"
#include "cdm/patient/actions/SEPericardialEffusion.h"
#include "cdm/patient/actions/SEPneumoniaExacerbation.h"
+#include "cdm/patient/actions/SEPrimaryBlastLungInjury.h"
#include "cdm/patient/actions/SEPulmonaryShuntExacerbation.h"
#include "cdm/patient/actions/SERespiratoryFatigue.h"
#include "cdm/patient/actions/SERespiratoryMechanicsConfiguration.h"
@@ -1192,6 +1193,44 @@ void PBPatientAction::Copy(const SEPneumoniaExacerbation& src, SEPneumoniaExacer
PBPatientAction::Serialize(data, dst);
}
+void PBPatientAction::Load(const CDM_BIND::PrimaryBlastLungInjuryData& src, SEPrimaryBlastLungInjury& dst)
+{
+ dst.Clear();
+ PBPatientAction::Serialize(src, dst);
+}
+void PBPatientAction::Serialize(const CDM_BIND::PrimaryBlastLungInjuryData& src, SEPrimaryBlastLungInjury& dst)
+{
+ PBPatientAction::Serialize(src.patientaction(), dst);
+ for (int i = 0; i < src.severity_size(); i++)
+ {
+ auto& impairment = src.severity()[i];
+ PBProperty::Load(impairment.severity(), dst.GetSeverity((eLungCompartment)impairment.compartment()));
+ }
+}
+CDM_BIND::PrimaryBlastLungInjuryData* PBPatientAction::Unload(const SEPrimaryBlastLungInjury& src)
+{
+ CDM_BIND::PrimaryBlastLungInjuryData* dst = new CDM_BIND::PrimaryBlastLungInjuryData();
+ PBPatientAction::Serialize(src, *dst);
+ return dst;
+}
+void PBPatientAction::Serialize(const SEPrimaryBlastLungInjury& src, CDM_BIND::PrimaryBlastLungInjuryData& dst)
+{
+ PBPatientAction::Serialize(src, *dst.mutable_patientaction());
+ for (auto itr : src.m_Severities)
+ {
+ auto impairment = dst.mutable_severity()->Add();
+ impairment->set_compartment((CDM_BIND::eLungCompartment)itr.first);
+ impairment->set_allocated_severity(PBProperty::Unload(*itr.second));
+ }
+}
+void PBPatientAction::Copy(const SEPrimaryBlastLungInjury& src, SEPrimaryBlastLungInjury& dst)
+{
+ dst.Clear();
+ CDM_BIND::PrimaryBlastLungInjuryData data;
+ PBPatientAction::Serialize(src, data);
+ PBPatientAction::Serialize(data, dst);
+}
+
void PBPatientAction::Load(const CDM_BIND::PulmonaryShuntExacerbationData& src, SEPulmonaryShuntExacerbation& dst)
{
dst.Clear();
@@ -1775,6 +1814,12 @@ SEPatientAction* PBPatientAction::Load(const CDM_BIND::AnyPatientActionData& any
PBPatientAction::Load(any.pneumoniaexacerbation(), *a);
return a;
}
+ case CDM_BIND::AnyPatientActionData::ActionCase::kPrimaryBlastLungInjury:
+ {
+ SEPrimaryBlastLungInjury* a = new SEPrimaryBlastLungInjury();
+ PBPatientAction::Load(any.primaryblastlunginjury(), *a);
+ return a;
+ }
case CDM_BIND::AnyPatientActionData::ActionCase::kPulmonaryShuntExacerbation:
{
SEPulmonaryShuntExacerbation* a = new SEPulmonaryShuntExacerbation();
@@ -2027,6 +2072,12 @@ CDM_BIND::AnyPatientActionData* PBPatientAction::Unload(const SEPatientAction& a
any->set_allocated_pneumoniaexacerbation(PBPatientAction::Unload(*lp));
return any;
}
+ const SEPrimaryBlastLungInjury* pbli = dynamic_cast(&action);
+ if (pbli != nullptr)
+ {
+ any->set_allocated_primaryblastlunginjury(PBPatientAction::Unload(*pbli));
+ return any;
+ }
const SEPulmonaryShuntExacerbation* pse = dynamic_cast(&action);
if (pse != nullptr)
{
diff --git a/src/cpp/cdm/io/protobuf/PBPatientActions.h b/src/cpp/cdm/io/protobuf/PBPatientActions.h
index a02cacc27907442e0d039bda3ec182afa6fb9856..62330b6722bdd03a4162ccdaa540b102a6eafd40 100644
--- a/src/cpp/cdm/io/protobuf/PBPatientActions.h
+++ b/src/cpp/cdm/io/protobuf/PBPatientActions.h
@@ -32,6 +32,7 @@ CDM_BIND_DECL2(NeedleDecompression)
CDM_BIND_DECL2(PatientAssessmentRequest)
CDM_BIND_DECL2(PericardialEffusion)
CDM_BIND_DECL2(PneumoniaExacerbation)
+CDM_BIND_DECL2(PrimaryBlastLungInjury)
CDM_BIND_DECL2(PulmonaryShuntExacerbation)
CDM_BIND_DECL2(RespiratoryFatigue)
CDM_BIND_DECL2(RespiratoryMechanicsConfiguration)
@@ -232,6 +233,12 @@ public:
static void Serialize(const SEPneumoniaExacerbation& src, CDM_BIND::PneumoniaExacerbationData& dst);
static void Copy(const SEPneumoniaExacerbation& src, SEPneumoniaExacerbation& dst);
+ static void Load(const CDM_BIND::PrimaryBlastLungInjuryData& src, SEPrimaryBlastLungInjury& dst);
+ static CDM_BIND::PrimaryBlastLungInjuryData* Unload(const SEPrimaryBlastLungInjury& src);
+ static void Serialize(const CDM_BIND::PrimaryBlastLungInjuryData& src, SEPrimaryBlastLungInjury& dst);
+ static void Serialize(const SEPrimaryBlastLungInjury& src, CDM_BIND::PrimaryBlastLungInjuryData& dst);
+ static void Copy(const SEPrimaryBlastLungInjury& src, SEPrimaryBlastLungInjury& dst);
+
static void Load(const CDM_BIND::PulmonaryShuntExacerbationData& src, SEPulmonaryShuntExacerbation& dst);
static CDM_BIND::PulmonaryShuntExacerbationData* Unload(const SEPulmonaryShuntExacerbation& src);
static void Serialize(const CDM_BIND::PulmonaryShuntExacerbationData& src, SEPulmonaryShuntExacerbation& dst);
diff --git a/src/cpp/cdm/patient/actions/SEPrimaryBlastLungInjury.cpp b/src/cpp/cdm/patient/actions/SEPrimaryBlastLungInjury.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e1f1cb71779271e41770de47f9cff881548059e1
--- /dev/null
+++ b/src/cpp/cdm/patient/actions/SEPrimaryBlastLungInjury.cpp
@@ -0,0 +1,105 @@
+/* Distributed under the Apache License, Version 2.0.
+ See accompanying NOTICE file for details.*/
+
+#include "cdm/CommonDefs.h"
+#include "cdm/patient/actions/SEPrimaryBlastLungInjury.h"
+#include "cdm/properties/SEScalar0To1.h"
+#include "cdm/io/protobuf/PBPatientActions.h"
+
+SEPrimaryBlastLungInjury::SEPrimaryBlastLungInjury(Logger* logger) : SEPatientAction(logger)
+{
+
+}
+
+SEPrimaryBlastLungInjury::~SEPrimaryBlastLungInjury()
+{
+ DELETE_MAP_SECOND(m_Severities);
+}
+
+void SEPrimaryBlastLungInjury::Clear()
+{
+ SEPatientAction::Clear();
+ for (auto itr : m_Severities)
+ if (itr.second != nullptr)
+ itr.second->Invalidate();
+}
+
+void SEPrimaryBlastLungInjury::Copy(const SEPrimaryBlastLungInjury& src, bool /*preserveState*/)
+{
+ //if(preserveState) // Cache any state before copy,
+ PBPatientAction::Copy(src, *this);
+ //if(preserveState) // Put back any state
+}
+
+bool SEPrimaryBlastLungInjury::IsValid() const
+{
+ if (!SEPatientAction::IsValid())
+ return false;
+ return HasSeverity();
+}
+bool SEPrimaryBlastLungInjury::IsActive() const
+{
+ if (!SEPatientAction::IsActive())
+ return false;
+ if (!HasSeverity())
+ return false;
+ return true;
+}
+void SEPrimaryBlastLungInjury::Activate()
+{
+ SEPatientAction::Activate();
+ SERespiratorySystem::FillLungImpairmentMap(m_Severities);
+}
+void SEPrimaryBlastLungInjury::Deactivate()
+{
+ SEPatientAction::Deactivate();
+ Clear();//No stateful properties
+}
+
+const SEScalar* SEPrimaryBlastLungInjury::GetScalar(const std::string& /*name*/)
+{
+ return nullptr;
+}
+
+bool SEPrimaryBlastLungInjury::HasSeverity() const
+{
+ for (auto itr : m_Severities)
+ if (itr.second != nullptr && itr.second->IsValid())
+ return true;
+ return false;
+}
+LungImpairmentMap& SEPrimaryBlastLungInjury::GetSeverities()
+{
+ return m_Severities;
+}
+const LungImpairmentMap& SEPrimaryBlastLungInjury::GetSeverities() const
+{
+ return m_Severities;
+}
+
+bool SEPrimaryBlastLungInjury::HasSeverity(eLungCompartment cmpt) const
+{
+ auto s = m_Severities.find(cmpt);
+ if (s == m_Severities.end())
+ return false;
+ if (s->second == nullptr)
+ return false;
+ return s->second->IsValid();
+}
+SEScalar0To1& SEPrimaryBlastLungInjury::GetSeverity(eLungCompartment cmpt)
+{
+ SEScalar0To1* s = m_Severities[cmpt];
+ if (s == nullptr)
+ {
+ s = new SEScalar0To1();
+ m_Severities[cmpt] = s;
+ }
+ return *s;
+}
+double SEPrimaryBlastLungInjury::GetSeverity(eLungCompartment cmpt) const
+{
+ auto s = m_Severities.find(cmpt);
+ if (s == m_Severities.end())
+ return SEScalar::dNaN();
+ return s->second->GetValue();
+}
diff --git a/src/cpp/cdm/patient/actions/SEPrimaryBlastLungInjury.h b/src/cpp/cdm/patient/actions/SEPrimaryBlastLungInjury.h
new file mode 100644
index 0000000000000000000000000000000000000000..97cb506363d49e11cf835b8d620e329ac344f56f
--- /dev/null
+++ b/src/cpp/cdm/patient/actions/SEPrimaryBlastLungInjury.h
@@ -0,0 +1,38 @@
+/* Distributed under the Apache License, Version 2.0.
+ See accompanying NOTICE file for details.*/
+
+#pragma once
+#include "cdm/patient/actions/SEPatientAction.h"
+#include "cdm/system/physiology/SERespiratorySystem.h"
+
+class CDM_DECL SEPrimaryBlastLungInjury : public SEPatientAction
+{
+ friend class PBPatientAction;//friend the serialization class
+public:
+
+ SEPrimaryBlastLungInjury(Logger* logger=nullptr);
+ virtual ~SEPrimaryBlastLungInjury();
+
+ static constexpr char const* Name = "ARDS Exacerbation";
+ std::string GetName() const override { return Name; }
+
+ void Clear() override;
+ void Copy(const SEPrimaryBlastLungInjury& src, bool preserveState=false);
+
+ const SEScalar* GetScalar(const std::string& name) override;
+
+ bool IsValid() const override;
+ bool IsActive() const override;
+ void Activate() override;
+ void Deactivate() override;
+
+ virtual bool HasSeverity() const;
+ virtual LungImpairmentMap& GetSeverities();
+ virtual const LungImpairmentMap& GetSeverities() const;
+ virtual bool HasSeverity(eLungCompartment cmpt) const;
+ virtual SEScalar0To1& GetSeverity(eLungCompartment cmpt);
+ virtual double GetSeverity(eLungCompartment cmpt) const;
+
+protected:
+ LungImpairmentMap m_Severities;
+};
\ No newline at end of file
diff --git a/src/cpp/cdm/system/physiology/SERespiratorySystem.h b/src/cpp/cdm/system/physiology/SERespiratorySystem.h
index 67493657580315c743e8835e69e297e056acd8da..d60609a51d2c0c3d2b76832b55dee925acc9f7a6 100644
--- a/src/cpp/cdm/system/physiology/SERespiratorySystem.h
+++ b/src/cpp/cdm/system/physiology/SERespiratorySystem.h
@@ -13,7 +13,26 @@ enum class eLungCompartment
LeftInferiorLobe,
RightSuperiorLobe,
RightMiddleLobe,
- RightInferiorLobe
+ RightInferiorLobe,
+
+ RightSuperiorLobeApical,
+ RightSuperiorLobePosterior,
+ RightSuperiorLobeAnterior,
+ RightMiddleLobeLateral,
+ RightMiddleLobeMedial,
+ RightInferiorLobeSuperior,
+ RightInferiorLobeMedialBasal,
+ RightInferiorLobeAnteriorBasal,
+ RightInferiorLobeLateralBasal,
+ RightInferiorLobePosteriorBasal,
+ LeftInferiorLobePosteriorBasal,
+ LeftInferiorLobeLateralBasal,
+ LeftInferiorLobeAnteromedialBasal,
+ LeftInferiorLobeSuperior,
+ LeftSuperiorLobeInferiorLingula,
+ LeftSuperiorLobeSuperiorLingula,
+ LeftSuperiorLobeAnterior,
+ LeftSuperiorLobeApicoposterior
};
extern CDM_DECL const std::string& eLungCompartment_Name(eLungCompartment cmpt);
using LungImpairmentMap = std::map;
diff --git a/src/cpp/cdm/test/ActionTest.cpp b/src/cpp/cdm/test/ActionTest.cpp
index aca5febea32c10e1bb3c8d5a9e68a86c17167a96..31d36601c37c22bd311d358592cc3738163982a3 100644
--- a/src/cpp/cdm/test/ActionTest.cpp
+++ b/src/cpp/cdm/test/ActionTest.cpp
@@ -33,6 +33,7 @@
#include "cdm/patient/actions/SENeedleDecompression.h"
#include "cdm/patient/actions/SEPatientAssessmentRequest.h"
#include "cdm/patient/actions/SEPneumoniaExacerbation.h"
+#include "cdm/patient/actions/SEPrimaryBlastLungInjury.h"
#include "cdm/patient/actions/SEPericardialEffusion.h"
#include "cdm/patient/actions/SEPulmonaryShuntExacerbation.h"
#include "cdm/patient/actions/SERespiratoryFatigue.h"
@@ -256,6 +257,9 @@ void CommonDataModelTest::ActionTest(const std::string& rptDirectory)
lpe.GetSeverity(eLungCompartment::RightLung).SetValue(0.3);
TestAction(testSuite.CreateTestCase(), subMgr, lpe, "-Severity-LeftLungAffected-RightLungAffected");
+ //Aaron -do this
+ //SEPrimaryBlastLungInjury
+
SEMechanicalVentilation mv;
mv.SetState(eSwitch::On);
mv.GetFlow().SetValue(5, VolumePerTimeUnit::mL_Per_min);
diff --git a/src/cpp/engine/PulseConfiguration.cpp b/src/cpp/engine/PulseConfiguration.cpp
index f8f0e7a676f246d358bde5db56f9d2c86721d1eb..3c77a8e3ff7b4618b134616a9ef9bf8d3a54874a 100644
--- a/src/cpp/engine/PulseConfiguration.cpp
+++ b/src/cpp/engine/PulseConfiguration.cpp
@@ -59,13 +59,13 @@ PulseConfiguration::PulseConfiguration(Logger* logger) : SEEngineConfiguration(l
m_StandardOxygenDiffusionCoefficient = nullptr;
// Cardiovascular
+ m_UseComputationalLifeExpansion = eSwitch::NullSwitch;
m_LeftHeartElastanceMaximum = nullptr;
m_LeftHeartElastanceMinimum = nullptr;
m_MinimumBloodVolumeFraction = nullptr;
m_RightHeartElastanceMaximum = nullptr;
m_RightHeartElastanceMinimum = nullptr;
m_StandardPulmonaryCapillaryCoverage = nullptr;
- m_UseExpandedVasculature = eSwitch::NullSwitch;
m_TuneCardiovascularCircuit = eSwitch::On;
m_CardiovascularTuningFile = "";
@@ -145,7 +145,7 @@ PulseConfiguration::PulseConfiguration(Logger* logger) : SEEngineConfiguration(l
m_VenousComplianceDistributedTimeDelay = nullptr;
// Renal
- m_RenalEnabled = eSwitch::On;
+ m_UseExpandedKidneys = eSwitch::On;
m_PlasmaSodiumConcentrationSetPoint = nullptr;
m_PeritubularPotassiumConcentrationSetPoint = nullptr;
m_LeftGlomerularFluidPermeabilityBaseline = nullptr;
@@ -162,6 +162,7 @@ PulseConfiguration::PulseConfiguration(Logger* logger) : SEEngineConfiguration(l
// Respiratory
+ m_UseExpandedLungs = eSwitch::NullSwitch;
m_CentralControllerCO2PressureSetPoint = nullptr;
m_CentralVentilatoryControllerGain = nullptr;
m_MinimumAllowableInpiratoryAndExpiratoryPeriod = nullptr;
@@ -171,7 +172,6 @@ PulseConfiguration::PulseConfiguration(Logger* logger) : SEEngineConfiguration(l
m_PulmonaryVentilationRateMaximum = nullptr;
m_VentilationTidalVolumeIntercept = nullptr;
m_VentilatoryOcclusionPressure = nullptr;
- m_UseExpandedRespiratory = eSwitch::NullSwitch;
// Tissue
m_TissueEnabled = eSwitch::On;
@@ -180,7 +180,6 @@ PulseConfiguration::PulseConfiguration(Logger* logger) : SEEngineConfiguration(l
PulseConfiguration::~PulseConfiguration()
{
SAFE_DELETE(m_TimeStep);
- m_AllowDynamicTimeStep = eSwitch::Off;
m_Overrides.clear();
m_Modifiers.clear();
@@ -197,9 +196,6 @@ PulseConfiguration::~PulseConfiguration()
SAFE_DELETE(m_RightHeartElastanceMaximum);
SAFE_DELETE(m_RightHeartElastanceMinimum);
SAFE_DELETE(m_StandardPulmonaryCapillaryCoverage);
- m_UseExpandedVasculature = eSwitch::NullSwitch;
- m_TuneCardiovascularCircuit = eSwitch::On;
- m_CardiovascularTuningFile = "";
// Circuit
SAFE_DELETE(m_CardiovascularOpenResistance);
@@ -297,7 +293,6 @@ PulseConfiguration::~PulseConfiguration()
SAFE_DELETE(m_PulmonaryVentilationRateMaximum);
SAFE_DELETE(m_VentilationTidalVolumeIntercept);
SAFE_DELETE(m_VentilatoryOcclusionPressure);
- m_UseExpandedRespiratory = eSwitch::NullSwitch;
//Tissue
}
@@ -317,13 +312,13 @@ void PulseConfiguration::Clear()
INVALIDATE_PROPERTY(m_StandardOxygenDiffusionCoefficient);
// Cardiovascular
+ m_UseComputationalLifeExpansion = eSwitch::NullSwitch;
INVALIDATE_PROPERTY(m_LeftHeartElastanceMaximum);
INVALIDATE_PROPERTY(m_LeftHeartElastanceMinimum);
INVALIDATE_PROPERTY(m_MinimumBloodVolumeFraction);
INVALIDATE_PROPERTY(m_RightHeartElastanceMaximum);
INVALIDATE_PROPERTY(m_RightHeartElastanceMinimum);
INVALIDATE_PROPERTY(m_StandardPulmonaryCapillaryCoverage);
- m_UseExpandedVasculature = eSwitch::NullSwitch;
m_TuneCardiovascularCircuit = eSwitch::On;
m_CardiovascularTuningFile = "";
@@ -406,7 +401,7 @@ void PulseConfiguration::Clear()
INVALIDATE_PROPERTY(m_VenousComplianceDistributedTimeDelay);
// Renal
- m_RenalEnabled = eSwitch::On;
+ m_UseExpandedKidneys = eSwitch::On;
INVALIDATE_PROPERTY(m_PlasmaSodiumConcentrationSetPoint);
INVALIDATE_PROPERTY(m_PeritubularPotassiumConcentrationSetPoint);
INVALIDATE_PROPERTY(m_LeftGlomerularFluidPermeabilityBaseline);
@@ -422,6 +417,7 @@ void PulseConfiguration::Clear()
INVALIDATE_PROPERTY(m_TargetSodiumDelivery);
// Respiratory
+ m_UseExpandedLungs = eSwitch::NullSwitch;
INVALIDATE_PROPERTY(m_CentralControllerCO2PressureSetPoint);
INVALIDATE_PROPERTY(m_CentralVentilatoryControllerGain);
INVALIDATE_PROPERTY(m_MinimumAllowableInpiratoryAndExpiratoryPeriod);
@@ -431,7 +427,6 @@ void PulseConfiguration::Clear()
INVALIDATE_PROPERTY(m_PulmonaryVentilationRateMaximum);
INVALIDATE_PROPERTY(m_VentilationTidalVolumeIntercept);
INVALIDATE_PROPERTY(m_VentilatoryOcclusionPressure);
- m_UseExpandedRespiratory = eSwitch::NullSwitch;
//Tissue
m_TissueEnabled = eSwitch::On;
@@ -491,15 +486,16 @@ void PulseConfiguration::Initialize(const std::string& dataDir, SESubstanceManag
GetStandardOxygenDiffusionCoefficient().SetValue(0.00000000246, AreaPerTimePressureUnit::cm2_Per_min_mmHg);
// Cardiovascular
+ m_UseComputationalLifeExpansion = eSwitch::Off;
GetLeftHeartElastanceMaximum().SetValue(2.49, PressurePerVolumeUnit::mmHg_Per_mL);
GetLeftHeartElastanceMinimum().SetValue(0.049, PressurePerVolumeUnit::mmHg_Per_mL);
GetMinimumBloodVolumeFraction().SetValue(0.65); // \cite Guyton 11th ed p.279
GetRightHeartElastanceMaximum().SetValue(0.523, PressurePerVolumeUnit::mmHg_Per_mL);
GetRightHeartElastanceMinimum().SetValue(0.0243, PressurePerVolumeUnit::mmHg_Per_mL);
GetStandardPulmonaryCapillaryCoverage().SetValue(0.70);
- UseExpandedVasculature(eSwitch::Off);// Call the function to set defaults
m_TuneCardiovascularCircuit = eSwitch::On;
m_CardiovascularTuningFile = "";
+ InitializeCardiovascularModifiers();
// Circuits
GetCardiovascularOpenResistance().SetValue(100.0, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
@@ -598,7 +594,7 @@ void PulseConfiguration::Initialize(const std::string& dataDir, SESubstanceManag
GetVenousComplianceDistributedTimeDelay().SetValue(60.0, TimeUnit::s);
// Renal
- m_RenalEnabled = eSwitch::On;
+ m_UseExpandedKidneys = eSwitch::On;
GetPlasmaSodiumConcentrationSetPoint().SetValue(3.23, MassPerVolumeUnit::mg_Per_mL);
GetPeritubularPotassiumConcentrationSetPoint().SetValue(0.0185, MassPerVolumeUnit::g_Per_dL);
GetLeftGlomerularFluidPermeabilityBaseline().SetValue(3.67647, VolumePerTimePressureAreaUnit::mL_Per_min_mmHg_m2);
@@ -615,6 +611,7 @@ void PulseConfiguration::Initialize(const std::string& dataDir, SESubstanceManag
GetTargetSodiumDelivery().SetValue(0.201, MassPerTimeUnit::g_Per_min);
// Respiratory
+ m_UseExpandedLungs = eSwitch::Off;
GetCentralControllerCO2PressureSetPoint().SetValue(35.5, PressureUnit::mmHg);
GetCentralVentilatoryControllerGain().SetValue(1.44); //How much to add to the amplitude when the CO2 is off
GetMinimumAllowableInpiratoryAndExpiratoryPeriod().SetValue(0.25, TimeUnit::s);
@@ -624,7 +621,6 @@ void PulseConfiguration::Initialize(const std::string& dataDir, SESubstanceManag
GetPulmonaryVentilationRateMaximum().SetValue(150.0, VolumePerTimeUnit::L_Per_min);
GetVentilationTidalVolumeIntercept().SetValue(0.3, VolumeUnit::L);
GetVentilatoryOcclusionPressure().SetValue(0.75, PressureUnit::cmH2O); //This increases the absolute max driver pressure
- UseExpandedRespiratory(eSwitch::Off);
// Tissue
m_TissueEnabled = eSwitch::On;
@@ -728,6 +724,88 @@ const SEScalarProperties& PulseConfiguration::GetModifiers() const
{
return m_Modifiers;
}
+void PulseConfiguration::InitializeCardiovascularModifiers()
+{
+ m_Modifiers.clear();
+ // Circuit Modifiers
+ if (m_UseComputationalLifeExpansion == eSwitch::On)
+ {
+ // Circuit Modifiers
+ m_Modifiers[pulse::CardiovascularPath::Aorta3ToAorta1] = SEScalarPair(1.2902894293208438);// 1.12
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmBone1] = SEScalarPair(1.0923362183174377);// 1.15
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmFat1] = SEScalarPair(1.0923362183174377);// 1.15
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmMicrovasculature1] = SEScalarPair(1.0923362183174377);// 1.15
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmMuscle1] = SEScalarPair(1.0923362183174377);// 1.15
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmSkin1] = SEScalarPair(1.0923362183174377);// 1.15
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmFat1] = SEScalarPair(1.0923362199627225);// 1.15
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmMuscle1] = SEScalarPair(1.0923362199627225);// 1.15
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmSkin1] = SEScalarPair(1.0923362199627225);// 1.15
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmBone1] = SEScalarPair(1.0923362199627225);// 1.15
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmMicrovasculature1] = SEScalarPair(1.0923362199627225);// 1.15
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::Extracranial1ToExtracranial2] = SEScalarPair(0.99455963021629035);// 1.0
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::Intracranial1ToIntracranial2] = SEScalarPair(0.99455963021629035);// 1.0
+ m_Modifiers[pulse::CardiovascularPath::VenaCava1ToRightHeart2] = SEScalarPair(0.009);
+ m_Modifiers[pulse::CardiovascularPath::LeftKidney1ToLeftKidney2] = SEScalarPair(1.5);
+ m_Modifiers[pulse::CardiovascularPath::RightKidney1ToRightKidney2] = SEScalarPair(1.5);
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::Gut1ToLargeIntestine1] = SEScalarPair(0.98471147698642625);// 1.05
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegBone1] = SEScalarPair(1.055513327833395);// 1.1
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegFat1] = SEScalarPair(1.055513327833395);// 1.1
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegMicrovasculature1] = SEScalarPair(1.055513327833395);// 1.1
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegMuscle1] = SEScalarPair(1.055513327833395);// 1.1
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegSkin1] = SEScalarPair(1.055513327833395);// 1.1
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegBone1] = SEScalarPair(1.0555133289980438);// 1.1
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegFat1] = SEScalarPair(1.0555133289980438);// 1.1
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegMicrovasculature1] = SEScalarPair(1.0555133289980438);// 1.1
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegMuscle1] = SEScalarPair(1.0555133289980438);// 1.1
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegSkin1] = SEScalarPair(1.0555133289980438);// 1.1
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::Gut1ToLiver1] = SEScalarPair(1.5008836959051552);// 1.1
+ m_Modifiers[pulse::CardiovascularPath::Myocardium1ToMyocardium2] = SEScalarPair(0.9623041322717929);// 0.95
+ m_Modifiers[pulse::CardiovascularPath::RightPulmonaryArteries1ToRightPulmonaryCapillaries1] = SEScalarPair(0.79184301394230017);// 1.0
+ m_Modifiers[pulse::CardiovascularPath::RightPulmonaryCapillaries1ToRightPulmonaryVeins1] = SEScalarPair(1.0917195273914668);// 1.0
+ m_Modifiers[pulse::CardiovascularPath::RightIntermediatePulmonaryArteries1ToRightPulmonaryArteries1] = SEScalarPair(1.0);
+ m_Modifiers[pulse::CardiovascularPath::LeftIntermediatePulmonaryArteries1ToLeftPulmonaryArteries1] = SEScalarPair(1.0);
+ m_Modifiers[pulse::CardiovascularPath::LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1] = SEScalarPair(0.84990272641328168);// 1.0
+ m_Modifiers[pulse::CardiovascularPath::LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1] = SEScalarPair(1.0802879539709094);// 1.0
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::Gut1ToSmallIntestine1] = SEScalarPair(0.97271586393584319);// 1.14
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::Gut1ToSplanchnic1] = SEScalarPair(0.98750749786051784);// 0.95
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::Gut1ToSpleen1] = SEScalarPair(0.96800874795093717);// 0.95
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::Torso1ToTorsoBone1] = SEScalarPair(1.0265141845356056);// 1.02
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::Torso1ToTorsoFat1] = SEScalarPair(1.0154101337135821);// 1.02
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::Torso1ToTorsoMuscle1] = SEScalarPair(1.0968290345983671);// 1.15
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::TorsoMuscle1ToTorso2] = SEScalarPair(0.81318313089396543);// 1.0
+ m_Modifiers[pulse::ComputationalLifeCardiovascularPath::Torso1ToTorsoSkin1] = SEScalarPair(0.99621251983966808);// 1.0
+ m_Modifiers[pulse::CardiovascularPath::VenaCava1ToGround] = SEScalarPair(0.9);
+ }
+ else
+ {
+ m_Modifiers[pulse::CardiovascularPath::Aorta3ToAorta1] = SEScalarPair(1.12);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToLeftArm1] = SEScalarPair(1.15);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToRightArm1] = SEScalarPair(1.15);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToBone1] = SEScalarPair(1.02);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToBrain1] = SEScalarPair(1.0);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToFat1] = SEScalarPair(1.02);
+ m_Modifiers[pulse::CardiovascularPath::VenaCava1ToRightHeart2] = SEScalarPair(0.009);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToLeftKidney1] = SEScalarPair(1.5);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToRightKidney1] = SEScalarPair(1.5);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToLargeIntestine1] = SEScalarPair(1.05);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToLeftLeg1] = SEScalarPair(1.1);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToRightLeg1] = SEScalarPair(1.1);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToLiver1] = SEScalarPair(1.1);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToMuscle1] = SEScalarPair(1.15);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToMyocardium1] = SEScalarPair(0.95);
+ m_Modifiers[pulse::CardiovascularPath::RightPulmonaryArteries1ToRightPulmonaryCapillaries1] = SEScalarPair(1.0);
+ m_Modifiers[pulse::CardiovascularPath::RightPulmonaryCapillaries1ToRightPulmonaryVeins1] = SEScalarPair(1.0);
+ m_Modifiers[pulse::CardiovascularPath::RightIntermediatePulmonaryArteries1ToRightPulmonaryArteries1] = SEScalarPair(1.0);
+ m_Modifiers[pulse::CardiovascularPath::LeftIntermediatePulmonaryArteries1ToLeftPulmonaryArteries1] = SEScalarPair(1.0);
+ m_Modifiers[pulse::CardiovascularPath::LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1] = SEScalarPair(1.0);
+ m_Modifiers[pulse::CardiovascularPath::LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1] = SEScalarPair(1.0);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToSkin1] = SEScalarPair(1.0);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToSmallIntestine1] = SEScalarPair(1.14);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToSplanchnic1] = SEScalarPair(0.95);
+ m_Modifiers[pulse::CardiovascularPath::Aorta1ToSpleen1] = SEScalarPair(0.95);
+ m_Modifiers[pulse::CardiovascularPath::VenaCava1ToGround] = SEScalarPair(0.9);
+ }
+}
//////////////////////
/** Blood Chemistry */
@@ -838,89 +916,12 @@ double PulseConfiguration::GetLeftHeartElastanceMinimum(const PressurePerVolumeU
return m_LeftHeartElastanceMinimum->GetValue(unit);
}
-void PulseConfiguration::UseExpandedVasculature(eSwitch s)
+void PulseConfiguration::UseComputationalLifeExpansion(eSwitch s)
{
if (s == eSwitch::NullSwitch)
return;
- m_UseExpandedVasculature = s;
- // Circuit Modifiers
- if (m_UseExpandedVasculature == eSwitch::On)
- {
- // Circuit Modifiers
- m_Modifiers[pulse::ExpandedCardiovascularPath::Aorta3ToAorta1] = SEScalarPair(1.2902894293208438);// 1.12
- m_Modifiers[pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmBone1] = SEScalarPair(1.0923362183174377);// 1.15
- m_Modifiers[pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmFat1] = SEScalarPair(1.0923362183174377);// 1.15
- m_Modifiers[pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmMicrovasculature1] = SEScalarPair(1.0923362183174377);// 1.15
- m_Modifiers[pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmMuscle1] = SEScalarPair(1.0923362183174377);// 1.15
- m_Modifiers[pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmSkin1] = SEScalarPair(1.0923362183174377);// 1.15
- m_Modifiers[pulse::ExpandedCardiovascularPath::RightArm1ToRightArmFat1] = SEScalarPair(1.0923362199627225);// 1.15
- m_Modifiers[pulse::ExpandedCardiovascularPath::RightArm1ToRightArmMuscle1] = SEScalarPair(1.0923362199627225);// 1.15
- m_Modifiers[pulse::ExpandedCardiovascularPath::RightArm1ToRightArmSkin1] = SEScalarPair(1.0923362199627225);// 1.15
- m_Modifiers[pulse::ExpandedCardiovascularPath::RightArm1ToRightArmBone1] = SEScalarPair(1.0923362199627225);// 1.15
- m_Modifiers[pulse::ExpandedCardiovascularPath::RightArm1ToRightArmMicrovasculature1] = SEScalarPair(1.0923362199627225);// 1.15
- m_Modifiers[pulse::ExpandedCardiovascularPath::Extracranial1ToExtracranial2] = SEScalarPair(0.99455963021629035);// 1.0
- m_Modifiers[pulse::ExpandedCardiovascularPath::Intracranial1ToIntracranial2] = SEScalarPair(0.99455963021629035);// 1.0
- m_Modifiers[pulse::ExpandedCardiovascularPath::VenaCava1ToRightHeart2] = SEScalarPair(0.009);
- m_Modifiers[pulse::ExpandedCardiovascularPath::LeftKidney1ToLeftKidney2] = SEScalarPair(1.5);
- m_Modifiers[pulse::ExpandedCardiovascularPath::RightKidney1ToRightKidney2] = SEScalarPair(1.5);
- m_Modifiers[pulse::ExpandedCardiovascularPath::Gut1ToLargeIntestine1] = SEScalarPair(0.98471147698642625);// 1.05
- m_Modifiers[pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegBone1] = SEScalarPair(1.055513327833395);// 1.1
- m_Modifiers[pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegFat1] = SEScalarPair(1.055513327833395);// 1.1
- m_Modifiers[pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegMicrovasculature1] = SEScalarPair(1.055513327833395);// 1.1
- m_Modifiers[pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegMuscle1] = SEScalarPair(1.055513327833395);// 1.1
- m_Modifiers[pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegSkin1] = SEScalarPair(1.055513327833395);// 1.1
- m_Modifiers[pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegBone1] = SEScalarPair(1.0555133289980438);// 1.1
- m_Modifiers[pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegFat1] = SEScalarPair(1.0555133289980438);// 1.1
- m_Modifiers[pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegMicrovasculature1] = SEScalarPair(1.0555133289980438);// 1.1
- m_Modifiers[pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegMuscle1] = SEScalarPair(1.0555133289980438);// 1.1
- m_Modifiers[pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegSkin1] = SEScalarPair(1.0555133289980438);// 1.1
- m_Modifiers[pulse::ExpandedCardiovascularPath::Gut1ToLiver1] = SEScalarPair(1.5008836959051552);// 1.1
- m_Modifiers[pulse::ExpandedCardiovascularPath::Myocardium1ToMyocardium2] = SEScalarPair(0.9623041322717929);// 0.95
- m_Modifiers[pulse::ExpandedCardiovascularPath::RightPulmonaryArteries1ToRightPulmonaryCapillaries1] = SEScalarPair(0.79184301394230017);// 1.0
- m_Modifiers[pulse::ExpandedCardiovascularPath::RightPulmonaryCapillaries1ToRightPulmonaryVeins1] = SEScalarPair(1.0917195273914668);// 1.0
- m_Modifiers[pulse::ExpandedCardiovascularPath::RightIntermediatePulmonaryArteries1ToRightPulmonaryArteries1] = SEScalarPair(1.0);
- m_Modifiers[pulse::ExpandedCardiovascularPath::LeftIntermediatePulmonaryArteries1ToLeftPulmonaryArteries1] = SEScalarPair(1.0);
- m_Modifiers[pulse::ExpandedCardiovascularPath::LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1] = SEScalarPair(0.84990272641328168);// 1.0
- m_Modifiers[pulse::ExpandedCardiovascularPath::LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1] = SEScalarPair(1.0802879539709094);// 1.0
- m_Modifiers[pulse::ExpandedCardiovascularPath::Gut1ToSmallIntestine1] = SEScalarPair(0.97271586393584319);// 1.14
- m_Modifiers[pulse::ExpandedCardiovascularPath::Gut1ToSplanchnic1] = SEScalarPair(0.98750749786051784);// 0.95
- m_Modifiers[pulse::ExpandedCardiovascularPath::Gut1ToSpleen1] = SEScalarPair(0.96800874795093717);// 0.95
- m_Modifiers[pulse::ExpandedCardiovascularPath::Torso1ToTorsoBone1] = SEScalarPair(1.0265141845356056);// 1.02
- m_Modifiers[pulse::ExpandedCardiovascularPath::Torso1ToTorsoFat1] = SEScalarPair(1.0154101337135821);// 1.02
- m_Modifiers[pulse::ExpandedCardiovascularPath::Torso1ToTorsoMuscle1] = SEScalarPair(1.0968290345983671);// 1.15
- m_Modifiers[pulse::ExpandedCardiovascularPath::TorsoMuscle1ToTorso2] = SEScalarPair(0.81318313089396543);// 1.0
- m_Modifiers[pulse::ExpandedCardiovascularPath::Torso1ToTorsoSkin1] = SEScalarPair(0.99621251983966808);// 1.0
- m_Modifiers[pulse::ExpandedCardiovascularPath::VenaCava1ToGround] = SEScalarPair(0.9);
- }
- else
- {
- m_Modifiers[pulse::CardiovascularPath::Aorta3ToAorta1] = SEScalarPair(1.12);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToLeftArm1] = SEScalarPair(1.15);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToRightArm1] = SEScalarPair(1.15);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToBone1] = SEScalarPair(1.02);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToBrain1] = SEScalarPair(1.0);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToFat1] = SEScalarPair(1.02);
- m_Modifiers[pulse::CardiovascularPath::VenaCava1ToRightHeart2] = SEScalarPair(0.009);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToLeftKidney1] = SEScalarPair(1.5);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToRightKidney1] = SEScalarPair(1.5);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToLargeIntestine1] = SEScalarPair(1.05);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToLeftLeg1] = SEScalarPair(1.1);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToRightLeg1] = SEScalarPair(1.1);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToLiver1] = SEScalarPair(1.1);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToMuscle1] = SEScalarPair(1.15);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToMyocardium1] = SEScalarPair(0.95);
- m_Modifiers[pulse::CardiovascularPath::RightPulmonaryArteries1ToRightPulmonaryCapillaries1] = SEScalarPair(1.0);
- m_Modifiers[pulse::CardiovascularPath::RightPulmonaryCapillaries1ToRightPulmonaryVeins1] = SEScalarPair(1.0);
- m_Modifiers[pulse::CardiovascularPath::RightIntermediatePulmonaryArteries1ToRightPulmonaryArteries1] = SEScalarPair(1.0);
- m_Modifiers[pulse::CardiovascularPath::LeftIntermediatePulmonaryArteries1ToLeftPulmonaryArteries1] = SEScalarPair(1.0);
- m_Modifiers[pulse::CardiovascularPath::LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1] = SEScalarPair(1.0);
- m_Modifiers[pulse::CardiovascularPath::LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1] = SEScalarPair(1.0);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToSkin1] = SEScalarPair(1.0);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToSmallIntestine1] = SEScalarPair(1.14);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToSplanchnic1] = SEScalarPair(0.95);
- m_Modifiers[pulse::CardiovascularPath::Aorta1ToSpleen1] = SEScalarPair(0.95);
- m_Modifiers[pulse::CardiovascularPath::VenaCava1ToGround] = SEScalarPair(0.9);
- }
+ m_UseComputationalLifeExpansion = s;
+ InitializeCardiovascularModifiers();
}
bool PulseConfiguration::HasMinimumBloodVolumeFraction() const
@@ -1952,6 +1953,13 @@ double PulseConfiguration::GetVenousComplianceDistributedTimeDelay(const TimeUni
/** Renal */
////////////
+void PulseConfiguration::UseExpandedKidneys(eSwitch s)
+{
+ if (s == eSwitch::NullSwitch)
+ return;
+ m_UseExpandedKidneys = s;
+}
+
bool PulseConfiguration::HasPlasmaSodiumConcentrationSetPoint() const
{
return m_PlasmaSodiumConcentrationSetPoint == nullptr ? false : m_PlasmaSodiumConcentrationSetPoint->IsValid();
@@ -2170,6 +2178,14 @@ SEScalarMassPerTime& PulseConfiguration::GetTargetSodiumDelivery()
//////////////////
/** Respiratory */
//////////////////
+
+void PulseConfiguration::UseExpandedLungs(eSwitch s)
+{
+ if (s == eSwitch::NullSwitch)
+ return;
+ m_UseExpandedLungs = s;
+}
+
bool PulseConfiguration::HasCentralControllerCO2PressureSetPoint() const
{
return m_CentralControllerCO2PressureSetPoint == nullptr ? false : m_CentralControllerCO2PressureSetPoint->IsValid();
@@ -2323,9 +2339,3 @@ double PulseConfiguration::GetVentilationTidalVolumeIntercept(const VolumeUnit&
return m_VentilationTidalVolumeIntercept->GetValue(unit);
}
-void PulseConfiguration::UseExpandedRespiratory(eSwitch s)
-{
- if (s == eSwitch::NullSwitch)
- return;
- m_UseExpandedRespiratory = s;
-}
diff --git a/src/cpp/engine/PulseConfiguration.h b/src/cpp/engine/PulseConfiguration.h
index 31f359dd4daeff5df9582f6ee54ddfc27866812c..2ee85e74eaa3a4a6efc9f76dcd935ef40c084e43 100644
--- a/src/cpp/engine/PulseConfiguration.h
+++ b/src/cpp/engine/PulseConfiguration.h
@@ -64,6 +64,7 @@ public:
virtual SEScalarProperties& GetModifiers();
virtual const SEScalarProperties& GetModifiers() const;
protected:
+ virtual void InitializeCardiovascularModifiers();
SEScalarTime* m_TimeStep;
eSwitch m_AllowDynamicTimeStep;
@@ -126,8 +127,8 @@ public:
virtual SEScalar& GetStandardPulmonaryCapillaryCoverage();
virtual double GetStandardPulmonaryCapillaryCoverage() const;
- virtual eSwitch UseExpandedVasculature() const { return m_UseExpandedVasculature; }
- virtual void UseExpandedVasculature(eSwitch s);
+ virtual eSwitch UseComputationalLifeExpansion() const { return m_UseComputationalLifeExpansion; }
+ virtual void UseComputationalLifeExpansion(eSwitch s);
virtual eSwitch TuneCardiovascularCircuit() const { return m_TuneCardiovascularCircuit; }
virtual void TuneCardiovascularCircuit(eSwitch s) { m_TuneCardiovascularCircuit = s; }
@@ -142,7 +143,7 @@ protected:
SEScalarPressurePerVolume* m_RightHeartElastanceMaximum;
SEScalarPressurePerVolume* m_RightHeartElastanceMinimum;
SEScalar* m_StandardPulmonaryCapillaryCoverage;
- eSwitch m_UseExpandedVasculature;
+ eSwitch m_UseComputationalLifeExpansion;
eSwitch m_TuneCardiovascularCircuit;
std::string m_CardiovascularTuningFile;
@@ -487,8 +488,8 @@ protected:
/** Renal */
////////////
public:
- virtual bool IsRenalEnabled() const { return m_RenalEnabled == eSwitch::On; }
- virtual void EnableRenal(eSwitch s) { m_RenalEnabled = (s == eSwitch::NullSwitch) ? eSwitch::On : s; }
+ virtual eSwitch UseExpandedKidneys() const { return m_UseExpandedKidneys; }
+ virtual void UseExpandedKidneys(eSwitch s);
virtual bool HasPlasmaSodiumConcentrationSetPoint() const;
virtual SEScalarMassPerVolume& GetPlasmaSodiumConcentrationSetPoint();
@@ -541,7 +542,7 @@ public:
virtual bool HasTargetSodiumDelivery();
virtual SEScalarMassPerTime& GetTargetSodiumDelivery();
protected:
- eSwitch m_RenalEnabled;
+ eSwitch m_UseExpandedKidneys;
SEScalarMassPerVolume* m_PlasmaSodiumConcentrationSetPoint;
SEScalarMassPerVolume* m_PeritubularPotassiumConcentrationSetPoint;
@@ -566,6 +567,9 @@ protected:
/** Respiratory */
//////////////////
public:
+ virtual eSwitch UseExpandedLungs() const { return m_UseExpandedLungs; }
+ virtual void UseExpandedLungs(eSwitch s);
+
virtual bool HasCentralControllerCO2PressureSetPoint() const;
virtual SEScalarPressure& GetCentralControllerCO2PressureSetPoint();
virtual double GetCentralControllerCO2PressureSetPoint(const PressureUnit& unit) const;
@@ -603,10 +607,8 @@ public:
virtual SEScalarPressure& GetVentilatoryOcclusionPressure();
virtual double GetVentilatoryOcclusionPressure(const PressureUnit& unit) const;
- virtual eSwitch UseExpandedRespiratory() const { return m_UseExpandedRespiratory; }
- virtual void UseExpandedRespiratory(eSwitch s);
-
protected:
+ eSwitch m_UseExpandedLungs;
SEScalarPressure* m_CentralControllerCO2PressureSetPoint;
SEScalar* m_CentralVentilatoryControllerGain;
SEScalarTime* m_MinimumAllowableInpiratoryAndExpiratoryPeriod;
@@ -616,7 +618,6 @@ protected:
SEScalarVolumePerTime* m_PulmonaryVentilationRateMaximum;
SEScalarVolume* m_VentilationTidalVolumeIntercept;
SEScalarPressure* m_VentilatoryOcclusionPressure;
- eSwitch m_UseExpandedRespiratory;
/////////////
/** Tissue */
diff --git a/src/cpp/engine/PulseEngine.h b/src/cpp/engine/PulseEngine.h
index e8218f6ddc5e83b5ef7f93c671c958dba9bb1ed5..2550a7fb24769faf157b9bbb5ce2165a58487e33 100644
--- a/src/cpp/engine/PulseEngine.h
+++ b/src/cpp/engine/PulseEngine.h
@@ -337,16 +337,173 @@ namespace pulse
static std::vector _values;
};
- class ExpandedPulmonaryCompartment
+ class ExpandedLungsPulmonaryCompartment
{
public:
+ DEFINE_STATIC_STRING(RightBranches);
+ DEFINE_STATIC_STRING(LeftBranches);
+
+ DEFINE_STATIC_STRING(RightMainBronchus);
+ DEFINE_STATIC_STRING(LeftMainBronchus);
+ DEFINE_STATIC_STRING(RightIntermediateBronchus);
+ DEFINE_STATIC_STRING(RightSuperiorLobarBronchus);
+ DEFINE_STATIC_STRING(RightMiddleLobarBronchus);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus1);
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus1);
+ DEFINE_STATIC_STRING(LeftSuperiorLobarBronchus);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus2);
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus2);
+ DEFINE_STATIC_STRING(RightSuperiorApicoposteriorBronchus);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus3);
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus3);
+ DEFINE_STATIC_STRING(LeftLingularBonchus);
+ DEFINE_STATIC_STRING(LeftSuperiorApicoposteriorBronchus);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus4);
+
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalBronchiole);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorBronchiole);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorBronchiole);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralBronchiole);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalBronchiole);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalBronchiole);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalBronchiole);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalBronchiole);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorBronchiole);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaBronchiole);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaBronchiole);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorBronchiole);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorBronchiole);
+
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalAlveolarDeadSpace);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
+
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalAlveoli);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorAlveoli);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorAlveoli);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralAlveoli);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalAlveoli);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalAlveoli);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalAlveoli);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalAlveoli);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorAlveoli);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaAlveoli);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaAlveoli);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorAlveoli);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorAlveoli);
static const std::vector& GetValues()
{
ScopedMutex lock;
if (_values.empty())
{
-
+ _values.push_back(RightBranches);
+ _values.push_back(LeftBranches);
+
+ _values.push_back(RightMainBronchus);
+ _values.push_back(LeftMainBronchus);
+ _values.push_back(RightIntermediateBronchus);
+ _values.push_back(RightSuperiorLobarBronchus);
+ _values.push_back(RightMiddleLobarBronchus);
+ _values.push_back(RightInferiorLobarBronchus1);
+ _values.push_back(LeftInferiorLobarBronchus1);
+ _values.push_back(LeftSuperiorLobarBronchus);
+ _values.push_back(RightInferiorLobarBronchus2);
+ _values.push_back(LeftInferiorLobarBronchus2);
+ _values.push_back(RightSuperiorApicoposteriorBronchus);
+ _values.push_back(RightInferiorLobarBronchus3);
+ _values.push_back(LeftInferiorLobarBronchus3);
+ _values.push_back(LeftLingularBonchus);
+ _values.push_back(LeftSuperiorApicoposteriorBronchus);
+ _values.push_back(RightInferiorLobarBronchus4);
+
+ _values.push_back(RightSuperiorLobeApicalBronchiole);
+ _values.push_back(RightSuperiorLobePosteriorBronchiole);
+ _values.push_back(RightSuperiorLobeAnteriorBronchiole);
+ _values.push_back(RightMiddleLobeLateralBronchiole);
+ _values.push_back(RightMiddleLobeMedialBronchiole);
+ _values.push_back(RightInferiorLobeSuperiorBronchiole);
+ _values.push_back(RightInferiorLobeMedialBasalBronchiole);
+ _values.push_back(RightInferiorLobeAnteriorBasalBronchiole);
+ _values.push_back(RightInferiorLobeLateralBasalBronchiole);
+ _values.push_back(RightInferiorLobePosteriorBasalBronchiole);
+
+ _values.push_back(LeftInferiorLobePosteriorBasalBronchiole);
+ _values.push_back(LeftInferiorLobeLateralBasalBronchiole);
+ _values.push_back(LeftInferiorLobeAnteromedialBasalBronchiole);
+ _values.push_back(LeftInferiorLobeSuperiorBronchiole);
+ _values.push_back(LeftSuperiorLobeInferiorLingulaBronchiole);
+ _values.push_back(LeftSuperiorLobeSuperiorLingulaBronchiole);
+ _values.push_back(LeftSuperiorLobeAnteriorBronchiole);
+ _values.push_back(LeftSuperiorLobeApicoposteriorBronchiole);
+
+ _values.push_back(RightSuperiorLobeApicalAlveolarDeadSpace);
+ _values.push_back(RightSuperiorLobePosteriorAlveolarDeadSpace);
+ _values.push_back(RightSuperiorLobeAnteriorAlveolarDeadSpace);
+ _values.push_back(RightMiddleLobeLateralAlveolarDeadSpace);
+ _values.push_back(RightMiddleLobeMedialAlveolarDeadSpace);
+ _values.push_back(RightInferiorLobeSuperiorAlveolarDeadSpace);
+ _values.push_back(RightInferiorLobeMedialBasalAlveolarDeadSpace);
+ _values.push_back(RightInferiorLobeAnteriorBasalAlveolarDeadSpace);
+ _values.push_back(RightInferiorLobeLateralBasalAlveolarDeadSpace);
+ _values.push_back(RightInferiorLobePosteriorBasalAlveolarDeadSpace);
+
+ _values.push_back(LeftInferiorLobePosteriorBasalAlveolarDeadSpace);
+ _values.push_back(LeftInferiorLobeLateralBasalAlveolarDeadSpace);
+ _values.push_back(LeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
+ _values.push_back(LeftInferiorLobeSuperiorAlveolarDeadSpace);
+ _values.push_back(LeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
+ _values.push_back(LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
+ _values.push_back(LeftSuperiorLobeAnteriorAlveolarDeadSpace);
+ _values.push_back(LeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
+
+ _values.push_back(RightSuperiorLobeApicalAlveoli);
+ _values.push_back(RightSuperiorLobePosteriorAlveoli);
+ _values.push_back(RightSuperiorLobeAnteriorAlveoli);
+ _values.push_back(RightMiddleLobeLateralAlveoli);
+ _values.push_back(RightMiddleLobeMedialAlveoli);
+ _values.push_back(RightInferiorLobeSuperiorAlveoli);
+ _values.push_back(RightInferiorLobeMedialBasalAlveoli);
+ _values.push_back(RightInferiorLobeAnteriorBasalAlveoli);
+ _values.push_back(RightInferiorLobeLateralBasalAlveoli);
+ _values.push_back(RightInferiorLobePosteriorBasalAlveoli);
+
+ _values.push_back(LeftInferiorLobePosteriorBasalAlveoli);
+ _values.push_back(LeftInferiorLobeLateralBasalAlveoli);
+ _values.push_back(LeftInferiorLobeAnteromedialBasalAlveoli);
+ _values.push_back(LeftInferiorLobeSuperiorAlveoli);
+ _values.push_back(LeftSuperiorLobeInferiorLingulaAlveoli);
+ _values.push_back(LeftSuperiorLobeSuperiorLingulaAlveoli);
+ _values.push_back(LeftSuperiorLobeAnteriorAlveoli);
+ _values.push_back(LeftSuperiorLobeApicoposteriorAlveoli);
}
return _values;
}
@@ -366,16 +523,169 @@ namespace pulse
static std::vector _values;
};
- class ExpandedPulmonaryLink
+ class ExpandedLungsPulmonaryLink
{
public:
+ DEFINE_STATIC_STRING(CarinaToRightMainBronchus);
+ DEFINE_STATIC_STRING(RightMainBronchusToRightIntermediateBronchus);
+ DEFINE_STATIC_STRING(RightMainBronchusToRightSuperiorLobarBronchus);
+ DEFINE_STATIC_STRING(RightIntermediateBronchusToRightMiddleLobarBronchus);
+ DEFINE_STATIC_STRING(RightIntermediateBronchusToRightInferiorLobarBronchus1);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus1ToRightInferiorLobarBronchus2);
+ DEFINE_STATIC_STRING(RightSuperiorLobarBronchusToRightSuperiorApicoposteriorBronchus);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus2ToRightInferiorLobarBronchus3);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus2ToRightInferiorLobarBronchus4);
+
+ DEFINE_STATIC_STRING(CarinaToLeftMainBronchus);
+ DEFINE_STATIC_STRING(LeftMainBronchusToLeftInferiorLobarBronchus1);
+ DEFINE_STATIC_STRING(LeftMainBronchusToLeftSuperiorLobarBronchus);
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus1ToLeftInferiorLobarBronchus2);
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus2ToLeftInferiorLobarBronchus3);
+ DEFINE_STATIC_STRING(LeftSuperiorLobarBronchusToLeftLingularBonchus);
+ DEFINE_STATIC_STRING(LeftSuperiorLobarBronchusToLeftSuperiorApicoposteriorBronchus);
+
+ DEFINE_STATIC_STRING(RightSuperiorApicoposteriorBronchusToRightSuperiorLobeApicalBronchiole);
+ DEFINE_STATIC_STRING(RightSuperiorApicoposteriorBronchusToRightSuperiorLobePosteriorBronchiole);
+ DEFINE_STATIC_STRING(RightSuperiorLobarBronchusToRightSuperiorLobeAnteriorBronchiole);
+ DEFINE_STATIC_STRING(RightMiddleLobarBronchusToRightMiddleLobeLateralBronchiole);
+ DEFINE_STATIC_STRING(RightMiddleLobarBronchusToRightMiddleLobeMedialBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus1ToRightInferiorLobeSuperiorBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus2ToRightInferiorLobeMedialBasalBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus3ToRightInferiorLobeAnteriorBasalBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus4ToRightInferiorLobeLateralBasalBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus4ToRightInferiorLobePosteriorBasalBronchiole);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus3ToLeftInferiorLobeLateralBasalBronchiole);
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus3ToLeftInferiorLobePosteriorBasalBronchiole);
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus2ToLeftInferiorLobeAnteromedialBasalBronchiole);
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus1ToLeftInferiorLobeSuperiorBronchiole);
+ DEFINE_STATIC_STRING(LeftLingularBonchusToLeftSuperiorLobeInferiorLingulaBronchiole);
+ DEFINE_STATIC_STRING(LeftLingularBonchusToLeftSuperiorLobeSuperiorLingulaBronchiole);
+ DEFINE_STATIC_STRING(LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeAnteriorBronchiole);
+ DEFINE_STATIC_STRING(LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeApicoposteriorBronchiole);
+
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalBronchioleToRightSuperiorLobeApicalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorBronchioleToRightSuperiorLobePosteriorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorBronchioleToRightSuperiorLobeAnteriorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralBronchioleToRightMiddleLobeLateralAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialBronchioleToRightMiddleLobeMedialAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorBronchioleToRightInferiorLobeSuperiorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalBronchioleToRightInferiorLobeMedialBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalBronchioleToRightInferiorLobeAnteriorBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalBronchioleToRightInferiorLobeLateralBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalBronchioleToRightInferiorLobePosteriorBasalAlveolarDeadSpace);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalBronchioleToLeftInferiorLobePosteriorBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalBronchioleToLeftInferiorLobeLateralBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalBronchioleToLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorBronchioleToLeftInferiorLobeSuperiorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaBronchioleToLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaBronchioleToLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorBronchioleToLeftSuperiorLobeAnteriorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorBronchioleToLeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
+
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalAlveolarDeadSpaceToRightSuperiorLobeApicalAlveoli);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorAlveolarDeadSpaceToRightSuperiorLobePosteriorAlveoli);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorAlveolarDeadSpaceToRightSuperiorLobeAnteriorAlveoli);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralAlveolarDeadSpaceToRightMiddleLobeLateralAlveoli);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialAlveolarDeadSpaceToRightMiddleLobeMedialAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorAlveolarDeadSpaceToRightInferiorLobeSuperiorAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalAlveolarDeadSpaceToRightInferiorLobeMedialBasalAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalAlveolarDeadSpaceToRightInferiorLobeAnteriorBasalAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalAlveolarDeadSpaceToRightInferiorLobeLateralBasalAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalAlveolarDeadSpaceToRightInferiorLobePosteriorBasalAlveoli);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalAlveolarDeadSpaceToLeftInferiorLobePosteriorBasalAlveoli);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalAlveolarDeadSpaceToLeftInferiorLobeLateralBasalAlveoli);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalAlveolarDeadSpaceToLeftInferiorLobeAnteromedialBasalAlveoli);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorAlveolarDeadSpaceToLeftInferiorLobeSuperiorAlveoli);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeInferiorLingulaAlveoli);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeSuperiorLingulaAlveoli);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorAlveolarDeadSpaceToLeftSuperiorLobeAnteriorAlveoli);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorAlveolarDeadSpaceToLeftSuperiorLobeApicoposteriorAlveoli);
static const std::vector& GetValues()
{
ScopedMutex lock;
if (_values.empty())
{
-
+ _values.push_back(CarinaToRightMainBronchus);
+ _values.push_back(RightMainBronchusToRightIntermediateBronchus);
+ _values.push_back(RightMainBronchusToRightSuperiorLobarBronchus);
+ _values.push_back(RightIntermediateBronchusToRightMiddleLobarBronchus);
+ _values.push_back(RightIntermediateBronchusToRightInferiorLobarBronchus1);
+ _values.push_back(RightInferiorLobarBronchus1ToRightInferiorLobarBronchus2);
+ _values.push_back(RightSuperiorLobarBronchusToRightSuperiorApicoposteriorBronchus);
+ _values.push_back(RightInferiorLobarBronchus2ToRightInferiorLobarBronchus3);
+ _values.push_back(RightInferiorLobarBronchus2ToRightInferiorLobarBronchus4);
+
+ _values.push_back(CarinaToLeftMainBronchus);
+ _values.push_back(LeftMainBronchusToLeftInferiorLobarBronchus1);
+ _values.push_back(LeftMainBronchusToLeftSuperiorLobarBronchus);
+ _values.push_back(LeftInferiorLobarBronchus1ToLeftInferiorLobarBronchus2);
+ _values.push_back(LeftInferiorLobarBronchus2ToLeftInferiorLobarBronchus3);
+ _values.push_back(LeftSuperiorLobarBronchusToLeftLingularBonchus);
+ _values.push_back(LeftSuperiorLobarBronchusToLeftSuperiorApicoposteriorBronchus);
+
+ _values.push_back(RightSuperiorApicoposteriorBronchusToRightSuperiorLobeApicalBronchiole);
+ _values.push_back(RightSuperiorApicoposteriorBronchusToRightSuperiorLobePosteriorBronchiole);
+ _values.push_back(RightSuperiorLobarBronchusToRightSuperiorLobeAnteriorBronchiole);
+ _values.push_back(RightMiddleLobarBronchusToRightMiddleLobeLateralBronchiole);
+ _values.push_back(RightMiddleLobarBronchusToRightMiddleLobeMedialBronchiole);
+ _values.push_back(RightInferiorLobarBronchus1ToRightInferiorLobeSuperiorBronchiole);
+ _values.push_back(RightInferiorLobarBronchus2ToRightInferiorLobeMedialBasalBronchiole);
+ _values.push_back(RightInferiorLobarBronchus3ToRightInferiorLobeAnteriorBasalBronchiole);
+ _values.push_back(RightInferiorLobarBronchus4ToRightInferiorLobeLateralBasalBronchiole);
+ _values.push_back(RightInferiorLobarBronchus4ToRightInferiorLobePosteriorBasalBronchiole);
+
+ _values.push_back(LeftInferiorLobarBronchus3ToLeftInferiorLobeLateralBasalBronchiole);
+ _values.push_back(LeftInferiorLobarBronchus3ToLeftInferiorLobePosteriorBasalBronchiole);
+ _values.push_back(LeftInferiorLobarBronchus2ToLeftInferiorLobeAnteromedialBasalBronchiole);
+ _values.push_back(LeftInferiorLobarBronchus1ToLeftInferiorLobeSuperiorBronchiole);
+ _values.push_back(LeftLingularBonchusToLeftSuperiorLobeInferiorLingulaBronchiole);
+ _values.push_back(LeftLingularBonchusToLeftSuperiorLobeSuperiorLingulaBronchiole);
+ _values.push_back(LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeAnteriorBronchiole);
+ _values.push_back(LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeApicoposteriorBronchiole);
+
+ _values.push_back(RightSuperiorLobeApicalBronchioleToRightSuperiorLobeApicalAlveolarDeadSpace);
+ _values.push_back(RightSuperiorLobePosteriorBronchioleToRightSuperiorLobePosteriorAlveolarDeadSpace);
+ _values.push_back(RightSuperiorLobeAnteriorBronchioleToRightSuperiorLobeAnteriorAlveolarDeadSpace);
+ _values.push_back(RightMiddleLobeLateralBronchioleToRightMiddleLobeLateralAlveolarDeadSpace);
+ _values.push_back(RightMiddleLobeMedialBronchioleToRightMiddleLobeMedialAlveolarDeadSpace);
+ _values.push_back(RightInferiorLobeSuperiorBronchioleToRightInferiorLobeSuperiorAlveolarDeadSpace);
+ _values.push_back(RightInferiorLobeMedialBasalBronchioleToRightInferiorLobeMedialBasalAlveolarDeadSpace);
+ _values.push_back(RightInferiorLobeAnteriorBasalBronchioleToRightInferiorLobeAnteriorBasalAlveolarDeadSpace);
+ _values.push_back(RightInferiorLobeLateralBasalBronchioleToRightInferiorLobeLateralBasalAlveolarDeadSpace);
+ _values.push_back(RightInferiorLobePosteriorBasalBronchioleToRightInferiorLobePosteriorBasalAlveolarDeadSpace);
+
+ _values.push_back(LeftInferiorLobePosteriorBasalBronchioleToLeftInferiorLobePosteriorBasalAlveolarDeadSpace);
+ _values.push_back(LeftInferiorLobeLateralBasalBronchioleToLeftInferiorLobeLateralBasalAlveolarDeadSpace);
+ _values.push_back(LeftInferiorLobeAnteromedialBasalBronchioleToLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
+ _values.push_back(LeftInferiorLobeSuperiorBronchioleToLeftInferiorLobeSuperiorAlveolarDeadSpace);
+ _values.push_back(LeftSuperiorLobeInferiorLingulaBronchioleToLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
+ _values.push_back(LeftSuperiorLobeSuperiorLingulaBronchioleToLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
+ _values.push_back(LeftSuperiorLobeAnteriorBronchioleToLeftSuperiorLobeAnteriorAlveolarDeadSpace);
+ _values.push_back(LeftSuperiorLobeApicoposteriorBronchioleToLeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
+
+ _values.push_back(RightSuperiorLobeApicalAlveolarDeadSpaceToRightSuperiorLobeApicalAlveoli);
+ _values.push_back(RightSuperiorLobePosteriorAlveolarDeadSpaceToRightSuperiorLobePosteriorAlveoli);
+ _values.push_back(RightSuperiorLobeAnteriorAlveolarDeadSpaceToRightSuperiorLobeAnteriorAlveoli);
+ _values.push_back(RightMiddleLobeLateralAlveolarDeadSpaceToRightMiddleLobeLateralAlveoli);
+ _values.push_back(RightMiddleLobeMedialAlveolarDeadSpaceToRightMiddleLobeMedialAlveoli);
+ _values.push_back(RightInferiorLobeSuperiorAlveolarDeadSpaceToRightInferiorLobeSuperiorAlveoli);
+ _values.push_back(RightInferiorLobeMedialBasalAlveolarDeadSpaceToRightInferiorLobeMedialBasalAlveoli);
+ _values.push_back(RightInferiorLobeAnteriorBasalAlveolarDeadSpaceToRightInferiorLobeAnteriorBasalAlveoli);
+ _values.push_back(RightInferiorLobeLateralBasalAlveolarDeadSpaceToRightInferiorLobeLateralBasalAlveoli);
+ _values.push_back(RightInferiorLobePosteriorBasalAlveolarDeadSpaceToRightInferiorLobePosteriorBasalAlveoli);
+
+ _values.push_back(LeftInferiorLobePosteriorBasalAlveolarDeadSpaceToLeftInferiorLobePosteriorBasalAlveoli);
+ _values.push_back(LeftInferiorLobeLateralBasalAlveolarDeadSpaceToLeftInferiorLobeLateralBasalAlveoli);
+ _values.push_back(LeftInferiorLobeAnteromedialBasalAlveolarDeadSpaceToLeftInferiorLobeAnteromedialBasalAlveoli);
+ _values.push_back(LeftInferiorLobeSuperiorAlveolarDeadSpaceToLeftInferiorLobeSuperiorAlveoli);
+ _values.push_back(LeftSuperiorLobeInferiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeInferiorLingulaAlveoli);
+ _values.push_back(LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeSuperiorLingulaAlveoli);
+ _values.push_back(LeftSuperiorLobeAnteriorAlveolarDeadSpaceToLeftSuperiorLobeAnteriorAlveoli);
+ _values.push_back(LeftSuperiorLobeApicoposteriorAlveolarDeadSpaceToLeftSuperiorLobeApicoposteriorAlveoli);
}
return _values;
}
@@ -793,7 +1103,6 @@ namespace pulse
DEFINE_STATIC_STRING(RightPeritubularCapillariesToRenalVein);
// Reusing 'RightKidneyToVenaCava' to connect the Right Renal Vein To Vena Cava);
-
static const std::vector& GetValues()
{
ScopedMutex lock;
@@ -899,66 +1208,231 @@ namespace pulse
static std::vector _values;
};
- class ExpandedVascularCompartment
+ class ExpandedLungsVascularCompartment
+ {
+ public:
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalPulmonaryCapillaries);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
+
+
+ static const std::vector& GetValues()
+ {
+ ScopedMutex lock;
+ if (_values.empty())
+ {
+ _values.push_back(RightSuperiorLobeApicalPulmonaryCapillaries);
+ _values.push_back(RightSuperiorLobePosteriorPulmonaryCapillaries);
+ _values.push_back(RightSuperiorLobeAnteriorPulmonaryCapillaries);
+ _values.push_back(RightMiddleLobeLateralPulmonaryCapillaries);
+ _values.push_back(RightMiddleLobeMedialPulmonaryCapillaries);
+ _values.push_back(RightInferiorLobeSuperiorPulmonaryCapillaries);
+ _values.push_back(RightInferiorLobeMedialBasalPulmonaryCapillaries);
+ _values.push_back(RightInferiorLobeAnteriorBasalPulmonaryCapillaries);
+ _values.push_back(RightInferiorLobeLateralBasalPulmonaryCapillaries);
+ _values.push_back(RightInferiorLobePosteriorBasalPulmonaryCapillaries);
+
+ _values.push_back(LeftInferiorLobePosteriorBasalPulmonaryCapillaries);
+ _values.push_back(LeftInferiorLobeLateralBasalPulmonaryCapillaries);
+ _values.push_back(LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
+ _values.push_back(LeftInferiorLobeSuperiorPulmonaryCapillaries);
+ _values.push_back(LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
+ _values.push_back(LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
+ _values.push_back(LeftSuperiorLobeAnteriorPulmonaryCapillaries);
+ _values.push_back(LeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
+ }
+ return _values;
+ }
+ static bool HasValue(const std::string& v)
+ {
+ return std::find(_values.begin(), _values.end(), v) != _values.end();
+ }
+ static void AddValue(const std::string& v)
+ {
+ if (!HasValue(v))
+ {
+ ScopedMutex lock;
+ _values.push_back(v);
+ }
+ }
+ protected:
+ static std::vector _values;
+ };
+
+ class ExpandedLungsVascularLink
+ {
+ public:
+ DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightSuperiorLobeApicalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightSuperiorLobePosteriorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightSuperiorLobeAnteriorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightMiddleLobeLateralPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightMiddleLobeMedialPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightInferiorLobeSuperiorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightInferiorLobeMedialBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightInferiorLobeAnteriorBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightInferiorLobeLateralBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteriesToRightInferiorLobePosteriorBasalPulmonaryCapillaries);
+
+ DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftInferiorLobePosteriorBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftInferiorLobeLateralBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftInferiorLobeSuperiorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftSuperiorLobeAnteriorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftPulmonaryArteriesToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
+
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalPulmonaryCapillariesToRightPulmonaryVeins);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorPulmonaryCapillariesToRightPulmonaryVeins);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorPulmonaryCapillariesToRightPulmonaryVeins);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralPulmonaryCapillariesToRightPulmonaryVeins);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialPulmonaryCapillariesToRightPulmonaryVeins);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorPulmonaryCapillariesToRightPulmonaryVeins);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalPulmonaryCapillariesToRightPulmonaryVeins);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalPulmonaryCapillariesToRightPulmonaryVeins);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalPulmonaryCapillariesToRightPulmonaryVeins);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalPulmonaryCapillariesToRightPulmonaryVeins);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalPulmonaryCapillariesToLeftPulmonaryVeins);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalPulmonaryCapillariesToLeftPulmonaryVeins);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToLeftPulmonaryVeins);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorPulmonaryCapillariesToLeftPulmonaryVeins);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorPulmonaryCapillariesToLeftPulmonaryVeins);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToLeftPulmonaryVeins);
+
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalShunt);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorShunt);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorShunt);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralShunt);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialShunt);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorShunt);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalShunt);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalShunt);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalShunt);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalShunt);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalShunt);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalShunt);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalShunt);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorShunt);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaShunt);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaShunt);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorShunt);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorShunt);
+
+
+ static const std::vector& GetValues()
+ {
+ ScopedMutex lock;
+ if (_values.empty())
+ {
+ _values.push_back(RightPulmonaryArteriesToRightSuperiorLobeApicalPulmonaryCapillaries);
+ _values.push_back(RightPulmonaryArteriesToRightSuperiorLobePosteriorPulmonaryCapillaries);
+ _values.push_back(RightPulmonaryArteriesToRightSuperiorLobeAnteriorPulmonaryCapillaries);
+ _values.push_back(RightPulmonaryArteriesToRightMiddleLobeLateralPulmonaryCapillaries);
+ _values.push_back(RightPulmonaryArteriesToRightMiddleLobeMedialPulmonaryCapillaries);
+ _values.push_back(RightPulmonaryArteriesToRightInferiorLobeSuperiorPulmonaryCapillaries);
+ _values.push_back(RightPulmonaryArteriesToRightInferiorLobeMedialBasalPulmonaryCapillaries);
+ _values.push_back(RightPulmonaryArteriesToRightInferiorLobeAnteriorBasalPulmonaryCapillaries);
+ _values.push_back(RightPulmonaryArteriesToRightInferiorLobeLateralBasalPulmonaryCapillaries);
+ _values.push_back(RightPulmonaryArteriesToRightInferiorLobePosteriorBasalPulmonaryCapillaries);
+
+ _values.push_back(LeftPulmonaryArteriesToLeftInferiorLobePosteriorBasalPulmonaryCapillaries);
+ _values.push_back(LeftPulmonaryArteriesToLeftInferiorLobeLateralBasalPulmonaryCapillaries);
+ _values.push_back(LeftPulmonaryArteriesToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
+ _values.push_back(LeftPulmonaryArteriesToLeftInferiorLobeSuperiorPulmonaryCapillaries);
+ _values.push_back(LeftPulmonaryArteriesToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
+ _values.push_back(LeftPulmonaryArteriesToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
+ _values.push_back(LeftPulmonaryArteriesToLeftSuperiorLobeAnteriorPulmonaryCapillaries);
+ _values.push_back(LeftPulmonaryArteriesToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
+
+ _values.push_back(RightSuperiorLobeApicalPulmonaryCapillariesToRightPulmonaryVeins);
+ _values.push_back(RightSuperiorLobePosteriorPulmonaryCapillariesToRightPulmonaryVeins);
+ _values.push_back(RightSuperiorLobeAnteriorPulmonaryCapillariesToRightPulmonaryVeins);
+ _values.push_back(RightMiddleLobeLateralPulmonaryCapillariesToRightPulmonaryVeins);
+ _values.push_back(RightMiddleLobeMedialPulmonaryCapillariesToRightPulmonaryVeins);
+ _values.push_back(RightInferiorLobeSuperiorPulmonaryCapillariesToRightPulmonaryVeins);
+ _values.push_back(RightInferiorLobeMedialBasalPulmonaryCapillariesToRightPulmonaryVeins);
+ _values.push_back(RightInferiorLobeAnteriorBasalPulmonaryCapillariesToRightPulmonaryVeins);
+ _values.push_back(RightInferiorLobeLateralBasalPulmonaryCapillariesToRightPulmonaryVeins);
+ _values.push_back(RightInferiorLobePosteriorBasalPulmonaryCapillariesToRightPulmonaryVeins);
+
+ _values.push_back(LeftInferiorLobePosteriorBasalPulmonaryCapillariesToLeftPulmonaryVeins);
+ _values.push_back(LeftInferiorLobeLateralBasalPulmonaryCapillariesToLeftPulmonaryVeins);
+ _values.push_back(LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToLeftPulmonaryVeins);
+ _values.push_back(LeftInferiorLobeSuperiorPulmonaryCapillariesToLeftPulmonaryVeins);
+ _values.push_back(LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins);
+ _values.push_back(LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins);
+ _values.push_back(LeftSuperiorLobeAnteriorPulmonaryCapillariesToLeftPulmonaryVeins);
+ _values.push_back(LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToLeftPulmonaryVeins);
+
+ _values.push_back(RightSuperiorLobeApicalShunt);
+ _values.push_back(RightSuperiorLobePosteriorShunt);
+ _values.push_back(RightSuperiorLobeAnteriorShunt);
+ _values.push_back(RightMiddleLobeLateralShunt);
+ _values.push_back(RightMiddleLobeMedialShunt);
+ _values.push_back(RightInferiorLobeSuperiorShunt);
+ _values.push_back(RightInferiorLobeMedialBasalShunt);
+ _values.push_back(RightInferiorLobeAnteriorBasalShunt);
+ _values.push_back(RightInferiorLobeLateralBasalShunt);
+ _values.push_back(RightInferiorLobePosteriorBasalShunt);
+
+ _values.push_back(LeftInferiorLobePosteriorBasalShunt);
+ _values.push_back(LeftInferiorLobeLateralBasalShunt);
+ _values.push_back(LeftInferiorLobeAnteromedialBasalShunt);
+ _values.push_back(LeftInferiorLobeSuperiorShunt);
+ _values.push_back(LeftSuperiorLobeInferiorLingulaShunt);
+ _values.push_back(LeftSuperiorLobeSuperiorLingulaShunt);
+ _values.push_back(LeftSuperiorLobeAnteriorShunt);
+ _values.push_back(LeftSuperiorLobeApicoposteriorShunt);
+ }
+ return _values;
+ }
+ static bool HasValue(const std::string& v)
+ {
+ return std::find(_values.begin(), _values.end(), v) != _values.end();
+ }
+ static void AddValue(const std::string& v)
+ {
+ if (!HasValue(v))
+ {
+ ScopedMutex lock;
+ _values.push_back(v);
+ }
+ }
+ protected:
+ static std::vector _values;
+ };
+
+ class ComputationalLifeVascularCompartment
{
public:
- // Cardio
- DEFINE_STATIC_STRING(Aorta);
DEFINE_STATIC_STRING(ArterialBuffer);
- DEFINE_STATIC_STRING(Heart);
- /**/DEFINE_STATIC_STRING_EX(Myocardium, MyocardiumVasculature);
- /**/DEFINE_STATIC_STRING(LeftHeart);
- /**/DEFINE_STATIC_STRING(RightHeart);
- /**/DEFINE_STATIC_STRING(Pericardium);
- DEFINE_STATIC_STRING(VenaCava);
DEFINE_STATIC_STRING(VenousBuffer);
- // Pulmonary
- DEFINE_STATIC_STRING(PulmonaryArteries);
- DEFINE_STATIC_STRING(PulmonaryCapillaries);
- DEFINE_STATIC_STRING(PulmonaryVeins);
- DEFINE_STATIC_STRING_EX(Lungs, LungsVasculature);
- /**/DEFINE_STATIC_STRING_EX(LeftLung, LeftLungVasculature);
- /***/DEFINE_STATIC_STRING(LeftPulmonaryArteries);
- /***/DEFINE_STATIC_STRING(LeftPulmonaryCapillaries);
- /***/DEFINE_STATIC_STRING(LeftPulmonaryVeins);
- /**/DEFINE_STATIC_STRING_EX(RightLung, RightLungVasculature);
- /***/DEFINE_STATIC_STRING(RightPulmonaryArteries);
- /***/DEFINE_STATIC_STRING(RightPulmonaryCapillaries);
- /***/DEFINE_STATIC_STRING(RightPulmonaryVeins);
- // Renal
- DEFINE_STATIC_STRING_EX(Kidneys, KidneyVasculature);
- /**/DEFINE_STATIC_STRING_EX(LeftKidney, LeftKidneyVasculature);
- /***/DEFINE_STATIC_STRING(LeftRenalArtery);
- /***/DEFINE_STATIC_STRING(LeftNephron);
- /*********/DEFINE_STATIC_STRING(LeftAfferentArteriole);
- /*********/DEFINE_STATIC_STRING(LeftGlomerularCapillaries);
- /*********/DEFINE_STATIC_STRING(LeftEfferentArteriole);
- /*********/DEFINE_STATIC_STRING(LeftPeritubularCapillaries);
- /*********/DEFINE_STATIC_STRING(LeftBowmansCapsules);
- /*********/DEFINE_STATIC_STRING(LeftTubules);
- /***/DEFINE_STATIC_STRING(LeftRenalVein);
- /**/DEFINE_STATIC_STRING_EX(RightKidney, RightKidneyVasculature);
- /***/DEFINE_STATIC_STRING(RightRenalArtery);
- /***/DEFINE_STATIC_STRING(RightNephron);
- /*********/DEFINE_STATIC_STRING(RightAfferentArteriole);
- /*********/DEFINE_STATIC_STRING(RightGlomerularCapillaries);
- /*********/DEFINE_STATIC_STRING(RightEfferentArteriole);
- /*********/DEFINE_STATIC_STRING(RightPeritubularCapillaries);
- /*********/DEFINE_STATIC_STRING(RightBowmansCapsules);
- /*********/DEFINE_STATIC_STRING(RightTubules);
- /***/DEFINE_STATIC_STRING(RightRenalVein);
- // General Organs and Periphery
- DEFINE_STATIC_STRING_EX(Bone, BoneVasculature);
+
DEFINE_STATIC_STRING_EX(Head, HeadVasculature);
/**/DEFINE_STATIC_STRING_EX(Extracranial, ExtracranialVasculature);
/**/DEFINE_STATIC_STRING_EX(Intracranial, IntracranialVasculature);
- DEFINE_STATIC_STRING_EX(Fat, FatVasculature);
- DEFINE_STATIC_STRING_EX(Gut, GutVasculature);
+
/**/DEFINE_STATIC_STRING_EX(Gut1, Gut1Vasculature);
- /**/DEFINE_STATIC_STRING_EX(Splanchnic, SplanchnicVasculature);
- /**/DEFINE_STATIC_STRING_EX(SmallIntestine, SmallIntestineVasculature);
- /**/DEFINE_STATIC_STRING_EX(LargeIntestine, LargeIntestineVasculature);
- DEFINE_STATIC_STRING_EX(LeftArm, LeftArmVasculature);
/**/DEFINE_STATIC_STRING_EX(LeftArmArterioles, LeftArmArteriolesVasculature);
/**/DEFINE_STATIC_STRING_EX(LeftArmBone, LeftArmBoneVasculature);
/**/DEFINE_STATIC_STRING_EX(LeftArmFat, LeftArmFatVasculature);
@@ -966,7 +1440,6 @@ namespace pulse
/**/DEFINE_STATIC_STRING_EX(LeftArmMuscle, LeftArmMuscleVasculature);
/**/DEFINE_STATIC_STRING_EX(LeftArmSkin, LeftArmSkinVasculature);
/**/DEFINE_STATIC_STRING_EX(LeftArmVenules, LeftArmVenulesVasculature);
- DEFINE_STATIC_STRING_EX(LeftLeg, LeftLegVasculature);
/**/DEFINE_STATIC_STRING_EX(LeftLegArterioles, LeftLegArteriolesVasculature);
/**/DEFINE_STATIC_STRING_EX(LeftLegBone, LeftLegBoneVasculature);
/**/DEFINE_STATIC_STRING_EX(LeftLegFat, LeftLegFatVasculature);
@@ -974,9 +1447,6 @@ namespace pulse
/**/DEFINE_STATIC_STRING_EX(LeftLegMuscle, LeftLegMuscleVasculature);
/**/DEFINE_STATIC_STRING_EX(LeftLegSkin, LeftLegSkinVasculature);
/**/DEFINE_STATIC_STRING_EX(LeftLegVenules, LeftLegVenulesVasculature);
- DEFINE_STATIC_STRING_EX(Liver, LiverVasculature);
- DEFINE_STATIC_STRING_EX(Muscle, MuscleVasculature);
- DEFINE_STATIC_STRING_EX(RightArm, RightArmVasculature);
/**/DEFINE_STATIC_STRING_EX(RightArmArterioles, RightArmArteriolesVasculature);
/**/DEFINE_STATIC_STRING_EX(RightArmBone, RightArmBoneVasculature);
/**/DEFINE_STATIC_STRING_EX(RightArmFat, RightArmFatVasculature);
@@ -984,7 +1454,6 @@ namespace pulse
/**/DEFINE_STATIC_STRING_EX(RightArmMuscle, RightArmMuscleVasculature);
/**/DEFINE_STATIC_STRING_EX(RightArmSkin, RightArmSkinVasculature);
/**/DEFINE_STATIC_STRING_EX(RightArmVenules, RightArmVenulesVasculature);
- DEFINE_STATIC_STRING_EX(RightLeg, RightLegVasculature);
/**/DEFINE_STATIC_STRING_EX(RightLegArterioles, RightLegArteriolesVasculature);
/**/DEFINE_STATIC_STRING_EX(RightLegBone, RightLegBoneVasculature);
/**/DEFINE_STATIC_STRING_EX(RightLegFat, RightLegFatVasculature);
@@ -992,8 +1461,6 @@ namespace pulse
/**/DEFINE_STATIC_STRING_EX(RightLegMuscle, RightLegMuscleVasculature);
/**/DEFINE_STATIC_STRING_EX(RightLegSkin, RightLegSkinVasculature);
/**/DEFINE_STATIC_STRING_EX(RightLegVenules, RightLegVenulesVasculature);
- DEFINE_STATIC_STRING_EX(Skin, SkinVasculature);
- DEFINE_STATIC_STRING_EX(Spleen, SpleenVasculature);
DEFINE_STATIC_STRING_EX(Torso, TorsoVasculature);
/**/DEFINE_STATIC_STRING_EX(TorsoArterioles, TorsoArteriolesVasculature);
/**/DEFINE_STATIC_STRING_EX(TorsoBone, TorsoBoneVasculature);
@@ -1002,10 +1469,6 @@ namespace pulse
/**/DEFINE_STATIC_STRING_EX(TorsoMuscle, TorsoMuscleVasculature);
/**/DEFINE_STATIC_STRING_EX(TorsoSkin, TorsoSkinVasculature);
/**/DEFINE_STATIC_STRING_EX(TorsoVenules, TorsoVenulesVasculature);
- DEFINE_STATIC_STRING(Abdomen);
- /**/DEFINE_STATIC_STRING(AbdominalCavity);
-
- DEFINE_STATIC_STRING(Ground);
static const std::vector& GetValues()
@@ -1013,64 +1476,12 @@ namespace pulse
ScopedMutex lock;
if (_values.empty())
{
- _values.push_back(Aorta);
_values.push_back(ArterialBuffer);
- _values.push_back(Abdomen);
- _values.push_back(Heart);
- _values.push_back(Myocardium);
- _values.push_back(LeftHeart);
- _values.push_back(RightHeart);
- _values.push_back(Pericardium);
- _values.push_back(VenaCava);
_values.push_back(VenousBuffer);
- _values.push_back(PulmonaryArteries);
- _values.push_back(PulmonaryCapillaries);
- _values.push_back(PulmonaryVeins);
- _values.push_back(Lungs);
- _values.push_back(LeftLung);
- _values.push_back(LeftPulmonaryArteries);
- _values.push_back(LeftPulmonaryCapillaries);
- _values.push_back(LeftPulmonaryVeins);
- _values.push_back(RightLung);
- _values.push_back(RightPulmonaryArteries);
- _values.push_back(RightPulmonaryCapillaries);
- _values.push_back(RightPulmonaryVeins);
- _values.push_back(Kidneys);
- _values.push_back(LeftKidney);
- _values.push_back(LeftRenalArtery);
- _values.push_back(LeftNephron);
- _values.push_back(LeftAfferentArteriole);
- _values.push_back(LeftGlomerularCapillaries);
- _values.push_back(LeftEfferentArteriole);
- _values.push_back(LeftPeritubularCapillaries);
- _values.push_back(LeftBowmansCapsules);
- _values.push_back(LeftTubules);
- _values.push_back(LeftRenalVein);
- _values.push_back(RightKidney);
- _values.push_back(RightRenalArtery);
- _values.push_back(RightNephron);
- _values.push_back(RightAfferentArteriole);
- _values.push_back(RightGlomerularCapillaries);
- _values.push_back(RightEfferentArteriole);
- _values.push_back(RightPeritubularCapillaries);
- _values.push_back(RightBowmansCapsules);
- _values.push_back(RightTubules);
- _values.push_back(RightRenalVein);
- _values.push_back(Bone);
_values.push_back(Head);
_values.push_back(Extracranial);
_values.push_back(Intracranial);
- _values.push_back(Fat);
- _values.push_back(Gut);
_values.push_back(Gut1);
- _values.push_back(Splanchnic);
- _values.push_back(SmallIntestine);
- _values.push_back(LargeIntestine);
- _values.push_back(Liver);
- _values.push_back(Spleen);
- _values.push_back(Skin);
- _values.push_back(Muscle);
- _values.push_back(LeftArm);
_values.push_back(LeftArmArterioles);
_values.push_back(LeftArmFat);
_values.push_back(LeftArmMuscle);
@@ -1078,7 +1489,6 @@ namespace pulse
_values.push_back(LeftArmBone);
_values.push_back(LeftArmMicrovasculature);
_values.push_back(LeftArmVenules);
- _values.push_back(LeftLeg);
_values.push_back(LeftLegArterioles);
_values.push_back(LeftLegFat);
_values.push_back(LeftLegMuscle);
@@ -1086,7 +1496,6 @@ namespace pulse
_values.push_back(LeftLegBone);
_values.push_back(LeftLegMicrovasculature);
_values.push_back(LeftLegVenules);
- _values.push_back(RightArm);
_values.push_back(RightArmArterioles);
_values.push_back(RightArmFat);
_values.push_back(RightArmMuscle);
@@ -1094,7 +1503,6 @@ namespace pulse
_values.push_back(RightArmBone);
_values.push_back(RightArmMicrovasculature);
_values.push_back(RightArmVenules);
- _values.push_back(RightLeg);
_values.push_back(RightLegArterioles);
_values.push_back(RightLegFat);
_values.push_back(RightLegMuscle);
@@ -1110,7 +1518,6 @@ namespace pulse
_values.push_back(TorsoMuscle);
_values.push_back(TorsoSkin);
_values.push_back(TorsoVenules);
- //_values.push_back(Ground);
}
return _values;
}
@@ -1130,24 +1537,11 @@ namespace pulse
static std::vector _values;
};
- class ExpandedVascularLink
+ class ComputationalLifeVascularLink
{
public:
// Heart and Lungs
-
DEFINE_STATIC_STRING(VenousBufferToVenaCava);
- DEFINE_STATIC_STRING(VenaCavaToRightHeart);
- DEFINE_STATIC_STRING(RightHeartToLeftPulmonaryArteries);
- DEFINE_STATIC_STRING(LeftPulmonaryArteriesToCapillaries);
- DEFINE_STATIC_STRING(LeftPulmonaryArteriesToVeins);
- DEFINE_STATIC_STRING(LeftPulmonaryCapillariesToVeins);
- DEFINE_STATIC_STRING(LeftPulmonaryVeinsToLeftHeart);
- DEFINE_STATIC_STRING(RightHeartToRightPulmonaryArteries);
- DEFINE_STATIC_STRING(RightPulmonaryArteriesToCapillaries);
- DEFINE_STATIC_STRING(RightPulmonaryArteriesToVeins);
- DEFINE_STATIC_STRING(RightPulmonaryCapillariesToVeins);
- DEFINE_STATIC_STRING(RightPulmonaryVeinsToLeftHeart);
- DEFINE_STATIC_STRING(LeftHeartToAorta);
DEFINE_STATIC_STRING(AortaToArterialBuffer);
// Head
DEFINE_STATIC_STRING(AortaToIntracranial);
@@ -1169,9 +1563,6 @@ namespace pulse
DEFINE_STATIC_STRING(LeftArmSkinToLeftArmVenules);
DEFINE_STATIC_STRING(LeftArmVenulesToVenaCava);
- // Left Kidney
- DEFINE_STATIC_STRING(AortaToLeftKidney);
- DEFINE_STATIC_STRING(LeftKidneyToVenaCava);
// Left Leg
DEFINE_STATIC_STRING(AortaToLeftLegArterioles);
DEFINE_STATIC_STRING(LeftLegArteriolesToLeftLegBone);
@@ -1186,26 +1577,10 @@ namespace pulse
DEFINE_STATIC_STRING(LeftLegMuscleToLeftLegVenules);
DEFINE_STATIC_STRING(LeftLegSkinToLeftLegVenules);
DEFINE_STATIC_STRING(LeftLegVenulesToVenaCava);
+
// Gut
DEFINE_STATIC_STRING(AortaToGut);
- //// Large Intestine
- DEFINE_STATIC_STRING(AortaToLargeIntestine);
- DEFINE_STATIC_STRING(LargeIntestineToLiver);
- //// Small Intestine
- DEFINE_STATIC_STRING(AortaToSmallIntestine);
- DEFINE_STATIC_STRING(SmallIntestineToLiver);
- //// Splanchnic
- DEFINE_STATIC_STRING(AortaToSplanchnic);
- DEFINE_STATIC_STRING(SplanchnicToLiver);
- //// Spleen
- DEFINE_STATIC_STRING(AortaToSpleen);
- DEFINE_STATIC_STRING(SpleenToLiver);
- //// Liver
- DEFINE_STATIC_STRING(AortaToLiver);
- DEFINE_STATIC_STRING(LiverToVenaCava);
- // Myocardium
- DEFINE_STATIC_STRING(AortaToMyocardium);
- DEFINE_STATIC_STRING(MyocardiumToVenaCava);
+
// Right Arm
DEFINE_STATIC_STRING(AortaToRightArmArterioles);
DEFINE_STATIC_STRING(RightArmArteriolesToRightArmBone);
@@ -1221,9 +1596,6 @@ namespace pulse
DEFINE_STATIC_STRING(RightArmSkinToRightArmVenules);
DEFINE_STATIC_STRING(RightArmVenulesToVenaCava);
- // Right Kidney
- DEFINE_STATIC_STRING(AortaToRightKidney);
- DEFINE_STATIC_STRING(RightKidneyToVenaCava);
// Right Leg
DEFINE_STATIC_STRING(AortaToRightLegArterioles);
DEFINE_STATIC_STRING(RightLegArteriolesToRightLegBone);
@@ -1253,8 +1625,6 @@ namespace pulse
DEFINE_STATIC_STRING(TorsoFatToTorsoVenules);
DEFINE_STATIC_STRING(TorsoBoneToTorsoVenules);
DEFINE_STATIC_STRING(TorsoVenulesToVenaCava);
- // Hemorrhage and IV
- DEFINE_STATIC_STRING(VenaCavaIV);
// Vascular To Tissue Links
DEFINE_STATIC_STRING(TorsoBoneVascularToTissue);
@@ -1289,92 +1659,40 @@ namespace pulse
DEFINE_STATIC_STRING(RightLegSkinVascularToTissue);
DEFINE_STATIC_STRING(SpleenVascularToTissue);
- // Renal Links
- // Reusing 'AortaToLeftKidney' to connect the Aorta To Left Renal Artery
- DEFINE_STATIC_STRING(LeftRenalArteryToAfferentArteriole);
- DEFINE_STATIC_STRING(LeftAfferentArterioleToGlomerularCapillaries);
- DEFINE_STATIC_STRING(LeftGlomerularCapillariesToEfferentArteriole);
- DEFINE_STATIC_STRING(LeftGlomerularCapillariesToBowmansCapsules);
- DEFINE_STATIC_STRING(LeftBowmansCapsulesToTubules);
- DEFINE_STATIC_STRING(LeftTubulesToPeritubularCapillaries);
- DEFINE_STATIC_STRING(LeftEfferentArterioleToPeritubularCapillaries);
- DEFINE_STATIC_STRING(LeftPeritubularCapillariesToRenalVein);
- // Reusing 'LeftKidneyToVenaCava' to connect the Left Renal Vein To Vena Cava
-
- // Reusing 'AortaToRightKidney' to connect the Aorta To Right Renal Artery
- DEFINE_STATIC_STRING(RightRenalArteryToAfferentArteriole);
- DEFINE_STATIC_STRING(RightAfferentArterioleToGlomerularCapillaries);
- DEFINE_STATIC_STRING(RightGlomerularCapillariesToEfferentArteriole);
- DEFINE_STATIC_STRING(RightGlomerularCapillariesToBowmansCapsules);
- DEFINE_STATIC_STRING(RightBowmansCapsulesToTubules);
- DEFINE_STATIC_STRING(RightTubulesToPeritubularCapillaries);
- DEFINE_STATIC_STRING(RightEfferentArterioleToPeritubularCapillaries);
- DEFINE_STATIC_STRING(RightPeritubularCapillariesToRenalVein);
- // Reusing 'RightKidneyToVenaCava' to connect the Right Renal Vein To Vena Cava);
-
-
static const std::vector& GetValues()
{
ScopedMutex lock;
if (_values.empty())
{
- _values.push_back(VenaCavaToRightHeart);
- _values.push_back(RightHeartToLeftPulmonaryArteries);
- _values.push_back(LeftPulmonaryArteriesToCapillaries);
- _values.push_back(LeftPulmonaryArteriesToVeins);
- _values.push_back(LeftPulmonaryCapillariesToVeins);
- _values.push_back(LeftPulmonaryVeinsToLeftHeart);
- _values.push_back(RightHeartToRightPulmonaryArteries);
- _values.push_back(RightPulmonaryArteriesToCapillaries);
- _values.push_back(RightPulmonaryArteriesToVeins);
- _values.push_back(RightPulmonaryCapillariesToVeins);
- _values.push_back(RightPulmonaryVeinsToLeftHeart);
- _values.push_back(LeftHeartToAorta);
_values.push_back(AortaToIntracranial);
_values.push_back(IntracranialToVenaCava);
_values.push_back(AortaToExtracranial);
_values.push_back(ExtracranialToVenaCava);
- _values.push_back(AortaToLargeIntestine);
- _values.push_back(LargeIntestineToLiver);
+
_values.push_back(LeftArmArteriolesToLeftArmBone);
_values.push_back(LeftArmArteriolesToLeftArmFat);
_values.push_back(LeftArmArteriolesToLeftArmMicrovasculature);
_values.push_back(LeftArmArteriolesToLeftArmMuscle);
_values.push_back(LeftArmArteriolesToLeftArmSkin);
- _values.push_back(AortaToLeftKidney);
- _values.push_back(LeftKidneyToVenaCava);
_values.push_back(LeftLegArteriolesToLeftLegBone);
_values.push_back(LeftLegArteriolesToLeftLegFat);
_values.push_back(LeftLegArteriolesToLeftLegMicrovasculature);
_values.push_back(LeftLegArteriolesToLeftLegMuscle);
_values.push_back(LeftLegArteriolesToLeftLegSkin);
- _values.push_back(AortaToLiver);
- _values.push_back(LiverToVenaCava);
- _values.push_back(AortaToMyocardium);
- _values.push_back(MyocardiumToVenaCava);
+
_values.push_back(RightArmArteriolesToRightArmBone);
_values.push_back(RightArmArteriolesToRightArmFat);
_values.push_back(RightArmArteriolesToRightArmMicrovasculature);
_values.push_back(RightArmArteriolesToRightArmMuscle);
_values.push_back(RightArmArteriolesToRightArmSkin);
- _values.push_back(AortaToRightKidney);
- _values.push_back(RightKidneyToVenaCava);
_values.push_back(RightLegArteriolesToRightLegBone);
_values.push_back(RightLegArteriolesToRightLegFat);
_values.push_back(RightLegArteriolesToRightLegMicrovasculature);
_values.push_back(RightLegArteriolesToRightLegMuscle);
_values.push_back(RightLegArteriolesToRightLegSkin);
-
-
- _values.push_back(AortaToSmallIntestine);
- _values.push_back(SmallIntestineToLiver);
- _values.push_back(AortaToSplanchnic);
- _values.push_back(SplanchnicToLiver);
- _values.push_back(AortaToSpleen);
- _values.push_back(SpleenToLiver);
_values.push_back(AortaToTorsoArterioles);
_values.push_back(TorsoArteriolesToTorsoBone);
_values.push_back(TorsoArteriolesToTorsoFat);
@@ -1441,23 +1759,6 @@ namespace pulse
_values.push_back(RightArmSkinVascularToTissue);
_values.push_back(RightLegSkinVascularToTissue);
_values.push_back(SpleenVascularToTissue);
-
- _values.push_back(LeftRenalArteryToAfferentArteriole);
- _values.push_back(LeftAfferentArterioleToGlomerularCapillaries);
- _values.push_back(LeftGlomerularCapillariesToEfferentArteriole);
- _values.push_back(LeftGlomerularCapillariesToBowmansCapsules);
- _values.push_back(LeftBowmansCapsulesToTubules);
- _values.push_back(LeftTubulesToPeritubularCapillaries);
- _values.push_back(LeftEfferentArterioleToPeritubularCapillaries);
- _values.push_back(LeftPeritubularCapillariesToRenalVein);
- _values.push_back(RightRenalArteryToAfferentArteriole);
- _values.push_back(RightAfferentArterioleToGlomerularCapillaries);
- _values.push_back(RightGlomerularCapillariesToEfferentArteriole);
- _values.push_back(RightGlomerularCapillariesToBowmansCapsules);
- _values.push_back(RightBowmansCapsulesToTubules);
- _values.push_back(RightTubulesToPeritubularCapillaries);
- _values.push_back(RightEfferentArterioleToPeritubularCapillaries);
- _values.push_back(RightPeritubularCapillariesToRenalVein);
}
return _values;
}
@@ -1477,7 +1778,6 @@ namespace pulse
static std::vector _values;
};
-
class UrineCompartment
{
public:
diff --git a/src/cpp/engine/common/controller/CircuitManager.h b/src/cpp/engine/common/controller/CircuitManager.h
index b874f2f16b8711cdd9d5ebd4eeb5a174a6d01236..694c6d5a29136c9837b88e60b42ccaa4f369c155 100644
--- a/src/cpp/engine/common/controller/CircuitManager.h
+++ b/src/cpp/engine/common/controller/CircuitManager.h
@@ -218,12 +218,187 @@ namespace pulse
DEFINE_STATIC_STRING(StomachToEnvironment);
};
- class ExpandedRespiratoryNode
+ class ExpandedLungsRespiratoryNode
{
+ public:
+ DEFINE_STATIC_STRING(RightMainBronchus);
+ DEFINE_STATIC_STRING(LeftMainBronchus);
+ DEFINE_STATIC_STRING(RightIntermediateBronchus);
+ DEFINE_STATIC_STRING(RightSuperiorLobarBronchus);
+ DEFINE_STATIC_STRING(RightMiddleLobarBronchus);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus1);
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus1);
+ DEFINE_STATIC_STRING(LeftSuperiorLobarBronchus);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus2);
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus2);
+ DEFINE_STATIC_STRING(RightSuperiorApicoposteriorBronchus);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus3);
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus3);
+ DEFINE_STATIC_STRING(LeftLingularBonchus);
+ DEFINE_STATIC_STRING(LeftSuperiorApicoposteriorBronchus);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus4);
+
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalBronchiole);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorBronchiole);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorBronchiole);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralBronchiole);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalBronchiole);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalBronchiole);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalBronchiole);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalBronchiole);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorBronchiole);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaBronchiole);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaBronchiole);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorBronchiole);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorBronchiole);
+
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalAlveolarDeadSpace);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
+
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalAlveoli);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorAlveoli);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorAlveoli);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralAlveoli);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalAlveoli);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalAlveoli);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalAlveoli);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalAlveoli);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorAlveoli);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaAlveoli);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaAlveoli);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorAlveoli);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorAlveoli);
};
- class ExpandedRespiratoryPath
+ class ExpandedLungsRespiratoryPath
{
+ public:
+ DEFINE_STATIC_STRING(CarinaToRightMainBronchus);
+ DEFINE_STATIC_STRING(RightMainBronchusToRightIntermediateBronchus);
+ DEFINE_STATIC_STRING(RightMainBronchusToRightSuperiorLobarBronchus);
+ DEFINE_STATIC_STRING(RightIntermediateBronchusToRightMiddleLobarBronchus);
+ DEFINE_STATIC_STRING(RightIntermediateBronchusToRightInferiorLobarBronchus1);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus1ToRightInferiorLobarBronchus2);
+ DEFINE_STATIC_STRING(RightSuperiorLobarBronchusToRightSuperiorApicoposteriorBronchus);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus2ToRightInferiorLobarBronchus3);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus2ToRightInferiorLobarBronchus4);
+
+ DEFINE_STATIC_STRING(CarinaToLeftMainBronchus);
+ DEFINE_STATIC_STRING(LeftMainBronchusToLeftInferiorLobarBronchus1);
+ DEFINE_STATIC_STRING(LeftMainBronchusToLeftSuperiorLobarBronchus);
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus1ToLeftInferiorLobarBronchus2);
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus2ToLeftInferiorLobarBronchus3);
+ DEFINE_STATIC_STRING(LeftSuperiorLobarBronchusToLeftLingularBonchus);
+ DEFINE_STATIC_STRING(LeftSuperiorLobarBronchusToLeftSuperiorApicoposteriorBronchus);
+
+ DEFINE_STATIC_STRING(RightSuperiorApicoposteriorBronchusToRightSuperiorLobeApicalBronchiole);
+ DEFINE_STATIC_STRING(RightSuperiorApicoposteriorBronchusToRightSuperiorLobePosteriorBronchiole);
+ DEFINE_STATIC_STRING(RightSuperiorLobarBronchusToRightSuperiorLobeAnteriorBronchiole);
+ DEFINE_STATIC_STRING(RightMiddleLobarBronchusToRightMiddleLobeLateralBronchiole);
+ DEFINE_STATIC_STRING(RightMiddleLobarBronchusToRightMiddleLobeMedialBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus1ToRightInferiorLobeSuperiorBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus2ToRightInferiorLobeMedialBasalBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus3ToRightInferiorLobeAnteriorBasalBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus4ToRightInferiorLobeLateralBasalBronchiole);
+ DEFINE_STATIC_STRING(RightInferiorLobarBronchus4ToRightInferiorLobePosteriorBasalBronchiole);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus3ToLeftInferiorLobeLateralBasalBronchiole);
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus3ToLeftInferiorLobePosteriorBasalBronchiole);
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus2ToLeftInferiorLobeAnteromedialBasalBronchiole);
+ DEFINE_STATIC_STRING(LeftInferiorLobarBronchus1ToLeftInferiorLobeSuperiorBronchiole);
+ DEFINE_STATIC_STRING(LeftLingularBonchusToLeftSuperiorLobeInferiorLingulaBronchiole);
+ DEFINE_STATIC_STRING(LeftLingularBonchusToLeftSuperiorLobeSuperiorLingulaBronchiole);
+ DEFINE_STATIC_STRING(LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeAnteriorBronchiole);
+ DEFINE_STATIC_STRING(LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeApicoposteriorBronchiole);
+
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalBronchioleToRightSuperiorLobeApicalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorBronchioleToRightSuperiorLobePosteriorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorBronchioleToRightSuperiorLobeAnteriorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralBronchioleToRightMiddleLobeLateralAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialBronchioleToRightMiddleLobeMedialAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorBronchioleToRightInferiorLobeSuperiorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalBronchioleToRightInferiorLobeMedialBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalBronchioleToRightInferiorLobeAnteriorBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalBronchioleToRightInferiorLobeLateralBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalBronchioleToRightInferiorLobePosteriorBasalAlveolarDeadSpace);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalBronchioleToLeftInferiorLobePosteriorBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalBronchioleToLeftInferiorLobeLateralBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalBronchioleToLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorBronchioleToLeftInferiorLobeSuperiorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaBronchioleToLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaBronchioleToLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorBronchioleToLeftSuperiorLobeAnteriorAlveolarDeadSpace);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorBronchioleToLeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
+
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalAlveolarDeadSpaceToRightSuperiorLobeApicalAlveoli);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorAlveolarDeadSpaceToRightSuperiorLobePosteriorAlveoli);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorAlveolarDeadSpaceToRightSuperiorLobeAnteriorAlveoli);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralAlveolarDeadSpaceToRightMiddleLobeLateralAlveoli);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialAlveolarDeadSpaceToRightMiddleLobeMedialAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorAlveolarDeadSpaceToRightInferiorLobeSuperiorAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalAlveolarDeadSpaceToRightInferiorLobeMedialBasalAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalAlveolarDeadSpaceToRightInferiorLobeAnteriorBasalAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalAlveolarDeadSpaceToRightInferiorLobeLateralBasalAlveoli);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalAlveolarDeadSpaceToRightInferiorLobePosteriorBasalAlveoli);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalAlveolarDeadSpaceToLeftInferiorLobePosteriorBasalAlveoli);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalAlveolarDeadSpaceToLeftInferiorLobeLateralBasalAlveoli);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalAlveolarDeadSpaceToLeftInferiorLobeAnteromedialBasalAlveoli);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorAlveolarDeadSpaceToLeftInferiorLobeSuperiorAlveoli);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeInferiorLingulaAlveoli);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeSuperiorLingulaAlveoli);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorAlveolarDeadSpaceToLeftSuperiorLobeAnteriorAlveoli);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorAlveolarDeadSpaceToLeftSuperiorLobeApicoposteriorAlveoli);
+
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalAlveoliToRightPleuralConnection);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorAlveoliToRightPleuralConnection);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorAlveoliToRightPleuralConnection);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralAlveoliToRightPleuralConnection);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialAlveoliToRightPleuralConnection);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorAlveoliToRightPleuralConnection);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalAlveoliToRightPleuralConnection);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalAlveoliToRightPleuralConnection);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalAlveoliToRightPleuralConnection);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalAlveoliToRightPleuralConnection);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalAlveoliToLeftPleuralConnection);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalAlveoliToLeftPleuralConnection);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalAlveoliToLeftPleuralConnection);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorAlveoliToLeftPleuralConnection);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaAlveoliToLeftPleuralConnection);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaAlveoliToLeftPleuralConnection);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorAlveoliToLeftPleuralConnection);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorAlveoliToLeftPleuralConnection);
};
//////////////////////////////////////
@@ -741,39 +916,119 @@ namespace pulse
DEFINE_STATIC_STRING(IVToVenaCava1);
};
- class ExpandedCardiovascularNode
+ class ExpandedLungsCardiovascularNode
{
public:
- DEFINE_STATIC_STRING(RightHeart1);
- DEFINE_STATIC_STRING(RightHeart2);
- DEFINE_STATIC_STRING(RightHeart3);
-
- DEFINE_STATIC_STRING(MainPulmonaryArteries1);
- DEFINE_STATIC_STRING(LeftIntermediatePulmonaryArteries1);
- DEFINE_STATIC_STRING(LeftPulmonaryArteries1);
- DEFINE_STATIC_STRING(RightIntermediatePulmonaryArteries1);
- DEFINE_STATIC_STRING(RightPulmonaryArteries1);
-
- DEFINE_STATIC_STRING(LeftPulmonaryCapillaries1);
- DEFINE_STATIC_STRING(RightPulmonaryCapillaries1);
-
- DEFINE_STATIC_STRING(LeftIntermediatePulmonaryVeins1);
- DEFINE_STATIC_STRING(LeftPulmonaryVeins1);
- DEFINE_STATIC_STRING(RightIntermediatePulmonaryVeins1);
- DEFINE_STATIC_STRING(RightPulmonaryVeins1);
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalPulmonaryCapillaries);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
+ };
- DEFINE_STATIC_STRING(LeftHeart1);
- DEFINE_STATIC_STRING(LeftHeart2);
- DEFINE_STATIC_STRING(LeftHeart3);
+ class ExpandedLungsCardiovascularPath
+ {
+ public:
+ DEFINE_STATIC_STRING(RightPulmonaryArteries1ToRightSuperiorLobeApicalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteries1ToRightSuperiorLobePosteriorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteries1ToRightSuperiorLobeAnteriorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteries1ToRightMiddleLobeLateralPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteries1ToRightMiddleLobeMedialPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteries1ToRightInferiorLobeSuperiorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteries1ToRightInferiorLobeMedialBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteries1ToRightInferiorLobeAnteriorBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteries1ToRightInferiorLobeLateralBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(RightPulmonaryArteries1ToRightInferiorLobePosteriorBasalPulmonaryCapillaries);
+
+ DEFINE_STATIC_STRING(LeftPulmonaryArteries1ToLeftInferiorLobePosteriorBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftPulmonaryArteries1ToLeftInferiorLobeLateralBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftPulmonaryArteries1ToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftPulmonaryArteries1ToLeftInferiorLobeSuperiorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftPulmonaryArteries1ToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftPulmonaryArteries1ToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftPulmonaryArteries1ToLeftSuperiorLobeAnteriorPulmonaryCapillaries);
+ DEFINE_STATIC_STRING(LeftPulmonaryArteries1ToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
+
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalPulmonaryCapillariesToRightPulmonaryVeins1);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorPulmonaryCapillariesToRightPulmonaryVeins1);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorPulmonaryCapillariesToRightPulmonaryVeins1);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralPulmonaryCapillariesToRightPulmonaryVeins1);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialPulmonaryCapillariesToRightPulmonaryVeins1);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorPulmonaryCapillariesToRightPulmonaryVeins1);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalPulmonaryCapillariesToRightPulmonaryVeins1);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalPulmonaryCapillariesToRightPulmonaryVeins1);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalPulmonaryCapillariesToRightPulmonaryVeins1);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalPulmonaryCapillariesToRightPulmonaryVeins1);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalPulmonaryCapillariesToLeftPulmonaryVeins1);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalPulmonaryCapillariesToLeftPulmonaryVeins1);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToLeftPulmonaryVeins1);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorPulmonaryCapillariesToLeftPulmonaryVeins1);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins1);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins1);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorPulmonaryCapillariesToLeftPulmonaryVeins1);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToLeftPulmonaryVeins1);
+
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalPulmonaryCapillariesToGround);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorPulmonaryCapillariesToGround);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorPulmonaryCapillariesToGround);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralPulmonaryCapillariesToGround);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialPulmonaryCapillariesToGround);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorPulmonaryCapillariesToGround);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalPulmonaryCapillariesToGround);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalPulmonaryCapillariesToGround);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalPulmonaryCapillariesToGround);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalPulmonaryCapillariesToGround);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalPulmonaryCapillariesToGround);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalPulmonaryCapillariesToGround);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToGround);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorPulmonaryCapillariesToGround);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToGround);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToGround);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorPulmonaryCapillariesToGround);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToGround);
+
+ DEFINE_STATIC_STRING(RightSuperiorLobeApicalShunt);
+ DEFINE_STATIC_STRING(RightSuperiorLobePosteriorShunt);
+ DEFINE_STATIC_STRING(RightSuperiorLobeAnteriorShunt);
+ DEFINE_STATIC_STRING(RightMiddleLobeLateralShunt);
+ DEFINE_STATIC_STRING(RightMiddleLobeMedialShunt);
+ DEFINE_STATIC_STRING(RightInferiorLobeSuperiorShunt);
+ DEFINE_STATIC_STRING(RightInferiorLobeMedialBasalShunt);
+ DEFINE_STATIC_STRING(RightInferiorLobeAnteriorBasalShunt);
+ DEFINE_STATIC_STRING(RightInferiorLobeLateralBasalShunt);
+ DEFINE_STATIC_STRING(RightInferiorLobePosteriorBasalShunt);
+
+ DEFINE_STATIC_STRING(LeftInferiorLobePosteriorBasalShunt);
+ DEFINE_STATIC_STRING(LeftInferiorLobeLateralBasalShunt);
+ DEFINE_STATIC_STRING(LeftInferiorLobeAnteromedialBasalShunt);
+ DEFINE_STATIC_STRING(LeftInferiorLobeSuperiorShunt);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeInferiorLingulaShunt);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeSuperiorLingulaShunt);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeAnteriorShunt);
+ DEFINE_STATIC_STRING(LeftSuperiorLobeApicoposteriorShunt);
+ };
- DEFINE_STATIC_STRING(Aorta1);
- DEFINE_STATIC_STRING(Aorta2);
- DEFINE_STATIC_STRING(Aorta3);
- DEFINE_STATIC_STRING(Aorta4);
+ class ComputationalLifeCardiovascularNode
+ {
+ public:
DEFINE_STATIC_STRING(Aorta5);
- DEFINE_STATIC_STRING(AbdominalCavity1);
-
DEFINE_STATIC_STRING(Extracranial1);
DEFINE_STATIC_STRING(Extracranial2);
DEFINE_STATIC_STRING(Extracranial3);
@@ -783,64 +1038,36 @@ namespace pulse
DEFINE_STATIC_STRING(Gut1);
- DEFINE_STATIC_STRING(LargeIntestine1);
-
- DEFINE_STATIC_STRING(Liver1);
- DEFINE_STATIC_STRING(Liver2);
- DEFINE_STATIC_STRING(PortalVein1);
-
- DEFINE_STATIC_STRING(LeftArm1);
- DEFINE_STATIC_STRING(LeftArm2);
DEFINE_STATIC_STRING(LeftArmBone1);
DEFINE_STATIC_STRING(LeftArmFat1);
DEFINE_STATIC_STRING(LeftArmMicroVasculature1);
DEFINE_STATIC_STRING(LeftArmMuscle1);
DEFINE_STATIC_STRING(LeftArmSkin1);
- DEFINE_STATIC_STRING(LeftKidney1);
- DEFINE_STATIC_STRING(LeftKidney2);
DEFINE_STATIC_STRING(LeftKidney3);
- DEFINE_STATIC_STRING(LeftLeg1);
- DEFINE_STATIC_STRING(LeftLeg2);
DEFINE_STATIC_STRING(LeftLegBone1);
DEFINE_STATIC_STRING(LeftLegFat1);
DEFINE_STATIC_STRING(LeftLegMicroVasculature1);
DEFINE_STATIC_STRING(LeftLegMuscle1);
DEFINE_STATIC_STRING(LeftLegSkin1);
- DEFINE_STATIC_STRING(Myocardium1);
- DEFINE_STATIC_STRING(Myocardium2);
DEFINE_STATIC_STRING(Myocardium3);
- DEFINE_STATIC_STRING(Pericardium1);
-
- DEFINE_STATIC_STRING(RightArm1);
- DEFINE_STATIC_STRING(RightArm2);
DEFINE_STATIC_STRING(RightArmBone1);
DEFINE_STATIC_STRING(RightArmFat1);
DEFINE_STATIC_STRING(RightArmMicroVasculature1);
DEFINE_STATIC_STRING(RightArmMuscle1);
DEFINE_STATIC_STRING(RightArmSkin1);
- DEFINE_STATIC_STRING(RightKidney1);
- DEFINE_STATIC_STRING(RightKidney2);
DEFINE_STATIC_STRING(RightKidney3);
- DEFINE_STATIC_STRING(RightLeg1);
- DEFINE_STATIC_STRING(RightLeg2);
DEFINE_STATIC_STRING(RightLegBone1);
DEFINE_STATIC_STRING(RightLegFat1);
DEFINE_STATIC_STRING(RightLegMicroVasculature1);
DEFINE_STATIC_STRING(RightLegMuscle1);
DEFINE_STATIC_STRING(RightLegSkin1);
- DEFINE_STATIC_STRING(SmallIntestine1);
-
- DEFINE_STATIC_STRING(Splanchnic1);
-
- DEFINE_STATIC_STRING(Spleen1);
-
DEFINE_STATIC_STRING(Torso1)
DEFINE_STATIC_STRING(Torso2)
DEFINE_STATIC_STRING(TorsoBone1);
@@ -849,54 +1076,13 @@ namespace pulse
DEFINE_STATIC_STRING(TorsoMuscle1);
DEFINE_STATIC_STRING(TorsoSkin1);
- DEFINE_STATIC_STRING(VenaCava1);
DEFINE_STATIC_STRING(VenaCava2);
-
- DEFINE_STATIC_STRING(Ground);
};
- class ExpandedCardiovascularPath
+ class ComputationalLifeCardiovascularPath
{
public:
- // Heart and Lungs
- DEFINE_STATIC_STRING(VenaCava1ToRightHeart2);
- DEFINE_STATIC_STRING(RightHeart2ToRightHeart1);
- DEFINE_STATIC_STRING(RightHeart1ToRightHeart3);
- DEFINE_STATIC_STRING(RightHeart3ToGround);
- DEFINE_STATIC_STRING(RightHeart1ToMainPulmonaryArteries1);
- DEFINE_STATIC_STRING(MainPulmonaryArteries1ToRightIntermediatePulmonaryArteries1);
- DEFINE_STATIC_STRING(RightIntermediatePulmonaryArteries1ToRightPulmonaryArteries1);
- DEFINE_STATIC_STRING(RightPulmonaryArteries1ToRightPulmonaryVeins1);
- DEFINE_STATIC_STRING(RightPulmonaryArteries1ToRightPulmonaryCapillaries1);
- DEFINE_STATIC_STRING(RightPulmonaryArteries1ToGround);
- DEFINE_STATIC_STRING(RightPulmonaryCapillaries1ToRightPulmonaryVeins1);
- DEFINE_STATIC_STRING(RightPulmonaryCapillaries1ToGround);
- DEFINE_STATIC_STRING(RightPulmonaryVeins1ToRightIntermediatePulmonaryVeins1);
- DEFINE_STATIC_STRING(RightPulmonaryVeins1ToGround);
- DEFINE_STATIC_STRING(RightIntermediatePulmonaryVeins1ToLeftHeart2);
- DEFINE_STATIC_STRING(MainPulmonaryArteries1ToLeftIntermediatePulmonaryArteries1);
- DEFINE_STATIC_STRING(LeftIntermediatePulmonaryArteries1ToLeftPulmonaryArteries1);
- DEFINE_STATIC_STRING(LeftPulmonaryArteries1ToLeftPulmonaryVeins1);
- DEFINE_STATIC_STRING(LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1);
- DEFINE_STATIC_STRING(LeftPulmonaryArteries1ToGround);
- DEFINE_STATIC_STRING(LeftPulmonaryCapillaries1ToGround);
- DEFINE_STATIC_STRING(LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1);
- DEFINE_STATIC_STRING(LeftPulmonaryVeins1ToLeftIntermediatePulmonaryVeins1);
- DEFINE_STATIC_STRING(LeftPulmonaryVeins1ToGround);
- DEFINE_STATIC_STRING(LeftIntermediatePulmonaryVeins1ToLeftHeart2)
- DEFINE_STATIC_STRING(LeftHeart2ToLeftHeart1);
- DEFINE_STATIC_STRING(LeftHeart1ToLeftHeart3);
- DEFINE_STATIC_STRING(LeftHeart3ToGround);
- DEFINE_STATIC_STRING(LeftHeart1ToAorta2);
- DEFINE_STATIC_STRING(Aorta2ToAorta3);
- DEFINE_STATIC_STRING(Aorta3ToAorta1);
- DEFINE_STATIC_STRING(Aorta1ToAorta4);
DEFINE_STATIC_STRING(Aorta1ToAorta5);
-
- // Abdominal Cavity
- DEFINE_STATIC_STRING(GroundToAorta4);
- DEFINE_STATIC_STRING(AbdominalCavity1ToGround);
- DEFINE_STATIC_STRING(GroundToAbdominalCavity1);
// Brain
DEFINE_STATIC_STRING(Aorta5ToExtracranial1);
DEFINE_STATIC_STRING(Extracranial1ToGround);
@@ -917,11 +1103,8 @@ namespace pulse
DEFINE_STATIC_STRING(Gut1ToGround);
// Large Intestine
DEFINE_STATIC_STRING(Gut1ToLargeIntestine1);
- DEFINE_STATIC_STRING(LargeIntestine1ToGround);
- DEFINE_STATIC_STRING(LargeIntestine1ToPortalVein1);
// Left Arm
DEFINE_STATIC_STRING(Aorta5ToLeftArm1);
- DEFINE_STATIC_STRING(LeftArm1ToGround);
DEFINE_STATIC_STRING(LeftArm2ToGround);
DEFINE_STATIC_STRING(LeftArm1ToLeftArmBone1);
DEFINE_STATIC_STRING(LeftArmBone1ToGround);
@@ -941,15 +1124,12 @@ namespace pulse
DEFINE_STATIC_STRING(LeftArm2ToVenaCava2);
// Left Kidney
DEFINE_STATIC_STRING(Aorta5ToLeftKidney1);
- DEFINE_STATIC_STRING(LeftKidney1ToLeftKidney2);
- DEFINE_STATIC_STRING(LeftKidney1ToGround);
DEFINE_STATIC_STRING(LeftKidney2ToGround);
DEFINE_STATIC_STRING(LeftKidney3ToGround);
DEFINE_STATIC_STRING(LeftKidney2ToLeftKidney3);
DEFINE_STATIC_STRING(LeftKidney3ToVenaCava2);
// Left Leg
DEFINE_STATIC_STRING(Aorta5ToLeftLeg1);
- DEFINE_STATIC_STRING(LeftLeg1ToGround);
DEFINE_STATIC_STRING(LeftLeg2ToGround);
DEFINE_STATIC_STRING(LeftLeg1ToLeftLegBone1);
DEFINE_STATIC_STRING(LeftLegBone1ToGround);
@@ -969,25 +1149,16 @@ namespace pulse
DEFINE_STATIC_STRING(LeftLeg2ToVenaCava2);
// Liver
DEFINE_STATIC_STRING(Gut1ToLiver1);
- DEFINE_STATIC_STRING(Liver1ToGround);
DEFINE_STATIC_STRING(Liver2ToGround);
- DEFINE_STATIC_STRING(PortalVein1ToLiver1);
- DEFINE_STATIC_STRING(Liver1ToLiver2);
DEFINE_STATIC_STRING(Liver2ToVenaCava2);
// Myocardium
DEFINE_STATIC_STRING(Aorta5ToMyocardium1);
- DEFINE_STATIC_STRING(Myocardium1ToMyocardium2);
- DEFINE_STATIC_STRING(Myocardium1ToGround);
DEFINE_STATIC_STRING(Myocardium2ToGround);
DEFINE_STATIC_STRING(Myocardium3ToGround);
DEFINE_STATIC_STRING(Myocardium2ToMyocardium3);
DEFINE_STATIC_STRING(Myocardium3ToVenaCava2);
- // Pericardium
- DEFINE_STATIC_STRING(Pericardium1ToGround);
- DEFINE_STATIC_STRING(GroundToPericardium1);
// Right Arm
DEFINE_STATIC_STRING(Aorta5ToRightArm1);
- DEFINE_STATIC_STRING(RightArm1ToGround);
DEFINE_STATIC_STRING(RightArm2ToGround);
DEFINE_STATIC_STRING(RightArm1ToRightArmBone1);
DEFINE_STATIC_STRING(RightArmBone1ToGround);
@@ -1007,15 +1178,12 @@ namespace pulse
DEFINE_STATIC_STRING(RightArm2ToVenaCava2);
// Right Kidney
DEFINE_STATIC_STRING(Aorta5ToRightKidney1);
- DEFINE_STATIC_STRING(RightKidney1ToRightKidney2);
- DEFINE_STATIC_STRING(RightKidney1ToGround);
DEFINE_STATIC_STRING(RightKidney2ToGround);
DEFINE_STATIC_STRING(RightKidney3ToGround);
DEFINE_STATIC_STRING(RightKidney2ToRightKidney3);
DEFINE_STATIC_STRING(RightKidney3ToVenaCava2);
// Right Leg
DEFINE_STATIC_STRING(Aorta5ToRightLeg1);
- DEFINE_STATIC_STRING(RightLeg1ToGround);
DEFINE_STATIC_STRING(RightLeg2ToGround);
DEFINE_STATIC_STRING(RightLeg1ToRightLegBone1);
DEFINE_STATIC_STRING(RightLegBone1ToGround);
@@ -1035,16 +1203,10 @@ namespace pulse
DEFINE_STATIC_STRING(RightLeg2ToVenaCava2);
// Small Intestine
DEFINE_STATIC_STRING(Gut1ToSmallIntestine1);
- DEFINE_STATIC_STRING(SmallIntestine1ToGround);
- DEFINE_STATIC_STRING(SmallIntestine1ToPortalVein1);
// Splanchnic
DEFINE_STATIC_STRING(Gut1ToSplanchnic1);
- DEFINE_STATIC_STRING(Splanchnic1ToGround);
- DEFINE_STATIC_STRING(Splanchnic1ToPortalVein1);
// Spleen
DEFINE_STATIC_STRING(Gut1ToSpleen1);
- DEFINE_STATIC_STRING(Spleen1ToGround);
- DEFINE_STATIC_STRING(Spleen1ToPortalVein1);
// Torso
DEFINE_STATIC_STRING(Aorta5ToTorso1);
DEFINE_STATIC_STRING(Torso1ToGround);
@@ -1067,12 +1229,9 @@ namespace pulse
DEFINE_STATIC_STRING(Torso2ToVenaCava2);
// Vena Cava
DEFINE_STATIC_STRING(VenaCava2ToVenaCava1);
- DEFINE_STATIC_STRING(VenaCava1ToGround);
//DEFINE_STATIC_STRING(VenaCava2ToGround);
- DEFINE_STATIC_STRING(IVToVenaCava1);
};
-
///////////////////////////////////////
// Cerebrospinal Fluid Circuit Enums //
///////////////////////////////////////
@@ -1228,7 +1387,7 @@ namespace pulse
DEFINE_STATIC_STRING(SpleenT1ToLymph);
};
- class ExpandedCardiovascularTissuePath
+ class ComputationalLifeTissuePath
{
public:
DEFINE_STATIC_STRING(TorsoBone1ToBoneT2);
@@ -1236,99 +1395,32 @@ namespace pulse
DEFINE_STATIC_STRING(LeftLegBone1ToBoneT2);
DEFINE_STATIC_STRING(RightArmBone1ToBoneT2);
DEFINE_STATIC_STRING(RightLegBone1ToBoneT2);
- DEFINE_STATIC_STRING(BoneT2ToBoneT1);
- DEFINE_STATIC_STRING(BoneT1ToBoneT3);
- DEFINE_STATIC_STRING(GroundToBoneT3);
- DEFINE_STATIC_STRING(BoneT1ToLymph);
DEFINE_STATIC_STRING(Intracranial2ToBrainT2);
- DEFINE_STATIC_STRING(BrainT2ToBrainT1);
- DEFINE_STATIC_STRING(BrainT1ToBrainT3);
- DEFINE_STATIC_STRING(GroundToBrainT3);
- DEFINE_STATIC_STRING(BrainT1ToLymph);
DEFINE_STATIC_STRING(TorsoFat1ToFatT2);
DEFINE_STATIC_STRING(LeftArmFat1ToFatT2);
DEFINE_STATIC_STRING(LeftLegFat1ToFatT2);
DEFINE_STATIC_STRING(RightArmFat1ToFatT2);
DEFINE_STATIC_STRING(RightLegFat1ToFatT2);
- DEFINE_STATIC_STRING(FatT2ToFatT1);
- DEFINE_STATIC_STRING(FatT1ToFatT3);
- DEFINE_STATIC_STRING(GroundToFatT3);
- DEFINE_STATIC_STRING(FatT1ToLymph);
-
- DEFINE_STATIC_STRING(SmallIntestine1ToGutT2);
- DEFINE_STATIC_STRING(LargeIntestine1ToGutT2);
- DEFINE_STATIC_STRING(Splanchnic1ToGutT2);
- DEFINE_STATIC_STRING(GutT2ToGutT1);
- DEFINE_STATIC_STRING(GutT1ToGutT3);
- DEFINE_STATIC_STRING(GroundToGutT3);
- DEFINE_STATIC_STRING(GutT1ToLymph);
-
- DEFINE_STATIC_STRING(Liver1ToLiverT2);
- DEFINE_STATIC_STRING(LiverT2ToLiverT1);
- DEFINE_STATIC_STRING(LiverT1ToLiverT3);
- DEFINE_STATIC_STRING(GroundToLiverT3);
- DEFINE_STATIC_STRING(LiverT1ToLymph);
DEFINE_STATIC_STRING(LeftKidney2ToLeftKidneyT2);
- DEFINE_STATIC_STRING(LeftKidneyT2ToLeftKidneyT1);
- DEFINE_STATIC_STRING(LeftKidneyT1ToLeftKidneyT3);
- DEFINE_STATIC_STRING(GroundToLeftKidneyT3);
- DEFINE_STATIC_STRING(LeftKidneyT1ToLymph);
-
- DEFINE_STATIC_STRING(LeftLung1ToLeftLungT2);
- DEFINE_STATIC_STRING(LeftLungT2ToLeftLungT1);
- DEFINE_STATIC_STRING(LeftLungT1ToLeftLungT3);
- DEFINE_STATIC_STRING(GroundToLeftLungT3);
- DEFINE_STATIC_STRING(LeftLungT1ToLymph);
-
- DEFINE_STATIC_STRING(LymphToVenaCava);
DEFINE_STATIC_STRING(TorsoMuscle1ToMuscleT2);
DEFINE_STATIC_STRING(LeftArmMuscle1ToMuscleT2);
DEFINE_STATIC_STRING(LeftLegMuscle1ToMuscleT2);
DEFINE_STATIC_STRING(RightArmMuscle1ToMuscleT2);
DEFINE_STATIC_STRING(RightLegMuscle1ToMuscleT2);
- DEFINE_STATIC_STRING(MuscleT2ToMuscleT1);
- DEFINE_STATIC_STRING(MuscleT1ToMuscleT3);
- DEFINE_STATIC_STRING(GroundToMuscleT3);
- DEFINE_STATIC_STRING(MuscleT1ToLymph);
DEFINE_STATIC_STRING(Myocardium2ToMyocardiumT2);
- DEFINE_STATIC_STRING(MyocardiumT2ToMyocardiumT1);
- DEFINE_STATIC_STRING(MyocardiumT1ToMyocardiumT3);
- DEFINE_STATIC_STRING(GroundToMyocardiumT3);
- DEFINE_STATIC_STRING(MyocardiumT1ToLymph);
-
- DEFINE_STATIC_STRING(RightLung1ToRightLungT2);
- DEFINE_STATIC_STRING(RightLungT2ToRightLungT1);
- DEFINE_STATIC_STRING(RightLungT1ToRightLungT3);
- DEFINE_STATIC_STRING(GroundToRightLungT3);
- DEFINE_STATIC_STRING(RightLungT1ToLymph);
DEFINE_STATIC_STRING(RightKidney2ToRightKidneyT2);
- DEFINE_STATIC_STRING(RightKidneyT2ToRightKidneyT1);
- DEFINE_STATIC_STRING(RightKidneyT1ToRightKidneyT3);
- DEFINE_STATIC_STRING(GroundToRightKidneyT3);
- DEFINE_STATIC_STRING(RightKidneyT1ToLymph);
DEFINE_STATIC_STRING(TorsoSkin1ToSkinT2);
DEFINE_STATIC_STRING(LeftArmSkin1ToSkinT2);
DEFINE_STATIC_STRING(LeftLegSkin1ToSkinT2);
DEFINE_STATIC_STRING(RightArmSkin1ToSkinT2);
DEFINE_STATIC_STRING(RightLegSkin1ToSkinT2);
- DEFINE_STATIC_STRING(SkinT2ToSkinT1);
- DEFINE_STATIC_STRING(SkinT1ToSkinT3);
- DEFINE_STATIC_STRING(GroundToSkinT3);
- DEFINE_STATIC_STRING(SkinT1ToLymph);
- DEFINE_STATIC_STRING(SkinSweating);
-
- DEFINE_STATIC_STRING(Spleen1ToSpleenT2);
- DEFINE_STATIC_STRING(SpleenT2ToSpleenT1);
- DEFINE_STATIC_STRING(SpleenT1ToSpleenT3);
- DEFINE_STATIC_STRING(GroundToSpleenT3);
- DEFINE_STATIC_STRING(SpleenT1ToLymph);
};
class RenalNode
diff --git a/src/cpp/engine/common/controller/CompartmentManager.cpp b/src/cpp/engine/common/controller/CompartmentManager.cpp
index 61f1d23738161f8ed5f7589dbc1cfa0c5c8f382c..c8fbcc46688e0386fe5703f5dd1fd412652c52b6 100644
--- a/src/cpp/engine/common/controller/CompartmentManager.cpp
+++ b/src/cpp/engine/common/controller/CompartmentManager.cpp
@@ -26,14 +26,18 @@ std::vector pulse::ChymeCompartment::_values;
//std::vector pulse::ChymeLink::_values;
std::vector pulse::PulmonaryCompartment::_values;
std::vector pulse::PulmonaryLink::_values;
-std::vector pulse::ExpandedPulmonaryCompartment::_values;
+std::vector pulse::ExpandedLungsPulmonaryCompartment::_values;
+std::vector pulse::ExpandedLungsPulmonaryLink::_values;
std::vector pulse::TissueCompartment::_values;
std::vector pulse::ExtravascularCompartment::_values;
std::vector pulse::TemperatureCompartment::_values;
//std::vector pulse::TissueLink::_values;
-std::vector pulse::ExpandedVascularCompartment::_values;
std::vector pulse::VascularCompartment::_values;
std::vector pulse::VascularLink::_values;
+std::vector pulse::ExpandedLungsVascularCompartment::_values;
+std::vector pulse::ExpandedLungsVascularLink::_values;
+std::vector pulse::ComputationalLifeVascularCompartment::_values;
+std::vector pulse::ComputationalLifeVascularLink::_values;
std::vector pulse::UrineCompartment::_values;
std::vector pulse::UrineLink::_values;
std::vector pulse::EnvironmentCompartment::_values;
@@ -96,14 +100,18 @@ namespace pulse
m_ChymeLeafCompartments.clear();
m_PulmonaryCompartments.clear();
m_PulmonaryLeafCompartments.clear();
- m_ExpandedPulmonaryCompartments.clear();
- m_ExpandedPulmonaryLeafCompartments.clear();
+ m_ExpandedLungsPulmonaryCompartments.clear();
+ m_ExpandedLungsPulmonaryLeafCompartments.clear();
m_TissueCompartments.clear();
m_TissueLeafCompartments.clear();
m_UrineCompartments.clear();
m_UrineLeafCompartments.clear();
m_VascularCompartments.clear();
m_VascularLeafCompartments.clear();
+ m_ExpandedLungsVascularCompartments.clear();
+ m_ExpandedLungsVascularLeafCompartments.clear();
+ m_ComputationalLifeVascularCompartments.clear();
+ m_ComputationalLifeVascularLeafCompartments.clear();
m_AnesthesiaMachineCompartments.clear();
m_AnesthesiaMachineLeafCompartments.clear();
m_AerosolCompartments.clear();
@@ -148,22 +156,6 @@ for (const std::string& name : pulse::bin##Compartment::GetValues()) \
m_##bin##LeafCompartments.push_back(cmpt); \
}
-#define SORT_CMPTS_EXPANDED(bin, type) \
-m_##bin##Compartments.clear(); \
-m_##bin##LeafCompartments.clear(); \
-for (const std::string& name : pulse::Expanded##bin##Compartment::GetValues()) \
-{ \
- SE##type##Compartment* cmpt = Get##type##Compartment(name); \
- if (cmpt == nullptr) \
- { \
- Warning("Could not find expected " + std::string(#bin) + " compartment, " + name + " in compartment manager"); \
- continue; \
- } \
- m_##bin##Compartments.push_back(cmpt); \
- if (!cmpt->HasChildren()) \
- m_##bin##LeafCompartments.push_back(cmpt); \
-}
-
void CompartmentManager::StateChange()
{
SECompartmentManager::StateChange();
@@ -172,7 +164,13 @@ for (const std::string& name : pulse::Expanded##bin##Compartment::GetValues()) \
// Anatomy
SORT_CMPTS(Chyme, Liquid);
SORT_CMPTS(Pulmonary, Gas);
- SORT_CMPTS(ExpandedPulmonary, Gas);
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::On)
+ {
+ SORT_CMPTS(ExpandedLungsPulmonary, Gas);
+ // Add Expanded Leafs to Pulmonary Leafs
+ for (SEGasCompartment* leaf : m_ExpandedLungsPulmonaryLeafCompartments)
+ m_PulmonaryLeafCompartments.push_back(leaf);
+ }
SORT_CMPTS(Temperature, Thermal);
if (m_data.GetConfiguration().IsTissueEnabled())
{
@@ -183,17 +181,25 @@ for (const std::string& name : pulse::Expanded##bin##Compartment::GetValues()) \
Warning("Could not find expected Extravascular compartment, " + name + " in compartment manager");
}
}
- if (m_data.GetConfiguration().IsRenalEnabled())
+ if (m_data.GetConfiguration().UseExpandedKidneys() == eSwitch::On)
{
SORT_CMPTS(Urine, Liquid);
}
- if (m_data.GetConfiguration().UseExpandedVasculature() == eSwitch::On)
+
+ SORT_CMPTS(Vascular, Liquid);
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::On)
{
- SORT_CMPTS_EXPANDED(Vascular, Liquid);
+ SORT_CMPTS(ExpandedLungsVascular, Liquid);
+ // Add Expanded Leafs to Vascular Leafs
+ for (SELiquidCompartment* leaf : m_ExpandedLungsVascularLeafCompartments)
+ m_VascularLeafCompartments.push_back(leaf);
}
- else
+ else if (m_data.GetConfiguration().UseComputationalLifeExpansion() == eSwitch::On)
{
- SORT_CMPTS(Vascular, Liquid);
+ SORT_CMPTS(ComputationalLifeVascular, Liquid);
+ // Add Expanded Leafs to Vascular Leafs
+ for (SELiquidCompartment* leaf : m_ComputationalLifeVascularLeafCompartments)
+ m_VascularLeafCompartments.push_back(leaf);
}
// Equipment
@@ -339,10 +345,13 @@ for (const std::string& name : pulse::Expanded##bin##Compartment::GetValues()) \
{
Error("Could not find required Graph " + std::string(pulse::Graph::Cardiovascular));
}
- m_RenalGraph = GetLiquidGraph(pulse::Graph::Renal);
- if (m_RenalGraph == nullptr)
+ if (m_data.GetConfiguration().UseExpandedKidneys() == eSwitch::On)
{
- Error("Could not find required Graph " + std::string(pulse::Graph::Renal));
+ m_RenalGraph = GetLiquidGraph(pulse::Graph::Renal);
+ if (m_RenalGraph == nullptr)
+ {
+ Error("Could not find required Graph " + std::string(pulse::Graph::Renal));
+ }
}
m_RespiratoryGraph = GetGasGraph(pulse::Graph::Respiratory);
if (m_RespiratoryGraph == nullptr)
@@ -448,6 +457,9 @@ for (const std::string& name : pulse::Expanded##bin##Compartment::GetValues()) \
const std::vector& p = pulse::PulmonaryCompartment::GetValues();
if (std::find(p.begin(), p.end(), cmpt.GetName()) != p.end())
return false;
+ const std::vector& eL = pulse::ExpandedLungsPulmonaryCompartment::GetValues();
+ if (std::find(eL.begin(), eL.end(), cmpt.GetName()) != eL.end())
+ return false;
// Don't add it to aerosol cmpts either
const std::vector& bvm = pulse::BagValveMaskCompartment::GetValues();
if (std::find(bvm.begin(), bvm.end(), cmpt.GetName()) != bvm.end())
diff --git a/src/cpp/engine/common/controller/CompartmentManager.h b/src/cpp/engine/common/controller/CompartmentManager.h
index 7d1a4c1562d8ce82634152382666b1dc37fb5f3d..61705309cd380e066599d771826f712877000df7 100644
--- a/src/cpp/engine/common/controller/CompartmentManager.h
+++ b/src/cpp/engine/common/controller/CompartmentManager.h
@@ -61,8 +61,8 @@ namespace pulse
std::vectorconst& GetPulmonaryCompartments() { return m_PulmonaryCompartments; }
std::vectorconst& GetPulmonaryLeafCompartments() { return m_PulmonaryLeafCompartments; }
- std::vectorconst& GetExpandedPulmonaryCompartments() { return m_ExpandedPulmonaryCompartments; }
- std::vectorconst& GetExpandedPulmonaryLeafCompartments() { return m_ExpandedPulmonaryLeafCompartments; }
+ std::vectorconst& GetExpandedLungsPulmonaryCompartments() { return m_ExpandedLungsPulmonaryCompartments; }
+ std::vectorconst& GetExpandedLungsPulmonaryLeafCompartments() { return m_ExpandedLungsPulmonaryLeafCompartments; }
std::vectorconst& GetTemperatureCompartments() { return m_TemperatureCompartments; }
std::vectorconst& GetTemperatureLeafCompartments() { return m_TemperatureLeafCompartments; }
@@ -76,6 +76,12 @@ namespace pulse
std::vectorconst& GetVascularCompartments() { return m_VascularCompartments; }
std::vectorconst& GetVascularLeafCompartments() { return m_VascularLeafCompartments; }
+ std::vectorconst& GetExpandedLungsVascularCompartments() { return m_ExpandedLungsVascularCompartments; }
+ std::vectorconst& GetExpandedLungsVascularLeafCompartments() { return m_ExpandedLungsVascularLeafCompartments; }
+
+ std::vectorconst& GetComputationalLifeVascularCompartments() { return m_ComputationalLifeVascularCompartments; }
+ std::vectorconst& GetComputationalLifeVascularLeafCompartments() { return m_ComputationalLifeVascularLeafCompartments; }
+
std::vectorconst& GetAnesthesiaMachineCompartments() { return m_AnesthesiaMachineCompartments; }
std::vectorconst& GetAnesthesiaMachineLeafCompartments() { return m_AnesthesiaMachineLeafCompartments; }
@@ -154,8 +160,8 @@ namespace pulse
std::vector m_ChymeLeafCompartments;
std::vector m_PulmonaryCompartments;
std::vector m_PulmonaryLeafCompartments;
- std::vector m_ExpandedPulmonaryCompartments;
- std::vector m_ExpandedPulmonaryLeafCompartments;
+ std::vector m_ExpandedLungsPulmonaryCompartments;
+ std::vector m_ExpandedLungsPulmonaryLeafCompartments;
std::vector m_TemperatureCompartments;
std::vector m_TemperatureLeafCompartments;
std::vector m_TissueCompartments;
@@ -163,6 +169,10 @@ namespace pulse
std::vector m_UrineLeafCompartments;
std::vector m_VascularCompartments;
std::vector m_VascularLeafCompartments;
+ std::vector m_ExpandedLungsVascularCompartments;
+ std::vector m_ExpandedLungsVascularLeafCompartments;
+ std::vector m_ComputationalLifeVascularCompartments;
+ std::vector m_ComputationalLifeVascularLeafCompartments;
std::vector m_AnesthesiaMachineCompartments;
std::vector m_AnesthesiaMachineLeafCompartments;
std::vector m_BagValveMaskCompartments;
diff --git a/src/cpp/engine/common/controller/Controller.h b/src/cpp/engine/common/controller/Controller.h
index cb0a71860f603d6b478e672fe133d8beddeea404..2140e3f8d5fac9ed379ccdac6fe971812ab98ce8 100644
--- a/src/cpp/engine/common/controller/Controller.h
+++ b/src/cpp/engine/common/controller/Controller.h
@@ -283,11 +283,11 @@ namespace pulse
virtual void SetupTissue();
virtual void SetupCerebrospinalFluid();
- // Optional Expanded Cardiovascular Circuit Setup Methods
- virtual void SetupExpandedCardiovascular();
- virtual void SetupExpandedCardiovascularRenal();
- virtual void SetupExpandedCardiovascularTissue();
- virtual void SetupExpandedCardiovascularCerebrospinalFluid();
+ // Optional ComputationalLife Expansion Setup Methods
+ virtual void SetupComputationalLifeCardiovascular();
+ virtual void SetupComputationalLifeRenal();
+ virtual void SetupComputationalLifeTissue();
+ virtual void SetupComputationalLifeCerebrospinalFluid();
// Default/Optimal Gastrointestinal
virtual void SetupGastrointestinal();
@@ -295,9 +295,9 @@ namespace pulse
// Default/Optimal Respiratory
virtual void SetupRespiratory();
- // Optional Expanded Respiratory and Cardiovascular Circuit Setup Methods
- virtual void SetupExpandedPulmonaryRespiratory();
- virtual void SetupExpandedPulmonaryCardiovascular();
+ // Optional Expanded Lungs Respiratory and Cardiovascular Circuit Setup Methods
+ virtual void SetupExpandedLungsRespiratory();
+ virtual void SetupExpandedLungsCardiovascular();
// Default/Optimal Equipment
virtual void SetupAnesthesiaMachine();
diff --git a/src/cpp/engine/common/controller/SetupCircuitsAndCompartments.cpp b/src/cpp/engine/common/controller/SetupCircuitsAndCompartments.cpp
index 954483483e25d539aa390ff649206095384a28c6..3a3fe1e6d3636cb70cb602f878d97cf9978ae707 100644
--- a/src/cpp/engine/common/controller/SetupCircuitsAndCompartments.cpp
+++ b/src/cpp/engine/common/controller/SetupCircuitsAndCompartments.cpp
@@ -38,32 +38,40 @@ namespace pulse
{
bool Controller::CreateCircuitsAndCompartments()
{
+ if (m_Config->UseExpandedLungs() == eSwitch::On &&
+ m_Config->UseComputationalLifeExpansion() == eSwitch::On)
+ {
+ Error("Cannot setup an engine with both ExpangedLungs and ComputationalLifeExpansion");
+ return false;
+ }
m_Circuits->Clear();
m_Compartments->Clear();
m_Compartments->Setup();
- if (m_Config->UseExpandedVasculature() == eSwitch::On)
+
+ if (m_Config->UseComputationalLifeExpansion() == eSwitch::On)
{
- SetupExpandedCardiovascular();
- if(m_Config->IsRenalEnabled())
- SetupExpandedCardiovascularRenal();
+ SetupComputationalLifeCardiovascular();
+ if (m_Config->UseExpandedKidneys() == eSwitch::On)
+ SetupComputationalLifeRenal();
if (m_Config->IsTissueEnabled())
- SetupExpandedCardiovascularTissue();
+ SetupComputationalLifeTissue();
if (m_Config->IsCerebrospinalFluidEnabled())
- SetupExpandedCardiovascularCerebrospinalFluid();
+ SetupComputationalLifeCerebrospinalFluid();
}
else
{
- if (m_Config->UseExpandedRespiratory() == eSwitch::On)
- SetupExpandedPulmonaryCardiovascular();
+ if (m_Config->UseExpandedLungs() == eSwitch::On)
+ SetupExpandedLungsCardiovascular();
else
SetupCardiovascular();
- if (m_Config->IsRenalEnabled())
+ if (m_Config->UseExpandedKidneys() == eSwitch::On)
SetupRenal();
if (m_Config->IsTissueEnabled())
SetupTissue();
if (m_Config->IsCerebrospinalFluidEnabled())
SetupCerebrospinalFluid();
}
+
SetupGastrointestinal();
SetupECMO();
@@ -108,10 +116,11 @@ namespace pulse
m_EnvironmentModel->Clear();
m_EnvironmentModel->Initialize();
- if (m_Config->UseExpandedRespiratory() == eSwitch::On)
- SetupExpandedPulmonaryRespiratory();
+ if (m_Config->UseExpandedLungs() == eSwitch::On)
+ SetupExpandedLungsRespiratory();
else
SetupRespiratory();
+
SetupAnesthesiaMachine();
SetupBagValveMask();
SetupInhaler();
@@ -2425,10 +2434,10 @@ namespace pulse
/////////////////
// Left Kidney //
SEFluidCircuitNode* LeftKidney1;
- if (!m_Config->IsRenalEnabled())
- LeftKidney1 = cCombinedCardiovascular.GetNode(pulse::CardiovascularNode::LeftKidney1);
- else
+ if (m_Config->UseExpandedKidneys() == eSwitch::On)
LeftKidney1 = cCombinedCardiovascular.GetNode(pulse::RenalNode::LeftGlomerularCapillaries);
+ else
+ LeftKidney1 = cCombinedCardiovascular.GetNode(pulse::CardiovascularNode::LeftKidney1);
SEFluidCircuitNode& LeftKidneyT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::LeftKidneyT1);
SEFluidCircuitNode& LeftKidneyT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::LeftKidneyT2);
@@ -2476,50 +2485,54 @@ namespace pulse
///////////////
// Left Lung //
- SEFluidCircuitNode* LeftLung1 = cCardiovascular.GetNode(pulse::CardiovascularNode::LeftPulmonaryCapillaries1);
- SEFluidCircuitNode& LeftLungT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::LeftLungT1);
- SEFluidCircuitNode& LeftLungT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::LeftLungT2);
- SEFluidCircuitNode& LeftLungT3 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::LeftLungT3);
- LeftLungT1.GetPressure().Set(LeftLung1->GetPressure());
- LeftLungT3.GetPressure().Set(Ground->GetPressure());
- LeftLungT1.GetVolumeBaseline().SetValue(LLungEWFraction * LLungTissueVolume * 1000.0, VolumeUnit::mL);
-
- SEFluidCircuitPath& LeftLung1ToLeftLungT2 = cCombinedCardiovascular.CreatePath(*LeftLung1, LeftLungT2, pulse::TissuePath::LeftLung1ToLeftLungT2);
- LeftLung1ToLeftLungT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LeftLungT2ToLeftLungT1 = cCombinedCardiovascular.CreatePath(LeftLungT2, LeftLungT1, pulse::TissuePath::LeftLungT2ToLeftLungT1);
- LeftLungT2ToLeftLungT1.GetResistanceBaseline().SetValue((1 / LLungTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftLungT1ToLeftLungT3 = cCombinedCardiovascular.CreatePath(LeftLungT1, LeftLungT3, pulse::TissuePath::LeftLungT1ToLeftLungT3);
- LeftLungT1ToLeftLungT3.GetComplianceBaseline().SetValue(LeftLungT1.GetVolumeBaseline(VolumeUnit::mL) / LeftLungT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& GroundToLeftLungT3 = cCombinedCardiovascular.CreatePath(*Ground, LeftLungT3, pulse::TissuePath::GroundToLeftLungT3);
- GroundToLeftLungT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
-
- SEFluidCircuitPath& LeftLungT1ToLymph = cCombinedCardiovascular.CreatePath(LeftLungT1, Lymph, pulse::TissuePath::LeftLungT1ToLymph);
- LeftLungT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
-
- SETissueCompartment& LeftLungTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::LeftLung);
- SELiquidCompartment& LeftLungExtracellular = LeftLungTissue.GetExtracellular();
- SELiquidCompartment& LeftLungIntracellular = LeftLungTissue.GetIntracellular();
- LeftLungTissue.GetMatrixVolume().SetValue((1 - LLungEWFraction - LLungIWFraction) * LLungTissueVolume * 1000.0, VolumeUnit::mL);
- LeftLungExtracellular.MapNode(LeftLungT1);
- LeftLungExtracellular.MapNode(LeftLungT2);
- LeftLungExtracellular.MapNode(LeftLungT3);
- LeftLungExtracellular.GetWaterVolumeFraction().SetValue(LLungEWFraction);
- LeftLungIntracellular.GetVolume().SetValue(LLungIWFraction * LLungTissueVolume * 1000.0, VolumeUnit::mL);
- LeftLungIntracellular.GetWaterVolumeFraction().SetValue(LLungIWFraction);
- LeftLungTissue.GetAcidicPhospohlipidConcentration().SetValue(LLungAPL, MassPerMassUnit::mg_Per_g);
- LeftLungTissue.GetNeutralLipidsVolumeFraction().SetValue(LLungNLFraction);
- LeftLungTissue.GetNeutralPhospholipidsVolumeFraction().SetValue(LLungNPFraction);
- LeftLungTissue.GetTissueToPlasmaAlbuminRatio().SetValue(LLungARatio);
- LeftLungTissue.GetTissueToPlasmaLipoproteinRatio().SetValue(LLungLRatio);
- LeftLungTissue.GetTissueToPlasmaAlphaAcidGlycoproteinRatio().SetValue(LLungAAGRatio);
- LeftLungTissue.GetTotalMass().SetValue(LLungTissueMass, MassUnit::kg);
-
- SELiquidCompartmentLink& LeftLungVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::LeftLung),
- LeftLungExtracellular, pulse::VascularLink::LeftLungVascularToTissue);
- LeftLungVascularToTissue.MapPath(LeftLung1ToLeftLungT2);
-
- SELiquidCompartmentLink& LeftLungTissueToLymph = m_Compartments->CreateLiquidLink(LeftLungExtracellular, cLymph, pulse::LymphLink::LeftLungTissueToLymph);
- LeftLungTissueToLymph.MapPath(LeftLungT1ToLymph);
+ //TODO: Make this work for the expanded model
+ if (m_Config->UseExpandedLungs() == eSwitch::Off)
+ {
+ SEFluidCircuitNode* LeftLung1 = cCardiovascular.GetNode(pulse::CardiovascularNode::LeftPulmonaryCapillaries1);
+ SEFluidCircuitNode& LeftLungT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::LeftLungT1);
+ SEFluidCircuitNode& LeftLungT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::LeftLungT2);
+ SEFluidCircuitNode& LeftLungT3 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::LeftLungT3);
+ LeftLungT1.GetPressure().Set(LeftLung1->GetPressure());
+ LeftLungT3.GetPressure().Set(Ground->GetPressure());
+ LeftLungT1.GetVolumeBaseline().SetValue(LLungEWFraction * LLungTissueVolume * 1000.0, VolumeUnit::mL);
+
+ SEFluidCircuitPath& LeftLung1ToLeftLungT2 = cCombinedCardiovascular.CreatePath(*LeftLung1, LeftLungT2, pulse::TissuePath::LeftLung1ToLeftLungT2);
+ LeftLung1ToLeftLungT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
+ SEFluidCircuitPath& LeftLungT2ToLeftLungT1 = cCombinedCardiovascular.CreatePath(LeftLungT2, LeftLungT1, pulse::TissuePath::LeftLungT2ToLeftLungT1);
+ LeftLungT2ToLeftLungT1.GetResistanceBaseline().SetValue((1 / LLungTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& LeftLungT1ToLeftLungT3 = cCombinedCardiovascular.CreatePath(LeftLungT1, LeftLungT3, pulse::TissuePath::LeftLungT1ToLeftLungT3);
+ LeftLungT1ToLeftLungT3.GetComplianceBaseline().SetValue(LeftLungT1.GetVolumeBaseline(VolumeUnit::mL) / LeftLungT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& GroundToLeftLungT3 = cCombinedCardiovascular.CreatePath(*Ground, LeftLungT3, pulse::TissuePath::GroundToLeftLungT3);
+ GroundToLeftLungT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
+
+ SEFluidCircuitPath& LeftLungT1ToLymph = cCombinedCardiovascular.CreatePath(LeftLungT1, Lymph, pulse::TissuePath::LeftLungT1ToLymph);
+ LeftLungT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
+
+ SETissueCompartment& LeftLungTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::LeftLung);
+ SELiquidCompartment& LeftLungExtracellular = LeftLungTissue.GetExtracellular();
+ SELiquidCompartment& LeftLungIntracellular = LeftLungTissue.GetIntracellular();
+ LeftLungTissue.GetMatrixVolume().SetValue((1 - LLungEWFraction - LLungIWFraction) * LLungTissueVolume * 1000.0, VolumeUnit::mL);
+ LeftLungExtracellular.MapNode(LeftLungT1);
+ LeftLungExtracellular.MapNode(LeftLungT2);
+ LeftLungExtracellular.MapNode(LeftLungT3);
+ LeftLungExtracellular.GetWaterVolumeFraction().SetValue(LLungEWFraction);
+ LeftLungIntracellular.GetVolume().SetValue(LLungIWFraction * LLungTissueVolume * 1000.0, VolumeUnit::mL);
+ LeftLungIntracellular.GetWaterVolumeFraction().SetValue(LLungIWFraction);
+ LeftLungTissue.GetAcidicPhospohlipidConcentration().SetValue(LLungAPL, MassPerMassUnit::mg_Per_g);
+ LeftLungTissue.GetNeutralLipidsVolumeFraction().SetValue(LLungNLFraction);
+ LeftLungTissue.GetNeutralPhospholipidsVolumeFraction().SetValue(LLungNPFraction);
+ LeftLungTissue.GetTissueToPlasmaAlbuminRatio().SetValue(LLungARatio);
+ LeftLungTissue.GetTissueToPlasmaLipoproteinRatio().SetValue(LLungLRatio);
+ LeftLungTissue.GetTissueToPlasmaAlphaAcidGlycoproteinRatio().SetValue(LLungAAGRatio);
+ LeftLungTissue.GetTotalMass().SetValue(LLungTissueMass, MassUnit::kg);
+
+ SELiquidCompartmentLink& LeftLungVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::LeftLung),
+ LeftLungExtracellular, pulse::VascularLink::LeftLungVascularToTissue);
+ LeftLungVascularToTissue.MapPath(LeftLung1ToLeftLungT2);
+
+ SELiquidCompartmentLink& LeftLungTissueToLymph = m_Compartments->CreateLiquidLink(LeftLungExtracellular, cLymph, pulse::LymphLink::LeftLungTissueToLymph);
+ LeftLungTissueToLymph.MapPath(LeftLungT1ToLymph);
+ }
///////////
// Liver //
@@ -2665,10 +2678,10 @@ namespace pulse
//////////////////
// Right Kidney //
SEFluidCircuitNode* RightKidney1;
- if (!m_Config->IsRenalEnabled())
- RightKidney1 = cCombinedCardiovascular.GetNode(pulse::CardiovascularNode::RightKidney1);
- else
+ if (m_Config->UseExpandedKidneys() == eSwitch::On)
RightKidney1 = cCombinedCardiovascular.GetNode(pulse::RenalNode::RightGlomerularCapillaries);
+ else
+ RightKidney1 = cCombinedCardiovascular.GetNode(pulse::CardiovascularNode::RightKidney1);
SEFluidCircuitNode& RightKidneyT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::RightKidneyT1);
SEFluidCircuitNode& RightKidneyT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::RightKidneyT2);
@@ -2716,50 +2729,54 @@ namespace pulse
////////////////
// Right Lung //
- SEFluidCircuitNode* RightLung1 = cCardiovascular.GetNode(pulse::CardiovascularNode::RightPulmonaryCapillaries1);
- SEFluidCircuitNode& RightLungT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::RightLungT1);
- SEFluidCircuitNode& RightLungT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::RightLungT2);
- SEFluidCircuitNode& RightLungT3 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::RightLungT3);
- RightLungT1.GetPressure().Set(RightLung1->GetPressure());
- RightLungT3.GetPressure().Set(Ground->GetPressure());
- RightLungT1.GetVolumeBaseline().SetValue(RLungEWFraction * RLungTissueVolume * 1000.0, VolumeUnit::mL);
-
- SEFluidCircuitPath& RightLung1ToRightLungT2 = cCombinedCardiovascular.CreatePath(*RightLung1, RightLungT2, pulse::TissuePath::RightLung1ToRightLungT2);
- RightLung1ToRightLungT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& RightLungT2ToRightLungT1 = cCombinedCardiovascular.CreatePath(RightLungT2, RightLungT1, pulse::TissuePath::RightLungT2ToRightLungT1);
- RightLungT2ToRightLungT1.GetResistanceBaseline().SetValue((1 / RLungTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightLungT1ToRightLungT3 = cCombinedCardiovascular.CreatePath(RightLungT1, RightLungT3, pulse::TissuePath::RightLungT1ToRightLungT3);
- RightLungT1ToRightLungT3.GetComplianceBaseline().SetValue(RightLungT1.GetVolumeBaseline(VolumeUnit::mL) / RightLungT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& GroundToRightLungT3 = cCombinedCardiovascular.CreatePath(*Ground, RightLungT3, pulse::TissuePath::GroundToRightLungT3);
- GroundToRightLungT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
-
- SEFluidCircuitPath& RightLungT1ToLymph = cCombinedCardiovascular.CreatePath(RightLungT1, Lymph, pulse::TissuePath::RightLungT1ToLymph);
- RightLungT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
-
- SETissueCompartment& RightLungTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::RightLung);
- SELiquidCompartment& RightLungExtracellular = RightLungTissue.GetExtracellular();
- SELiquidCompartment& RightLungIntracellular = RightLungTissue.GetIntracellular();
- RightLungTissue.GetMatrixVolume().SetValue((1 - RLungEWFraction - RLungIWFraction) * RLungTissueVolume * 1000.0, VolumeUnit::mL);
- RightLungExtracellular.MapNode(RightLungT1);
- RightLungExtracellular.MapNode(RightLungT2);
- RightLungExtracellular.MapNode(RightLungT3);
- RightLungExtracellular.GetWaterVolumeFraction().SetValue(RLungEWFraction);
- RightLungIntracellular.GetVolume().SetValue(RLungIWFraction * RLungTissueVolume * 1000.0, VolumeUnit::mL);
- RightLungIntracellular.GetWaterVolumeFraction().SetValue(RLungIWFraction);
- RightLungTissue.GetAcidicPhospohlipidConcentration().SetValue(RLungAPL, MassPerMassUnit::mg_Per_g);
- RightLungTissue.GetNeutralLipidsVolumeFraction().SetValue(RLungNLFraction);
- RightLungTissue.GetNeutralPhospholipidsVolumeFraction().SetValue(RLungNPFraction);
- RightLungTissue.GetTissueToPlasmaAlphaAcidGlycoproteinRatio().SetValue(RLungAAGRatio);
- RightLungTissue.GetTissueToPlasmaAlbuminRatio().SetValue(RLungARatio);
- RightLungTissue.GetTissueToPlasmaLipoproteinRatio().SetValue(RLungLRatio);
- RightLungTissue.GetTotalMass().SetValue(RLungTissueMass, MassUnit::kg);
-
- SELiquidCompartmentLink& RightLungVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::RightLung),
- RightLungExtracellular, pulse::VascularLink::RightLungVascularToTissue);
- RightLungVascularToTissue.MapPath(RightLung1ToRightLungT2);
-
- SELiquidCompartmentLink& RightLungTissueToLymph = m_Compartments->CreateLiquidLink(RightLungExtracellular, cLymph, pulse::LymphLink::RightLungTissueToLymph);
- RightLungTissueToLymph.MapPath(RightLungT1ToLymph);
+ //TODO: Make this work for the expanded model
+ if (m_Config->UseExpandedLungs() == eSwitch::Off)
+ {
+ SEFluidCircuitNode* RightLung1 = cCardiovascular.GetNode(pulse::CardiovascularNode::RightPulmonaryCapillaries1);
+ SEFluidCircuitNode& RightLungT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::RightLungT1);
+ SEFluidCircuitNode& RightLungT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::RightLungT2);
+ SEFluidCircuitNode& RightLungT3 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::RightLungT3);
+ RightLungT1.GetPressure().Set(RightLung1->GetPressure());
+ RightLungT3.GetPressure().Set(Ground->GetPressure());
+ RightLungT1.GetVolumeBaseline().SetValue(RLungEWFraction * RLungTissueVolume * 1000.0, VolumeUnit::mL);
+
+ SEFluidCircuitPath& RightLung1ToRightLungT2 = cCombinedCardiovascular.CreatePath(*RightLung1, RightLungT2, pulse::TissuePath::RightLung1ToRightLungT2);
+ RightLung1ToRightLungT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
+ SEFluidCircuitPath& RightLungT2ToRightLungT1 = cCombinedCardiovascular.CreatePath(RightLungT2, RightLungT1, pulse::TissuePath::RightLungT2ToRightLungT1);
+ RightLungT2ToRightLungT1.GetResistanceBaseline().SetValue((1 / RLungTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& RightLungT1ToRightLungT3 = cCombinedCardiovascular.CreatePath(RightLungT1, RightLungT3, pulse::TissuePath::RightLungT1ToRightLungT3);
+ RightLungT1ToRightLungT3.GetComplianceBaseline().SetValue(RightLungT1.GetVolumeBaseline(VolumeUnit::mL) / RightLungT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& GroundToRightLungT3 = cCombinedCardiovascular.CreatePath(*Ground, RightLungT3, pulse::TissuePath::GroundToRightLungT3);
+ GroundToRightLungT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
+
+ SEFluidCircuitPath& RightLungT1ToLymph = cCombinedCardiovascular.CreatePath(RightLungT1, Lymph, pulse::TissuePath::RightLungT1ToLymph);
+ RightLungT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
+
+ SETissueCompartment& RightLungTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::RightLung);
+ SELiquidCompartment& RightLungExtracellular = RightLungTissue.GetExtracellular();
+ SELiquidCompartment& RightLungIntracellular = RightLungTissue.GetIntracellular();
+ RightLungTissue.GetMatrixVolume().SetValue((1 - RLungEWFraction - RLungIWFraction) * RLungTissueVolume * 1000.0, VolumeUnit::mL);
+ RightLungExtracellular.MapNode(RightLungT1);
+ RightLungExtracellular.MapNode(RightLungT2);
+ RightLungExtracellular.MapNode(RightLungT3);
+ RightLungExtracellular.GetWaterVolumeFraction().SetValue(RLungEWFraction);
+ RightLungIntracellular.GetVolume().SetValue(RLungIWFraction * RLungTissueVolume * 1000.0, VolumeUnit::mL);
+ RightLungIntracellular.GetWaterVolumeFraction().SetValue(RLungIWFraction);
+ RightLungTissue.GetAcidicPhospohlipidConcentration().SetValue(RLungAPL, MassPerMassUnit::mg_Per_g);
+ RightLungTissue.GetNeutralLipidsVolumeFraction().SetValue(RLungNLFraction);
+ RightLungTissue.GetNeutralPhospholipidsVolumeFraction().SetValue(RLungNPFraction);
+ RightLungTissue.GetTissueToPlasmaAlphaAcidGlycoproteinRatio().SetValue(RLungAAGRatio);
+ RightLungTissue.GetTissueToPlasmaAlbuminRatio().SetValue(RLungARatio);
+ RightLungTissue.GetTissueToPlasmaLipoproteinRatio().SetValue(RLungLRatio);
+ RightLungTissue.GetTotalMass().SetValue(RLungTissueMass, MassUnit::kg);
+
+ SELiquidCompartmentLink& RightLungVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::RightLung),
+ RightLungExtracellular, pulse::VascularLink::RightLungVascularToTissue);
+ RightLungVascularToTissue.MapPath(RightLung1ToRightLungT2);
+
+ SELiquidCompartmentLink& RightLungTissueToLymph = m_Compartments->CreateLiquidLink(RightLungExtracellular, cLymph, pulse::LymphLink::RightLungTissueToLymph);
+ RightLungTissueToLymph.MapPath(RightLungT1ToLymph);
+ }
//////////
// Skin //
diff --git a/src/cpp/engine/common/controller/SetupExpandedCardiovascular.cpp b/src/cpp/engine/common/controller/SetupComputationalLifeExpansion.cpp
similarity index 81%
rename from src/cpp/engine/common/controller/SetupExpandedCardiovascular.cpp
rename to src/cpp/engine/common/controller/SetupComputationalLifeExpansion.cpp
index 494e610fcb4a3a44e13339979c19261c4792eb36..a455a6d064cb19eab5434a8e0208b752ff95ae6f 100644
--- a/src/cpp/engine/common/controller/SetupExpandedCardiovascular.cpp
+++ b/src/cpp/engine/common/controller/SetupComputationalLifeExpansion.cpp
@@ -24,9 +24,9 @@
namespace pulse
{
- void Controller::SetupExpandedCardiovascular()
+ void Controller::SetupComputationalLifeCardiovascular()
{
- Info("Setting Up Expanded Cardiovascular");
+ Info("Setting Up ComputationalLife Cardiovascular");
bool male = m_InitialPatient->GetSex() == ePatient_Sex::Male ? true : false;
double RightLungRatio = m_InitialPatient->GetRightLungRatio().GetValue();
double LeftLungRatio = 1 - RightLungRatio;
@@ -308,64 +308,64 @@ namespace pulse
SEFluidCircuit& cCardiovascular = m_Circuits->GetCardiovascularCircuit();
// Create Nodes, set volume baselines and pressures where appropriate
- SEFluidCircuitNode& RightHeart1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightHeart1);
+ SEFluidCircuitNode& RightHeart1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightHeart1);
RightHeart1.GetPressure().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitNode& RightHeart2 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightHeart2);
- SEFluidCircuitNode& RightHeart3 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightHeart3);
+ SEFluidCircuitNode& RightHeart2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightHeart2);
+ SEFluidCircuitNode& RightHeart3 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightHeart3);
RightHeart3.GetPressure().SetValue(0.0, PressureUnit::mmHg);
RightHeart1.GetVolumeBaseline().SetValue(VolumeFractionHeartRight * bloodVolume_mL, VolumeUnit::mL);
- SEFluidCircuitNode& MainPulmonaryArteries1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::MainPulmonaryArteries1);
+ SEFluidCircuitNode& MainPulmonaryArteries1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::MainPulmonaryArteries1);
- SEFluidCircuitNode& RightIntermediatePulmonaryArteries1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightIntermediatePulmonaryArteries1);
- SEFluidCircuitNode& RightPulmonaryArteries1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightPulmonaryArteries1);
+ SEFluidCircuitNode& RightIntermediatePulmonaryArteries1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightIntermediatePulmonaryArteries1);
+ SEFluidCircuitNode& RightPulmonaryArteries1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightPulmonaryArteries1);
RightPulmonaryArteries1.GetVolumeBaseline().SetValue(VolumeFractionPulmArtRight * bloodVolume_mL, VolumeUnit::mL);
RightPulmonaryArteries1.GetPressure().SetValue(VascularPressureTargetPulmArtRight, PressureUnit::mmHg);
- SEFluidCircuitNode& LeftIntermediatePulmonaryArteries1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftIntermediatePulmonaryArteries1);
- SEFluidCircuitNode& LeftPulmonaryArteries1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftPulmonaryArteries1);
+ SEFluidCircuitNode& LeftIntermediatePulmonaryArteries1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftIntermediatePulmonaryArteries1);
+ SEFluidCircuitNode& LeftPulmonaryArteries1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftPulmonaryArteries1);
LeftPulmonaryArteries1.GetVolumeBaseline().SetValue(VolumeFractionPulmArtLeft * bloodVolume_mL, VolumeUnit::mL);
LeftPulmonaryArteries1.GetPressure().SetValue(VascularPressureTargetPulmArtLeft, PressureUnit::mmHg);
- SEFluidCircuitNode& RightPulmonaryCapillaries1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightPulmonaryCapillaries1);
+ SEFluidCircuitNode& RightPulmonaryCapillaries1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightPulmonaryCapillaries1);
RightPulmonaryCapillaries1.GetVolumeBaseline().SetValue(VolumeFractionPulmCapRight * bloodVolume_mL, VolumeUnit::mL);
RightPulmonaryCapillaries1.GetPressure().SetValue(VascularPressureTargetPulmCapRight, PressureUnit::mmHg);
- SEFluidCircuitNode& LeftPulmonaryCapillaries1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftPulmonaryCapillaries1);
+ SEFluidCircuitNode& LeftPulmonaryCapillaries1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftPulmonaryCapillaries1);
LeftPulmonaryCapillaries1.GetVolumeBaseline().SetValue(VolumeFractionPulmCapLeft * bloodVolume_mL, VolumeUnit::mL);
LeftPulmonaryCapillaries1.GetPressure().SetValue(VascularPressureTargetPulmCapLeft, PressureUnit::mmHg);
- SEFluidCircuitNode& RightIntermediatePulmonaryVeins1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightIntermediatePulmonaryVeins1);
- SEFluidCircuitNode& RightPulmonaryVeins1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightPulmonaryVeins1);
+ SEFluidCircuitNode& RightIntermediatePulmonaryVeins1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightIntermediatePulmonaryVeins1);
+ SEFluidCircuitNode& RightPulmonaryVeins1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightPulmonaryVeins1);
RightPulmonaryVeins1.GetVolumeBaseline().SetValue(VolumeFractionPulmVeinsRight * bloodVolume_mL, VolumeUnit::mL);
RightPulmonaryVeins1.GetPressure().SetValue(VascularPressureTargetPulmVeinsRight, PressureUnit::mmHg);
- SEFluidCircuitNode& LeftIntermediatePulmonaryVeins1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftIntermediatePulmonaryVeins1);
- SEFluidCircuitNode& LeftPulmonaryVeins1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftPulmonaryVeins1);
+ SEFluidCircuitNode& LeftIntermediatePulmonaryVeins1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftIntermediatePulmonaryVeins1);
+ SEFluidCircuitNode& LeftPulmonaryVeins1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftPulmonaryVeins1);
LeftPulmonaryVeins1.GetVolumeBaseline().SetValue(VolumeFractionPulmVeinsLeft * bloodVolume_mL, VolumeUnit::mL);
LeftPulmonaryVeins1.GetPressure().SetValue(VascularPressureTargetPulmVeinsLeft, PressureUnit::mmHg);
- SEFluidCircuitNode& LeftHeart1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftHeart1);
+ SEFluidCircuitNode& LeftHeart1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftHeart1);
LeftHeart1.GetPressure().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitNode& LeftHeart2 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftHeart2);
- SEFluidCircuitNode& LeftHeart3 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftHeart3);
+ SEFluidCircuitNode& LeftHeart2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftHeart2);
+ SEFluidCircuitNode& LeftHeart3 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftHeart3);
LeftHeart3.GetPressure().SetValue(0.0, PressureUnit::mmHg);
LeftHeart1.GetVolumeBaseline().SetValue(VolumeFractionHeartLeft * bloodVolume_mL, VolumeUnit::mL);
- SEFluidCircuitNode& Aorta1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Aorta1);
- SEFluidCircuitNode& Aorta2 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Aorta2);
- SEFluidCircuitNode& Aorta3 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Aorta3);
- SEFluidCircuitNode& Aorta4 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Aorta4);
- SEFluidCircuitNode& Aorta5 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Aorta5);
+ SEFluidCircuitNode& Aorta1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Aorta1);
+ SEFluidCircuitNode& Aorta2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Aorta2);
+ SEFluidCircuitNode& Aorta3 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Aorta3);
+ SEFluidCircuitNode& Aorta4 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Aorta4);
+ SEFluidCircuitNode& Aorta5 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::Aorta5);
Aorta4.GetPressure().SetValue(0.0, PressureUnit::mmHg);
Aorta1.GetVolumeBaseline().SetValue(70, VolumeUnit::mL);
Aorta1.GetPressure().SetValue(VascularPressureTargetAorta, PressureUnit::mmHg);
Aorta5.GetVolumeBaseline().SetValue(VolumeFractionAorta * bloodVolume_mL, VolumeUnit::mL);
Aorta5.GetPressure().SetValue(VascularPressureTargetAorta, PressureUnit::mmHg);
- SEFluidCircuitNode& Extracranial1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Extracranial1);
- SEFluidCircuitNode& Extracranial2 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Extracranial2);
- SEFluidCircuitNode& Extracranial3 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Extracranial3);
+ SEFluidCircuitNode& Extracranial1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::Extracranial1);
+ SEFluidCircuitNode& Extracranial2 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::Extracranial2);
+ SEFluidCircuitNode& Extracranial3 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::Extracranial3);
Extracranial1.GetVolumeBaseline().SetValue(VolumeFractionExtracranialArterioles * bloodVolume_mL, VolumeUnit::mL);
Extracranial2.GetVolumeBaseline().SetValue(VolumeFractionExtracranialCapillaries * bloodVolume_mL, VolumeUnit::mL);
Extracranial3.GetVolumeBaseline().SetValue(VolumeFractionExtracranialVenules * bloodVolume_mL, VolumeUnit::mL);
@@ -373,9 +373,9 @@ namespace pulse
Extracranial2.GetPressure().SetValue(VascularPressureTargetExtracranial, PressureUnit::mmHg);
Extracranial3.GetPressure().SetValue(VascularPressureTargetVenules, PressureUnit::mmHg);
- SEFluidCircuitNode& Intracranial1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Intracranial1);
- SEFluidCircuitNode& Intracranial2 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Intracranial2);
- SEFluidCircuitNode& Intracranial3 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Intracranial3);
+ SEFluidCircuitNode& Intracranial1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::Intracranial1);
+ SEFluidCircuitNode& Intracranial2 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::Intracranial2);
+ SEFluidCircuitNode& Intracranial3 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::Intracranial3);
Intracranial1.GetVolumeBaseline().SetValue(VolumeFractionIntracranialArterioles * bloodVolume_mL, VolumeUnit::mL);
Intracranial2.GetVolumeBaseline().SetValue(VolumeFractionIntracranialCapillaries * bloodVolume_mL, VolumeUnit::mL);
Intracranial3.GetVolumeBaseline().SetValue(VolumeFractionIntracranialVenules * bloodVolume_mL, VolumeUnit::mL);
@@ -383,13 +383,13 @@ namespace pulse
Intracranial2.GetPressure().SetValue(VascularPressureTargetIntracranial, PressureUnit::mmHg);
Intracranial3.GetPressure().SetValue(VascularPressureTargetVenules, PressureUnit::mmHg);
- SEFluidCircuitNode& LeftArm1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftArm1);
- SEFluidCircuitNode& LeftArmBone1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftArmBone1);
- SEFluidCircuitNode& LeftArmFat1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftArmFat1);
- SEFluidCircuitNode& LeftArmMicrovasculature1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftArmMicroVasculature1);
- SEFluidCircuitNode& LeftArmMuscle1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftArmMuscle1);
- SEFluidCircuitNode& LeftArmSkin1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftArmSkin1);
- SEFluidCircuitNode& LeftArm2 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftArm2);
+ SEFluidCircuitNode& LeftArm1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftArm1);
+ SEFluidCircuitNode& LeftArmBone1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::LeftArmBone1);
+ SEFluidCircuitNode& LeftArmFat1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::LeftArmFat1);
+ SEFluidCircuitNode& LeftArmMicrovasculature1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::LeftArmMicroVasculature1);
+ SEFluidCircuitNode& LeftArmMuscle1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::LeftArmMuscle1);
+ SEFluidCircuitNode& LeftArmSkin1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::LeftArmSkin1);
+ SEFluidCircuitNode& LeftArm2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftArm2);
LeftArm1.GetVolumeBaseline().SetValue(VolumeFractionArmArterioles * bloodVolume_mL, VolumeUnit::mL);
LeftArmBone1.GetVolumeBaseline().SetValue(VolumeFractionArmBone * bloodVolume_mL, VolumeUnit::mL);
LeftArmFat1.GetVolumeBaseline().SetValue(VolumeFractionArmFat * bloodVolume_mL, VolumeUnit::mL);
@@ -405,9 +405,9 @@ namespace pulse
LeftArmSkin1.GetPressure().SetValue(VascularPressureTargetArmSkin, PressureUnit::mmHg);
LeftArm2.GetPressure().SetValue(VascularPressureTargetVenules, PressureUnit::mmHg);
- SEFluidCircuitNode& LeftKidney1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftKidney1);
- SEFluidCircuitNode& LeftKidney2 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftKidney2);
- SEFluidCircuitNode& LeftKidney3 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftKidney3);
+ SEFluidCircuitNode& LeftKidney1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftKidney1);
+ SEFluidCircuitNode& LeftKidney2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftKidney2);
+ SEFluidCircuitNode& LeftKidney3 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::LeftKidney3);
LeftKidney1.GetVolumeBaseline().SetValue(0.5 * VolumeFractionKidneyArterioles * bloodVolume_mL, VolumeUnit::mL);
LeftKidney2.GetVolumeBaseline().SetValue(0.5 * VolumeFractionKidneyCapillaries * bloodVolume_mL, VolumeUnit::mL);
LeftKidney3.GetVolumeBaseline().SetValue(0.5 * VolumeFractionKidneyVenules * bloodVolume_mL, VolumeUnit::mL);
@@ -415,13 +415,13 @@ namespace pulse
LeftKidney2.GetPressure().SetValue(VascularPressureTargetKidney, PressureUnit::mmHg);
LeftKidney3.GetPressure().SetValue(VascularPressureTargetVenules, PressureUnit::mmHg);
- SEFluidCircuitNode& LeftLeg1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftLeg1);
- SEFluidCircuitNode& LeftLegBone1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftLegBone1);
- SEFluidCircuitNode& LeftLegFat1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftLegFat1);
- SEFluidCircuitNode& LeftLegMicrovasculature1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftLegMicroVasculature1);
- SEFluidCircuitNode& LeftLegMuscle1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftLegMuscle1);
- SEFluidCircuitNode& LeftLegSkin1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftLegSkin1);
- SEFluidCircuitNode& LeftLeg2 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LeftLeg2);
+ SEFluidCircuitNode& LeftLeg1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftLeg1);
+ SEFluidCircuitNode& LeftLegBone1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::LeftLegBone1);
+ SEFluidCircuitNode& LeftLegFat1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::LeftLegFat1);
+ SEFluidCircuitNode& LeftLegMicrovasculature1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::LeftLegMicroVasculature1);
+ SEFluidCircuitNode& LeftLegMuscle1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::LeftLegMuscle1);
+ SEFluidCircuitNode& LeftLegSkin1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::LeftLegSkin1);
+ SEFluidCircuitNode& LeftLeg2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftLeg2);
LeftLeg1.GetVolumeBaseline().SetValue(VolumeFractionLegArterioles * bloodVolume_mL, VolumeUnit::mL);
LeftLegBone1.GetVolumeBaseline().SetValue(VolumeFractionLegBone * bloodVolume_mL, VolumeUnit::mL);
LeftLegFat1.GetVolumeBaseline().SetValue(VolumeFractionLegFat * bloodVolume_mL, VolumeUnit::mL);
@@ -437,9 +437,9 @@ namespace pulse
LeftLegSkin1.GetPressure().SetValue(VascularPressureTargetLegSkin, PressureUnit::mmHg);
LeftLeg2.GetPressure().SetValue(VascularPressureTargetVenules, PressureUnit::mmHg);
- SEFluidCircuitNode& Myocardium1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Myocardium1);
- SEFluidCircuitNode& Myocardium2 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Myocardium2);
- SEFluidCircuitNode& Myocardium3 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Myocardium3);
+ SEFluidCircuitNode& Myocardium1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Myocardium1);
+ SEFluidCircuitNode& Myocardium2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Myocardium2);
+ SEFluidCircuitNode& Myocardium3 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::Myocardium3);
Myocardium1.GetVolumeBaseline().SetValue(VolumeFractionMyocardiumArterioles * bloodVolume_mL, VolumeUnit::mL);
Myocardium2.GetVolumeBaseline().SetValue(VolumeFractionMyocardiumCapillaries * bloodVolume_mL, VolumeUnit::mL);
Myocardium3.GetVolumeBaseline().SetValue(VolumeFractionMyocardiumVenules * bloodVolume_mL, VolumeUnit::mL);
@@ -447,15 +447,15 @@ namespace pulse
Myocardium2.GetPressure().SetValue(VascularPressureTargetMyocardium, PressureUnit::mmHg);
Myocardium3.GetPressure().SetValue(VascularPressureTargetVenules, PressureUnit::mmHg);
- SEFluidCircuitNode& PortalVein1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::PortalVein1);
+ SEFluidCircuitNode& PortalVein1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::PortalVein1);
- SEFluidCircuitNode& RightArm1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightArm1);
- SEFluidCircuitNode& RightArmBone1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightArmBone1);
- SEFluidCircuitNode& RightArmFat1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightArmFat1);
- SEFluidCircuitNode& RightArmMicrovasculature1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightArmMicroVasculature1);
- SEFluidCircuitNode& RightArmMuscle1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightArmMuscle1);
- SEFluidCircuitNode& RightArmSkin1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightArmSkin1);
- SEFluidCircuitNode& RightArm2 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightArm2);
+ SEFluidCircuitNode& RightArm1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightArm1);
+ SEFluidCircuitNode& RightArmBone1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::RightArmBone1);
+ SEFluidCircuitNode& RightArmFat1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::RightArmFat1);
+ SEFluidCircuitNode& RightArmMicrovasculature1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::RightArmMicroVasculature1);
+ SEFluidCircuitNode& RightArmMuscle1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::RightArmMuscle1);
+ SEFluidCircuitNode& RightArmSkin1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::RightArmSkin1);
+ SEFluidCircuitNode& RightArm2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightArm2);
RightArm1.GetVolumeBaseline().SetValue(VolumeFractionArmArterioles * bloodVolume_mL, VolumeUnit::mL);
RightArmBone1.GetVolumeBaseline().SetValue(VolumeFractionArmBone * bloodVolume_mL, VolumeUnit::mL);
RightArmFat1.GetVolumeBaseline().SetValue(VolumeFractionArmFat * bloodVolume_mL, VolumeUnit::mL);
@@ -471,9 +471,9 @@ namespace pulse
RightArmSkin1.GetPressure().SetValue(VascularPressureTargetArmSkin, PressureUnit::mmHg);
RightArm2.GetPressure().SetValue(VascularPressureTargetVenules, PressureUnit::mmHg);
- SEFluidCircuitNode& RightKidney1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightKidney1);
- SEFluidCircuitNode& RightKidney2 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightKidney2);
- SEFluidCircuitNode& RightKidney3 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightKidney3);
+ SEFluidCircuitNode& RightKidney1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightKidney1);
+ SEFluidCircuitNode& RightKidney2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightKidney2);
+ SEFluidCircuitNode& RightKidney3 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::RightKidney3);
RightKidney1.GetVolumeBaseline().SetValue(0.5 * VolumeFractionKidneyArterioles * bloodVolume_mL, VolumeUnit::mL);
RightKidney2.GetVolumeBaseline().SetValue(0.5 * VolumeFractionKidneyCapillaries * bloodVolume_mL, VolumeUnit::mL);
RightKidney3.GetVolumeBaseline().SetValue(0.5 * VolumeFractionKidneyVenules * bloodVolume_mL, VolumeUnit::mL);
@@ -481,13 +481,13 @@ namespace pulse
RightKidney2.GetPressure().SetValue(VascularPressureTargetKidney, PressureUnit::mmHg);
RightKidney3.GetPressure().SetValue(VascularPressureTargetVenules, PressureUnit::mmHg);
- SEFluidCircuitNode& RightLeg1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightLeg1);
- SEFluidCircuitNode& RightLegBone1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightLegBone1);
- SEFluidCircuitNode& RightLegFat1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightLegFat1);
- SEFluidCircuitNode& RightLegMicrovasculature1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightLegMicroVasculature1);
- SEFluidCircuitNode& RightLegMuscle1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightLegMuscle1);
- SEFluidCircuitNode& RightLegSkin1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightLegSkin1);
- SEFluidCircuitNode& RightLeg2 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::RightLeg2);
+ SEFluidCircuitNode& RightLeg1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightLeg1);
+ SEFluidCircuitNode& RightLegBone1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::RightLegBone1);
+ SEFluidCircuitNode& RightLegFat1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::RightLegFat1);
+ SEFluidCircuitNode& RightLegMicrovasculature1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::RightLegMicroVasculature1);
+ SEFluidCircuitNode& RightLegMuscle1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::RightLegMuscle1);
+ SEFluidCircuitNode& RightLegSkin1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::RightLegSkin1);
+ SEFluidCircuitNode& RightLeg2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightLeg2);
RightLeg1.GetVolumeBaseline().SetValue(VolumeFractionLegArterioles * bloodVolume_mL, VolumeUnit::mL);
RightLegBone1.GetVolumeBaseline().SetValue(VolumeFractionLegBone * bloodVolume_mL, VolumeUnit::mL);
RightLegFat1.GetVolumeBaseline().SetValue(VolumeFractionLegFat * bloodVolume_mL, VolumeUnit::mL);
@@ -506,40 +506,40 @@ namespace pulse
// Move a little volume from LargeIntestine to Gut1 for substance transport
// LargeIntestine1.GetVolumeBaseline().Increment(-10, VolumeUnit::mL);
- SEFluidCircuitNode& Gut1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Gut1);
+ SEFluidCircuitNode& Gut1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::Gut1);
Gut1.GetVolumeBaseline().SetValue(VolumeFractionGutLiverArterioles * bloodVolume_mL, VolumeUnit::mL);
Gut1.GetPressure().SetValue(VascularPressureTargetArterioles, PressureUnit::mmHg);
- SEFluidCircuitNode& SmallIntestine1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::SmallIntestine1);
+ SEFluidCircuitNode& SmallIntestine1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::SmallIntestine1);
SmallIntestine1.GetVolumeBaseline().SetValue(VolumeFractionSmallIntestine * bloodVolume_mL, VolumeUnit::mL);
SmallIntestine1.GetPressure().SetValue(VascularPressureTargetSmallIntestine, PressureUnit::mmHg);
- SEFluidCircuitNode& Splanchnic1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Splanchnic1);
+ SEFluidCircuitNode& Splanchnic1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Splanchnic1);
Splanchnic1.GetVolumeBaseline().SetValue(VolumeFractionSplanchnic * bloodVolume_mL, VolumeUnit::mL);
Splanchnic1.GetPressure().SetValue(VascularPressureTargetSplanchnic, PressureUnit::mmHg);
- SEFluidCircuitNode& Spleen1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Spleen1);
+ SEFluidCircuitNode& Spleen1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Spleen1);
Spleen1.GetVolumeBaseline().SetValue(VolumeFractionSpleen * bloodVolume_mL, VolumeUnit::mL);
Spleen1.GetPressure().SetValue(VascularPressureTargetSpleen, PressureUnit::mmHg);
- SEFluidCircuitNode& LargeIntestine1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::LargeIntestine1);
+ SEFluidCircuitNode& LargeIntestine1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LargeIntestine1);
LargeIntestine1.GetVolumeBaseline().SetValue(VolumeFractionLargeIntestine * bloodVolume_mL, VolumeUnit::mL);
LargeIntestine1.GetPressure().SetValue(VascularPressureTargetLargeIntestine, PressureUnit::mmHg);
- SEFluidCircuitNode& Liver1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Liver1);
- SEFluidCircuitNode& Liver2 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Liver2);
+ SEFluidCircuitNode& Liver1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Liver1);
+ SEFluidCircuitNode& Liver2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Liver2);
Liver1.GetVolumeBaseline().SetValue(VolumeFractionLiver * bloodVolume_mL, VolumeUnit::mL);
Liver2.GetVolumeBaseline().SetValue(VolumeFractionGutLiverVenules * bloodVolume_mL, VolumeUnit::mL);
Liver1.GetPressure().SetValue(VascularPressureTargetLiver, PressureUnit::mmHg);
Liver2.GetPressure().SetValue(VascularPressureTargetVenules, PressureUnit::mmHg);
- SEFluidCircuitNode& Torso1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Torso1);
- SEFluidCircuitNode& TorsoBone1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::TorsoBone1);
- SEFluidCircuitNode& TorsoFat1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::TorsoFat1);
- SEFluidCircuitNode& TorsoMicrovasculature1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::TorsoMicrovasculature1);
- SEFluidCircuitNode& TorsoMuscle1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::TorsoMuscle1);
- SEFluidCircuitNode& TorsoSkin1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::TorsoSkin1);
- SEFluidCircuitNode& Torso2 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Torso2);
+ SEFluidCircuitNode& Torso1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::Torso1);
+ SEFluidCircuitNode& TorsoBone1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::TorsoBone1);
+ SEFluidCircuitNode& TorsoFat1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::TorsoFat1);
+ SEFluidCircuitNode& TorsoMicrovasculature1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::TorsoMicrovasculature1);
+ SEFluidCircuitNode& TorsoMuscle1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::TorsoMuscle1);
+ SEFluidCircuitNode& TorsoSkin1 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::TorsoSkin1);
+ SEFluidCircuitNode& Torso2 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::Torso2);
Torso1.GetVolumeBaseline().SetValue(VolumeFractionTorsoArterioles * bloodVolume_mL, VolumeUnit::mL);
TorsoBone1.GetVolumeBaseline().SetValue(VolumeFractionTorsoBone * bloodVolume_mL, VolumeUnit::mL);
TorsoFat1.GetVolumeBaseline().SetValue(VolumeFractionTorsoFat * bloodVolume_mL, VolumeUnit::mL);
@@ -556,17 +556,17 @@ namespace pulse
Torso2.GetPressure().SetValue(VascularPressureTargetVenules, PressureUnit::mmHg);
- SEFluidCircuitNode& VenaCava1 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::VenaCava1);
+ SEFluidCircuitNode& VenaCava1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::VenaCava1);
// Move a little volume from VenaCava0 (Vena Cava) to VenaCava1 (Venous Return) for substance transport
VenaCava1.GetVolumeBaseline().SetValue(VolumeFractionVenaCava * bloodVolume_mL, VolumeUnit::mL);
VenaCava1.GetPressure().SetValue(VascularPressureTargetVenules, PressureUnit::mmHg);
- SEFluidCircuitNode& VenaCava2 = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::VenaCava2);
+ SEFluidCircuitNode& VenaCava2 = cCardiovascular.CreateNode(pulse::ComputationalLifeCardiovascularNode::VenaCava2);
VenaCava1.GetVolumeBaseline().Increment(-50, VolumeUnit::mL);
VenaCava2.GetVolumeBaseline().SetValue(50, VolumeUnit::mL);
VenaCava2.GetPressure().SetValue(VascularPressureTargetVenaCava, PressureUnit::mmHg);
- SEFluidCircuitNode& Ground = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Ground);
+ SEFluidCircuitNode& Ground = cCardiovascular.CreateNode(pulse::CardiovascularNode::Ground);
Ground.SetAsReferenceNode();
Ground.GetPressure().SetValue(0.0, PressureUnit::mmHg);
@@ -579,353 +579,353 @@ namespace pulse
if (blood_mL > bloodVolume_mL)
Error("Blood volume greater than total blood volume");
- SEFluidCircuitNode& Pericardium = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::Pericardium1);
+ SEFluidCircuitNode& Pericardium = cCardiovascular.CreateNode(pulse::CardiovascularNode::Pericardium1);
Pericardium.GetVolumeBaseline().SetValue(15.0, VolumeUnit::mL);
Pericardium.GetPressure().SetValue(1.0, PressureUnit::mmHg);
- SEFluidCircuitNode& AbdominalCavity = cCardiovascular.CreateNode(pulse::ExpandedCardiovascularNode::AbdominalCavity1);
+ SEFluidCircuitNode& AbdominalCavity = cCardiovascular.CreateNode(pulse::CardiovascularNode::AbdominalCavity1);
AbdominalCavity.GetVolumeBaseline().SetValue(10.0, VolumeUnit::mL);
AbdominalCavity.GetPressure().SetValue(0.0, PressureUnit::mmHg);
// Create Paths, set switch (diodes), compliances, and resistances where appropriate
- SEFluidCircuitPath& VenaCava1ToRightHeart2 = cCardiovascular.CreatePath(VenaCava1, RightHeart2, pulse::ExpandedCardiovascularPath::VenaCava1ToRightHeart2);
+ SEFluidCircuitPath& VenaCava1ToRightHeart2 = cCardiovascular.CreatePath(VenaCava1, RightHeart2, pulse::CardiovascularPath::VenaCava1ToRightHeart2);
VenaCava1ToRightHeart2.GetResistanceBaseline().SetValue(ResistanceHeartRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightHeart2ToRightHeart1 = cCardiovascular.CreatePath(RightHeart2, RightHeart1, pulse::ExpandedCardiovascularPath::RightHeart2ToRightHeart1);
+ SEFluidCircuitPath& RightHeart2ToRightHeart1 = cCardiovascular.CreatePath(RightHeart2, RightHeart1, pulse::CardiovascularPath::RightHeart2ToRightHeart1);
RightHeart2ToRightHeart1.SetNextValve(eGate::Closed);
- SEFluidCircuitPath& RightHeart1ToRightHeart3 = cCardiovascular.CreatePath(RightHeart1, RightHeart3, pulse::ExpandedCardiovascularPath::RightHeart1ToRightHeart3);
- SEFluidCircuitPath& RightHeart3ToGround = cCardiovascular.CreatePath(Ground, RightHeart3, pulse::ExpandedCardiovascularPath::RightHeart3ToGround);
+ SEFluidCircuitPath& RightHeart1ToRightHeart3 = cCardiovascular.CreatePath(RightHeart1, RightHeart3, pulse::CardiovascularPath::RightHeart1ToRightHeart3);
+ SEFluidCircuitPath& RightHeart3ToGround = cCardiovascular.CreatePath(Ground, RightHeart3, pulse::CardiovascularPath::RightHeart3ToGround);
RightHeart3ToGround.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& RightHeart1ToMainPulmonaryArteries1 = cCardiovascular.CreatePath(RightHeart1, MainPulmonaryArteries1, pulse::ExpandedCardiovascularPath::RightHeart1ToMainPulmonaryArteries1);
+ SEFluidCircuitPath& RightHeart1ToMainPulmonaryArteries1 = cCardiovascular.CreatePath(RightHeart1, MainPulmonaryArteries1, pulse::CardiovascularPath::RightHeart1ToMainPulmonaryArteries1);
RightHeart1ToMainPulmonaryArteries1.SetNextValve(eGate::Closed);
- SEFluidCircuitPath& MainPulmonaryArteries1ToRightIntermediatePulmonaryArteries1 = cCardiovascular.CreatePath(MainPulmonaryArteries1, RightIntermediatePulmonaryArteries1, pulse::ExpandedCardiovascularPath::MainPulmonaryArteries1ToRightIntermediatePulmonaryArteries1);
+ SEFluidCircuitPath& MainPulmonaryArteries1ToRightIntermediatePulmonaryArteries1 = cCardiovascular.CreatePath(MainPulmonaryArteries1, RightIntermediatePulmonaryArteries1, pulse::CardiovascularPath::MainPulmonaryArteries1ToRightIntermediatePulmonaryArteries1);
//MainPulmonaryArteriesToRightIntermediatePulmonaryArteries.SetNextValve(eGate::Closed);
- SEFluidCircuitPath& RightIntermediatePulmonaryArteries1ToRightPulmonaryArteries1 = cCardiovascular.CreatePath(RightIntermediatePulmonaryArteries1, RightPulmonaryArteries1, pulse::ExpandedCardiovascularPath::RightIntermediatePulmonaryArteries1ToRightPulmonaryArteries1);
+ SEFluidCircuitPath& RightIntermediatePulmonaryArteries1ToRightPulmonaryArteries1 = cCardiovascular.CreatePath(RightIntermediatePulmonaryArteries1, RightPulmonaryArteries1, pulse::CardiovascularPath::RightIntermediatePulmonaryArteries1ToRightPulmonaryArteries1);
RightIntermediatePulmonaryArteries1ToRightPulmonaryArteries1.GetResistanceBaseline().SetValue(ResistancePulmArt, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightPulmonaryArteries1ToRightPulmonaryVeins1 = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightPulmonaryVeins1, pulse::ExpandedCardiovascularPath::RightPulmonaryArteries1ToRightPulmonaryVeins1);
+ SEFluidCircuitPath& RightPulmonaryArteries1ToRightPulmonaryVeins1 = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightPulmonaryVeins1, pulse::CardiovascularPath::RightPulmonaryArteries1ToRightPulmonaryVeins1);
RightPulmonaryArteries1ToRightPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceShuntRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightPulmonaryArteries1ToRightPulmonaryCapillaries1 = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightPulmonaryCapillaries1, pulse::ExpandedCardiovascularPath::RightPulmonaryArteries1ToRightPulmonaryCapillaries1);
+ SEFluidCircuitPath& RightPulmonaryArteries1ToRightPulmonaryCapillaries1 = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightPulmonaryCapillaries1, pulse::CardiovascularPath::RightPulmonaryArteries1ToRightPulmonaryCapillaries1);
RightPulmonaryArteries1ToRightPulmonaryCapillaries1.GetResistanceBaseline().SetValue(ResistancePulmCapRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightPulmonaryArteries1ToGround = cCardiovascular.CreatePath(RightPulmonaryArteries1, Ground, pulse::ExpandedCardiovascularPath::RightPulmonaryArteries1ToGround);
+ SEFluidCircuitPath& RightPulmonaryArteries1ToGround = cCardiovascular.CreatePath(RightPulmonaryArteries1, Ground, pulse::CardiovascularPath::RightPulmonaryArteries1ToGround);
RightPulmonaryArteries1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& RightPulmonaryCapillaries1ToRightPulmonaryVeins1 = cCardiovascular.CreatePath(RightPulmonaryCapillaries1, RightPulmonaryVeins1, pulse::ExpandedCardiovascularPath::RightPulmonaryCapillaries1ToRightPulmonaryVeins1);
+ SEFluidCircuitPath& RightPulmonaryCapillaries1ToRightPulmonaryVeins1 = cCardiovascular.CreatePath(RightPulmonaryCapillaries1, RightPulmonaryVeins1, pulse::CardiovascularPath::RightPulmonaryCapillaries1ToRightPulmonaryVeins1);
RightPulmonaryCapillaries1ToRightPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistancePulmVeinsRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightPulmonaryCapillaries1ToGround = cCardiovascular.CreatePath(RightPulmonaryCapillaries1, Ground, pulse::ExpandedCardiovascularPath::RightPulmonaryCapillaries1ToGround);
+ SEFluidCircuitPath& RightPulmonaryCapillaries1ToGround = cCardiovascular.CreatePath(RightPulmonaryCapillaries1, Ground, pulse::CardiovascularPath::RightPulmonaryCapillaries1ToGround);
RightPulmonaryCapillaries1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& RightPulmonaryVeins1ToRightIntermediatePulmonaryVeins1 = cCardiovascular.CreatePath(RightPulmonaryVeins1, RightIntermediatePulmonaryVeins1, pulse::ExpandedCardiovascularPath::RightPulmonaryVeins1ToRightIntermediatePulmonaryVeins1);
+ SEFluidCircuitPath& RightPulmonaryVeins1ToRightIntermediatePulmonaryVeins1 = cCardiovascular.CreatePath(RightPulmonaryVeins1, RightIntermediatePulmonaryVeins1, pulse::CardiovascularPath::RightPulmonaryVeins1ToRightIntermediatePulmonaryVeins1);
RightPulmonaryVeins1ToRightIntermediatePulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceHeartLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightPulmonaryVeins1ToGround = cCardiovascular.CreatePath(RightPulmonaryVeins1, Ground, pulse::ExpandedCardiovascularPath::RightPulmonaryVeins1ToGround);
+ SEFluidCircuitPath& RightPulmonaryVeins1ToGround = cCardiovascular.CreatePath(RightPulmonaryVeins1, Ground, pulse::CardiovascularPath::RightPulmonaryVeins1ToGround);
RightPulmonaryVeins1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& RightIntermediatePulmonaryVeins1ToLeftHeart2 = cCardiovascular.CreatePath(RightIntermediatePulmonaryVeins1, LeftHeart2, pulse::ExpandedCardiovascularPath::RightIntermediatePulmonaryVeins1ToLeftHeart2);
+ SEFluidCircuitPath& RightIntermediatePulmonaryVeins1ToLeftHeart2 = cCardiovascular.CreatePath(RightIntermediatePulmonaryVeins1, LeftHeart2, pulse::CardiovascularPath::RightIntermediatePulmonaryVeins1ToLeftHeart2);
//RightIntermediatePulmonaryVeins1ToLeftHeart2.SetNextValve(eGate::Closed);
- SEFluidCircuitPath& MainPulmonaryArteries1ToLeftIntermediatePulmonaryArteries1 = cCardiovascular.CreatePath(MainPulmonaryArteries1, LeftIntermediatePulmonaryArteries1, pulse::ExpandedCardiovascularPath::MainPulmonaryArteries1ToLeftIntermediatePulmonaryArteries1);
+ SEFluidCircuitPath& MainPulmonaryArteries1ToLeftIntermediatePulmonaryArteries1 = cCardiovascular.CreatePath(MainPulmonaryArteries1, LeftIntermediatePulmonaryArteries1, pulse::CardiovascularPath::MainPulmonaryArteries1ToLeftIntermediatePulmonaryArteries1);
//MainPulmonaryArteries1ToLeftIntermediatePulmonaryArteries1.SetNextValve(eGate::Closed);
- SEFluidCircuitPath& LeftIntermediatePulmonaryArteries1ToLeftPulmonaryArteries1 = cCardiovascular.CreatePath(LeftIntermediatePulmonaryArteries1, LeftPulmonaryArteries1, pulse::ExpandedCardiovascularPath::LeftIntermediatePulmonaryArteries1ToLeftPulmonaryArteries1);
+ SEFluidCircuitPath& LeftIntermediatePulmonaryArteries1ToLeftPulmonaryArteries1 = cCardiovascular.CreatePath(LeftIntermediatePulmonaryArteries1, LeftPulmonaryArteries1, pulse::CardiovascularPath::LeftIntermediatePulmonaryArteries1ToLeftPulmonaryArteries1);
LeftIntermediatePulmonaryArteries1ToLeftPulmonaryArteries1.GetResistanceBaseline().SetValue(ResistancePulmArt, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftPulmonaryArteries1ToLeftPulmonaryVeins1 = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftPulmonaryVeins1, pulse::ExpandedCardiovascularPath::LeftPulmonaryArteries1ToLeftPulmonaryVeins1);
+ SEFluidCircuitPath& LeftPulmonaryArteries1ToLeftPulmonaryVeins1 = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftPulmonaryVeins1, pulse::CardiovascularPath::LeftPulmonaryArteries1ToLeftPulmonaryVeins1);
LeftPulmonaryArteries1ToLeftPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceShuntLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1 = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftPulmonaryCapillaries1, pulse::ExpandedCardiovascularPath::LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1);
+ SEFluidCircuitPath& LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1 = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftPulmonaryCapillaries1, pulse::CardiovascularPath::LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1);
LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1.GetResistanceBaseline().SetValue(ResistancePulmCapLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftPulmonaryArteries1ToGround = cCardiovascular.CreatePath(LeftPulmonaryArteries1, Ground, pulse::ExpandedCardiovascularPath::LeftPulmonaryArteries1ToGround);
+ SEFluidCircuitPath& LeftPulmonaryArteries1ToGround = cCardiovascular.CreatePath(LeftPulmonaryArteries1, Ground, pulse::CardiovascularPath::LeftPulmonaryArteries1ToGround);
LeftPulmonaryArteries1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& LeftPulmonaryCapillaries1ToGround = cCardiovascular.CreatePath(LeftPulmonaryCapillaries1, Ground, pulse::ExpandedCardiovascularPath::LeftPulmonaryCapillaries1ToGround);
+ SEFluidCircuitPath& LeftPulmonaryCapillaries1ToGround = cCardiovascular.CreatePath(LeftPulmonaryCapillaries1, Ground, pulse::CardiovascularPath::LeftPulmonaryCapillaries1ToGround);
LeftPulmonaryCapillaries1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1 = cCardiovascular.CreatePath(LeftPulmonaryCapillaries1, LeftPulmonaryVeins1, pulse::ExpandedCardiovascularPath::LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1);
+ SEFluidCircuitPath& LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1 = cCardiovascular.CreatePath(LeftPulmonaryCapillaries1, LeftPulmonaryVeins1, pulse::CardiovascularPath::LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1);
LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistancePulmVeinsLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftPulmonaryVeins1ToLeftIntermediatePulmonaryVeins1 = cCardiovascular.CreatePath(LeftPulmonaryVeins1, LeftIntermediatePulmonaryVeins1, pulse::ExpandedCardiovascularPath::LeftPulmonaryVeins1ToLeftIntermediatePulmonaryVeins1);
+ SEFluidCircuitPath& LeftPulmonaryVeins1ToLeftIntermediatePulmonaryVeins1 = cCardiovascular.CreatePath(LeftPulmonaryVeins1, LeftIntermediatePulmonaryVeins1, pulse::CardiovascularPath::LeftPulmonaryVeins1ToLeftIntermediatePulmonaryVeins1);
LeftPulmonaryVeins1ToLeftIntermediatePulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceHeartLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftPulmonaryVeins1ToGround = cCardiovascular.CreatePath(LeftPulmonaryVeins1, Ground, pulse::ExpandedCardiovascularPath::LeftPulmonaryVeins1ToGround);
+ SEFluidCircuitPath& LeftPulmonaryVeins1ToGround = cCardiovascular.CreatePath(LeftPulmonaryVeins1, Ground, pulse::CardiovascularPath::LeftPulmonaryVeins1ToGround);
LeftPulmonaryVeins1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& LeftIntermediatePulmonaryVeins1ToLeftHeart2 = cCardiovascular.CreatePath(LeftIntermediatePulmonaryVeins1, LeftHeart2, pulse::ExpandedCardiovascularPath::LeftIntermediatePulmonaryVeins1ToLeftHeart2);
+ SEFluidCircuitPath& LeftIntermediatePulmonaryVeins1ToLeftHeart2 = cCardiovascular.CreatePath(LeftIntermediatePulmonaryVeins1, LeftHeart2, pulse::CardiovascularPath::LeftIntermediatePulmonaryVeins1ToLeftHeart2);
//LeftIntermediatePulmonaryVeins1ToLeftHeart2.SetNextValve(eGate::Closed);
- SEFluidCircuitPath& LeftHeart2ToLeftHeart1 = cCardiovascular.CreatePath(LeftHeart2, LeftHeart1, pulse::ExpandedCardiovascularPath::LeftHeart2ToLeftHeart1);
+ SEFluidCircuitPath& LeftHeart2ToLeftHeart1 = cCardiovascular.CreatePath(LeftHeart2, LeftHeart1, pulse::CardiovascularPath::LeftHeart2ToLeftHeart1);
LeftHeart2ToLeftHeart1.SetNextValve(eGate::Closed);
- SEFluidCircuitPath& LeftHeart1ToLeftHeart3 = cCardiovascular.CreatePath(LeftHeart1, LeftHeart3, pulse::ExpandedCardiovascularPath::LeftHeart1ToLeftHeart3);
+ SEFluidCircuitPath& LeftHeart1ToLeftHeart3 = cCardiovascular.CreatePath(LeftHeart1, LeftHeart3, pulse::CardiovascularPath::LeftHeart1ToLeftHeart3);
- SEFluidCircuitPath& LeftHeart3ToGround = cCardiovascular.CreatePath(Ground, LeftHeart3, pulse::ExpandedCardiovascularPath::LeftHeart3ToGround);
+ SEFluidCircuitPath& LeftHeart3ToGround = cCardiovascular.CreatePath(Ground, LeftHeart3, pulse::CardiovascularPath::LeftHeart3ToGround);
LeftHeart3ToGround.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LeftHeart1ToAorta2 = cCardiovascular.CreatePath(LeftHeart1, Aorta2, pulse::ExpandedCardiovascularPath::LeftHeart1ToAorta2);
+ SEFluidCircuitPath& LeftHeart1ToAorta2 = cCardiovascular.CreatePath(LeftHeart1, Aorta2, pulse::CardiovascularPath::LeftHeart1ToAorta2);
LeftHeart1ToAorta2.SetNextValve(eGate::Closed);
- cCardiovascular.CreatePath(Aorta2, Aorta3, pulse::ExpandedCardiovascularPath::Aorta2ToAorta3);
- SEFluidCircuitPath& Aorta3ToAorta1 = cCardiovascular.CreatePath(Aorta3, Aorta1, pulse::ExpandedCardiovascularPath::Aorta3ToAorta1);
+ cCardiovascular.CreatePath(Aorta2, Aorta3, pulse::CardiovascularPath::Aorta2ToAorta3);
+ SEFluidCircuitPath& Aorta3ToAorta1 = cCardiovascular.CreatePath(Aorta3, Aorta1, pulse::CardiovascularPath::Aorta3ToAorta1);
Aorta3ToAorta1.GetResistanceBaseline().SetValue(ResistanceAorta, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Aorta1ToAorta4 = cCardiovascular.CreatePath(Aorta1, Aorta4, pulse::ExpandedCardiovascularPath::Aorta1ToAorta4);
+ SEFluidCircuitPath& Aorta1ToAorta4 = cCardiovascular.CreatePath(Aorta1, Aorta4, pulse::CardiovascularPath::Aorta1ToAorta4);
Aorta1ToAorta4.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& Aorta1ToAorta5 = cCardiovascular.CreatePath(Aorta1, Aorta5, pulse::ExpandedCardiovascularPath::Aorta1ToAorta5);
+ SEFluidCircuitPath& Aorta1ToAorta5 = cCardiovascular.CreatePath(Aorta1, Aorta5, pulse::ComputationalLifeCardiovascularPath::Aorta1ToAorta5);
Aorta1ToAorta5.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArterioles, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Aorta5ToExtracranial1 = cCardiovascular.CreatePath(Aorta5, Extracranial1, pulse::ExpandedCardiovascularPath::Aorta5ToExtracranial1);
- SEFluidCircuitPath& Extracranial1ToExtracranial2 = cCardiovascular.CreatePath(Extracranial1, Extracranial2, pulse::ExpandedCardiovascularPath::Extracranial1ToExtracranial2);
+ SEFluidCircuitPath& Aorta5ToExtracranial1 = cCardiovascular.CreatePath(Aorta5, Extracranial1, pulse::ComputationalLifeCardiovascularPath::Aorta5ToExtracranial1);
+ SEFluidCircuitPath& Extracranial1ToExtracranial2 = cCardiovascular.CreatePath(Extracranial1, Extracranial2, pulse::ComputationalLifeCardiovascularPath::Extracranial1ToExtracranial2);
Extracranial1ToExtracranial2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceExtracranial, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Extracranial2ToGround = cCardiovascular.CreatePath(Extracranial2, Ground, pulse::ExpandedCardiovascularPath::Extracranial2ToGround);
+ SEFluidCircuitPath& Extracranial2ToGround = cCardiovascular.CreatePath(Extracranial2, Ground, pulse::ComputationalLifeCardiovascularPath::Extracranial2ToGround);
Extracranial2ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& Extracranial2ToExtracranial3 = cCardiovascular.CreatePath(Extracranial2, Extracranial3, pulse::ExpandedCardiovascularPath::Extracranial2ToExtracranial3);
+ SEFluidCircuitPath& Extracranial2ToExtracranial3 = cCardiovascular.CreatePath(Extracranial2, Extracranial3, pulse::ComputationalLifeCardiovascularPath::Extracranial2ToExtracranial3);
Extracranial2ToExtracranial3.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceExtracranialVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Extracranial3ToVenaCava2 = cCardiovascular.CreatePath(Extracranial3, VenaCava2, pulse::ExpandedCardiovascularPath::Extracranial3ToVenaCava2);
+ SEFluidCircuitPath& Extracranial3ToVenaCava2 = cCardiovascular.CreatePath(Extracranial3, VenaCava2, pulse::ComputationalLifeCardiovascularPath::Extracranial3ToVenaCava2);
- SEFluidCircuitPath& Aorta5ToIntracranial1 = cCardiovascular.CreatePath(Aorta5, Intracranial1, pulse::ExpandedCardiovascularPath::Aorta5ToIntracranial1);
- SEFluidCircuitPath& Intracranial1ToIntracranial2 = cCardiovascular.CreatePath(Intracranial1, Intracranial2, pulse::ExpandedCardiovascularPath::Intracranial1ToIntracranial2);
+ SEFluidCircuitPath& Aorta5ToIntracranial1 = cCardiovascular.CreatePath(Aorta5, Intracranial1, pulse::ComputationalLifeCardiovascularPath::Aorta5ToIntracranial1);
+ SEFluidCircuitPath& Intracranial1ToIntracranial2 = cCardiovascular.CreatePath(Intracranial1, Intracranial2, pulse::ComputationalLifeCardiovascularPath::Intracranial1ToIntracranial2);
Intracranial1ToIntracranial2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceIntracranial, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Intracranial2ToGround = cCardiovascular.CreatePath(Intracranial2, Ground, pulse::ExpandedCardiovascularPath::Intracranial2ToGround);
+ SEFluidCircuitPath& Intracranial2ToGround = cCardiovascular.CreatePath(Intracranial2, Ground, pulse::ComputationalLifeCardiovascularPath::Intracranial2ToGround);
Intracranial2ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& Intracranial2ToIntracranial3 = cCardiovascular.CreatePath(Intracranial2, Intracranial3, pulse::ExpandedCardiovascularPath::Intracranial2ToIntracranial3);
+ SEFluidCircuitPath& Intracranial2ToIntracranial3 = cCardiovascular.CreatePath(Intracranial2, Intracranial3, pulse::ComputationalLifeCardiovascularPath::Intracranial2ToIntracranial3);
Intracranial2ToIntracranial3.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceIntracranialVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Intracranial3ToVenaCava2 = cCardiovascular.CreatePath(Intracranial3, VenaCava2, pulse::ExpandedCardiovascularPath::Intracranial3ToVenaCava2);
+ SEFluidCircuitPath& Intracranial3ToVenaCava2 = cCardiovascular.CreatePath(Intracranial3, VenaCava2, pulse::ComputationalLifeCardiovascularPath::Intracranial3ToVenaCava2);
- SEFluidCircuitPath& Aorta5ToGut1 = cCardiovascular.CreatePath(Aorta5, Gut1, pulse::ExpandedCardiovascularPath::Aorta5ToGut1);
+ SEFluidCircuitPath& Aorta5ToGut1 = cCardiovascular.CreatePath(Aorta5, Gut1, pulse::ComputationalLifeCardiovascularPath::Aorta5ToGut1);
- SEFluidCircuitPath& Gut1ToLargeIntestine1 = cCardiovascular.CreatePath(Gut1, LargeIntestine1, pulse::ExpandedCardiovascularPath::Gut1ToLargeIntestine1);
+ SEFluidCircuitPath& Gut1ToLargeIntestine1 = cCardiovascular.CreatePath(Gut1, LargeIntestine1, pulse::ComputationalLifeCardiovascularPath::Gut1ToLargeIntestine1);
Gut1ToLargeIntestine1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLargeIntestine, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LargeIntestine1ToGround = cCardiovascular.CreatePath(LargeIntestine1, Ground, pulse::ExpandedCardiovascularPath::LargeIntestine1ToGround);
+ SEFluidCircuitPath& LargeIntestine1ToGround = cCardiovascular.CreatePath(LargeIntestine1, Ground, pulse::CardiovascularPath::LargeIntestine1ToGround);
LargeIntestine1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& LargeIntestine1ToPortalVein1 = cCardiovascular.CreatePath(LargeIntestine1, PortalVein1, pulse::ExpandedCardiovascularPath::LargeIntestine1ToPortalVein1);
+ SEFluidCircuitPath& LargeIntestine1ToPortalVein1 = cCardiovascular.CreatePath(LargeIntestine1, PortalVein1, pulse::CardiovascularPath::LargeIntestine1ToPortalVein1);
LargeIntestine1ToPortalVein1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLargeIntestineVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Aorta5ToLeftArm1 = cCardiovascular.CreatePath(Aorta5, LeftArm1, pulse::ExpandedCardiovascularPath::Aorta5ToLeftArm1);
- SEFluidCircuitPath& LeftArm1ToLeftArmBone1 = cCardiovascular.CreatePath(LeftArm1, LeftArmBone1, pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmBone1);
+ SEFluidCircuitPath& Aorta5ToLeftArm1 = cCardiovascular.CreatePath(Aorta5, LeftArm1, pulse::ComputationalLifeCardiovascularPath::Aorta5ToLeftArm1);
+ SEFluidCircuitPath& LeftArm1ToLeftArmBone1 = cCardiovascular.CreatePath(LeftArm1, LeftArmBone1, pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmBone1);
LeftArm1ToLeftArmBone1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmBone, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftArmBone1ToGround = cCardiovascular.CreatePath(LeftArmBone1, Ground, pulse::ExpandedCardiovascularPath::LeftArmBone1ToGround);
+ SEFluidCircuitPath& LeftArmBone1ToGround = cCardiovascular.CreatePath(LeftArmBone1, Ground, pulse::ComputationalLifeCardiovascularPath::LeftArmBone1ToGround);
LeftArmBone1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& LeftArmBone1ToLeftArm2 = cCardiovascular.CreatePath(LeftArmBone1, LeftArm2, pulse::ExpandedCardiovascularPath::LeftArmBone1ToLeftArm2);
+ SEFluidCircuitPath& LeftArmBone1ToLeftArm2 = cCardiovascular.CreatePath(LeftArmBone1, LeftArm2, pulse::ComputationalLifeCardiovascularPath::LeftArmBone1ToLeftArm2);
LeftArmBone1ToLeftArm2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmBoneVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftArm1ToLeftArmFat1 = cCardiovascular.CreatePath(LeftArm1, LeftArmFat1, pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmFat1);
+ SEFluidCircuitPath& LeftArm1ToLeftArmFat1 = cCardiovascular.CreatePath(LeftArm1, LeftArmFat1, pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmFat1);
LeftArm1ToLeftArmFat1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmFat, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftArmFat1ToGround = cCardiovascular.CreatePath(LeftArmFat1, Ground, pulse::ExpandedCardiovascularPath::LeftArmFat1ToGround);
+ SEFluidCircuitPath& LeftArmFat1ToGround = cCardiovascular.CreatePath(LeftArmFat1, Ground, pulse::ComputationalLifeCardiovascularPath::LeftArmFat1ToGround);
LeftArmFat1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& LeftArmFat1ToLeftArm2 = cCardiovascular.CreatePath(LeftArmFat1, LeftArm2, pulse::ExpandedCardiovascularPath::LeftArmFat1ToLeftArm2);
+ SEFluidCircuitPath& LeftArmFat1ToLeftArm2 = cCardiovascular.CreatePath(LeftArmFat1, LeftArm2, pulse::ComputationalLifeCardiovascularPath::LeftArmFat1ToLeftArm2);
LeftArmFat1ToLeftArm2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmFatVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftArm1ToLeftArmMicrovasculature1 = cCardiovascular.CreatePath(LeftArm1, LeftArmMicrovasculature1, pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmMicrovasculature1);
+ SEFluidCircuitPath& LeftArm1ToLeftArmMicrovasculature1 = cCardiovascular.CreatePath(LeftArm1, LeftArmMicrovasculature1, pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmMicrovasculature1);
LeftArm1ToLeftArmMicrovasculature1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmMicrovasculature, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftArmMicrovasculature1ToGround = cCardiovascular.CreatePath(LeftArmMicrovasculature1, Ground, pulse::ExpandedCardiovascularPath::LeftArmMicrovasculature1ToGround);
+ SEFluidCircuitPath& LeftArmMicrovasculature1ToGround = cCardiovascular.CreatePath(LeftArmMicrovasculature1, Ground, pulse::ComputationalLifeCardiovascularPath::LeftArmMicrovasculature1ToGround);
LeftArmMicrovasculature1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& LeftArmMicrovasculature1ToLeftArm2 = cCardiovascular.CreatePath(LeftArmMicrovasculature1, LeftArm2, pulse::ExpandedCardiovascularPath::LeftArmMicrovasculature1ToLeftArm2);
+ SEFluidCircuitPath& LeftArmMicrovasculature1ToLeftArm2 = cCardiovascular.CreatePath(LeftArmMicrovasculature1, LeftArm2, pulse::ComputationalLifeCardiovascularPath::LeftArmMicrovasculature1ToLeftArm2);
LeftArmMicrovasculature1ToLeftArm2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmMicrovasculatureVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftArm1ToLeftArmMuscle1 = cCardiovascular.CreatePath(LeftArm1, LeftArmMuscle1, pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmMuscle1);
+ SEFluidCircuitPath& LeftArm1ToLeftArmMuscle1 = cCardiovascular.CreatePath(LeftArm1, LeftArmMuscle1, pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmMuscle1);
LeftArm1ToLeftArmMuscle1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmMuscle, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftArmMuscle1ToGround = cCardiovascular.CreatePath(LeftArmMuscle1, Ground, pulse::ExpandedCardiovascularPath::LeftArmMuscle1ToGround);
+ SEFluidCircuitPath& LeftArmMuscle1ToGround = cCardiovascular.CreatePath(LeftArmMuscle1, Ground, pulse::ComputationalLifeCardiovascularPath::LeftArmMuscle1ToGround);
LeftArmMuscle1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& LeftArmMuscle1ToLeftArm2 = cCardiovascular.CreatePath(LeftArmMuscle1, LeftArm2, pulse::ExpandedCardiovascularPath::LeftArmMuscle1ToLeftArm2);
+ SEFluidCircuitPath& LeftArmMuscle1ToLeftArm2 = cCardiovascular.CreatePath(LeftArmMuscle1, LeftArm2, pulse::ComputationalLifeCardiovascularPath::LeftArmMuscle1ToLeftArm2);
LeftArmMuscle1ToLeftArm2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmMuscleVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftArm1ToLeftArmSkin1 = cCardiovascular.CreatePath(LeftArm1, LeftArmSkin1, pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmSkin1);
+ SEFluidCircuitPath& LeftArm1ToLeftArmSkin1 = cCardiovascular.CreatePath(LeftArm1, LeftArmSkin1, pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmSkin1);
LeftArm1ToLeftArmSkin1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmSkin, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftArmSkin1ToGround = cCardiovascular.CreatePath(LeftArmSkin1, Ground, pulse::ExpandedCardiovascularPath::LeftArmSkin1ToGround);
+ SEFluidCircuitPath& LeftArmSkin1ToGround = cCardiovascular.CreatePath(LeftArmSkin1, Ground, pulse::ComputationalLifeCardiovascularPath::LeftArmSkin1ToGround);
LeftArmSkin1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& LeftArmSkin1ToLeftArm2 = cCardiovascular.CreatePath(LeftArmSkin1, LeftArm2, pulse::ExpandedCardiovascularPath::LeftArmSkin1ToLeftArm2);
+ SEFluidCircuitPath& LeftArmSkin1ToLeftArm2 = cCardiovascular.CreatePath(LeftArmSkin1, LeftArm2, pulse::ComputationalLifeCardiovascularPath::LeftArmSkin1ToLeftArm2);
LeftArmSkin1ToLeftArm2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmSkinVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftArm2ToVenaCava2 = cCardiovascular.CreatePath(LeftArm2, VenaCava2, pulse::ExpandedCardiovascularPath::LeftArm2ToVenaCava2);
+ SEFluidCircuitPath& LeftArm2ToVenaCava2 = cCardiovascular.CreatePath(LeftArm2, VenaCava2, pulse::ComputationalLifeCardiovascularPath::LeftArm2ToVenaCava2);
- SEFluidCircuitPath& Aorta5ToLeftKidney1 = cCardiovascular.CreatePath(Aorta5, LeftKidney1, pulse::ExpandedCardiovascularPath::Aorta5ToLeftKidney1);
- SEFluidCircuitPath& LeftKidney1ToLeftKidney2 = cCardiovascular.CreatePath(LeftKidney1, LeftKidney2, pulse::ExpandedCardiovascularPath::LeftKidney1ToLeftKidney2);
+ SEFluidCircuitPath& Aorta5ToLeftKidney1 = cCardiovascular.CreatePath(Aorta5, LeftKidney1, pulse::ComputationalLifeCardiovascularPath::Aorta5ToLeftKidney1);
+ SEFluidCircuitPath& LeftKidney1ToLeftKidney2 = cCardiovascular.CreatePath(LeftKidney1, LeftKidney2, pulse::CardiovascularPath::LeftKidney1ToLeftKidney2);
LeftKidney1ToLeftKidney2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceKidney, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftKidney2ToGround = cCardiovascular.CreatePath(LeftKidney2, Ground, pulse::ExpandedCardiovascularPath::LeftKidney2ToGround);
+ SEFluidCircuitPath& LeftKidney2ToGround = cCardiovascular.CreatePath(LeftKidney2, Ground, pulse::ComputationalLifeCardiovascularPath::LeftKidney2ToGround);
LeftKidney2ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& LeftKidney2ToLeftKidney3 = cCardiovascular.CreatePath(LeftKidney2, LeftKidney3, pulse::ExpandedCardiovascularPath::LeftKidney2ToLeftKidney3);
+ SEFluidCircuitPath& LeftKidney2ToLeftKidney3 = cCardiovascular.CreatePath(LeftKidney2, LeftKidney3, pulse::ComputationalLifeCardiovascularPath::LeftKidney2ToLeftKidney3);
LeftKidney2ToLeftKidney3.GetResistanceBaseline().SetValue(ResistanceKidneyVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftKidney3ToVenaCava2 = cCardiovascular.CreatePath(LeftKidney3, VenaCava2, pulse::ExpandedCardiovascularPath::LeftKidney3ToVenaCava2);
+ SEFluidCircuitPath& LeftKidney3ToVenaCava2 = cCardiovascular.CreatePath(LeftKidney3, VenaCava2, pulse::ComputationalLifeCardiovascularPath::LeftKidney3ToVenaCava2);
- SEFluidCircuitPath& Aorta5ToLeftLeg1 = cCardiovascular.CreatePath(Aorta5, LeftLeg1, pulse::ExpandedCardiovascularPath::Aorta5ToLeftLeg1);
- SEFluidCircuitPath& LeftLeg1ToLeftLegBone1 = cCardiovascular.CreatePath(LeftLeg1, LeftLegBone1, pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegBone1);
+ SEFluidCircuitPath& Aorta5ToLeftLeg1 = cCardiovascular.CreatePath(Aorta5, LeftLeg1, pulse::ComputationalLifeCardiovascularPath::Aorta5ToLeftLeg1);
+ SEFluidCircuitPath& LeftLeg1ToLeftLegBone1 = cCardiovascular.CreatePath(LeftLeg1, LeftLegBone1, pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegBone1);
LeftLeg1ToLeftLegBone1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegBone, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftLegBone1ToGround = cCardiovascular.CreatePath(LeftLegBone1, Ground, pulse::ExpandedCardiovascularPath::LeftLegBone1ToGround);
+ SEFluidCircuitPath& LeftLegBone1ToGround = cCardiovascular.CreatePath(LeftLegBone1, Ground, pulse::ComputationalLifeCardiovascularPath::LeftLegBone1ToGround);
LeftLegBone1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& LeftLegBone1ToLeftLeg2 = cCardiovascular.CreatePath(LeftLegBone1, LeftLeg2, pulse::ExpandedCardiovascularPath::LeftLegBone1ToLeftLeg2);
+ SEFluidCircuitPath& LeftLegBone1ToLeftLeg2 = cCardiovascular.CreatePath(LeftLegBone1, LeftLeg2, pulse::ComputationalLifeCardiovascularPath::LeftLegBone1ToLeftLeg2);
LeftLegBone1ToLeftLeg2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegBoneVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftLeg1ToLeftLegFat1 = cCardiovascular.CreatePath(LeftLeg1, LeftLegFat1, pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegFat1);
+ SEFluidCircuitPath& LeftLeg1ToLeftLegFat1 = cCardiovascular.CreatePath(LeftLeg1, LeftLegFat1, pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegFat1);
LeftLeg1ToLeftLegFat1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegFat, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftLegFat1ToGround = cCardiovascular.CreatePath(LeftLegFat1, Ground, pulse::ExpandedCardiovascularPath::LeftLegFat1ToGround);
+ SEFluidCircuitPath& LeftLegFat1ToGround = cCardiovascular.CreatePath(LeftLegFat1, Ground, pulse::ComputationalLifeCardiovascularPath::LeftLegFat1ToGround);
LeftLegFat1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& LeftLegFat1ToLeftLeg2 = cCardiovascular.CreatePath(LeftLegFat1, LeftLeg2, pulse::ExpandedCardiovascularPath::LeftLegFat1ToLeftLeg2);
+ SEFluidCircuitPath& LeftLegFat1ToLeftLeg2 = cCardiovascular.CreatePath(LeftLegFat1, LeftLeg2, pulse::ComputationalLifeCardiovascularPath::LeftLegFat1ToLeftLeg2);
LeftLegFat1ToLeftLeg2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegFatVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftLeg1ToLeftLegMicrovasculature1 = cCardiovascular.CreatePath(LeftLeg1, LeftLegMicrovasculature1, pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegMicrovasculature1);
+ SEFluidCircuitPath& LeftLeg1ToLeftLegMicrovasculature1 = cCardiovascular.CreatePath(LeftLeg1, LeftLegMicrovasculature1, pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegMicrovasculature1);
LeftLeg1ToLeftLegMicrovasculature1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegMicrovasculature, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftLegMicrovasculature1ToGround = cCardiovascular.CreatePath(LeftLegMicrovasculature1, Ground, pulse::ExpandedCardiovascularPath::LeftLegMicrovasculature1ToGround);
+ SEFluidCircuitPath& LeftLegMicrovasculature1ToGround = cCardiovascular.CreatePath(LeftLegMicrovasculature1, Ground, pulse::ComputationalLifeCardiovascularPath::LeftLegMicrovasculature1ToGround);
LeftLegMicrovasculature1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& LeftLegMicrovasculature1ToLeftLeg2 = cCardiovascular.CreatePath(LeftLegMicrovasculature1, LeftLeg2, pulse::ExpandedCardiovascularPath::LeftLegMicrovasculature1ToLeftLeg2);
+ SEFluidCircuitPath& LeftLegMicrovasculature1ToLeftLeg2 = cCardiovascular.CreatePath(LeftLegMicrovasculature1, LeftLeg2, pulse::ComputationalLifeCardiovascularPath::LeftLegMicrovasculature1ToLeftLeg2);
LeftLegMicrovasculature1ToLeftLeg2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegMicrovasculatureVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftLeg1ToLeftLegMuscle1 = cCardiovascular.CreatePath(LeftLeg1, LeftLegMuscle1, pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegMuscle1);
+ SEFluidCircuitPath& LeftLeg1ToLeftLegMuscle1 = cCardiovascular.CreatePath(LeftLeg1, LeftLegMuscle1, pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegMuscle1);
LeftLeg1ToLeftLegMuscle1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegMuscle, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftLegMuscle1ToGround = cCardiovascular.CreatePath(LeftLegMuscle1, Ground, pulse::ExpandedCardiovascularPath::LeftLegMuscle1ToGround);
+ SEFluidCircuitPath& LeftLegMuscle1ToGround = cCardiovascular.CreatePath(LeftLegMuscle1, Ground, pulse::ComputationalLifeCardiovascularPath::LeftLegMuscle1ToGround);
LeftLegMuscle1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& LeftLegMuscle1ToLeftLeg2 = cCardiovascular.CreatePath(LeftLegMuscle1, LeftLeg2, pulse::ExpandedCardiovascularPath::LeftLegMuscle1ToLeftLeg2);
+ SEFluidCircuitPath& LeftLegMuscle1ToLeftLeg2 = cCardiovascular.CreatePath(LeftLegMuscle1, LeftLeg2, pulse::ComputationalLifeCardiovascularPath::LeftLegMuscle1ToLeftLeg2);
LeftLegMuscle1ToLeftLeg2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegMuscleVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftLeg1ToLeftLegSkin1 = cCardiovascular.CreatePath(LeftLeg1, LeftLegSkin1, pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegSkin1);
+ SEFluidCircuitPath& LeftLeg1ToLeftLegSkin1 = cCardiovascular.CreatePath(LeftLeg1, LeftLegSkin1, pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegSkin1);
LeftLeg1ToLeftLegSkin1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegSkin, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftLegSkin1ToGround = cCardiovascular.CreatePath(LeftLegSkin1, Ground, pulse::ExpandedCardiovascularPath::LeftLegSkin1ToGround);
+ SEFluidCircuitPath& LeftLegSkin1ToGround = cCardiovascular.CreatePath(LeftLegSkin1, Ground, pulse::ComputationalLifeCardiovascularPath::LeftLegSkin1ToGround);
LeftLegSkin1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& LeftLegSkin1ToLeftLeg2 = cCardiovascular.CreatePath(LeftLegSkin1, LeftLeg2, pulse::ExpandedCardiovascularPath::LeftLegSkin1ToLeftLeg2);
+ SEFluidCircuitPath& LeftLegSkin1ToLeftLeg2 = cCardiovascular.CreatePath(LeftLegSkin1, LeftLeg2, pulse::ComputationalLifeCardiovascularPath::LeftLegSkin1ToLeftLeg2);
LeftLegSkin1ToLeftLeg2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegSkinVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftLeg2ToVenaCava2 = cCardiovascular.CreatePath(LeftLeg2, VenaCava2, pulse::ExpandedCardiovascularPath::LeftLeg2ToVenaCava2);
+ SEFluidCircuitPath& LeftLeg2ToVenaCava2 = cCardiovascular.CreatePath(LeftLeg2, VenaCava2, pulse::ComputationalLifeCardiovascularPath::LeftLeg2ToVenaCava2);
- SEFluidCircuitPath& Gut1ToLiver1 = cCardiovascular.CreatePath(Gut1, Liver1, pulse::ExpandedCardiovascularPath::Gut1ToLiver1);
+ SEFluidCircuitPath& Gut1ToLiver1 = cCardiovascular.CreatePath(Gut1, Liver1, pulse::ComputationalLifeCardiovascularPath::Gut1ToLiver1);
Gut1ToLiver1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLiver, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Liver1ToGround = cCardiovascular.CreatePath(Liver1, Ground, pulse::ExpandedCardiovascularPath::Liver1ToGround);
+ SEFluidCircuitPath& Liver1ToGround = cCardiovascular.CreatePath(Liver1, Ground, pulse::CardiovascularPath::Liver1ToGround);
Liver1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& PortalVein1ToLiver1 = cCardiovascular.CreatePath(PortalVein1, Liver1, pulse::ExpandedCardiovascularPath::PortalVein1ToLiver1);
+ SEFluidCircuitPath& PortalVein1ToLiver1 = cCardiovascular.CreatePath(PortalVein1, Liver1, pulse::CardiovascularPath::PortalVein1ToLiver1);
PortalVein1ToLiver1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistancePortalVein, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Liver1ToLiver2 = cCardiovascular.CreatePath(Liver1, Liver2, pulse::ExpandedCardiovascularPath::Liver1ToLiver2);
+ SEFluidCircuitPath& Liver1ToLiver2 = cCardiovascular.CreatePath(Liver1, Liver2, pulse::CardiovascularPath::Liver1ToLiver2);
Liver1ToLiver2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLiverVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Liver2ToVenaCava2 = cCardiovascular.CreatePath(Liver2, VenaCava2, pulse::ExpandedCardiovascularPath::Liver2ToVenaCava2);
+ SEFluidCircuitPath& Liver2ToVenaCava2 = cCardiovascular.CreatePath(Liver2, VenaCava2, pulse::ComputationalLifeCardiovascularPath::Liver2ToVenaCava2);
- SEFluidCircuitPath& Aorta5ToMyocardium1 = cCardiovascular.CreatePath(Aorta5, Myocardium1, pulse::ExpandedCardiovascularPath::Aorta5ToMyocardium1);
- SEFluidCircuitPath& Myocardium1ToMyocardium2 = cCardiovascular.CreatePath(Myocardium1, Myocardium2, pulse::ExpandedCardiovascularPath::Myocardium1ToMyocardium2);
+ SEFluidCircuitPath& Aorta5ToMyocardium1 = cCardiovascular.CreatePath(Aorta5, Myocardium1, pulse::ComputationalLifeCardiovascularPath::Aorta5ToMyocardium1);
+ SEFluidCircuitPath& Myocardium1ToMyocardium2 = cCardiovascular.CreatePath(Myocardium1, Myocardium2, pulse::CardiovascularPath::Myocardium1ToMyocardium2);
Myocardium1ToMyocardium2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceMyocardium, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Myocardium2ToGround = cCardiovascular.CreatePath(Myocardium2, Ground, pulse::ExpandedCardiovascularPath::Myocardium2ToGround);
+ SEFluidCircuitPath& Myocardium2ToGround = cCardiovascular.CreatePath(Myocardium2, Ground, pulse::ComputationalLifeCardiovascularPath::Myocardium2ToGround);
Myocardium2ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& Myocardium2ToMyocardium3 = cCardiovascular.CreatePath(Myocardium2, Myocardium3, pulse::ExpandedCardiovascularPath::Myocardium2ToMyocardium3);
+ SEFluidCircuitPath& Myocardium2ToMyocardium3 = cCardiovascular.CreatePath(Myocardium2, Myocardium3, pulse::ComputationalLifeCardiovascularPath::Myocardium2ToMyocardium3);
Myocardium2ToMyocardium3.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceMyocardiumVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Myocardium3ToVenaCava2 = cCardiovascular.CreatePath(Myocardium3, VenaCava2, pulse::ExpandedCardiovascularPath::Myocardium3ToVenaCava2);
+ SEFluidCircuitPath& Myocardium3ToVenaCava2 = cCardiovascular.CreatePath(Myocardium3, VenaCava2, pulse::ComputationalLifeCardiovascularPath::Myocardium3ToVenaCava2);
- SEFluidCircuitPath& PericardiumToGround = cCardiovascular.CreatePath(Pericardium, Ground, pulse::ExpandedCardiovascularPath::Pericardium1ToGround);
- SEFluidCircuitPath& GroundToPericardium = cCardiovascular.CreatePath(Ground, Pericardium, pulse::ExpandedCardiovascularPath::GroundToPericardium1);
+ SEFluidCircuitPath& PericardiumToGround = cCardiovascular.CreatePath(Pericardium, Ground, pulse::CardiovascularPath::Pericardium1ToGround);
+ SEFluidCircuitPath& GroundToPericardium = cCardiovascular.CreatePath(Ground, Pericardium, pulse::CardiovascularPath::GroundToPericardium1);
GroundToPericardium.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
- SEFluidCircuitPath& Aorta5ToRightArm1 = cCardiovascular.CreatePath(Aorta5, RightArm1, pulse::ExpandedCardiovascularPath::Aorta5ToRightArm1);
- SEFluidCircuitPath& RightArm1ToRightArmBone1 = cCardiovascular.CreatePath(RightArm1, RightArmBone1, pulse::ExpandedCardiovascularPath::RightArm1ToRightArmBone1);
+ SEFluidCircuitPath& Aorta5ToRightArm1 = cCardiovascular.CreatePath(Aorta5, RightArm1, pulse::ComputationalLifeCardiovascularPath::Aorta5ToRightArm1);
+ SEFluidCircuitPath& RightArm1ToRightArmBone1 = cCardiovascular.CreatePath(RightArm1, RightArmBone1, pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmBone1);
RightArm1ToRightArmBone1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmBone, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightArmBone1ToGround = cCardiovascular.CreatePath(RightArmBone1, Ground, pulse::ExpandedCardiovascularPath::RightArmBone1ToGround);
+ SEFluidCircuitPath& RightArmBone1ToGround = cCardiovascular.CreatePath(RightArmBone1, Ground, pulse::ComputationalLifeCardiovascularPath::RightArmBone1ToGround);
RightArmBone1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& RightArmBone1ToRightArm2 = cCardiovascular.CreatePath(RightArmBone1, RightArm2, pulse::ExpandedCardiovascularPath::RightArmBone1ToRightArm2);
+ SEFluidCircuitPath& RightArmBone1ToRightArm2 = cCardiovascular.CreatePath(RightArmBone1, RightArm2, pulse::ComputationalLifeCardiovascularPath::RightArmBone1ToRightArm2);
RightArmBone1ToRightArm2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmBoneVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightArm1ToRightArmFat1 = cCardiovascular.CreatePath(RightArm1, RightArmFat1, pulse::ExpandedCardiovascularPath::RightArm1ToRightArmFat1);
+ SEFluidCircuitPath& RightArm1ToRightArmFat1 = cCardiovascular.CreatePath(RightArm1, RightArmFat1, pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmFat1);
RightArm1ToRightArmFat1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmFat, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightArmFat1ToGround = cCardiovascular.CreatePath(RightArmFat1, Ground, pulse::ExpandedCardiovascularPath::RightArmFat1ToGround);
+ SEFluidCircuitPath& RightArmFat1ToGround = cCardiovascular.CreatePath(RightArmFat1, Ground, pulse::ComputationalLifeCardiovascularPath::RightArmFat1ToGround);
RightArmFat1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& RightArmFat1ToRightArm2 = cCardiovascular.CreatePath(RightArmFat1, RightArm2, pulse::ExpandedCardiovascularPath::RightArmFat1ToRightArm2);
+ SEFluidCircuitPath& RightArmFat1ToRightArm2 = cCardiovascular.CreatePath(RightArmFat1, RightArm2, pulse::ComputationalLifeCardiovascularPath::RightArmFat1ToRightArm2);
RightArmFat1ToRightArm2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmFatVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightArm1ToRightArmMicrovasculature1 = cCardiovascular.CreatePath(RightArm1, RightArmMicrovasculature1, pulse::ExpandedCardiovascularPath::RightArm1ToRightArmMicrovasculature1);
+ SEFluidCircuitPath& RightArm1ToRightArmMicrovasculature1 = cCardiovascular.CreatePath(RightArm1, RightArmMicrovasculature1, pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmMicrovasculature1);
RightArm1ToRightArmMicrovasculature1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmMicrovasculature, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightArmMicrovasculature1ToGround = cCardiovascular.CreatePath(RightArmMicrovasculature1, Ground, pulse::ExpandedCardiovascularPath::RightArmMicrovasculature1ToGround);
+ SEFluidCircuitPath& RightArmMicrovasculature1ToGround = cCardiovascular.CreatePath(RightArmMicrovasculature1, Ground, pulse::ComputationalLifeCardiovascularPath::RightArmMicrovasculature1ToGround);
RightArmMicrovasculature1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& RightArmMicrovasculature1ToRightArm2 = cCardiovascular.CreatePath(RightArmMicrovasculature1, RightArm2, pulse::ExpandedCardiovascularPath::RightArmMicrovasculature1ToRightArm2);
+ SEFluidCircuitPath& RightArmMicrovasculature1ToRightArm2 = cCardiovascular.CreatePath(RightArmMicrovasculature1, RightArm2, pulse::ComputationalLifeCardiovascularPath::RightArmMicrovasculature1ToRightArm2);
RightArmMicrovasculature1ToRightArm2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmMicrovasculatureVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightArm1ToRightArmMuscle1 = cCardiovascular.CreatePath(RightArm1, RightArmMuscle1, pulse::ExpandedCardiovascularPath::RightArm1ToRightArmMuscle1);
+ SEFluidCircuitPath& RightArm1ToRightArmMuscle1 = cCardiovascular.CreatePath(RightArm1, RightArmMuscle1, pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmMuscle1);
RightArm1ToRightArmMuscle1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmMuscle, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightArmMuscle1ToGround = cCardiovascular.CreatePath(RightArmMuscle1, Ground, pulse::ExpandedCardiovascularPath::RightArmMuscle1ToGround);
+ SEFluidCircuitPath& RightArmMuscle1ToGround = cCardiovascular.CreatePath(RightArmMuscle1, Ground, pulse::ComputationalLifeCardiovascularPath::RightArmMuscle1ToGround);
RightArmMuscle1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& RightArmMuscle1ToRightArm2 = cCardiovascular.CreatePath(RightArmMuscle1, RightArm2, pulse::ExpandedCardiovascularPath::RightArmMuscle1ToRightArm2);
+ SEFluidCircuitPath& RightArmMuscle1ToRightArm2 = cCardiovascular.CreatePath(RightArmMuscle1, RightArm2, pulse::ComputationalLifeCardiovascularPath::RightArmMuscle1ToRightArm2);
RightArmMuscle1ToRightArm2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmMuscleVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightArm1ToRightArmSkin1 = cCardiovascular.CreatePath(RightArm1, RightArmSkin1, pulse::ExpandedCardiovascularPath::RightArm1ToRightArmSkin1);
+ SEFluidCircuitPath& RightArm1ToRightArmSkin1 = cCardiovascular.CreatePath(RightArm1, RightArmSkin1, pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmSkin1);
RightArm1ToRightArmSkin1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmSkin, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightArmSkin1ToGround = cCardiovascular.CreatePath(RightArmSkin1, Ground, pulse::ExpandedCardiovascularPath::RightArmSkin1ToGround);
+ SEFluidCircuitPath& RightArmSkin1ToGround = cCardiovascular.CreatePath(RightArmSkin1, Ground, pulse::ComputationalLifeCardiovascularPath::RightArmSkin1ToGround);
RightArmSkin1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& RightArmSkin1ToRightArm2 = cCardiovascular.CreatePath(RightArmSkin1, RightArm2, pulse::ExpandedCardiovascularPath::RightArmSkin1ToRightArm2);
+ SEFluidCircuitPath& RightArmSkin1ToRightArm2 = cCardiovascular.CreatePath(RightArmSkin1, RightArm2, pulse::ComputationalLifeCardiovascularPath::RightArmSkin1ToRightArm2);
RightArmSkin1ToRightArm2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmSkinVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightArm2ToVenaCava2 = cCardiovascular.CreatePath(RightArm2, VenaCava2, pulse::ExpandedCardiovascularPath::RightArm2ToVenaCava2);
+ SEFluidCircuitPath& RightArm2ToVenaCava2 = cCardiovascular.CreatePath(RightArm2, VenaCava2, pulse::ComputationalLifeCardiovascularPath::RightArm2ToVenaCava2);
- SEFluidCircuitPath& Aorta5ToRightKidney1 = cCardiovascular.CreatePath(Aorta5, RightKidney1, pulse::ExpandedCardiovascularPath::Aorta5ToRightKidney1);
- SEFluidCircuitPath& RightKidney1ToRightKidney2 = cCardiovascular.CreatePath(RightKidney1, RightKidney2, pulse::ExpandedCardiovascularPath::RightKidney1ToRightKidney2);
+ SEFluidCircuitPath& Aorta5ToRightKidney1 = cCardiovascular.CreatePath(Aorta5, RightKidney1, pulse::ComputationalLifeCardiovascularPath::Aorta5ToRightKidney1);
+ SEFluidCircuitPath& RightKidney1ToRightKidney2 = cCardiovascular.CreatePath(RightKidney1, RightKidney2, pulse::CardiovascularPath::RightKidney1ToRightKidney2);
RightKidney1ToRightKidney2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceKidney, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightKidney2ToGround = cCardiovascular.CreatePath(RightKidney2, Ground, pulse::ExpandedCardiovascularPath::RightKidney2ToGround);
+ SEFluidCircuitPath& RightKidney2ToGround = cCardiovascular.CreatePath(RightKidney2, Ground, pulse::ComputationalLifeCardiovascularPath::RightKidney2ToGround);
RightKidney2ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& RightKidney2ToRightKidney3 = cCardiovascular.CreatePath(RightKidney2, RightKidney3, pulse::ExpandedCardiovascularPath::RightKidney2ToRightKidney3);
+ SEFluidCircuitPath& RightKidney2ToRightKidney3 = cCardiovascular.CreatePath(RightKidney2, RightKidney3, pulse::ComputationalLifeCardiovascularPath::RightKidney2ToRightKidney3);
RightKidney2ToRightKidney3.GetResistanceBaseline().SetValue(ResistanceKidneyVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightKidney3ToVenaCava2 = cCardiovascular.CreatePath(RightKidney3, VenaCava2, pulse::ExpandedCardiovascularPath::RightKidney3ToVenaCava2);
+ SEFluidCircuitPath& RightKidney3ToVenaCava2 = cCardiovascular.CreatePath(RightKidney3, VenaCava2, pulse::ComputationalLifeCardiovascularPath::RightKidney3ToVenaCava2);
- SEFluidCircuitPath& Aorta5ToRightLeg1 = cCardiovascular.CreatePath(Aorta5, RightLeg1, pulse::ExpandedCardiovascularPath::Aorta5ToRightLeg1);
- SEFluidCircuitPath& RightLeg1ToRightLegBone1 = cCardiovascular.CreatePath(RightLeg1, RightLegBone1, pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegBone1);
+ SEFluidCircuitPath& Aorta5ToRightLeg1 = cCardiovascular.CreatePath(Aorta5, RightLeg1, pulse::ComputationalLifeCardiovascularPath::Aorta5ToRightLeg1);
+ SEFluidCircuitPath& RightLeg1ToRightLegBone1 = cCardiovascular.CreatePath(RightLeg1, RightLegBone1, pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegBone1);
RightLeg1ToRightLegBone1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegBone, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightLegBone1ToGround = cCardiovascular.CreatePath(RightLegBone1, Ground, pulse::ExpandedCardiovascularPath::RightLegBone1ToGround);
+ SEFluidCircuitPath& RightLegBone1ToGround = cCardiovascular.CreatePath(RightLegBone1, Ground, pulse::ComputationalLifeCardiovascularPath::RightLegBone1ToGround);
RightLegBone1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& RightLegBone1ToRightLeg2 = cCardiovascular.CreatePath(RightLegBone1, RightLeg2, pulse::ExpandedCardiovascularPath::RightLegBone1ToRightLeg2);
+ SEFluidCircuitPath& RightLegBone1ToRightLeg2 = cCardiovascular.CreatePath(RightLegBone1, RightLeg2, pulse::ComputationalLifeCardiovascularPath::RightLegBone1ToRightLeg2);
RightLegBone1ToRightLeg2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegBoneVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightLeg1ToRightLegFat1 = cCardiovascular.CreatePath(RightLeg1, RightLegFat1, pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegFat1);
+ SEFluidCircuitPath& RightLeg1ToRightLegFat1 = cCardiovascular.CreatePath(RightLeg1, RightLegFat1, pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegFat1);
RightLeg1ToRightLegFat1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegFat, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightLegFat1ToGround = cCardiovascular.CreatePath(RightLegFat1, Ground, pulse::ExpandedCardiovascularPath::RightLegFat1ToGround);
+ SEFluidCircuitPath& RightLegFat1ToGround = cCardiovascular.CreatePath(RightLegFat1, Ground, pulse::ComputationalLifeCardiovascularPath::RightLegFat1ToGround);
RightLegFat1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& RightLegFat1ToRightLeg2 = cCardiovascular.CreatePath(RightLegFat1, RightLeg2, pulse::ExpandedCardiovascularPath::RightLegFat1ToRightLeg2);
+ SEFluidCircuitPath& RightLegFat1ToRightLeg2 = cCardiovascular.CreatePath(RightLegFat1, RightLeg2, pulse::ComputationalLifeCardiovascularPath::RightLegFat1ToRightLeg2);
RightLegFat1ToRightLeg2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegFatVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightLeg1ToRightLegMicrovasculature1 = cCardiovascular.CreatePath(RightLeg1, RightLegMicrovasculature1, pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegMicrovasculature1);
+ SEFluidCircuitPath& RightLeg1ToRightLegMicrovasculature1 = cCardiovascular.CreatePath(RightLeg1, RightLegMicrovasculature1, pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegMicrovasculature1);
RightLeg1ToRightLegMicrovasculature1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegMicrovasculature, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightLegMicrovasculature1ToGround = cCardiovascular.CreatePath(RightLegMicrovasculature1, Ground, pulse::ExpandedCardiovascularPath::RightLegMicrovasculature1ToGround);
+ SEFluidCircuitPath& RightLegMicrovasculature1ToGround = cCardiovascular.CreatePath(RightLegMicrovasculature1, Ground, pulse::ComputationalLifeCardiovascularPath::RightLegMicrovasculature1ToGround);
RightLegMicrovasculature1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& RightLegMicrovasculature1ToRightLeg2 = cCardiovascular.CreatePath(RightLegMicrovasculature1, RightLeg2, pulse::ExpandedCardiovascularPath::RightLegMicrovasculature1ToRightLeg2);
+ SEFluidCircuitPath& RightLegMicrovasculature1ToRightLeg2 = cCardiovascular.CreatePath(RightLegMicrovasculature1, RightLeg2, pulse::ComputationalLifeCardiovascularPath::RightLegMicrovasculature1ToRightLeg2);
RightLegMicrovasculature1ToRightLeg2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegMicrovasculatureVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightLeg1ToRightLegMuscle1 = cCardiovascular.CreatePath(RightLeg1, RightLegMuscle1, pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegMuscle1);
+ SEFluidCircuitPath& RightLeg1ToRightLegMuscle1 = cCardiovascular.CreatePath(RightLeg1, RightLegMuscle1, pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegMuscle1);
RightLeg1ToRightLegMuscle1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegMuscle, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightLegMuscle1ToGround = cCardiovascular.CreatePath(RightLegMuscle1, Ground, pulse::ExpandedCardiovascularPath::RightLegMuscle1ToGround);
+ SEFluidCircuitPath& RightLegMuscle1ToGround = cCardiovascular.CreatePath(RightLegMuscle1, Ground, pulse::ComputationalLifeCardiovascularPath::RightLegMuscle1ToGround);
RightLegMuscle1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& RightLegMuscle1ToRightLeg2 = cCardiovascular.CreatePath(RightLegMuscle1, RightLeg2, pulse::ExpandedCardiovascularPath::RightLegMuscle1ToRightLeg2);
+ SEFluidCircuitPath& RightLegMuscle1ToRightLeg2 = cCardiovascular.CreatePath(RightLegMuscle1, RightLeg2, pulse::ComputationalLifeCardiovascularPath::RightLegMuscle1ToRightLeg2);
RightLegMuscle1ToRightLeg2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegMuscleVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightLeg1ToRightLegSkin1 = cCardiovascular.CreatePath(RightLeg1, RightLegSkin1, pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegSkin1);
+ SEFluidCircuitPath& RightLeg1ToRightLegSkin1 = cCardiovascular.CreatePath(RightLeg1, RightLegSkin1, pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegSkin1);
RightLeg1ToRightLegSkin1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegSkin, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightLegSkin1ToGround = cCardiovascular.CreatePath(RightLegSkin1, Ground, pulse::ExpandedCardiovascularPath::RightLegSkin1ToGround);
+ SEFluidCircuitPath& RightLegSkin1ToGround = cCardiovascular.CreatePath(RightLegSkin1, Ground, pulse::ComputationalLifeCardiovascularPath::RightLegSkin1ToGround);
RightLegSkin1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& RightLegSkin1ToRightLeg2 = cCardiovascular.CreatePath(RightLegSkin1, RightLeg2, pulse::ExpandedCardiovascularPath::RightLegSkin1ToRightLeg2);
+ SEFluidCircuitPath& RightLegSkin1ToRightLeg2 = cCardiovascular.CreatePath(RightLegSkin1, RightLeg2, pulse::ComputationalLifeCardiovascularPath::RightLegSkin1ToRightLeg2);
RightLegSkin1ToRightLeg2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegSkinVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightLeg2ToVenaCava2 = cCardiovascular.CreatePath(RightLeg2, VenaCava2, pulse::ExpandedCardiovascularPath::RightLeg2ToVenaCava2);
+ SEFluidCircuitPath& RightLeg2ToVenaCava2 = cCardiovascular.CreatePath(RightLeg2, VenaCava2, pulse::ComputationalLifeCardiovascularPath::RightLeg2ToVenaCava2);
- SEFluidCircuitPath& Gut1ToSmallIntestine1 = cCardiovascular.CreatePath(Gut1, SmallIntestine1, pulse::ExpandedCardiovascularPath::Gut1ToSmallIntestine1);
+ SEFluidCircuitPath& Gut1ToSmallIntestine1 = cCardiovascular.CreatePath(Gut1, SmallIntestine1, pulse::ComputationalLifeCardiovascularPath::Gut1ToSmallIntestine1);
Gut1ToSmallIntestine1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceSmallIntestine, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& SmallIntestine1ToGround = cCardiovascular.CreatePath(SmallIntestine1, Ground, pulse::ExpandedCardiovascularPath::SmallIntestine1ToGround);
+ SEFluidCircuitPath& SmallIntestine1ToGround = cCardiovascular.CreatePath(SmallIntestine1, Ground, pulse::CardiovascularPath::SmallIntestine1ToGround);
SmallIntestine1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& SmallIntestine1ToPortalVein1 = cCardiovascular.CreatePath(SmallIntestine1, PortalVein1, pulse::ExpandedCardiovascularPath::SmallIntestine1ToPortalVein1);
+ SEFluidCircuitPath& SmallIntestine1ToPortalVein1 = cCardiovascular.CreatePath(SmallIntestine1, PortalVein1, pulse::CardiovascularPath::SmallIntestine1ToPortalVein1);
SmallIntestine1ToPortalVein1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceSmallIntestineVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Gut1ToSplanchnic1 = cCardiovascular.CreatePath(Gut1, Splanchnic1, pulse::ExpandedCardiovascularPath::Gut1ToSplanchnic1);
+ SEFluidCircuitPath& Gut1ToSplanchnic1 = cCardiovascular.CreatePath(Gut1, Splanchnic1, pulse::ComputationalLifeCardiovascularPath::Gut1ToSplanchnic1);
Gut1ToSplanchnic1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceSplanchnic, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Splanchnic1ToGround = cCardiovascular.CreatePath(Splanchnic1, Ground, pulse::ExpandedCardiovascularPath::Splanchnic1ToGround);
+ SEFluidCircuitPath& Splanchnic1ToGround = cCardiovascular.CreatePath(Splanchnic1, Ground, pulse::CardiovascularPath::Splanchnic1ToGround);
Splanchnic1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& Splanchnic1ToPortalVein1 = cCardiovascular.CreatePath(Splanchnic1, PortalVein1, pulse::ExpandedCardiovascularPath::Splanchnic1ToPortalVein1);
+ SEFluidCircuitPath& Splanchnic1ToPortalVein1 = cCardiovascular.CreatePath(Splanchnic1, PortalVein1, pulse::CardiovascularPath::Splanchnic1ToPortalVein1);
Splanchnic1ToPortalVein1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceSplanchnicVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Gut1ToSpleen1 = cCardiovascular.CreatePath(Gut1, Spleen1, pulse::ExpandedCardiovascularPath::Gut1ToSpleen1);
+ SEFluidCircuitPath& Gut1ToSpleen1 = cCardiovascular.CreatePath(Gut1, Spleen1, pulse::ComputationalLifeCardiovascularPath::Gut1ToSpleen1);
Gut1ToSpleen1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceSpleen, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& SpleenToGround = cCardiovascular.CreatePath(Spleen1, Ground, pulse::ExpandedCardiovascularPath::Spleen1ToGround);
+ SEFluidCircuitPath& SpleenToGround = cCardiovascular.CreatePath(Spleen1, Ground, pulse::CardiovascularPath::Spleen1ToGround);
SpleenToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& Spleen1ToPortalVein1 = cCardiovascular.CreatePath(Spleen1, PortalVein1, pulse::ExpandedCardiovascularPath::Spleen1ToPortalVein1);
+ SEFluidCircuitPath& Spleen1ToPortalVein1 = cCardiovascular.CreatePath(Spleen1, PortalVein1, pulse::CardiovascularPath::Spleen1ToPortalVein1);
Spleen1ToPortalVein1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceSpleenVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Aorta5ToTorso1 = cCardiovascular.CreatePath(Aorta5, Torso1, pulse::ExpandedCardiovascularPath::Aorta5ToTorso1);
- SEFluidCircuitPath& Torso1ToTorsoBone1 = cCardiovascular.CreatePath(Torso1, TorsoBone1, pulse::ExpandedCardiovascularPath::Torso1ToTorsoBone1);
+ SEFluidCircuitPath& Aorta5ToTorso1 = cCardiovascular.CreatePath(Aorta5, Torso1, pulse::ComputationalLifeCardiovascularPath::Aorta5ToTorso1);
+ SEFluidCircuitPath& Torso1ToTorsoBone1 = cCardiovascular.CreatePath(Torso1, TorsoBone1, pulse::ComputationalLifeCardiovascularPath::Torso1ToTorsoBone1);
Torso1ToTorsoBone1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceTorsoBone, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& TorsoBone1ToGround = cCardiovascular.CreatePath(TorsoBone1, Ground, pulse::ExpandedCardiovascularPath::TorsoBone1ToGround);
+ SEFluidCircuitPath& TorsoBone1ToGround = cCardiovascular.CreatePath(TorsoBone1, Ground, pulse::ComputationalLifeCardiovascularPath::TorsoBone1ToGround);
TorsoBone1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& TorsoBone1ToTorso2 = cCardiovascular.CreatePath(TorsoBone1, Torso2, pulse::ExpandedCardiovascularPath::TorsoBone1ToTorso2);
+ SEFluidCircuitPath& TorsoBone1ToTorso2 = cCardiovascular.CreatePath(TorsoBone1, Torso2, pulse::ComputationalLifeCardiovascularPath::TorsoBone1ToTorso2);
TorsoBone1ToTorso2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceTorsoBoneVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Torso1ToTorsoFat1 = cCardiovascular.CreatePath(Torso1, TorsoFat1, pulse::ExpandedCardiovascularPath::Torso1ToTorsoFat1);
+ SEFluidCircuitPath& Torso1ToTorsoFat1 = cCardiovascular.CreatePath(Torso1, TorsoFat1, pulse::ComputationalLifeCardiovascularPath::Torso1ToTorsoFat1);
Torso1ToTorsoFat1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceTorsoFat, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& TorsoFat1ToGround = cCardiovascular.CreatePath(TorsoFat1, Ground, pulse::ExpandedCardiovascularPath::TorsoFat1ToGround);
+ SEFluidCircuitPath& TorsoFat1ToGround = cCardiovascular.CreatePath(TorsoFat1, Ground, pulse::ComputationalLifeCardiovascularPath::TorsoFat1ToGround);
TorsoFat1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& TorsoFat1ToTorso2 = cCardiovascular.CreatePath(TorsoFat1, Torso2, pulse::ExpandedCardiovascularPath::TorsoFat1ToTorso2);
+ SEFluidCircuitPath& TorsoFat1ToTorso2 = cCardiovascular.CreatePath(TorsoFat1, Torso2, pulse::ComputationalLifeCardiovascularPath::TorsoFat1ToTorso2);
TorsoFat1ToTorso2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceTorsoFatVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Torso1ToTorsoMicrovasculature1 = cCardiovascular.CreatePath(Torso1, TorsoMicrovasculature1, pulse::ExpandedCardiovascularPath::Torso1ToTorsoMicrovasculature1);
+ SEFluidCircuitPath& Torso1ToTorsoMicrovasculature1 = cCardiovascular.CreatePath(Torso1, TorsoMicrovasculature1, pulse::ComputationalLifeCardiovascularPath::Torso1ToTorsoMicrovasculature1);
Torso1ToTorsoMicrovasculature1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceTorsoMicrovasculature, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& TorsoMicrovasculature1ToGround = cCardiovascular.CreatePath(TorsoMicrovasculature1, Ground, pulse::ExpandedCardiovascularPath::TorsoMicrovasculature1ToGround);
+ SEFluidCircuitPath& TorsoMicrovasculature1ToGround = cCardiovascular.CreatePath(TorsoMicrovasculature1, Ground, pulse::ComputationalLifeCardiovascularPath::TorsoMicrovasculature1ToGround);
TorsoMicrovasculature1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& TorsoMicrovasculature1ToTorso2 = cCardiovascular.CreatePath(TorsoMicrovasculature1, Torso2, pulse::ExpandedCardiovascularPath::TorsoMicrovasculature1ToTorso2);
+ SEFluidCircuitPath& TorsoMicrovasculature1ToTorso2 = cCardiovascular.CreatePath(TorsoMicrovasculature1, Torso2, pulse::ComputationalLifeCardiovascularPath::TorsoMicrovasculature1ToTorso2);
TorsoMicrovasculature1ToTorso2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceTorsoMicrovasculatureVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Torso1ToTorsoMuscle1 = cCardiovascular.CreatePath(Torso1, TorsoMuscle1, pulse::ExpandedCardiovascularPath::Torso1ToTorsoMuscle1);
+ SEFluidCircuitPath& Torso1ToTorsoMuscle1 = cCardiovascular.CreatePath(Torso1, TorsoMuscle1, pulse::ComputationalLifeCardiovascularPath::Torso1ToTorsoMuscle1);
Torso1ToTorsoMuscle1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceTorsoMuscle, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& TorsoMuscle1ToGround = cCardiovascular.CreatePath(TorsoMuscle1, Ground, pulse::ExpandedCardiovascularPath::TorsoMuscle1ToGround);
+ SEFluidCircuitPath& TorsoMuscle1ToGround = cCardiovascular.CreatePath(TorsoMuscle1, Ground, pulse::ComputationalLifeCardiovascularPath::TorsoMuscle1ToGround);
TorsoMuscle1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& TorsoMuscle1ToTorso2 = cCardiovascular.CreatePath(TorsoMuscle1, Torso2, pulse::ExpandedCardiovascularPath::TorsoMuscle1ToTorso2);
+ SEFluidCircuitPath& TorsoMuscle1ToTorso2 = cCardiovascular.CreatePath(TorsoMuscle1, Torso2, pulse::ComputationalLifeCardiovascularPath::TorsoMuscle1ToTorso2);
TorsoMuscle1ToTorso2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceTorsoMuscleVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Torso1ToTorsoSkin1 = cCardiovascular.CreatePath(Torso1, TorsoSkin1, pulse::ExpandedCardiovascularPath::Torso1ToTorsoSkin1);
+ SEFluidCircuitPath& Torso1ToTorsoSkin1 = cCardiovascular.CreatePath(Torso1, TorsoSkin1, pulse::ComputationalLifeCardiovascularPath::Torso1ToTorsoSkin1);
Torso1ToTorsoSkin1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceTorsoSkin, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& TorsoSkin1ToGround = cCardiovascular.CreatePath(TorsoSkin1, Ground, pulse::ExpandedCardiovascularPath::TorsoSkin1ToGround);
+ SEFluidCircuitPath& TorsoSkin1ToGround = cCardiovascular.CreatePath(TorsoSkin1, Ground, pulse::ComputationalLifeCardiovascularPath::TorsoSkin1ToGround);
TorsoSkin1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& TorsoSkin1ToTorso2 = cCardiovascular.CreatePath(TorsoSkin1, Torso2, pulse::ExpandedCardiovascularPath::TorsoSkin1ToTorso2);
+ SEFluidCircuitPath& TorsoSkin1ToTorso2 = cCardiovascular.CreatePath(TorsoSkin1, Torso2, pulse::ComputationalLifeCardiovascularPath::TorsoSkin1ToTorso2);
TorsoSkin1ToTorso2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceTorsoSkinVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& Torso2ToVenaCava2 = cCardiovascular.CreatePath(Torso2, VenaCava2, pulse::ExpandedCardiovascularPath::Torso2ToVenaCava2);
+ SEFluidCircuitPath& Torso2ToVenaCava2 = cCardiovascular.CreatePath(Torso2, VenaCava2, pulse::ComputationalLifeCardiovascularPath::Torso2ToVenaCava2);
- SEFluidCircuitPath& AbdominalCavityToGround = cCardiovascular.CreatePath(AbdominalCavity, Ground, pulse::ExpandedCardiovascularPath::AbdominalCavity1ToGround);
- SEFluidCircuitPath& GroundToAbdominalCavity = cCardiovascular.CreatePath(Ground, AbdominalCavity, pulse::ExpandedCardiovascularPath::GroundToAbdominalCavity1);
+ SEFluidCircuitPath& AbdominalCavityToGround = cCardiovascular.CreatePath(AbdominalCavity, Ground, pulse::CardiovascularPath::AbdominalCavity1ToGround);
+ SEFluidCircuitPath& GroundToAbdominalCavity = cCardiovascular.CreatePath(Ground, AbdominalCavity, pulse::CardiovascularPath::GroundToAbdominalCavity1);
GroundToAbdominalCavity.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
- SEFluidCircuitPath& GroundToAorta4 = cCardiovascular.CreatePath(Ground, Aorta4, pulse::ExpandedCardiovascularPath::GroundToAorta4);
+ SEFluidCircuitPath& GroundToAorta4 = cCardiovascular.CreatePath(Ground, Aorta4, pulse::CardiovascularPath::GroundToAorta4);
GroundToAorta4.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& VenaCava2ToVenaCava1 = cCardiovascular.CreatePath(VenaCava2, VenaCava1, pulse::ExpandedCardiovascularPath::VenaCava2ToVenaCava1);
+ SEFluidCircuitPath& VenaCava2ToVenaCava1 = cCardiovascular.CreatePath(VenaCava2, VenaCava1, pulse::ComputationalLifeCardiovascularPath::VenaCava2ToVenaCava1);
VenaCava2ToVenaCava1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceVenules, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& VenaCava1ToGround = cCardiovascular.CreatePath(VenaCava1, Ground, pulse::ExpandedCardiovascularPath::VenaCava1ToGround);
+ SEFluidCircuitPath& VenaCava1ToGround = cCardiovascular.CreatePath(VenaCava1, Ground, pulse::CardiovascularPath::VenaCava1ToGround);
VenaCava1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- //SEFluidCircuitPath& VenaCava2ToGround = cCardiovascular.CreatePath(VenaCava2, Ground, pulse::ExpandedCardiovascularPath::VenaCava2ToGround);
+ //SEFluidCircuitPath& VenaCava2ToGround = cCardiovascular.CreatePath(VenaCava2, Ground, pulse::CardiovascularPath::VenaCava2ToGround);
//VenaCava2ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& IVToVenaCava1 = cCardiovascular.CreatePath(Ground, VenaCava1, pulse::ExpandedCardiovascularPath::IVToVenaCava1);
+ SEFluidCircuitPath& IVToVenaCava1 = cCardiovascular.CreatePath(Ground, VenaCava1, pulse::CardiovascularPath::IVToVenaCava1);
IVToVenaCava1.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
@@ -1121,246 +1121,246 @@ namespace pulse
/////////////////
// Right Heart //
- SELiquidCompartment& vRightHeart = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightHeart);
+ SELiquidCompartment& vRightHeart = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightHeart);
vRightHeart.MapNode(RightHeart1);
vRightHeart.MapNode(RightHeart2);
vRightHeart.MapNode(RightHeart3);
vRightHeart.MapNode(MainPulmonaryArteries1);
//////////////////////////////
// Right Pulmonary Arteries //
- SELiquidCompartment& vRightPulmonaryArteries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightPulmonaryArteries);
+ SELiquidCompartment& vRightPulmonaryArteries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightPulmonaryArteries);
vRightPulmonaryArteries.MapNode(RightPulmonaryArteries1);
vRightPulmonaryArteries.MapNode(RightIntermediatePulmonaryArteries1);
/////////////////////////////
// Left Pulmonary Arteries //
- SELiquidCompartment& vLeftPulmonaryArteries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftPulmonaryArteries);
+ SELiquidCompartment& vLeftPulmonaryArteries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryArteries);
vLeftPulmonaryArteries.MapNode(LeftPulmonaryArteries1);
vLeftPulmonaryArteries.MapNode(LeftIntermediatePulmonaryArteries1);
////////////////////////
// Pulmonary Arteries //
- SELiquidCompartment& vPulmonaryArteries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::PulmonaryArteries);
+ SELiquidCompartment& vPulmonaryArteries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::PulmonaryArteries);
vPulmonaryArteries.AddChild(vRightPulmonaryArteries);
vPulmonaryArteries.AddChild(vLeftPulmonaryArteries);
/////////////////////////////////
// Right Pulmonary Capillaries //
- SELiquidCompartment& vRightPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightPulmonaryCapillaries);
+ SELiquidCompartment& vRightPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightPulmonaryCapillaries);
vRightPulmonaryCapillaries.MapNode(RightPulmonaryCapillaries1);
////////////////////////////////
// Left Pulmonary Capillaries //
- SELiquidCompartment& vLeftPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftPulmonaryCapillaries);
+ SELiquidCompartment& vLeftPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryCapillaries);
vLeftPulmonaryCapillaries.MapNode(LeftPulmonaryCapillaries1);
///////////////////////////
// Pulmonary Capillaries //
- SELiquidCompartment& vPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::PulmonaryCapillaries);
+ SELiquidCompartment& vPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::PulmonaryCapillaries);
vPulmonaryCapillaries.AddChild(vRightPulmonaryCapillaries);
vPulmonaryCapillaries.AddChild(vLeftPulmonaryCapillaries);
///////////////////////////
// Right Pulmonary Veins //
- SELiquidCompartment& vRightPulmonaryVeins = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightPulmonaryVeins);
+ SELiquidCompartment& vRightPulmonaryVeins = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightPulmonaryVeins);
vRightPulmonaryVeins.MapNode(RightPulmonaryVeins1);
//////////////////////////
// Left Pulmonary Veins //
- SELiquidCompartment& vLeftPulmonaryVeins = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftPulmonaryVeins);
+ SELiquidCompartment& vLeftPulmonaryVeins = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryVeins);
vLeftPulmonaryVeins.MapNode(LeftPulmonaryVeins1);
/////////////////////
// Pulmonary Veins //
- SELiquidCompartment& vPulmonaryVeins = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::PulmonaryVeins);
+ SELiquidCompartment& vPulmonaryVeins = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::PulmonaryVeins);
vPulmonaryVeins.AddChild(vRightPulmonaryVeins);
vPulmonaryVeins.AddChild(vLeftPulmonaryVeins);
////////////////
// Left Heart //
- SELiquidCompartment& vLeftHeart = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftHeart);
+ SELiquidCompartment& vLeftHeart = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftHeart);
vLeftHeart.MapNode(LeftHeart1);
vLeftHeart.MapNode(LeftHeart2);
vLeftHeart.MapNode(LeftHeart3);
///////////
// Aorta //
- SELiquidCompartment& vAorta = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Aorta);
+ SELiquidCompartment& vAorta = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Aorta);
vAorta.MapNode(Aorta1);
vAorta.MapNode(Aorta2);
vAorta.MapNode(Aorta3);
vAorta.MapNode(Aorta4);
- SELiquidCompartment& vArterialBuffer = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::ArterialBuffer);
+ SELiquidCompartment& vArterialBuffer = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::ArterialBuffer);
vArterialBuffer.MapNode(Aorta5);
///////////
// Abdominal Cavity //
- SELiquidCompartment& vAbdominalCavity = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::AbdominalCavity);
+ SELiquidCompartment& vAbdominalCavity = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::AbdominalCavity);
vAbdominalCavity.MapNode(AbdominalCavity);
// Head //
- SELiquidCompartment& vExtracranial = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Extracranial);
+ SELiquidCompartment& vExtracranial = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::Extracranial);
vExtracranial.MapNode(Extracranial1);
vExtracranial.MapNode(Extracranial2);
vExtracranial.MapNode(Extracranial3);
- SELiquidCompartment& vIntracranial = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Intracranial);
+ SELiquidCompartment& vIntracranial = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::Intracranial);
vIntracranial.MapNode(Intracranial1);
vIntracranial.MapNode(Intracranial2);
vIntracranial.MapNode(Intracranial3);
/////////////////////
// Large Intestine //
- SELiquidCompartment& vLargeIntestine = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LargeIntestine);
+ SELiquidCompartment& vLargeIntestine = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LargeIntestine);
vLargeIntestine.MapNode(LargeIntestine1);
///////////
// Liver //
- SELiquidCompartment& vLiver = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Liver);
+ SELiquidCompartment& vLiver = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Liver);
vLiver.MapNode(Liver1);
vLiver.MapNode(Liver2);
vLiver.MapNode(PortalVein1);
//////////////
// Left Arm //
- SELiquidCompartment& vLeftArmArterioles = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmArterioles);
+ SELiquidCompartment& vLeftArmArterioles = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmArterioles);
vLeftArmArterioles.MapNode(LeftArm1);
- SELiquidCompartment& vLeftArmBone = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmBone);
+ SELiquidCompartment& vLeftArmBone = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmBone);
vLeftArmBone.MapNode(LeftArmBone1);
- SELiquidCompartment& vLeftArmFat = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmFat);
+ SELiquidCompartment& vLeftArmFat = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmFat);
vLeftArmFat.MapNode(LeftArmFat1);
- SELiquidCompartment& vLeftArmMicrovasculature = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmMicrovasculature);
+ SELiquidCompartment& vLeftArmMicrovasculature = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmMicrovasculature);
vLeftArmMicrovasculature.MapNode(LeftArmMicrovasculature1);
- SELiquidCompartment& vLeftArmMuscle = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmMuscle);
+ SELiquidCompartment& vLeftArmMuscle = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmMuscle);
vLeftArmMuscle.MapNode(LeftArmMuscle1);
- SELiquidCompartment& vLeftArmSkin = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmSkin);
+ SELiquidCompartment& vLeftArmSkin = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmSkin);
vLeftArmSkin.MapNode(LeftArmSkin1);
- SELiquidCompartment& vLeftArmVenules = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmVenules);
+ SELiquidCompartment& vLeftArmVenules = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmVenules);
vLeftArmVenules.MapNode(LeftArm2);
/////////////////
// Left Kidney //
- SELiquidCompartment& vLeftKidney = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftKidney);
+ SELiquidCompartment& vLeftKidney = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftKidney);
vLeftKidney.MapNode(LeftKidney1);
vLeftKidney.MapNode(LeftKidney2);
vLeftKidney.MapNode(LeftKidney3);
//////////////
// Left Leg //
- SELiquidCompartment& vLeftLegArterioles = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegArterioles);
+ SELiquidCompartment& vLeftLegArterioles = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegArterioles);
vLeftLegArterioles.MapNode(LeftLeg1);
- SELiquidCompartment& vLeftLegBone = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegBone);
+ SELiquidCompartment& vLeftLegBone = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegBone);
vLeftLegBone.MapNode(LeftLegBone1);
- SELiquidCompartment& vLeftLegFat = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegFat);
+ SELiquidCompartment& vLeftLegFat = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegFat);
vLeftLegFat.MapNode(LeftLegFat1);
- SELiquidCompartment& vLeftLegMicrovasculature = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegMicrovasculature);
+ SELiquidCompartment& vLeftLegMicrovasculature = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegMicrovasculature);
vLeftLegMicrovasculature.MapNode(LeftLegMicrovasculature1);
- SELiquidCompartment& vLeftLegMuscle = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegMuscle);
+ SELiquidCompartment& vLeftLegMuscle = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegMuscle);
vLeftLegMuscle.MapNode(LeftLegMuscle1);
- SELiquidCompartment& vLeftLegSkin = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegSkin);
+ SELiquidCompartment& vLeftLegSkin = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegSkin);
vLeftLegSkin.MapNode(LeftLegSkin1);
- SELiquidCompartment& vLeftLegVenules = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegVenules);
+ SELiquidCompartment& vLeftLegVenules = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegVenules);
vLeftLegVenules.MapNode(LeftLeg2);
////////////////
// Myocardium //
- SELiquidCompartment& vMyocardium = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Myocardium);
+ SELiquidCompartment& vMyocardium = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Myocardium);
vMyocardium.MapNode(Myocardium1);
vMyocardium.MapNode(Myocardium2);
vMyocardium.MapNode(Myocardium3);
/////////////////
// Pericardium //
- SELiquidCompartment& vPericardium = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Pericardium);
+ SELiquidCompartment& vPericardium = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Pericardium);
vPericardium.MapNode(Pericardium);
///////////////
// Right Arm //
- SELiquidCompartment& vRightArmArterioles = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmArterioles);
+ SELiquidCompartment& vRightArmArterioles = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmArterioles);
vRightArmArterioles.MapNode(RightArm1);
- SELiquidCompartment& vRightArmBone = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmBone);
+ SELiquidCompartment& vRightArmBone = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmBone);
vRightArmBone.MapNode(RightArmBone1);
- SELiquidCompartment& vRightArmFat = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmFat);
+ SELiquidCompartment& vRightArmFat = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmFat);
vRightArmFat.MapNode(RightArmFat1);
- SELiquidCompartment& vRightArmMicrovasculature = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmMicrovasculature);
+ SELiquidCompartment& vRightArmMicrovasculature = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmMicrovasculature);
vRightArmMicrovasculature.MapNode(RightArmMicrovasculature1);
- SELiquidCompartment& vRightArmMuscle = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmMuscle);
+ SELiquidCompartment& vRightArmMuscle = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmMuscle);
vRightArmMuscle.MapNode(RightArmMuscle1);
- SELiquidCompartment& vRightArmSkin = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmSkin);
+ SELiquidCompartment& vRightArmSkin = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmSkin);
vRightArmSkin.MapNode(RightArmSkin1);
- SELiquidCompartment& vRightArmVenules = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmVenules);
+ SELiquidCompartment& vRightArmVenules = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmVenules);
vRightArmVenules.MapNode(RightArm2);
//////////////////
// Right Kidney //
- SELiquidCompartment& vRightKidney = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightKidney);
+ SELiquidCompartment& vRightKidney = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightKidney);
vRightKidney.MapNode(RightKidney1);
vRightKidney.MapNode(RightKidney2);
vRightKidney.MapNode(RightKidney3);
///////////////
// Right Leg //
- SELiquidCompartment& vRightLegArterioles = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegArterioles);
+ SELiquidCompartment& vRightLegArterioles = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegArterioles);
vRightLegArterioles.MapNode(RightLeg1);
- SELiquidCompartment& vRightLegBone = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegBone);
+ SELiquidCompartment& vRightLegBone = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegBone);
vRightLegBone.MapNode(RightLegBone1);
- SELiquidCompartment& vRightLegFat = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegFat);
+ SELiquidCompartment& vRightLegFat = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegFat);
vRightLegFat.MapNode(RightLegFat1);
- SELiquidCompartment& vRightLegMicrovasculature = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegMicrovasculature);
+ SELiquidCompartment& vRightLegMicrovasculature = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegMicrovasculature);
vRightLegMicrovasculature.MapNode(RightLegMicrovasculature1);
- SELiquidCompartment& vRightLegMuscle = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegMuscle);
+ SELiquidCompartment& vRightLegMuscle = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegMuscle);
vRightLegMuscle.MapNode(RightLegMuscle1);
- SELiquidCompartment& vRightLegSkin = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegSkin);
+ SELiquidCompartment& vRightLegSkin = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegSkin);
vRightLegSkin.MapNode(RightLegSkin1);
- SELiquidCompartment& vRightLegVenules = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegVenules);
+ SELiquidCompartment& vRightLegVenules = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegVenules);
vRightLegVenules.MapNode(RightLeg2);
/////////////////////
// Gut1 //
- SELiquidCompartment& vGut1 = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Gut1);
+ SELiquidCompartment& vGut1 = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::Gut1);
vGut1.MapNode(Gut1);
/////////////////////
// Small Intestine //
- SELiquidCompartment& vSmallIntestine = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::SmallIntestine);
+ SELiquidCompartment& vSmallIntestine = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::SmallIntestine);
vSmallIntestine.MapNode(SmallIntestine1);
////////////////
// Splanchnic //
- SELiquidCompartment& vSplanchnic = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Splanchnic);
+ SELiquidCompartment& vSplanchnic = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Splanchnic);
vSplanchnic.MapNode(Splanchnic1);
////////////
// Spleen //
- SELiquidCompartment& vSpleen = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Spleen);
+ SELiquidCompartment& vSpleen = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Spleen);
vSpleen.MapNode(Spleen1);
///////////
// Torso //
- SELiquidCompartment& vTorsoArterioles = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoArterioles);
+ SELiquidCompartment& vTorsoArterioles = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoArterioles);
vTorsoArterioles.MapNode(Torso1);
- SELiquidCompartment& vTorsoBone = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoBone);
+ SELiquidCompartment& vTorsoBone = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoBone);
vTorsoBone.MapNode(TorsoBone1);
- SELiquidCompartment& vTorsoFat = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoFat);
+ SELiquidCompartment& vTorsoFat = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoFat);
vTorsoFat.MapNode(TorsoFat1);
- SELiquidCompartment& vTorsoMicrovasculature = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoMicrovasculature);
+ SELiquidCompartment& vTorsoMicrovasculature = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoMicrovasculature);
vTorsoMicrovasculature.MapNode(TorsoMicrovasculature1);
- SELiquidCompartment& vTorsoMuscle = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoMuscle);
+ SELiquidCompartment& vTorsoMuscle = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoMuscle);
vTorsoMuscle.MapNode(TorsoMuscle1);
- SELiquidCompartment& vTorsoSkin = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoSkin);
+ SELiquidCompartment& vTorsoSkin = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoSkin);
vTorsoSkin.MapNode(TorsoSkin1);
- SELiquidCompartment& vTorsoVenules = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoVenules);
+ SELiquidCompartment& vTorsoVenules = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoVenules);
vTorsoVenules.MapNode(Torso2);
//////////////
// VenaCava //
- SELiquidCompartment& vVenaCava = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::VenaCava);
+ SELiquidCompartment& vVenaCava = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::VenaCava);
vVenaCava.MapNode(VenaCava1);
- SELiquidCompartment& vVenousBuffer = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::VenousBuffer);
+ SELiquidCompartment& vVenousBuffer = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::VenousBuffer);
vVenousBuffer.MapNode(VenaCava2);
////////////
// Ground //
- SELiquidCompartment& vGround = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Ground);
+ SELiquidCompartment& vGround = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Ground);
vGround.MapNode(Ground);
//////////////////////////
// Set up our hierarchy //
//////////////////////////
- SELiquidCompartment& vHead = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Head);
+ SELiquidCompartment& vHead = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::Head);
vHead.AddChild(vExtracranial);
vHead.AddChild(vIntracranial);
- SELiquidCompartment& vKidneys = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Kidneys);
+ SELiquidCompartment& vKidneys = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Kidneys);
vKidneys.AddChild(vLeftKidney);
vKidneys.AddChild(vRightKidney);
- SELiquidCompartment& vHeart = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Heart);
+ SELiquidCompartment& vHeart = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Heart);
vHeart.AddChild(vMyocardium);
vHeart.AddChild(vLeftHeart);
vHeart.AddChild(vRightHeart);
vHeart.AddChild(vPericardium);
- SELiquidCompartment& vLeftLung = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLung);
+ SELiquidCompartment& vLeftLung = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftLung);
vLeftLung.AddChild(vLeftPulmonaryArteries);
vLeftLung.AddChild(vLeftPulmonaryCapillaries);
vLeftLung.AddChild(vLeftPulmonaryVeins);
- SELiquidCompartment& vRightLung = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightLung);
+ SELiquidCompartment& vRightLung = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightLung);
vRightLung.AddChild(vRightPulmonaryArteries);
vRightLung.AddChild(vRightPulmonaryCapillaries);
vRightLung.AddChild(vRightPulmonaryVeins);
- SELiquidCompartment& vLungs = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Lungs);
+ SELiquidCompartment& vLungs = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Lungs);
vLungs.AddChild(vLeftLung);
vLungs.AddChild(vRightLung);
- SELiquidCompartment& vLeftArm = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArm);
+ SELiquidCompartment& vLeftArm = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftArm);
vLeftArm.AddChild(vLeftArmArterioles);
vLeftArm.AddChild(vLeftArmBone);
vLeftArm.AddChild(vLeftArmFat);
@@ -1368,7 +1368,7 @@ namespace pulse
vLeftArm.AddChild(vLeftArmMuscle);
vLeftArm.AddChild(vLeftArmSkin);
vLeftArm.AddChild(vLeftArmVenules);
- SELiquidCompartment& vLeftLeg = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLeg);
+ SELiquidCompartment& vLeftLeg = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftLeg);
vLeftLeg.AddChild(vLeftLegArterioles);
vLeftLeg.AddChild(vLeftLegBone);
vLeftLeg.AddChild(vLeftLegFat);
@@ -1376,7 +1376,7 @@ namespace pulse
vLeftLeg.AddChild(vLeftLegMuscle);
vLeftLeg.AddChild(vLeftLegSkin);
vLeftLeg.AddChild(vLeftLegVenules);
- SELiquidCompartment& vRightArm = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightArm);
+ SELiquidCompartment& vRightArm = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightArm);
vRightArm.AddChild(vRightArmArterioles);
vRightArm.AddChild(vRightArmBone);
vRightArm.AddChild(vRightArmFat);
@@ -1384,7 +1384,7 @@ namespace pulse
vRightArm.AddChild(vRightArmMuscle);
vRightArm.AddChild(vRightArmSkin);
vRightArm.AddChild(vRightArmVenules);
- SELiquidCompartment& vRightLeg = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightLeg);
+ SELiquidCompartment& vRightLeg = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightLeg);
vRightLeg.AddChild(vRightLegArterioles);
vRightLeg.AddChild(vRightLegBone);
vRightLeg.AddChild(vRightLegFat);
@@ -1392,7 +1392,7 @@ namespace pulse
vRightLeg.AddChild(vRightLegMuscle);
vRightLeg.AddChild(vRightLegSkin);
vRightLeg.AddChild(vRightLegVenules);
- SELiquidCompartment& vTorso = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Torso);
+ SELiquidCompartment& vTorso = m_Compartments->CreateLiquidCompartment(pulse::ComputationalLifeVascularCompartment::Torso);
vTorso.AddChild(vTorsoArterioles);
vTorso.AddChild(vTorsoBone);
vTorso.AddChild(vTorsoFat);
@@ -1400,12 +1400,12 @@ namespace pulse
vTorso.AddChild(vTorsoMuscle);
vTorso.AddChild(vTorsoSkin);
vTorso.AddChild(vTorsoVenules);
- SELiquidCompartment& vGut = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Gut);
+ SELiquidCompartment& vGut = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Gut);
vGut.AddChild(vSplanchnic);
vGut.AddChild(vSmallIntestine);
vGut.AddChild(vLargeIntestine);
vGut.AddChild(vGut1);
- SELiquidCompartment& vAbdomen = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Abdomen);
+ SELiquidCompartment& vAbdomen = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Abdomen);
vAbdomen.AddChild(vSplanchnic);
vAbdomen.AddChild(vSmallIntestine);
vAbdomen.AddChild(vLargeIntestine);
@@ -1414,25 +1414,25 @@ namespace pulse
vAbdomen.AddChild(vSpleen);
vAbdomen.AddChild(vLiver);
vAbdomen.AddChild(vAbdominalCavity);
- SELiquidCompartment& vBone = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Bone);
+ SELiquidCompartment& vBone = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Bone);
vBone.AddChild(vLeftArmBone);
vBone.AddChild(vLeftLegBone);
vBone.AddChild(vRightArmBone);
vBone.AddChild(vRightLegBone);
vBone.AddChild(vTorsoBone);
- SELiquidCompartment& vFat = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Fat);
+ SELiquidCompartment& vFat = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Fat);
vFat.AddChild(vLeftArmFat);
vFat.AddChild(vLeftLegFat);
vFat.AddChild(vRightArmFat);
vFat.AddChild(vRightLegFat);
vFat.AddChild(vTorsoFat);
- SELiquidCompartment& vMuscle = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Muscle);
+ SELiquidCompartment& vMuscle = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Muscle);
vMuscle.AddChild(vLeftArmMuscle);
vMuscle.AddChild(vLeftLegMuscle);
vMuscle.AddChild(vRightArmMuscle);
vMuscle.AddChild(vRightLegMuscle);
vMuscle.AddChild(vTorsoMuscle);
- SELiquidCompartment& vSkin = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::Skin);
+ SELiquidCompartment& vSkin = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Skin);
vSkin.AddChild(vLeftArmSkin);
vSkin.AddChild(vLeftLegSkin);
vSkin.AddChild(vRightArmSkin);
@@ -1445,74 +1445,74 @@ namespace pulse
/////////////////////
// Heart and Lungs //
- SELiquidCompartmentLink& vVenousBufferToVenaCava = m_Compartments->CreateLiquidLink(vVenousBuffer, vVenaCava, pulse::ExpandedVascularLink::VenousBufferToVenaCava);
+ SELiquidCompartmentLink& vVenousBufferToVenaCava = m_Compartments->CreateLiquidLink(vVenousBuffer, vVenaCava, pulse::ComputationalLifeVascularLink::VenousBufferToVenaCava);
vVenousBufferToVenaCava.MapPath(VenaCava2ToVenaCava1);
- SELiquidCompartmentLink& vVenaCavaToRightHeart = m_Compartments->CreateLiquidLink(vVenaCava, vRightHeart, pulse::ExpandedVascularLink::VenaCavaToRightHeart);
+ SELiquidCompartmentLink& vVenaCavaToRightHeart = m_Compartments->CreateLiquidLink(vVenaCava, vRightHeart, pulse::VascularLink::VenaCavaToRightHeart);
vVenaCavaToRightHeart.MapPath(VenaCava1ToRightHeart2);
- SELiquidCompartmentLink& vRightHeartToLeftPulmonaryArteries = m_Compartments->CreateLiquidLink(vRightHeart, vLeftPulmonaryArteries, pulse::ExpandedVascularLink::RightHeartToLeftPulmonaryArteries);
+ SELiquidCompartmentLink& vRightHeartToLeftPulmonaryArteries = m_Compartments->CreateLiquidLink(vRightHeart, vLeftPulmonaryArteries, pulse::VascularLink::RightHeartToLeftPulmonaryArteries);
vRightHeartToLeftPulmonaryArteries.MapPath(MainPulmonaryArteries1ToLeftIntermediatePulmonaryArteries1);
- SELiquidCompartmentLink& vLeftPulmonaryArteriesToCapillaries = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryCapillaries, pulse::ExpandedVascularLink::LeftPulmonaryArteriesToCapillaries);
+ SELiquidCompartmentLink& vLeftPulmonaryArteriesToCapillaries = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryCapillaries, pulse::VascularLink::LeftPulmonaryArteriesToCapillaries);
vLeftPulmonaryArteriesToCapillaries.MapPath(LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1);
- SELiquidCompartmentLink& vLeftPulmonaryArteriesToVeins = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedVascularLink::LeftPulmonaryArteriesToVeins);
+ SELiquidCompartmentLink& vLeftPulmonaryArteriesToVeins = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::VascularLink::LeftPulmonaryArteriesToVeins);
vLeftPulmonaryArteriesToVeins.MapPath(LeftPulmonaryArteries1ToLeftPulmonaryVeins1);
- SELiquidCompartmentLink& vLeftPulmonaryCapillariesToVeins = m_Compartments->CreateLiquidLink(vLeftPulmonaryCapillaries, vLeftPulmonaryVeins, pulse::ExpandedVascularLink::LeftPulmonaryCapillariesToVeins);
+ SELiquidCompartmentLink& vLeftPulmonaryCapillariesToVeins = m_Compartments->CreateLiquidLink(vLeftPulmonaryCapillaries, vLeftPulmonaryVeins, pulse::VascularLink::LeftPulmonaryCapillariesToVeins);
vLeftPulmonaryCapillariesToVeins.MapPath(LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1);
- SELiquidCompartmentLink& vLeftPulmonaryVeinsToLeftHeart = m_Compartments->CreateLiquidLink(vLeftPulmonaryVeins, vLeftHeart, pulse::ExpandedVascularLink::LeftPulmonaryVeinsToLeftHeart);
+ SELiquidCompartmentLink& vLeftPulmonaryVeinsToLeftHeart = m_Compartments->CreateLiquidLink(vLeftPulmonaryVeins, vLeftHeart, pulse::VascularLink::LeftPulmonaryVeinsToLeftHeart);
vLeftPulmonaryVeinsToLeftHeart.MapPath(LeftIntermediatePulmonaryVeins1ToLeftHeart2);
- SELiquidCompartmentLink& vRightHeartToRightPulmonaryArteries = m_Compartments->CreateLiquidLink(vRightHeart, vRightPulmonaryArteries, pulse::ExpandedVascularLink::RightHeartToRightPulmonaryArteries);
+ SELiquidCompartmentLink& vRightHeartToRightPulmonaryArteries = m_Compartments->CreateLiquidLink(vRightHeart, vRightPulmonaryArteries, pulse::VascularLink::RightHeartToRightPulmonaryArteries);
vRightHeartToRightPulmonaryArteries.MapPath(MainPulmonaryArteries1ToRightIntermediatePulmonaryArteries1);
- SELiquidCompartmentLink& vRightPulmonaryArteriesToCapillaries = m_Compartments->CreateLiquidLink(vRightPulmonaryArteries, vRightPulmonaryCapillaries, pulse::ExpandedVascularLink::RightPulmonaryArteriesToCapillaries);
+ SELiquidCompartmentLink& vRightPulmonaryArteriesToCapillaries = m_Compartments->CreateLiquidLink(vRightPulmonaryArteries, vRightPulmonaryCapillaries, pulse::VascularLink::RightPulmonaryArteriesToCapillaries);
vRightPulmonaryArteriesToCapillaries.MapPath(RightPulmonaryArteries1ToRightPulmonaryCapillaries1);
- SELiquidCompartmentLink& vRightPulmonaryArteriesToVeins = m_Compartments->CreateLiquidLink(vRightPulmonaryArteries, vRightPulmonaryVeins, pulse::ExpandedVascularLink::RightPulmonaryArteriesToVeins);
+ SELiquidCompartmentLink& vRightPulmonaryArteriesToVeins = m_Compartments->CreateLiquidLink(vRightPulmonaryArteries, vRightPulmonaryVeins, pulse::VascularLink::RightPulmonaryArteriesToVeins);
vRightPulmonaryArteriesToVeins.MapPath(RightPulmonaryArteries1ToRightPulmonaryVeins1);
- SELiquidCompartmentLink& vRightPulmonaryCapillariesToVeins = m_Compartments->CreateLiquidLink(vRightPulmonaryCapillaries, vRightPulmonaryVeins, pulse::ExpandedVascularLink::RightPulmonaryCapillariesToVeins);
+ SELiquidCompartmentLink& vRightPulmonaryCapillariesToVeins = m_Compartments->CreateLiquidLink(vRightPulmonaryCapillaries, vRightPulmonaryVeins, pulse::VascularLink::RightPulmonaryCapillariesToVeins);
vRightPulmonaryCapillariesToVeins.MapPath(RightPulmonaryCapillaries1ToRightPulmonaryVeins1);
- SELiquidCompartmentLink& vRightPulmonaryVeinsToLeftHeart = m_Compartments->CreateLiquidLink(vRightPulmonaryVeins, vLeftHeart, pulse::ExpandedVascularLink::RightPulmonaryVeinsToLeftHeart);
+ SELiquidCompartmentLink& vRightPulmonaryVeinsToLeftHeart = m_Compartments->CreateLiquidLink(vRightPulmonaryVeins, vLeftHeart, pulse::VascularLink::RightPulmonaryVeinsToLeftHeart);
vRightPulmonaryVeinsToLeftHeart.MapPath(RightIntermediatePulmonaryVeins1ToLeftHeart2);
- SELiquidCompartmentLink& vLeftHeartToAorta = m_Compartments->CreateLiquidLink(vLeftHeart, vAorta, pulse::ExpandedVascularLink::LeftHeartToAorta);
+ SELiquidCompartmentLink& vLeftHeartToAorta = m_Compartments->CreateLiquidLink(vLeftHeart, vAorta, pulse::VascularLink::LeftHeartToAorta);
vLeftHeartToAorta.MapPath(LeftHeart1ToAorta2);
- SELiquidCompartmentLink& vAortaToArterialBuffer = m_Compartments->CreateLiquidLink(vAorta, vArterialBuffer, pulse::ExpandedVascularLink::AortaToArterialBuffer);
+ SELiquidCompartmentLink& vAortaToArterialBuffer = m_Compartments->CreateLiquidLink(vAorta, vArterialBuffer, pulse::ComputationalLifeVascularLink::AortaToArterialBuffer);
vAortaToArterialBuffer.MapPath(Aorta1ToAorta5);
///////////
// Head //
- SELiquidCompartmentLink& vAortaToExtracranial = m_Compartments->CreateLiquidLink(vArterialBuffer, vExtracranial, pulse::ExpandedVascularLink::AortaToExtracranial);
+ SELiquidCompartmentLink& vAortaToExtracranial = m_Compartments->CreateLiquidLink(vArterialBuffer, vExtracranial, pulse::ComputationalLifeVascularLink::AortaToExtracranial);
vAortaToExtracranial.MapPath(Aorta5ToExtracranial1);
- SELiquidCompartmentLink& vExtracranialToVenaCava = m_Compartments->CreateLiquidLink(vExtracranial, vVenousBuffer, pulse::ExpandedVascularLink::ExtracranialToVenaCava);
+ SELiquidCompartmentLink& vExtracranialToVenaCava = m_Compartments->CreateLiquidLink(vExtracranial, vVenousBuffer, pulse::ComputationalLifeVascularLink::ExtracranialToVenaCava);
vExtracranialToVenaCava.MapPath(Extracranial3ToVenaCava2);
- SELiquidCompartmentLink& vAortaToIntracranial = m_Compartments->CreateLiquidLink(vArterialBuffer, vIntracranial, pulse::ExpandedVascularLink::AortaToIntracranial);
+ SELiquidCompartmentLink& vAortaToIntracranial = m_Compartments->CreateLiquidLink(vArterialBuffer, vIntracranial, pulse::ComputationalLifeVascularLink::AortaToIntracranial);
vAortaToIntracranial.MapPath(Aorta5ToIntracranial1);
- SELiquidCompartmentLink& vIntracranialToVenaCava = m_Compartments->CreateLiquidLink(vIntracranial, vVenousBuffer, pulse::ExpandedVascularLink::IntracranialToVenaCava);
+ SELiquidCompartmentLink& vIntracranialToVenaCava = m_Compartments->CreateLiquidLink(vIntracranial, vVenousBuffer, pulse::ComputationalLifeVascularLink::IntracranialToVenaCava);
vIntracranialToVenaCava.MapPath(Intracranial3ToVenaCava2);
/////////////////////
// Gut //
- SELiquidCompartmentLink& vAortaToGut = m_Compartments->CreateLiquidLink(vArterialBuffer, vGut1, pulse::ExpandedVascularLink::AortaToGut);
+ SELiquidCompartmentLink& vAortaToGut = m_Compartments->CreateLiquidLink(vArterialBuffer, vGut1, pulse::ComputationalLifeVascularLink::AortaToGut);
vAortaToGut.MapPath(Aorta5ToGut1);
/////////////////////
// Large Intestine //
- SELiquidCompartmentLink& vAortaToLargeIntestine = m_Compartments->CreateLiquidLink(vGut1, vLargeIntestine, pulse::ExpandedVascularLink::AortaToLargeIntestine);
+ SELiquidCompartmentLink& vAortaToLargeIntestine = m_Compartments->CreateLiquidLink(vGut1, vLargeIntestine, pulse::VascularLink::AortaToLargeIntestine);
vAortaToLargeIntestine.MapPath(Gut1ToLargeIntestine1);
- SELiquidCompartmentLink& vLargeIntestineToLiver = m_Compartments->CreateLiquidLink(vLargeIntestine, vLiver, pulse::ExpandedVascularLink::LargeIntestineToLiver);
+ SELiquidCompartmentLink& vLargeIntestineToLiver = m_Compartments->CreateLiquidLink(vLargeIntestine, vLiver, pulse::VascularLink::LargeIntestineToLiver);
vLargeIntestineToLiver.MapPath(LargeIntestine1ToPortalVein1);
///////////
// Liver //
- SELiquidCompartmentLink& vAortaToLiver = m_Compartments->CreateLiquidLink(vGut1, vLiver, pulse::ExpandedVascularLink::AortaToLiver);
+ SELiquidCompartmentLink& vAortaToLiver = m_Compartments->CreateLiquidLink(vGut1, vLiver, pulse::VascularLink::AortaToLiver);
vAortaToLiver.MapPath(Gut1ToLiver1);
- SELiquidCompartmentLink& vLiverToVenaCava = m_Compartments->CreateLiquidLink(vLiver, vVenousBuffer, pulse::ExpandedVascularLink::LiverToVenaCava);
+ SELiquidCompartmentLink& vLiverToVenaCava = m_Compartments->CreateLiquidLink(vLiver, vVenousBuffer, pulse::VascularLink::LiverToVenaCava);
vLiverToVenaCava.MapPath(Liver2ToVenaCava2);
//////////////
// Left Arm //
- SELiquidCompartmentLink& vAortaToLeftArmArterioles = m_Compartments->CreateLiquidLink(vArterialBuffer, vLeftArmArterioles, pulse::ExpandedVascularLink::AortaToLeftArmArterioles);
- SELiquidCompartmentLink& vLeftArmArteriolesToLeftArmBone = m_Compartments->CreateLiquidLink(vLeftArmArterioles, vLeftArmBone, pulse::ExpandedVascularLink::LeftArmArteriolesToLeftArmBone);
- SELiquidCompartmentLink& vLeftArmArteriolesToLeftArmFat = m_Compartments->CreateLiquidLink(vLeftArmArterioles, vLeftArmFat, pulse::ExpandedVascularLink::LeftArmArteriolesToLeftArmFat);
- SELiquidCompartmentLink& vLeftArmArteriolesToLeftArmMicrovasculature = m_Compartments->CreateLiquidLink(vLeftArmArterioles, vLeftArmMicrovasculature, pulse::ExpandedVascularLink::LeftArmArteriolesToLeftArmMicrovasculature);
- SELiquidCompartmentLink& vLeftArmArteriolesToLeftArmMuscle = m_Compartments->CreateLiquidLink(vLeftArmArterioles, vLeftArmMuscle, pulse::ExpandedVascularLink::LeftArmArteriolesToLeftArmMuscle);
- SELiquidCompartmentLink& vLeftArmArteriolesToLeftArmSkin = m_Compartments->CreateLiquidLink(vLeftArmArterioles, vLeftArmSkin, pulse::ExpandedVascularLink::LeftArmArteriolesToLeftArmSkin);
- SELiquidCompartmentLink& vLeftArmBoneToLeftArmVenules = m_Compartments->CreateLiquidLink(vLeftArmBone, vLeftArmVenules, pulse::ExpandedVascularLink::LeftArmBoneToLeftArmVenules);
- SELiquidCompartmentLink& vLeftArmFatToLeftArmVenules = m_Compartments->CreateLiquidLink(vLeftArmFat, vLeftArmVenules, pulse::ExpandedVascularLink::LeftArmFatToLeftArmVenules);
- SELiquidCompartmentLink& vLeftArmMicrovasculatureToLeftArmVenules = m_Compartments->CreateLiquidLink(vLeftArmMicrovasculature, vLeftArmVenules, pulse::ExpandedVascularLink::LeftArmMicrovasculatureToLeftArmVenules);
- SELiquidCompartmentLink& vLeftArmMuscleToLeftArmVenules = m_Compartments->CreateLiquidLink(vLeftArmMuscle, vLeftArmVenules, pulse::ExpandedVascularLink::LeftArmMuscleToLeftArmVenules);
- SELiquidCompartmentLink& vLeftArmSkinToLeftArmVenules = m_Compartments->CreateLiquidLink(vLeftArmSkin, vLeftArmVenules, pulse::ExpandedVascularLink::LeftArmSkinToLeftArmVenules);
- SELiquidCompartmentLink& vLeftArmVenulesToVenaCava = m_Compartments->CreateLiquidLink(vLeftArmVenules, vVenousBuffer, pulse::ExpandedVascularLink::LeftArmVenulesToVenaCava);
+ SELiquidCompartmentLink& vAortaToLeftArmArterioles = m_Compartments->CreateLiquidLink(vArterialBuffer, vLeftArmArterioles, pulse::ComputationalLifeVascularLink::AortaToLeftArmArterioles);
+ SELiquidCompartmentLink& vLeftArmArteriolesToLeftArmBone = m_Compartments->CreateLiquidLink(vLeftArmArterioles, vLeftArmBone, pulse::ComputationalLifeVascularLink::LeftArmArteriolesToLeftArmBone);
+ SELiquidCompartmentLink& vLeftArmArteriolesToLeftArmFat = m_Compartments->CreateLiquidLink(vLeftArmArterioles, vLeftArmFat, pulse::ComputationalLifeVascularLink::LeftArmArteriolesToLeftArmFat);
+ SELiquidCompartmentLink& vLeftArmArteriolesToLeftArmMicrovasculature = m_Compartments->CreateLiquidLink(vLeftArmArterioles, vLeftArmMicrovasculature, pulse::ComputationalLifeVascularLink::LeftArmArteriolesToLeftArmMicrovasculature);
+ SELiquidCompartmentLink& vLeftArmArteriolesToLeftArmMuscle = m_Compartments->CreateLiquidLink(vLeftArmArterioles, vLeftArmMuscle, pulse::ComputationalLifeVascularLink::LeftArmArteriolesToLeftArmMuscle);
+ SELiquidCompartmentLink& vLeftArmArteriolesToLeftArmSkin = m_Compartments->CreateLiquidLink(vLeftArmArterioles, vLeftArmSkin, pulse::ComputationalLifeVascularLink::LeftArmArteriolesToLeftArmSkin);
+ SELiquidCompartmentLink& vLeftArmBoneToLeftArmVenules = m_Compartments->CreateLiquidLink(vLeftArmBone, vLeftArmVenules, pulse::ComputationalLifeVascularLink::LeftArmBoneToLeftArmVenules);
+ SELiquidCompartmentLink& vLeftArmFatToLeftArmVenules = m_Compartments->CreateLiquidLink(vLeftArmFat, vLeftArmVenules, pulse::ComputationalLifeVascularLink::LeftArmFatToLeftArmVenules);
+ SELiquidCompartmentLink& vLeftArmMicrovasculatureToLeftArmVenules = m_Compartments->CreateLiquidLink(vLeftArmMicrovasculature, vLeftArmVenules, pulse::ComputationalLifeVascularLink::LeftArmMicrovasculatureToLeftArmVenules);
+ SELiquidCompartmentLink& vLeftArmMuscleToLeftArmVenules = m_Compartments->CreateLiquidLink(vLeftArmMuscle, vLeftArmVenules, pulse::ComputationalLifeVascularLink::LeftArmMuscleToLeftArmVenules);
+ SELiquidCompartmentLink& vLeftArmSkinToLeftArmVenules = m_Compartments->CreateLiquidLink(vLeftArmSkin, vLeftArmVenules, pulse::ComputationalLifeVascularLink::LeftArmSkinToLeftArmVenules);
+ SELiquidCompartmentLink& vLeftArmVenulesToVenaCava = m_Compartments->CreateLiquidLink(vLeftArmVenules, vVenousBuffer, pulse::ComputationalLifeVascularLink::LeftArmVenulesToVenaCava);
vAortaToLeftArmArterioles.MapPath(Aorta5ToLeftArm1);
vLeftArmArteriolesToLeftArmBone.MapPath(LeftArm1ToLeftArmBone1);
vLeftArmArteriolesToLeftArmFat.MapPath(LeftArm1ToLeftArmFat1);
@@ -1528,24 +1528,24 @@ namespace pulse
/////////////////
// Left Kidney //
- SELiquidCompartmentLink& vAortaToLeftKidney = m_Compartments->CreateLiquidLink(vArterialBuffer, vLeftKidney, pulse::ExpandedVascularLink::AortaToLeftKidney);
+ SELiquidCompartmentLink& vAortaToLeftKidney = m_Compartments->CreateLiquidLink(vArterialBuffer, vLeftKidney, pulse::VascularLink::AortaToLeftKidney);
vAortaToLeftKidney.MapPath(Aorta5ToLeftKidney1);
- SELiquidCompartmentLink& vLeftKidneyToVenaCava = m_Compartments->CreateLiquidLink(vLeftKidney, vVenousBuffer, pulse::ExpandedVascularLink::LeftKidneyToVenaCava);
+ SELiquidCompartmentLink& vLeftKidneyToVenaCava = m_Compartments->CreateLiquidLink(vLeftKidney, vVenousBuffer, pulse::VascularLink::LeftKidneyToVenaCava);
vLeftKidneyToVenaCava.MapPath(LeftKidney3ToVenaCava2);
//////////////
// Left Leg //
- SELiquidCompartmentLink& vAortaToLeftLegArterioles = m_Compartments->CreateLiquidLink(vArterialBuffer, vLeftLegArterioles, pulse::ExpandedVascularLink::AortaToLeftLegArterioles);
- SELiquidCompartmentLink& vLeftLegArteriolesToLeftLegBone = m_Compartments->CreateLiquidLink(vLeftLegArterioles, vLeftLegBone, pulse::ExpandedVascularLink::LeftLegArteriolesToLeftLegBone);
- SELiquidCompartmentLink& vLeftLegArteriolesToLeftLegFat = m_Compartments->CreateLiquidLink(vLeftLegArterioles, vLeftLegFat, pulse::ExpandedVascularLink::LeftLegArteriolesToLeftLegFat);
- SELiquidCompartmentLink& vLeftLegArteriolesToLeftLegMicrovasculature = m_Compartments->CreateLiquidLink(vLeftLegArterioles, vLeftLegMicrovasculature, pulse::ExpandedVascularLink::LeftLegArteriolesToLeftLegMicrovasculature);
- SELiquidCompartmentLink& vLeftLegArteriolesToLeftLegMuscle = m_Compartments->CreateLiquidLink(vLeftLegArterioles, vLeftLegMuscle, pulse::ExpandedVascularLink::LeftLegArteriolesToLeftLegMuscle);
- SELiquidCompartmentLink& vLeftLegArteriolesToLeftLegSkin = m_Compartments->CreateLiquidLink(vLeftLegArterioles, vLeftLegSkin, pulse::ExpandedVascularLink::LeftLegArteriolesToLeftLegSkin);
- SELiquidCompartmentLink& vLeftLegBoneToLeftLegVenules = m_Compartments->CreateLiquidLink(vLeftLegBone, vLeftLegVenules, pulse::ExpandedVascularLink::LeftLegBoneToLeftLegVenules);
- SELiquidCompartmentLink& vLeftLegFatToLeftLegVenules = m_Compartments->CreateLiquidLink(vLeftLegFat, vLeftLegVenules, pulse::ExpandedVascularLink::LeftLegFatToLeftLegVenules);
- SELiquidCompartmentLink& vLeftLegMicrovasculatureToLeftLegVenules = m_Compartments->CreateLiquidLink(vLeftLegMicrovasculature, vLeftLegVenules, pulse::ExpandedVascularLink::LeftLegMicrovasculatureToLeftLegVenules);
- SELiquidCompartmentLink& vLeftLegMuscleToLeftLegVenules = m_Compartments->CreateLiquidLink(vLeftLegMuscle, vLeftLegVenules, pulse::ExpandedVascularLink::LeftLegMuscleToLeftLegVenules);
- SELiquidCompartmentLink& vLeftLegSkinToLeftLegVenules = m_Compartments->CreateLiquidLink(vLeftLegSkin, vLeftLegVenules, pulse::ExpandedVascularLink::LeftLegSkinToLeftLegVenules);
- SELiquidCompartmentLink& vLeftLegVenulesToVenaCava = m_Compartments->CreateLiquidLink(vLeftLegVenules, vVenousBuffer, pulse::ExpandedVascularLink::LeftLegVenulesToVenaCava);
+ SELiquidCompartmentLink& vAortaToLeftLegArterioles = m_Compartments->CreateLiquidLink(vArterialBuffer, vLeftLegArterioles, pulse::ComputationalLifeVascularLink::AortaToLeftLegArterioles);
+ SELiquidCompartmentLink& vLeftLegArteriolesToLeftLegBone = m_Compartments->CreateLiquidLink(vLeftLegArterioles, vLeftLegBone, pulse::ComputationalLifeVascularLink::LeftLegArteriolesToLeftLegBone);
+ SELiquidCompartmentLink& vLeftLegArteriolesToLeftLegFat = m_Compartments->CreateLiquidLink(vLeftLegArterioles, vLeftLegFat, pulse::ComputationalLifeVascularLink::LeftLegArteriolesToLeftLegFat);
+ SELiquidCompartmentLink& vLeftLegArteriolesToLeftLegMicrovasculature = m_Compartments->CreateLiquidLink(vLeftLegArterioles, vLeftLegMicrovasculature, pulse::ComputationalLifeVascularLink::LeftLegArteriolesToLeftLegMicrovasculature);
+ SELiquidCompartmentLink& vLeftLegArteriolesToLeftLegMuscle = m_Compartments->CreateLiquidLink(vLeftLegArterioles, vLeftLegMuscle, pulse::ComputationalLifeVascularLink::LeftLegArteriolesToLeftLegMuscle);
+ SELiquidCompartmentLink& vLeftLegArteriolesToLeftLegSkin = m_Compartments->CreateLiquidLink(vLeftLegArterioles, vLeftLegSkin, pulse::ComputationalLifeVascularLink::LeftLegArteriolesToLeftLegSkin);
+ SELiquidCompartmentLink& vLeftLegBoneToLeftLegVenules = m_Compartments->CreateLiquidLink(vLeftLegBone, vLeftLegVenules, pulse::ComputationalLifeVascularLink::LeftLegBoneToLeftLegVenules);
+ SELiquidCompartmentLink& vLeftLegFatToLeftLegVenules = m_Compartments->CreateLiquidLink(vLeftLegFat, vLeftLegVenules, pulse::ComputationalLifeVascularLink::LeftLegFatToLeftLegVenules);
+ SELiquidCompartmentLink& vLeftLegMicrovasculatureToLeftLegVenules = m_Compartments->CreateLiquidLink(vLeftLegMicrovasculature, vLeftLegVenules, pulse::ComputationalLifeVascularLink::LeftLegMicrovasculatureToLeftLegVenules);
+ SELiquidCompartmentLink& vLeftLegMuscleToLeftLegVenules = m_Compartments->CreateLiquidLink(vLeftLegMuscle, vLeftLegVenules, pulse::ComputationalLifeVascularLink::LeftLegMuscleToLeftLegVenules);
+ SELiquidCompartmentLink& vLeftLegSkinToLeftLegVenules = m_Compartments->CreateLiquidLink(vLeftLegSkin, vLeftLegVenules, pulse::ComputationalLifeVascularLink::LeftLegSkinToLeftLegVenules);
+ SELiquidCompartmentLink& vLeftLegVenulesToVenaCava = m_Compartments->CreateLiquidLink(vLeftLegVenules, vVenousBuffer, pulse::ComputationalLifeVascularLink::LeftLegVenulesToVenaCava);
vAortaToLeftLegArterioles.MapPath(Aorta5ToLeftLeg1);
vLeftLegArteriolesToLeftLegBone.MapPath(LeftLeg1ToLeftLegBone1);
vLeftLegArteriolesToLeftLegFat.MapPath(LeftLeg1ToLeftLegFat1);
@@ -1561,24 +1561,24 @@ namespace pulse
////////////////
// Myocardium //
- SELiquidCompartmentLink& vAortaToMyocardium = m_Compartments->CreateLiquidLink(vArterialBuffer, vMyocardium, pulse::ExpandedVascularLink::AortaToMyocardium);
+ SELiquidCompartmentLink& vAortaToMyocardium = m_Compartments->CreateLiquidLink(vArterialBuffer, vMyocardium, pulse::VascularLink::AortaToMyocardium);
vAortaToMyocardium.MapPath(Aorta5ToMyocardium1);
- SELiquidCompartmentLink& vMyocardiumToVenaCava = m_Compartments->CreateLiquidLink(vMyocardium, vVenousBuffer, pulse::ExpandedVascularLink::MyocardiumToVenaCava);
+ SELiquidCompartmentLink& vMyocardiumToVenaCava = m_Compartments->CreateLiquidLink(vMyocardium, vVenousBuffer, pulse::VascularLink::MyocardiumToVenaCava);
vMyocardiumToVenaCava.MapPath(Myocardium3ToVenaCava2);
///////////////
// Right Arm //
- SELiquidCompartmentLink& vAortaToRightArmArterioles = m_Compartments->CreateLiquidLink(vArterialBuffer, vRightArmArterioles, pulse::ExpandedVascularLink::AortaToRightArmArterioles);
- SELiquidCompartmentLink& vRightArmArteriolesToRightArmBone = m_Compartments->CreateLiquidLink(vRightArmArterioles, vRightArmBone, pulse::ExpandedVascularLink::RightArmArteriolesToRightArmBone);
- SELiquidCompartmentLink& vRightArmArteriolesToRightArmFat = m_Compartments->CreateLiquidLink(vRightArmArterioles, vRightArmFat, pulse::ExpandedVascularLink::RightArmArteriolesToRightArmFat);
- SELiquidCompartmentLink& vRightArmArteriolesToRightArmMicrovasculature = m_Compartments->CreateLiquidLink(vRightArmArterioles, vRightArmMicrovasculature, pulse::ExpandedVascularLink::RightArmArteriolesToRightArmMicrovasculature);
- SELiquidCompartmentLink& vRightArmArteriolesToRightArmMuscle = m_Compartments->CreateLiquidLink(vRightArmArterioles, vRightArmMuscle, pulse::ExpandedVascularLink::RightArmArteriolesToRightArmMuscle);
- SELiquidCompartmentLink& vRightArmArteriolesToRightArmSkin = m_Compartments->CreateLiquidLink(vRightArmArterioles, vRightArmSkin, pulse::ExpandedVascularLink::RightArmArteriolesToRightArmSkin);
- SELiquidCompartmentLink& vRightArmBoneToRightArmVenules = m_Compartments->CreateLiquidLink(vRightArmBone, vRightArmVenules, pulse::ExpandedVascularLink::RightArmBoneToRightArmVenules);
- SELiquidCompartmentLink& vRightArmFatToRightArmVenules = m_Compartments->CreateLiquidLink(vRightArmFat, vRightArmVenules, pulse::ExpandedVascularLink::RightArmFatToRightArmVenules);
- SELiquidCompartmentLink& vRightArmMicrovasculatureToRightArmVenules = m_Compartments->CreateLiquidLink(vRightArmMicrovasculature, vRightArmVenules, pulse::ExpandedVascularLink::RightArmMicrovasculatureToRightArmVenules);
- SELiquidCompartmentLink& vRightArmMuscleToRightArmVenules = m_Compartments->CreateLiquidLink(vRightArmMuscle, vRightArmVenules, pulse::ExpandedVascularLink::RightArmMuscleToRightArmVenules);
- SELiquidCompartmentLink& vRightArmSkinToRightArmVenules = m_Compartments->CreateLiquidLink(vRightArmSkin, vRightArmVenules, pulse::ExpandedVascularLink::RightArmSkinToRightArmVenules);
- SELiquidCompartmentLink& vRightArmVenulesToVenaCava = m_Compartments->CreateLiquidLink(vRightArmVenules, vVenousBuffer, pulse::ExpandedVascularLink::RightArmVenulesToVenaCava);
+ SELiquidCompartmentLink& vAortaToRightArmArterioles = m_Compartments->CreateLiquidLink(vArterialBuffer, vRightArmArterioles, pulse::ComputationalLifeVascularLink::AortaToRightArmArterioles);
+ SELiquidCompartmentLink& vRightArmArteriolesToRightArmBone = m_Compartments->CreateLiquidLink(vRightArmArterioles, vRightArmBone, pulse::ComputationalLifeVascularLink::RightArmArteriolesToRightArmBone);
+ SELiquidCompartmentLink& vRightArmArteriolesToRightArmFat = m_Compartments->CreateLiquidLink(vRightArmArterioles, vRightArmFat, pulse::ComputationalLifeVascularLink::RightArmArteriolesToRightArmFat);
+ SELiquidCompartmentLink& vRightArmArteriolesToRightArmMicrovasculature = m_Compartments->CreateLiquidLink(vRightArmArterioles, vRightArmMicrovasculature, pulse::ComputationalLifeVascularLink::RightArmArteriolesToRightArmMicrovasculature);
+ SELiquidCompartmentLink& vRightArmArteriolesToRightArmMuscle = m_Compartments->CreateLiquidLink(vRightArmArterioles, vRightArmMuscle, pulse::ComputationalLifeVascularLink::RightArmArteriolesToRightArmMuscle);
+ SELiquidCompartmentLink& vRightArmArteriolesToRightArmSkin = m_Compartments->CreateLiquidLink(vRightArmArterioles, vRightArmSkin, pulse::ComputationalLifeVascularLink::RightArmArteriolesToRightArmSkin);
+ SELiquidCompartmentLink& vRightArmBoneToRightArmVenules = m_Compartments->CreateLiquidLink(vRightArmBone, vRightArmVenules, pulse::ComputationalLifeVascularLink::RightArmBoneToRightArmVenules);
+ SELiquidCompartmentLink& vRightArmFatToRightArmVenules = m_Compartments->CreateLiquidLink(vRightArmFat, vRightArmVenules, pulse::ComputationalLifeVascularLink::RightArmFatToRightArmVenules);
+ SELiquidCompartmentLink& vRightArmMicrovasculatureToRightArmVenules = m_Compartments->CreateLiquidLink(vRightArmMicrovasculature, vRightArmVenules, pulse::ComputationalLifeVascularLink::RightArmMicrovasculatureToRightArmVenules);
+ SELiquidCompartmentLink& vRightArmMuscleToRightArmVenules = m_Compartments->CreateLiquidLink(vRightArmMuscle, vRightArmVenules, pulse::ComputationalLifeVascularLink::RightArmMuscleToRightArmVenules);
+ SELiquidCompartmentLink& vRightArmSkinToRightArmVenules = m_Compartments->CreateLiquidLink(vRightArmSkin, vRightArmVenules, pulse::ComputationalLifeVascularLink::RightArmSkinToRightArmVenules);
+ SELiquidCompartmentLink& vRightArmVenulesToVenaCava = m_Compartments->CreateLiquidLink(vRightArmVenules, vVenousBuffer, pulse::ComputationalLifeVascularLink::RightArmVenulesToVenaCava);
vAortaToRightArmArterioles.MapPath(Aorta5ToRightArm1);
vRightArmArteriolesToRightArmBone.MapPath(RightArm1ToRightArmBone1);
vRightArmArteriolesToRightArmFat.MapPath(RightArm1ToRightArmFat1);
@@ -1594,24 +1594,24 @@ namespace pulse
//////////////////
// Right Kidney //
- SELiquidCompartmentLink& vAortaToRightKidney = m_Compartments->CreateLiquidLink(vArterialBuffer, vRightKidney, pulse::ExpandedVascularLink::AortaToRightKidney);
+ SELiquidCompartmentLink& vAortaToRightKidney = m_Compartments->CreateLiquidLink(vArterialBuffer, vRightKidney, pulse::VascularLink::AortaToRightKidney);
vAortaToRightKidney.MapPath(Aorta5ToRightKidney1);
- SELiquidCompartmentLink& vRightKidneyToVenaCava = m_Compartments->CreateLiquidLink(vRightKidney, vVenousBuffer, pulse::ExpandedVascularLink::RightKidneyToVenaCava);
+ SELiquidCompartmentLink& vRightKidneyToVenaCava = m_Compartments->CreateLiquidLink(vRightKidney, vVenousBuffer, pulse::VascularLink::RightKidneyToVenaCava);
vRightKidneyToVenaCava.MapPath(RightKidney3ToVenaCava2);
///////////////
// Right Leg //
- SELiquidCompartmentLink& vAortaToRightLegArterioles = m_Compartments->CreateLiquidLink(vArterialBuffer, vRightLegArterioles, pulse::ExpandedVascularLink::AortaToRightLegArterioles);
- SELiquidCompartmentLink& vRightLegArteriolesToRightLegBone = m_Compartments->CreateLiquidLink(vRightLegArterioles, vRightLegBone, pulse::ExpandedVascularLink::RightLegArteriolesToRightLegBone);
- SELiquidCompartmentLink& vRightLegArteriolesToRightLegFat = m_Compartments->CreateLiquidLink(vRightLegArterioles, vRightLegFat, pulse::ExpandedVascularLink::RightLegArteriolesToRightLegFat);
- SELiquidCompartmentLink& vRightLegArteriolesToRightLegMicrovasculature = m_Compartments->CreateLiquidLink(vRightLegArterioles, vRightLegMicrovasculature, pulse::ExpandedVascularLink::RightLegArteriolesToRightLegMicrovasculature);
- SELiquidCompartmentLink& vRightLegArteriolesToRightLegMuscle = m_Compartments->CreateLiquidLink(vRightLegArterioles, vRightLegMuscle, pulse::ExpandedVascularLink::RightLegArteriolesToRightLegMuscle);
- SELiquidCompartmentLink& vRightLegArteriolesToRightLegSkin = m_Compartments->CreateLiquidLink(vRightLegArterioles, vRightLegSkin, pulse::ExpandedVascularLink::RightLegArteriolesToRightLegSkin);
- SELiquidCompartmentLink& vRightLegBoneToRightLegVenules = m_Compartments->CreateLiquidLink(vRightLegBone, vRightLegVenules, pulse::ExpandedVascularLink::RightLegBoneToRightLegVenules);
- SELiquidCompartmentLink& vRightLegFatToRightLegVenules = m_Compartments->CreateLiquidLink(vRightLegFat, vRightLegVenules, pulse::ExpandedVascularLink::RightLegFatToRightLegVenules);
- SELiquidCompartmentLink& vRightLegMicrovasculatureToRightLegVenules = m_Compartments->CreateLiquidLink(vRightLegMicrovasculature, vRightLegVenules, pulse::ExpandedVascularLink::RightLegMicrovasculatureToRightLegVenules);
- SELiquidCompartmentLink& vRightLegMuscleToRightLegVenules = m_Compartments->CreateLiquidLink(vRightLegMuscle, vRightLegVenules, pulse::ExpandedVascularLink::RightLegMuscleToRightLegVenules);
- SELiquidCompartmentLink& vRightLegSkinToRightLegVenules = m_Compartments->CreateLiquidLink(vRightLegSkin, vRightLegVenules, pulse::ExpandedVascularLink::RightLegSkinToRightLegVenules);
- SELiquidCompartmentLink& vRightLegVenulesToVenaCava = m_Compartments->CreateLiquidLink(vRightLegVenules, vVenousBuffer, pulse::ExpandedVascularLink::RightLegVenulesToVenaCava);
+ SELiquidCompartmentLink& vAortaToRightLegArterioles = m_Compartments->CreateLiquidLink(vArterialBuffer, vRightLegArterioles, pulse::ComputationalLifeVascularLink::AortaToRightLegArterioles);
+ SELiquidCompartmentLink& vRightLegArteriolesToRightLegBone = m_Compartments->CreateLiquidLink(vRightLegArterioles, vRightLegBone, pulse::ComputationalLifeVascularLink::RightLegArteriolesToRightLegBone);
+ SELiquidCompartmentLink& vRightLegArteriolesToRightLegFat = m_Compartments->CreateLiquidLink(vRightLegArterioles, vRightLegFat, pulse::ComputationalLifeVascularLink::RightLegArteriolesToRightLegFat);
+ SELiquidCompartmentLink& vRightLegArteriolesToRightLegMicrovasculature = m_Compartments->CreateLiquidLink(vRightLegArterioles, vRightLegMicrovasculature, pulse::ComputationalLifeVascularLink::RightLegArteriolesToRightLegMicrovasculature);
+ SELiquidCompartmentLink& vRightLegArteriolesToRightLegMuscle = m_Compartments->CreateLiquidLink(vRightLegArterioles, vRightLegMuscle, pulse::ComputationalLifeVascularLink::RightLegArteriolesToRightLegMuscle);
+ SELiquidCompartmentLink& vRightLegArteriolesToRightLegSkin = m_Compartments->CreateLiquidLink(vRightLegArterioles, vRightLegSkin, pulse::ComputationalLifeVascularLink::RightLegArteriolesToRightLegSkin);
+ SELiquidCompartmentLink& vRightLegBoneToRightLegVenules = m_Compartments->CreateLiquidLink(vRightLegBone, vRightLegVenules, pulse::ComputationalLifeVascularLink::RightLegBoneToRightLegVenules);
+ SELiquidCompartmentLink& vRightLegFatToRightLegVenules = m_Compartments->CreateLiquidLink(vRightLegFat, vRightLegVenules, pulse::ComputationalLifeVascularLink::RightLegFatToRightLegVenules);
+ SELiquidCompartmentLink& vRightLegMicrovasculatureToRightLegVenules = m_Compartments->CreateLiquidLink(vRightLegMicrovasculature, vRightLegVenules, pulse::ComputationalLifeVascularLink::RightLegMicrovasculatureToRightLegVenules);
+ SELiquidCompartmentLink& vRightLegMuscleToRightLegVenules = m_Compartments->CreateLiquidLink(vRightLegMuscle, vRightLegVenules, pulse::ComputationalLifeVascularLink::RightLegMuscleToRightLegVenules);
+ SELiquidCompartmentLink& vRightLegSkinToRightLegVenules = m_Compartments->CreateLiquidLink(vRightLegSkin, vRightLegVenules, pulse::ComputationalLifeVascularLink::RightLegSkinToRightLegVenules);
+ SELiquidCompartmentLink& vRightLegVenulesToVenaCava = m_Compartments->CreateLiquidLink(vRightLegVenules, vVenousBuffer, pulse::ComputationalLifeVascularLink::RightLegVenulesToVenaCava);
vAortaToRightLegArterioles.MapPath(Aorta5ToRightLeg1);
vRightLegArteriolesToRightLegBone.MapPath(RightLeg1ToRightLegBone1);
vRightLegArteriolesToRightLegFat.MapPath(RightLeg1ToRightLegFat1);
@@ -1627,36 +1627,36 @@ namespace pulse
/////////////////////
// Small Intestine //
- SELiquidCompartmentLink& vAortaToSmallIntestine = m_Compartments->CreateLiquidLink(vGut1, vSmallIntestine, pulse::ExpandedVascularLink::AortaToSmallIntestine);
+ SELiquidCompartmentLink& vAortaToSmallIntestine = m_Compartments->CreateLiquidLink(vGut1, vSmallIntestine, pulse::VascularLink::AortaToSmallIntestine);
vAortaToSmallIntestine.MapPath(Gut1ToSmallIntestine1);
- SELiquidCompartmentLink& vSmallIntestineToLiver = m_Compartments->CreateLiquidLink(vSmallIntestine, vLiver, pulse::ExpandedVascularLink::SmallIntestineToLiver);
+ SELiquidCompartmentLink& vSmallIntestineToLiver = m_Compartments->CreateLiquidLink(vSmallIntestine, vLiver, pulse::VascularLink::SmallIntestineToLiver);
vSmallIntestineToLiver.MapPath(SmallIntestine1ToPortalVein1);
////////////////
// Splanchnic //
- SELiquidCompartmentLink& vAortaToSplanchnic = m_Compartments->CreateLiquidLink(vGut1, vSplanchnic, pulse::ExpandedVascularLink::AortaToSplanchnic);
+ SELiquidCompartmentLink& vAortaToSplanchnic = m_Compartments->CreateLiquidLink(vGut1, vSplanchnic, pulse::VascularLink::AortaToSplanchnic);
vAortaToSplanchnic.MapPath(Gut1ToSplanchnic1);
- SELiquidCompartmentLink& vSplanchnicToLiver = m_Compartments->CreateLiquidLink(vSplanchnic, vLiver, pulse::ExpandedVascularLink::SplanchnicToLiver);
+ SELiquidCompartmentLink& vSplanchnicToLiver = m_Compartments->CreateLiquidLink(vSplanchnic, vLiver, pulse::VascularLink::SplanchnicToLiver);
vSplanchnicToLiver.MapPath(Splanchnic1ToPortalVein1);
////////////
// Spleen //
- SELiquidCompartmentLink& vAortaToSpleen = m_Compartments->CreateLiquidLink(vGut1, vSpleen, pulse::ExpandedVascularLink::AortaToSpleen);
+ SELiquidCompartmentLink& vAortaToSpleen = m_Compartments->CreateLiquidLink(vGut1, vSpleen, pulse::VascularLink::AortaToSpleen);
vAortaToSpleen.MapPath(Gut1ToSpleen1);
- SELiquidCompartmentLink& vSpleenToLiver = m_Compartments->CreateLiquidLink(vSpleen, vLiver, pulse::ExpandedVascularLink::SpleenToLiver);
+ SELiquidCompartmentLink& vSpleenToLiver = m_Compartments->CreateLiquidLink(vSpleen, vLiver, pulse::VascularLink::SpleenToLiver);
vSpleenToLiver.MapPath(Spleen1ToPortalVein1);
///////////
// Torso //
- SELiquidCompartmentLink& vAortaToTorsoArterioles = m_Compartments->CreateLiquidLink(vArterialBuffer, vTorsoArterioles, pulse::ExpandedVascularLink::AortaToTorsoArterioles);
- SELiquidCompartmentLink& vTorsoArteriolesToTorsoBone = m_Compartments->CreateLiquidLink(vTorsoArterioles, vTorsoBone, pulse::ExpandedVascularLink::TorsoArteriolesToTorsoBone);
- SELiquidCompartmentLink& vTorsoArteriolesToTorsoFat = m_Compartments->CreateLiquidLink(vTorsoArterioles, vTorsoFat, pulse::ExpandedVascularLink::TorsoArteriolesToTorsoFat);
- SELiquidCompartmentLink& vTorsoArteriolesToTorsoMicrovasculature = m_Compartments->CreateLiquidLink(vTorsoArterioles, vTorsoMicrovasculature, pulse::ExpandedVascularLink::TorsoArteriolesToTorsoMicrovasculature);
- SELiquidCompartmentLink& vTorsoArteriolesToTorsoMuscle = m_Compartments->CreateLiquidLink(vTorsoArterioles, vTorsoMuscle, pulse::ExpandedVascularLink::TorsoArteriolesToTorsoMuscle);
- SELiquidCompartmentLink& vTorsoArteriolesToTorsoSkin = m_Compartments->CreateLiquidLink(vTorsoArterioles, vTorsoSkin, pulse::ExpandedVascularLink::TorsoArteriolesToTorsoSkin);
- SELiquidCompartmentLink& vTorsoSkinToTorsoVenules = m_Compartments->CreateLiquidLink(vTorsoSkin, vTorsoVenules, pulse::ExpandedVascularLink::TorsoSkinToTorsoVenules);
- SELiquidCompartmentLink& vTorsoMuscleToTorsoVenules = m_Compartments->CreateLiquidLink(vTorsoMuscle, vTorsoVenules, pulse::ExpandedVascularLink::TorsoMuscleToTorsoVenules);
- SELiquidCompartmentLink& vTorsoMicrovasculatureToTorsoVenules = m_Compartments->CreateLiquidLink(vTorsoMicrovasculature, vTorsoVenules, pulse::ExpandedVascularLink::TorsoMicrovasculatureToTorsoVenules);
- SELiquidCompartmentLink& vTorsoFatToTorsoVenules = m_Compartments->CreateLiquidLink(vTorsoFat, vTorsoVenules, pulse::ExpandedVascularLink::TorsoFatToTorsoVenules);
- SELiquidCompartmentLink& vTorsoBoneToTorsoVenules = m_Compartments->CreateLiquidLink(vTorsoBone, vTorsoVenules, pulse::ExpandedVascularLink::TorsoBoneToTorsoVenules);
- SELiquidCompartmentLink& vTorsoVenulesToVenaCava = m_Compartments->CreateLiquidLink(vTorsoVenules, vVenousBuffer, pulse::ExpandedVascularLink::TorsoVenulesToVenaCava);
+ SELiquidCompartmentLink& vAortaToTorsoArterioles = m_Compartments->CreateLiquidLink(vArterialBuffer, vTorsoArterioles, pulse::ComputationalLifeVascularLink::AortaToTorsoArterioles);
+ SELiquidCompartmentLink& vTorsoArteriolesToTorsoBone = m_Compartments->CreateLiquidLink(vTorsoArterioles, vTorsoBone, pulse::ComputationalLifeVascularLink::TorsoArteriolesToTorsoBone);
+ SELiquidCompartmentLink& vTorsoArteriolesToTorsoFat = m_Compartments->CreateLiquidLink(vTorsoArterioles, vTorsoFat, pulse::ComputationalLifeVascularLink::TorsoArteriolesToTorsoFat);
+ SELiquidCompartmentLink& vTorsoArteriolesToTorsoMicrovasculature = m_Compartments->CreateLiquidLink(vTorsoArterioles, vTorsoMicrovasculature, pulse::ComputationalLifeVascularLink::TorsoArteriolesToTorsoMicrovasculature);
+ SELiquidCompartmentLink& vTorsoArteriolesToTorsoMuscle = m_Compartments->CreateLiquidLink(vTorsoArterioles, vTorsoMuscle, pulse::ComputationalLifeVascularLink::TorsoArteriolesToTorsoMuscle);
+ SELiquidCompartmentLink& vTorsoArteriolesToTorsoSkin = m_Compartments->CreateLiquidLink(vTorsoArterioles, vTorsoSkin, pulse::ComputationalLifeVascularLink::TorsoArteriolesToTorsoSkin);
+ SELiquidCompartmentLink& vTorsoSkinToTorsoVenules = m_Compartments->CreateLiquidLink(vTorsoSkin, vTorsoVenules, pulse::ComputationalLifeVascularLink::TorsoSkinToTorsoVenules);
+ SELiquidCompartmentLink& vTorsoMuscleToTorsoVenules = m_Compartments->CreateLiquidLink(vTorsoMuscle, vTorsoVenules, pulse::ComputationalLifeVascularLink::TorsoMuscleToTorsoVenules);
+ SELiquidCompartmentLink& vTorsoMicrovasculatureToTorsoVenules = m_Compartments->CreateLiquidLink(vTorsoMicrovasculature, vTorsoVenules, pulse::ComputationalLifeVascularLink::TorsoMicrovasculatureToTorsoVenules);
+ SELiquidCompartmentLink& vTorsoFatToTorsoVenules = m_Compartments->CreateLiquidLink(vTorsoFat, vTorsoVenules, pulse::ComputationalLifeVascularLink::TorsoFatToTorsoVenules);
+ SELiquidCompartmentLink& vTorsoBoneToTorsoVenules = m_Compartments->CreateLiquidLink(vTorsoBone, vTorsoVenules, pulse::ComputationalLifeVascularLink::TorsoBoneToTorsoVenules);
+ SELiquidCompartmentLink& vTorsoVenulesToVenaCava = m_Compartments->CreateLiquidLink(vTorsoVenules, vVenousBuffer, pulse::ComputationalLifeVascularLink::TorsoVenulesToVenaCava);
vAortaToTorsoArterioles.MapPath(Aorta5ToTorso1);
vTorsoArteriolesToTorsoBone.MapPath(Torso1ToTorsoBone1);
vTorsoArteriolesToTorsoFat.MapPath(Torso1ToTorsoFat1);
@@ -1672,7 +1672,7 @@ namespace pulse
/////////////////////
// Bleeds and IV's //
- SELiquidCompartmentLink& vVenaCavaIV = m_Compartments->CreateLiquidLink(vGround, vVenaCava, pulse::ExpandedVascularLink::VenaCavaIV);
+ SELiquidCompartmentLink& vVenaCavaIV = m_Compartments->CreateLiquidLink(vGround, vVenaCava, pulse::VascularLink::VenaCavaIV);
vVenaCavaIV.MapPath(IVToVenaCava1);
SELiquidCompartmentGraph& gCardiovascular = m_Compartments->GetCardiovascularGraph();
@@ -1849,9 +1849,9 @@ namespace pulse
gCombinedCardiovascular.StateChange();
}
- void Controller::SetupExpandedCardiovascularRenal()
+ void Controller::SetupComputationalLifeRenal()
{
- Info("Setting Up Expanded Cardiovascular Renal");
+ Info("Setting Up ComputationalLife Renal");
//////////////////////////
// Circuit Interdependence
SEFluidCircuit& cCardiovascular = m_Circuits->GetCardiovascularCircuit();
@@ -1860,9 +1860,9 @@ namespace pulse
//assuming there is a left and right kidney node in cardiovascular AND that a baseline volume is set (as a function of patient mass):
double leftKidneyFluidVolume_mL = 0;
- if (cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftKidney1)->HasVolumeBaseline()) { leftKidneyFluidVolume_mL +=cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftKidney1)->GetVolumeBaseline(VolumeUnit::mL);}
- if (cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftKidney2)->HasVolumeBaseline()) { leftKidneyFluidVolume_mL +=cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftKidney2)->GetVolumeBaseline(VolumeUnit::mL);}
- if (cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftKidney3)->HasVolumeBaseline()) { leftKidneyFluidVolume_mL +=cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftKidney3)->GetVolumeBaseline(VolumeUnit::mL);}
+ if (cCardiovascular.GetNode(pulse::CardiovascularNode::LeftKidney1)->HasVolumeBaseline()) { leftKidneyFluidVolume_mL +=cCardiovascular.GetNode(pulse::CardiovascularNode::LeftKidney1)->GetVolumeBaseline(VolumeUnit::mL);}
+ if (cCardiovascular.GetNode(pulse::CardiovascularNode::LeftKidney2)->HasVolumeBaseline()) { leftKidneyFluidVolume_mL +=cCardiovascular.GetNode(pulse::CardiovascularNode::LeftKidney2)->GetVolumeBaseline(VolumeUnit::mL);}
+ if (cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::LeftKidney3)->HasVolumeBaseline()) { leftKidneyFluidVolume_mL +=cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::LeftKidney3)->GetVolumeBaseline(VolumeUnit::mL);}
double singleKidneyLargeVasculatureFluidVolume_mL = leftKidneyFluidVolume_mL / 1.5;// / 2; //Total large vasculature fluid volume
double singleKidneySmallVasculatureFluidVolume_mL = leftKidneyFluidVolume_mL / 1.5;// / 2; //Total small vasculature fluid volume
@@ -1893,9 +1893,9 @@ namespace pulse
//0.5 * CapacitanceKidney is the per-kidney value from 3 element Windkessel
//double totalCompliance = (0.5 * (0.91 * 1.7560) * 0.02);
double totalCompliance = 0;
- if (cCardiovascular.HasPath(pulse::ExpandedCardiovascularPath::LeftKidney1ToGround)) { totalCompliance +=cCardiovascular.GetPath(pulse::ExpandedCardiovascularPath::LeftKidney1ToGround)->GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg);}
- if (cCardiovascular.HasPath(pulse::ExpandedCardiovascularPath::LeftKidney2ToGround)) { totalCompliance +=cCardiovascular.GetPath(pulse::ExpandedCardiovascularPath::LeftKidney2ToGround)->GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg);}
- if (cCardiovascular.HasPath(pulse::ExpandedCardiovascularPath::LeftKidney3ToGround)) { totalCompliance +=cCardiovascular.GetPath(pulse::ExpandedCardiovascularPath::LeftKidney3ToGround)->GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg);}
+ if (cCardiovascular.HasPath(pulse::CardiovascularPath::LeftKidney1ToGround)) { totalCompliance +=cCardiovascular.GetPath(pulse::CardiovascularPath::LeftKidney1ToGround)->GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg);}
+ if (cCardiovascular.HasPath(pulse::ComputationalLifeCardiovascularPath::LeftKidney2ToGround)) { totalCompliance +=cCardiovascular.GetPath(pulse::ComputationalLifeCardiovascularPath::LeftKidney2ToGround)->GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg);}
+ if (cCardiovascular.HasPath(pulse::ComputationalLifeCardiovascularPath::LeftKidney3ToGround)) { totalCompliance +=cCardiovascular.GetPath(pulse::ComputationalLifeCardiovascularPath::LeftKidney3ToGround)->GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg);}
///\todo The bladder is currently not being modeled as a compliance
//double bladderCompliance_mL_Per_mmHg = Convert(38.3, VolumePerPressureUnit::mL_Per_cmH2O, VolumePerPressureUnit::mL_Per_mmHg);
@@ -1919,11 +1919,11 @@ namespace pulse
//Unstressed Pressures - set to zero to use unstressed properly
// double renalArteryPressure_mmHg = 0.0;
// double renalVeinPressure_mmHg = 0.0;
- // double glomerularPressure_mmHg = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftKidney1)->GetPressure(PressureUnit::mmHg);
+ // double glomerularPressure_mmHg = cCardiovascular.GetNode(pulse::CardiovascularNode::LeftKidney1)->GetPressure(PressureUnit::mmHg);
- double renalArteryPressure_mmHg = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftKidney1)->GetPressure(PressureUnit::mmHg);
+ double renalArteryPressure_mmHg = cCardiovascular.GetNode(pulse::CardiovascularNode::LeftKidney1)->GetPressure(PressureUnit::mmHg);
double glomerularPressure_mmHg = 60;
- double renalVeinPressure_mmHg = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftKidney3)->GetPressure(PressureUnit::mmHg);
+ double renalVeinPressure_mmHg = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::LeftKidney3)->GetPressure(PressureUnit::mmHg);
//double bladderPressure_mmHg = bladderVolume_mL / bladderCompliance_mL_Per_mmHg;
//Pressure Sources
double glomerularOsmoticPressure_mmHg = -32.0;
@@ -2238,35 +2238,35 @@ namespace pulse
// Delete the three-element Windkessel kidney model
SEFluidCircuit& cCombinedCardiovascular = m_Circuits->GetActiveCardiovascularCircuit();
- m_Circuits->DeleteFluidNode(pulse::ExpandedCardiovascularNode::LeftKidney1);
- m_Circuits->DeleteFluidNode(pulse::ExpandedCardiovascularNode::LeftKidney2);
- m_Circuits->DeleteFluidNode(pulse::ExpandedCardiovascularNode::LeftKidney3);
- m_Circuits->DeleteFluidNode(pulse::ExpandedCardiovascularNode::RightKidney1);
- m_Circuits->DeleteFluidNode(pulse::ExpandedCardiovascularNode::RightKidney3);
- m_Circuits->DeleteFluidNode(pulse::ExpandedCardiovascularNode::RightKidney2);
- m_Circuits->DeleteFluidPath(pulse::ExpandedCardiovascularPath::Aorta5ToLeftKidney1);
- m_Circuits->DeleteFluidPath(pulse::ExpandedCardiovascularPath::Aorta5ToRightKidney1);
- m_Circuits->DeleteFluidPath(pulse::ExpandedCardiovascularPath::LeftKidney1ToLeftKidney2);
- m_Circuits->DeleteFluidPath(pulse::ExpandedCardiovascularPath::RightKidney1ToRightKidney2);
- m_Circuits->DeleteFluidPath(pulse::ExpandedCardiovascularPath::LeftKidney2ToGround);
- m_Circuits->DeleteFluidPath(pulse::ExpandedCardiovascularPath::RightKidney2ToGround);
- m_Circuits->DeleteFluidPath(pulse::ExpandedCardiovascularPath::LeftKidney2ToLeftKidney3);
- m_Circuits->DeleteFluidPath(pulse::ExpandedCardiovascularPath::RightKidney2ToRightKidney3);
- m_Circuits->DeleteFluidPath(pulse::ExpandedCardiovascularPath::LeftKidney3ToVenaCava2);
- m_Circuits->DeleteFluidPath(pulse::ExpandedCardiovascularPath::RightKidney3ToVenaCava2);
+ m_Circuits->DeleteFluidNode(pulse::CardiovascularNode::LeftKidney1);
+ m_Circuits->DeleteFluidNode(pulse::CardiovascularNode::LeftKidney2);
+ m_Circuits->DeleteFluidNode(pulse::ComputationalLifeCardiovascularNode::LeftKidney3);
+ m_Circuits->DeleteFluidNode(pulse::CardiovascularNode::RightKidney1);
+ m_Circuits->DeleteFluidNode(pulse::ComputationalLifeCardiovascularNode::RightKidney3);
+ m_Circuits->DeleteFluidNode(pulse::CardiovascularNode::RightKidney2);
+ m_Circuits->DeleteFluidPath(pulse::ComputationalLifeCardiovascularPath::Aorta5ToLeftKidney1);
+ m_Circuits->DeleteFluidPath(pulse::ComputationalLifeCardiovascularPath::Aorta5ToRightKidney1);
+ m_Circuits->DeleteFluidPath(pulse::CardiovascularPath::LeftKidney1ToLeftKidney2);
+ m_Circuits->DeleteFluidPath(pulse::CardiovascularPath::RightKidney1ToRightKidney2);
+ m_Circuits->DeleteFluidPath(pulse::ComputationalLifeCardiovascularPath::LeftKidney2ToGround);
+ m_Circuits->DeleteFluidPath(pulse::ComputationalLifeCardiovascularPath::RightKidney2ToGround);
+ m_Circuits->DeleteFluidPath(pulse::ComputationalLifeCardiovascularPath::LeftKidney2ToLeftKidney3);
+ m_Circuits->DeleteFluidPath(pulse::ComputationalLifeCardiovascularPath::RightKidney2ToRightKidney3);
+ m_Circuits->DeleteFluidPath(pulse::ComputationalLifeCardiovascularPath::LeftKidney3ToVenaCava2);
+ m_Circuits->DeleteFluidPath(pulse::ComputationalLifeCardiovascularPath::RightKidney3ToVenaCava2);
// Remove modifiers on the proximal resistor (aorta side) of paths we removed
m_Config->GetModifiers().erase(pulse::CardiovascularPath::LeftKidney1ToLeftKidney2);
m_Config->GetModifiers().erase(pulse::CardiovascularPath::RightKidney1ToRightKidney2);
cCombinedCardiovascular.AddCircuit(cRenal);
// Grab the nodes that we will be connecting between the 2 circuits
- SEFluidCircuitNode* Aorta5 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::Aorta5);
- SEFluidCircuitNode* VenaCava2 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::VenaCava2);
+ SEFluidCircuitNode* Aorta5 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::Aorta5);
+ SEFluidCircuitNode* VenaCava2 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::VenaCava2);
// Add the new connection paths
- SEFluidCircuitPath& Aorta5ToRightKidney1 = cCombinedCardiovascular.CreatePath(*Aorta5, RightRenalArtery, pulse::ExpandedCardiovascularPath::Aorta5ToRightKidney1);
- SEFluidCircuitPath& RightKidney3ToVenaCava2 = cCombinedCardiovascular.CreatePath(RightRenalVein, *VenaCava2, pulse::ExpandedCardiovascularPath::RightKidney3ToVenaCava2);
- SEFluidCircuitPath& Aorta5ToLeftKidney1 = cCombinedCardiovascular.CreatePath(*Aorta5, LeftRenalArtery, pulse::ExpandedCardiovascularPath::Aorta5ToLeftKidney1);
- SEFluidCircuitPath& LeftKidney3ToVenaCava2 = cCombinedCardiovascular.CreatePath(LeftRenalVein, *VenaCava2, pulse::ExpandedCardiovascularPath::LeftKidney3ToVenaCava2);
+ SEFluidCircuitPath& Aorta5ToRightKidney1 = cCombinedCardiovascular.CreatePath(*Aorta5, RightRenalArtery, pulse::ComputationalLifeCardiovascularPath::Aorta5ToRightKidney1);
+ SEFluidCircuitPath& RightKidney3ToVenaCava2 = cCombinedCardiovascular.CreatePath(RightRenalVein, *VenaCava2, pulse::ComputationalLifeCardiovascularPath::RightKidney3ToVenaCava2);
+ SEFluidCircuitPath& Aorta5ToLeftKidney1 = cCombinedCardiovascular.CreatePath(*Aorta5, LeftRenalArtery, pulse::ComputationalLifeCardiovascularPath::Aorta5ToLeftKidney1);
+ SEFluidCircuitPath& LeftKidney3ToVenaCava2 = cCombinedCardiovascular.CreatePath(LeftRenalVein, *VenaCava2, pulse::ComputationalLifeCardiovascularPath::LeftKidney3ToVenaCava2);
// Update the circuit
cCombinedCardiovascular.SetNextAndCurrentFromBaselines();
@@ -2282,82 +2282,82 @@ namespace pulse
///////////////////////
// RightRenalArtery //
- SELiquidCompartment& vRightRenalArtery = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightRenalArtery);
+ SELiquidCompartment& vRightRenalArtery = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightRenalArtery);
vRightRenalArtery.MapNode(RightRenalArtery);
//////////////////////////////
// RightAfferentArteriole //
- SELiquidCompartment& vRightAfferentArteriole = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightAfferentArteriole);
+ SELiquidCompartment& vRightAfferentArteriole = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightAfferentArteriole);
vRightAfferentArteriole.MapNode(RightAfferentArteriole);
////////////////////////////////
// RightGlomerularCapillaries //
- SELiquidCompartment& vRightGlomerularCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightGlomerularCapillaries);
+ SELiquidCompartment& vRightGlomerularCapillaries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightGlomerularCapillaries);
vRightGlomerularCapillaries.MapNode(RightGlomerularCapillaries);
vRightGlomerularCapillaries.MapNode(RightNetGlomerularCapillaries);
////////////////////////////
// RightEfferentArteriole //
- SELiquidCompartment& vRightEfferentArteriole = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightEfferentArteriole);
+ SELiquidCompartment& vRightEfferentArteriole = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightEfferentArteriole);
vRightEfferentArteriole.MapNode(RightEfferentArteriole);
/////////////////////////////////
// RightPeritubularCapillaries //
- SELiquidCompartment& vRightPeritubularCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightPeritubularCapillaries);
+ SELiquidCompartment& vRightPeritubularCapillaries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightPeritubularCapillaries);
vRightPeritubularCapillaries.MapNode(RightPeritubularCapillaries);
vRightPeritubularCapillaries.MapNode(RightNetPeritubularCapillaries);
///////////////////
// RightRenalVein //
- SELiquidCompartment& vRightRenalVein = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightRenalVein);
+ SELiquidCompartment& vRightRenalVein = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightRenalVein);
vRightRenalVein.MapNode(RightRenalVein);
//////////////////////////
// RightBowmansCapsules //
- SELiquidCompartment& vRightBowmansCapsules = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightBowmansCapsules);
+ SELiquidCompartment& vRightBowmansCapsules = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightBowmansCapsules);
vRightBowmansCapsules.MapNode(RightBowmansCapsules);
vRightBowmansCapsules.MapNode(RightNetBowmansCapsules);
//////////////////
// RightTubules //
- SELiquidCompartment& vRightTubules = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightTubules);
+ SELiquidCompartment& vRightTubules = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightTubules);
vRightTubules.MapNode(RightTubules);
vRightTubules.MapNode(RightNetTubules);
/////////////////////
// LeftRenalArtery //
- SELiquidCompartment& vLeftRenalArtery = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftRenalArtery);
+ SELiquidCompartment& vLeftRenalArtery = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftRenalArtery);
vLeftRenalArtery.MapNode(LeftRenalArtery);
//////////////////////////////
// LeftAfferentArteriole //
- SELiquidCompartment& vLeftAfferentArteriole = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftAfferentArteriole);
+ SELiquidCompartment& vLeftAfferentArteriole = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftAfferentArteriole);
vLeftAfferentArteriole.MapNode(LeftAfferentArteriole);
////////////////////////////////
// LeftGlomerularCapillaries //
- SELiquidCompartment& vLeftGlomerularCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftGlomerularCapillaries);
+ SELiquidCompartment& vLeftGlomerularCapillaries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftGlomerularCapillaries);
vLeftGlomerularCapillaries.MapNode(LeftGlomerularCapillaries);
vLeftGlomerularCapillaries.MapNode(LeftNetGlomerularCapillaries);
////////////////////////////
// LeftEfferentArteriole //
- SELiquidCompartment& vLeftEfferentArteriole = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftEfferentArteriole);
+ SELiquidCompartment& vLeftEfferentArteriole = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftEfferentArteriole);
vLeftEfferentArteriole.MapNode(LeftEfferentArteriole);
////////////////////////////////
// LeftPeritubularCapillaries //
- SELiquidCompartment& vLeftPeritubularCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftPeritubularCapillaries);
+ SELiquidCompartment& vLeftPeritubularCapillaries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftPeritubularCapillaries);
vLeftPeritubularCapillaries.MapNode(LeftPeritubularCapillaries);
vLeftPeritubularCapillaries.MapNode(LeftNetPeritubularCapillaries);
///////////////////
// LeftRenalVein //
- SELiquidCompartment& vLeftRenalVein = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftRenalVein);
+ SELiquidCompartment& vLeftRenalVein = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftRenalVein);
vLeftRenalVein.MapNode(LeftRenalVein);
/////////////////////////
// LeftBowmansCapsules //
- SELiquidCompartment& vLeftBowmansCapsules = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftBowmansCapsules);
+ SELiquidCompartment& vLeftBowmansCapsules = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftBowmansCapsules);
vLeftBowmansCapsules.MapNode(LeftBowmansCapsules);
vLeftBowmansCapsules.MapNode(LeftNetBowmansCapsules);
/////////////////
// LeftTubules //
- SELiquidCompartment& vLeftTubules = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftTubules);
+ SELiquidCompartment& vLeftTubules = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftTubules);
vLeftTubules.MapNode(LeftTubules);
vLeftTubules.MapNode(LeftNetTubules);
// Let's build out the hierarchy
// Grab these, as cardiovascular already made them
- SELiquidCompartment* vLeftKidney = m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftKidney);
- SELiquidCompartment& vLeftNephron = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::LeftNephron);
+ SELiquidCompartment* vLeftKidney = m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::LeftKidney);
+ SELiquidCompartment& vLeftNephron = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftNephron);
vLeftKidney->GetNodeMapping().Clear();// Remove the nodes the cardiovascular was using to model the kidney
vLeftKidney->AddChild(vLeftRenalArtery);
vLeftKidney->AddChild(vLeftNephron);
@@ -2368,8 +2368,8 @@ namespace pulse
vLeftNephron.AddChild(vLeftBowmansCapsules);
vLeftNephron.AddChild(vLeftTubules);
vLeftKidney->AddChild(vLeftRenalVein);
- SELiquidCompartment* vRightKidney = m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightKidney);
- SELiquidCompartment& vRightNephron = m_Compartments->CreateLiquidCompartment(pulse::ExpandedVascularCompartment::RightNephron);
+ SELiquidCompartment* vRightKidney = m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::RightKidney);
+ SELiquidCompartment& vRightNephron = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightNephron);
vRightKidney->GetNodeMapping().Clear();// Remove the nodes the cardiovascular was using to model the kidney
vRightKidney->AddChild(vRightRenalArtery);
vRightKidney->AddChild(vRightNephron);
@@ -2408,9 +2408,9 @@ namespace pulse
/////////////////////////////
// Graph Dependencies
- SELiquidCompartment& vArterialBuffer = *m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::ArterialBuffer);
- SELiquidCompartment& vVenousBuffer = *m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::VenousBuffer);
- SELiquidCompartment& vGround = *m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::Ground);
+ SELiquidCompartment& vArterialBuffer = *m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::ArterialBuffer);
+ SELiquidCompartment& vVenousBuffer = *m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::VenousBuffer);
+ SELiquidCompartment& vGround = *m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::Ground);
///////////
// Blood //
@@ -2418,88 +2418,88 @@ namespace pulse
////////////////////////////
// AortaToRightRenalArtery //
- m_Compartments->DeleteLiquidLink(pulse::ExpandedVascularLink::AortaToRightKidney);// Replace this link
- SELiquidCompartmentLink& vAortaToRightRenalArtery = m_Compartments->CreateLiquidLink(vArterialBuffer, vRightRenalArtery, pulse::ExpandedVascularLink::AortaToRightKidney);
+ m_Compartments->DeleteLiquidLink(pulse::VascularLink::AortaToRightKidney);// Replace this link
+ SELiquidCompartmentLink& vAortaToRightRenalArtery = m_Compartments->CreateLiquidLink(vArterialBuffer, vRightRenalArtery, pulse::VascularLink::AortaToRightKidney);
vAortaToRightRenalArtery.MapPath(Aorta5ToRightKidney1);
////////////////////////////////////////
// RightRenalArteryToAfferentArteriole //
- SELiquidCompartmentLink& vRightRenalArteryToAfferentArteriole = m_Compartments->CreateLiquidLink(vRightRenalArtery, vRightAfferentArteriole, pulse::ExpandedVascularLink::RightRenalArteryToAfferentArteriole);
+ SELiquidCompartmentLink& vRightRenalArteryToAfferentArteriole = m_Compartments->CreateLiquidLink(vRightRenalArtery, vRightAfferentArteriole, pulse::VascularLink::RightRenalArteryToAfferentArteriole);
vRightRenalArteryToAfferentArteriole.MapPath(RightRenalArteryToAfferentArteriole);
//////////////////////////////////////////////////
// RightAfferentArterioleToGlomerularCapillaries //
- SELiquidCompartmentLink& vRightAfferentArterioleToGlomerularCapillaries = m_Compartments->CreateLiquidLink(vRightAfferentArteriole, vRightGlomerularCapillaries, pulse::ExpandedVascularLink::RightAfferentArterioleToGlomerularCapillaries);
+ SELiquidCompartmentLink& vRightAfferentArterioleToGlomerularCapillaries = m_Compartments->CreateLiquidLink(vRightAfferentArteriole, vRightGlomerularCapillaries, pulse::VascularLink::RightAfferentArterioleToGlomerularCapillaries);
vRightAfferentArterioleToGlomerularCapillaries.MapPath(RightAfferentArterioleToGlomerularCapillaries);
//////////////////////////////////////////////////
// RightGlomerularCapillariesToEfferentArteriole //
- SELiquidCompartmentLink& vRightGlomerularCapillariesToEfferentArteriole = m_Compartments->CreateLiquidLink(vRightGlomerularCapillaries, vRightEfferentArteriole, pulse::ExpandedVascularLink::RightGlomerularCapillariesToEfferentArteriole);
+ SELiquidCompartmentLink& vRightGlomerularCapillariesToEfferentArteriole = m_Compartments->CreateLiquidLink(vRightGlomerularCapillaries, vRightEfferentArteriole, pulse::VascularLink::RightGlomerularCapillariesToEfferentArteriole);
vRightGlomerularCapillariesToEfferentArteriole.MapPath(RightGlomerularCapillariesToEfferentArteriole);
/////////////////////////////////////////////////
// RightGlomerularCapillariesToBowmansCapsules //
- SELiquidCompartmentLink& vRightGlomerularCapillariesToBowmansCapsules = m_Compartments->CreateLiquidLink(vRightGlomerularCapillaries, vRightBowmansCapsules, pulse::ExpandedVascularLink::RightGlomerularCapillariesToBowmansCapsules);
+ SELiquidCompartmentLink& vRightGlomerularCapillariesToBowmansCapsules = m_Compartments->CreateLiquidLink(vRightGlomerularCapillaries, vRightBowmansCapsules, pulse::VascularLink::RightGlomerularCapillariesToBowmansCapsules);
vRightGlomerularCapillariesToBowmansCapsules.MapPath(RightNetGlomerularCapillariesToNetBowmansCapsules);
///////////////////////////////////
// RightBowmansCapsulesToTubules //
- SELiquidCompartmentLink& vRightBowmansCapsulesToTubules = m_Compartments->CreateLiquidLink(vRightBowmansCapsules, vRightTubules, pulse::ExpandedVascularLink::RightBowmansCapsulesToTubules);
+ SELiquidCompartmentLink& vRightBowmansCapsulesToTubules = m_Compartments->CreateLiquidLink(vRightBowmansCapsules, vRightTubules, pulse::VascularLink::RightBowmansCapsulesToTubules);
vRightBowmansCapsulesToTubules.MapPath(RightBowmansCapsulesToTubules);
//////////////////////////////////////////
// RightTubulesToPeritubularCapillaries //
- SELiquidCompartmentLink& vRightTubulesToPeritubularCapillaries = m_Compartments->CreateLiquidLink(vRightTubules, vRightPeritubularCapillaries, pulse::ExpandedVascularLink::RightTubulesToPeritubularCapillaries);
+ SELiquidCompartmentLink& vRightTubulesToPeritubularCapillaries = m_Compartments->CreateLiquidLink(vRightTubules, vRightPeritubularCapillaries, pulse::VascularLink::RightTubulesToPeritubularCapillaries);
vRightTubulesToPeritubularCapillaries.MapPath(RightNetTubulesToNetPeritubularCapillaries);
///////////////////////////////////////////////////
// RightEfferentArterioleToPeritubularCapillaries //
- SELiquidCompartmentLink& vRightEfferentArterioleToPeritubularCapillaries = m_Compartments->CreateLiquidLink(vRightEfferentArteriole, vRightPeritubularCapillaries, pulse::ExpandedVascularLink::RightEfferentArterioleToPeritubularCapillaries);
+ SELiquidCompartmentLink& vRightEfferentArterioleToPeritubularCapillaries = m_Compartments->CreateLiquidLink(vRightEfferentArteriole, vRightPeritubularCapillaries, pulse::VascularLink::RightEfferentArterioleToPeritubularCapillaries);
vRightEfferentArterioleToPeritubularCapillaries.MapPath(RightEfferentArterioleToPeritubularCapillaries);
////////////////////////////////////////////
// RightPeritubularCapillariesToRenalVein //
- SELiquidCompartmentLink& vRightPeritubularCapillariesToRenalVein = m_Compartments->CreateLiquidLink(vRightPeritubularCapillaries, vRightRenalVein, pulse::ExpandedVascularLink::RightPeritubularCapillariesToRenalVein);
+ SELiquidCompartmentLink& vRightPeritubularCapillariesToRenalVein = m_Compartments->CreateLiquidLink(vRightPeritubularCapillaries, vRightRenalVein, pulse::VascularLink::RightPeritubularCapillariesToRenalVein);
vRightPeritubularCapillariesToRenalVein.MapPath(RightPeritubularCapillariesToRenalVein);
/////////////////////////////
// RightRenalVeinToVenaCava //
- m_Compartments->DeleteLiquidLink(pulse::ExpandedVascularLink::RightKidneyToVenaCava);// Replace this vink
- SELiquidCompartmentLink& vRightRenalVeinToVenaCava = m_Compartments->CreateLiquidLink(vRightRenalVein, vVenousBuffer, pulse::ExpandedVascularLink::RightKidneyToVenaCava);
+ m_Compartments->DeleteLiquidLink(pulse::VascularLink::RightKidneyToVenaCava);// Replace this vink
+ SELiquidCompartmentLink& vRightRenalVeinToVenaCava = m_Compartments->CreateLiquidLink(vRightRenalVein, vVenousBuffer, pulse::VascularLink::RightKidneyToVenaCava);
vRightRenalVeinToVenaCava.MapPath(RightKidney3ToVenaCava2);
////////////////////////////
// AortaToLeftRenalArtery //
- m_Compartments->DeleteLiquidLink(pulse::ExpandedVascularLink::AortaToLeftKidney);// Replace this uink
- SELiquidCompartmentLink& vAortaToLeftRenalArtery = m_Compartments->CreateLiquidLink(vArterialBuffer, vLeftRenalArtery, pulse::ExpandedVascularLink::AortaToLeftKidney);
+ m_Compartments->DeleteLiquidLink(pulse::VascularLink::AortaToLeftKidney);// Replace this uink
+ SELiquidCompartmentLink& vAortaToLeftRenalArtery = m_Compartments->CreateLiquidLink(vArterialBuffer, vLeftRenalArtery, pulse::VascularLink::AortaToLeftKidney);
vAortaToLeftRenalArtery.MapPath(Aorta5ToLeftKidney1);
////////////////////////////////////////
// LeftRenalArteryToAfferentArteriole //
- SELiquidCompartmentLink& vLeftRenalArteryToAfferentArteriole = m_Compartments->CreateLiquidLink(vLeftRenalArtery, vLeftAfferentArteriole, pulse::ExpandedVascularLink::LeftRenalArteryToAfferentArteriole);
+ SELiquidCompartmentLink& vLeftRenalArteryToAfferentArteriole = m_Compartments->CreateLiquidLink(vLeftRenalArtery, vLeftAfferentArteriole, pulse::VascularLink::LeftRenalArteryToAfferentArteriole);
vLeftRenalArteryToAfferentArteriole.MapPath(LeftRenalArteryToAfferentArteriole);
//////////////////////////////////////////////////
// LeftAfferentArterioleToGlomerularCapillaries //
- SELiquidCompartmentLink& vLeftAfferentArterioleToGlomerularCapillaries = m_Compartments->CreateLiquidLink(vLeftAfferentArteriole, vLeftGlomerularCapillaries, pulse::ExpandedVascularLink::LeftAfferentArterioleToGlomerularCapillaries);
+ SELiquidCompartmentLink& vLeftAfferentArterioleToGlomerularCapillaries = m_Compartments->CreateLiquidLink(vLeftAfferentArteriole, vLeftGlomerularCapillaries, pulse::VascularLink::LeftAfferentArterioleToGlomerularCapillaries);
vLeftAfferentArterioleToGlomerularCapillaries.MapPath(LeftAfferentArterioleToGlomerularCapillaries);
//////////////////////////////////////////////////
// LeftGlomerularCapillariesToEfferentArteriole //
- SELiquidCompartmentLink& vLeftGlomerularCapillariesToEfferentArteriole = m_Compartments->CreateLiquidLink(vLeftGlomerularCapillaries, vLeftEfferentArteriole, pulse::ExpandedVascularLink::LeftGlomerularCapillariesToEfferentArteriole);
+ SELiquidCompartmentLink& vLeftGlomerularCapillariesToEfferentArteriole = m_Compartments->CreateLiquidLink(vLeftGlomerularCapillaries, vLeftEfferentArteriole, pulse::VascularLink::LeftGlomerularCapillariesToEfferentArteriole);
vLeftGlomerularCapillariesToEfferentArteriole.MapPath(LeftGlomerularCapillariesToEfferentArteriole);
////////////////////////////////////////////////
// LeftGlomerularCapillariesToBowmansCapsules //
- SELiquidCompartmentLink& vLeftGlomerularCapillariesToBowmansCapsules = m_Compartments->CreateLiquidLink(vLeftGlomerularCapillaries, vLeftBowmansCapsules, pulse::ExpandedVascularLink::LeftGlomerularCapillariesToBowmansCapsules);
+ SELiquidCompartmentLink& vLeftGlomerularCapillariesToBowmansCapsules = m_Compartments->CreateLiquidLink(vLeftGlomerularCapillaries, vLeftBowmansCapsules, pulse::VascularLink::LeftGlomerularCapillariesToBowmansCapsules);
vLeftGlomerularCapillariesToBowmansCapsules.MapPath(LeftNetGlomerularCapillariesToNetBowmansCapsules);
//////////////////////////////////
// LeftBowmansCapsulesToTubules //
- SELiquidCompartmentLink& vLeftBowmansCapsulesToTubules = m_Compartments->CreateLiquidLink(vLeftBowmansCapsules, vLeftTubules, pulse::ExpandedVascularLink::LeftBowmansCapsulesToTubules);
+ SELiquidCompartmentLink& vLeftBowmansCapsulesToTubules = m_Compartments->CreateLiquidLink(vLeftBowmansCapsules, vLeftTubules, pulse::VascularLink::LeftBowmansCapsulesToTubules);
vLeftBowmansCapsulesToTubules.MapPath(LeftBowmansCapsulesToTubules);
/////////////////////////////////////////
// LeftTubulesToPeritubularCapillaries //
- SELiquidCompartmentLink& vLeftTubulesToPeritubularCapillaries = m_Compartments->CreateLiquidLink(vLeftTubules, vLeftPeritubularCapillaries, pulse::ExpandedVascularLink::LeftTubulesToPeritubularCapillaries);
+ SELiquidCompartmentLink& vLeftTubulesToPeritubularCapillaries = m_Compartments->CreateLiquidLink(vLeftTubules, vLeftPeritubularCapillaries, pulse::VascularLink::LeftTubulesToPeritubularCapillaries);
vLeftTubulesToPeritubularCapillaries.MapPath(LeftNetTubulesToNetPeritubularCapillaries);
///////////////////////////////////////////////////
// LeftEfferentArterioleToPeritubularCapillaries //
- SELiquidCompartmentLink& vLeftEfferentArterioleToPeritubularCapillaries = m_Compartments->CreateLiquidLink(vLeftEfferentArteriole, vLeftPeritubularCapillaries, pulse::ExpandedVascularLink::LeftEfferentArterioleToPeritubularCapillaries);
+ SELiquidCompartmentLink& vLeftEfferentArterioleToPeritubularCapillaries = m_Compartments->CreateLiquidLink(vLeftEfferentArteriole, vLeftPeritubularCapillaries, pulse::VascularLink::LeftEfferentArterioleToPeritubularCapillaries);
vLeftEfferentArterioleToPeritubularCapillaries.MapPath(LeftEfferentArterioleToPeritubularCapillaries);
///////////////////////////////////////////
// LeftPeritubularCapillariesToRenalVein //
- SELiquidCompartmentLink& vLeftPeritubularCapillariesToRenalVein = m_Compartments->CreateLiquidLink(vLeftPeritubularCapillaries, vLeftRenalVein, pulse::ExpandedVascularLink::LeftPeritubularCapillariesToRenalVein);
+ SELiquidCompartmentLink& vLeftPeritubularCapillariesToRenalVein = m_Compartments->CreateLiquidLink(vLeftPeritubularCapillaries, vLeftRenalVein, pulse::VascularLink::LeftPeritubularCapillariesToRenalVein);
vLeftPeritubularCapillariesToRenalVein.MapPath(LeftPeritubularCapillariesToRenalVein);
/////////////////////////////
// LeftRenalVeinToVenaCava //
- m_Compartments->DeleteLiquidLink(pulse::ExpandedVascularLink::LeftKidneyToVenaCava);// Replace this link
- SELiquidCompartmentLink& vLeftRenalVeinToVenaCava = m_Compartments->CreateLiquidLink(vLeftRenalVein, vVenousBuffer, pulse::ExpandedVascularLink::LeftKidneyToVenaCava);
+ m_Compartments->DeleteLiquidLink(pulse::VascularLink::LeftKidneyToVenaCava);// Replace this link
+ SELiquidCompartmentLink& vLeftRenalVeinToVenaCava = m_Compartments->CreateLiquidLink(vLeftRenalVein, vVenousBuffer, pulse::VascularLink::LeftKidneyToVenaCava);
vLeftRenalVeinToVenaCava.MapPath(LeftKidney3ToVenaCava2);
///////////
@@ -2596,23 +2596,23 @@ namespace pulse
gCombinedCardiovascular.StateChange();
}
- void Controller::SetupExpandedCardiovascularTissue()
+ void Controller::SetupComputationalLifeTissue()
{
- Info("Setting Up Expanded Cardiovascular Tissue");
+ Info("Setting Up ComputationalLife Tissue");
SEFluidCircuit& cCardiovascular = m_Circuits->GetCardiovascularCircuit();
SEFluidCircuit& cCombinedCardiovascular = m_Circuits->GetActiveCardiovascularCircuit();
- SEFluidCircuitNode* Ground = cCombinedCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::Ground);
+ SEFluidCircuitNode* Ground = cCombinedCardiovascular.GetNode(pulse::CardiovascularNode::Ground);
///////////
// Lymph //
SEFluidCircuitNode& Lymph = cCombinedCardiovascular.CreateNode(pulse::TissueNode::Lymph);
Lymph.GetPressure().SetValue(0, PressureUnit::mmHg);
Lymph.GetVolumeBaseline().SetValue(0, VolumeUnit::mL);
- SEFluidCircuitNode* VenaCava1 = cCombinedCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::VenaCava1);
- SEFluidCircuitPath& LymphToVenaCava = cCombinedCardiovascular.CreatePath(Lymph, *VenaCava1, pulse::ExpandedCardiovascularTissuePath::LymphToVenaCava);
+ SEFluidCircuitNode* VenaCava1 = cCombinedCardiovascular.GetNode(pulse::CardiovascularNode::VenaCava1);
+ SEFluidCircuitPath& LymphToVenaCava = cCombinedCardiovascular.CreatePath(Lymph, *VenaCava1, pulse::TissuePath::LymphToVenaCava1);
// No resistance - if it goes to lymph then it goes to vena cava
- SELiquidCompartment* cVenaCava = m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::VenaCava);
+ SELiquidCompartment* cVenaCava = m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::VenaCava);
SELiquidCompartment& cLymph = m_Compartments->CreateLiquidCompartment(pulse::LymphCompartment::Lymph);
cLymph.MapNode(Lymph);
@@ -2766,11 +2766,11 @@ namespace pulse
/////////
// Fat //
- SEFluidCircuitNode* TorsoFat1 = cCombinedCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::TorsoFat1);
- SEFluidCircuitNode* LeftArmFat1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftArmFat1);
- SEFluidCircuitNode* LeftLegFat1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftLegFat1);
- SEFluidCircuitNode* RightArmFat1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::RightArmFat1);
- SEFluidCircuitNode* RightLegFat1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::RightLegFat1);
+ SEFluidCircuitNode* TorsoFat1 = cCombinedCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::TorsoFat1);
+ SEFluidCircuitNode* LeftArmFat1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::LeftArmFat1);
+ SEFluidCircuitNode* LeftLegFat1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::LeftLegFat1);
+ SEFluidCircuitNode* RightArmFat1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::RightArmFat1);
+ SEFluidCircuitNode* RightLegFat1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::RightLegFat1);
SEFluidCircuitNode& FatT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::FatT1);
SEFluidCircuitNode& FatT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::FatT2);
SEFluidCircuitNode& FatT3 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::FatT3);
@@ -2778,24 +2778,24 @@ namespace pulse
FatT3.GetPressure().Set(Ground->GetPressure());
FatT1.GetVolumeBaseline().SetValue(AdiposeEWFraction * AdiposeTissueVolume * 1000.0, VolumeUnit::mL);
- SEFluidCircuitPath& TorsoFat1ToFatT2 = cCombinedCardiovascular.CreatePath(*TorsoFat1, FatT2, pulse::ExpandedCardiovascularTissuePath::TorsoFat1ToFatT2);
+ SEFluidCircuitPath& TorsoFat1ToFatT2 = cCombinedCardiovascular.CreatePath(*TorsoFat1, FatT2, pulse::ComputationalLifeTissuePath::TorsoFat1ToFatT2);
TorsoFat1ToFatT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LeftArmFat1ToFatT2 = cCombinedCardiovascular.CreatePath(*LeftArmFat1, FatT2, pulse::ExpandedCardiovascularTissuePath::LeftArmFat1ToFatT2);
+ SEFluidCircuitPath& LeftArmFat1ToFatT2 = cCombinedCardiovascular.CreatePath(*LeftArmFat1, FatT2, pulse::ComputationalLifeTissuePath::LeftArmFat1ToFatT2);
LeftArmFat1ToFatT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LeftLegFat1ToFatT2 = cCombinedCardiovascular.CreatePath(*LeftLegFat1, FatT2, pulse::ExpandedCardiovascularTissuePath::LeftLegFat1ToFatT2);
+ SEFluidCircuitPath& LeftLegFat1ToFatT2 = cCombinedCardiovascular.CreatePath(*LeftLegFat1, FatT2, pulse::ComputationalLifeTissuePath::LeftLegFat1ToFatT2);
LeftLegFat1ToFatT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& RightArmFat1ToFatT2 = cCombinedCardiovascular.CreatePath(*RightArmFat1, FatT2, pulse::ExpandedCardiovascularTissuePath::RightArmFat1ToFatT2);
+ SEFluidCircuitPath& RightArmFat1ToFatT2 = cCombinedCardiovascular.CreatePath(*RightArmFat1, FatT2, pulse::ComputationalLifeTissuePath::RightArmFat1ToFatT2);
RightArmFat1ToFatT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& RightLegFat1ToFatT2 = cCombinedCardiovascular.CreatePath(*RightLegFat1, FatT2, pulse::ExpandedCardiovascularTissuePath::RightLegFat1ToFatT2);
+ SEFluidCircuitPath& RightLegFat1ToFatT2 = cCombinedCardiovascular.CreatePath(*RightLegFat1, FatT2, pulse::ComputationalLifeTissuePath::RightLegFat1ToFatT2);
RightLegFat1ToFatT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& FatT2ToFatT1 = cCombinedCardiovascular.CreatePath(FatT2, FatT1, pulse::ExpandedCardiovascularTissuePath::FatT2ToFatT1);
+ SEFluidCircuitPath& FatT2ToFatT1 = cCombinedCardiovascular.CreatePath(FatT2, FatT1, pulse::TissuePath::FatT2ToFatT1);
FatT2ToFatT1.GetResistanceBaseline().SetValue((1 / AdiposeTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& FatT1ToFatT3 = cCombinedCardiovascular.CreatePath(FatT1, FatT3, pulse::ExpandedCardiovascularTissuePath::FatT1ToFatT3);
+ SEFluidCircuitPath& FatT1ToFatT3 = cCombinedCardiovascular.CreatePath(FatT1, FatT3, pulse::TissuePath::FatT1ToFatT3);
FatT1ToFatT3.GetComplianceBaseline().SetValue(FatT1.GetVolumeBaseline(VolumeUnit::mL) / FatT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& GroundToFatT3 = cCombinedCardiovascular.CreatePath(*Ground, FatT3, pulse::ExpandedCardiovascularTissuePath::GroundToFatT3);
+ SEFluidCircuitPath& GroundToFatT3 = cCombinedCardiovascular.CreatePath(*Ground, FatT3, pulse::TissuePath::GroundToFatT3);
GroundToFatT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& FatT1ToLymph = cCombinedCardiovascular.CreatePath(FatT1, Lymph, pulse::ExpandedCardiovascularTissuePath::FatT1ToLymph);
+ SEFluidCircuitPath& FatT1ToLymph = cCombinedCardiovascular.CreatePath(FatT1, Lymph, pulse::TissuePath::FatT1ToLymph);
FatT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
SETissueCompartment& FatTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::Fat);
@@ -2816,20 +2816,20 @@ namespace pulse
FatTissue.GetTissueToPlasmaLipoproteinRatio().SetValue(AdiposeLRatio);
FatTissue.GetTotalMass().SetValue(AdiposeTissueMass, MassUnit::kg);
- SELiquidCompartmentLink& TorsoFatVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoFat),
- FatExtracellular, pulse::ExpandedVascularLink::TorsoFatVascularToTissue);
+ SELiquidCompartmentLink& TorsoFatVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoFat),
+ FatExtracellular, pulse::ComputationalLifeVascularLink::TorsoFatVascularToTissue);
TorsoFatVascularToTissue.MapPath(TorsoFat1ToFatT2);
- SELiquidCompartmentLink& LeftArmFatVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmFat),
- FatExtracellular, pulse::ExpandedVascularLink::LeftArmFatVascularToTissue);
+ SELiquidCompartmentLink& LeftArmFatVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmFat),
+ FatExtracellular, pulse::ComputationalLifeVascularLink::LeftArmFatVascularToTissue);
LeftArmFatVascularToTissue.MapPath(LeftArmFat1ToFatT2);
- SELiquidCompartmentLink& LeftLegFatVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegFat),
- FatExtracellular, pulse::ExpandedVascularLink::LeftLegFatVascularToTissue);
+ SELiquidCompartmentLink& LeftLegFatVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegFat),
+ FatExtracellular, pulse::ComputationalLifeVascularLink::LeftLegFatVascularToTissue);
LeftLegFatVascularToTissue.MapPath(LeftLegFat1ToFatT2);
- SELiquidCompartmentLink& RightArmFatVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmFat),
- FatExtracellular, pulse::ExpandedVascularLink::RightArmFatVascularToTissue);
+ SELiquidCompartmentLink& RightArmFatVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmFat),
+ FatExtracellular, pulse::ComputationalLifeVascularLink::RightArmFatVascularToTissue);
RightArmFatVascularToTissue.MapPath(RightArmFat1ToFatT2);
- SELiquidCompartmentLink& RightLegFatVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegFat),
- FatExtracellular, pulse::ExpandedVascularLink::RightLegFatVascularToTissue);
+ SELiquidCompartmentLink& RightLegFatVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegFat),
+ FatExtracellular, pulse::ComputationalLifeVascularLink::RightLegFatVascularToTissue);
RightLegFatVascularToTissue.MapPath(RightLegFat1ToFatT2);
SELiquidCompartmentLink& FatTissueToLymph = m_Compartments->CreateLiquidLink(FatExtracellular, cLymph, pulse::LymphLink::FatTissueToLymph);
@@ -2837,11 +2837,11 @@ namespace pulse
//////////
// Bone //
- SEFluidCircuitNode* TorsoBone1 = cCombinedCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::TorsoBone1);
- SEFluidCircuitNode* LeftArmBone1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftArmBone1);
- SEFluidCircuitNode* LeftLegBone1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftLegBone1);
- SEFluidCircuitNode* RightArmBone1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::RightArmBone1);
- SEFluidCircuitNode* RightLegBone1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::RightLegBone1);
+ SEFluidCircuitNode* TorsoBone1 = cCombinedCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::TorsoBone1);
+ SEFluidCircuitNode* LeftArmBone1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::LeftArmBone1);
+ SEFluidCircuitNode* LeftLegBone1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::LeftLegBone1);
+ SEFluidCircuitNode* RightArmBone1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::RightArmBone1);
+ SEFluidCircuitNode* RightLegBone1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::RightLegBone1);
SEFluidCircuitNode& BoneT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::BoneT1);
SEFluidCircuitNode& BoneT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::BoneT2);
SEFluidCircuitNode& BoneT3 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::BoneT3);
@@ -2849,24 +2849,24 @@ namespace pulse
BoneT3.GetPressure().Set(Ground->GetPressure());
BoneT1.GetVolumeBaseline().SetValue(BoneEWFraction * BoneTissueVolume * 1000.0, VolumeUnit::mL);
- SEFluidCircuitPath& TorsoBone1ToBoneT2 = cCombinedCardiovascular.CreatePath(*TorsoBone1, BoneT2, pulse::ExpandedCardiovascularTissuePath::TorsoBone1ToBoneT2);
+ SEFluidCircuitPath& TorsoBone1ToBoneT2 = cCombinedCardiovascular.CreatePath(*TorsoBone1, BoneT2, pulse::ComputationalLifeTissuePath::TorsoBone1ToBoneT2);
TorsoBone1ToBoneT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LeftArmBone1ToBoneT2 = cCombinedCardiovascular.CreatePath(*LeftArmBone1, BoneT2, pulse::ExpandedCardiovascularTissuePath::LeftArmBone1ToBoneT2);
+ SEFluidCircuitPath& LeftArmBone1ToBoneT2 = cCombinedCardiovascular.CreatePath(*LeftArmBone1, BoneT2, pulse::ComputationalLifeTissuePath::LeftArmBone1ToBoneT2);
LeftArmBone1ToBoneT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LeftLegBone1ToBoneT2 = cCombinedCardiovascular.CreatePath(*LeftLegBone1, BoneT2, pulse::ExpandedCardiovascularTissuePath::LeftLegBone1ToBoneT2);
+ SEFluidCircuitPath& LeftLegBone1ToBoneT2 = cCombinedCardiovascular.CreatePath(*LeftLegBone1, BoneT2, pulse::ComputationalLifeTissuePath::LeftLegBone1ToBoneT2);
LeftLegBone1ToBoneT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& RightArmBone1ToBoneT2 = cCombinedCardiovascular.CreatePath(*RightArmBone1, BoneT2, pulse::ExpandedCardiovascularTissuePath::RightArmBone1ToBoneT2);
+ SEFluidCircuitPath& RightArmBone1ToBoneT2 = cCombinedCardiovascular.CreatePath(*RightArmBone1, BoneT2, pulse::ComputationalLifeTissuePath::RightArmBone1ToBoneT2);
RightArmBone1ToBoneT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& RightLegBone1ToBoneT2 = cCombinedCardiovascular.CreatePath(*RightLegBone1, BoneT2, pulse::ExpandedCardiovascularTissuePath::RightLegBone1ToBoneT2);
+ SEFluidCircuitPath& RightLegBone1ToBoneT2 = cCombinedCardiovascular.CreatePath(*RightLegBone1, BoneT2, pulse::ComputationalLifeTissuePath::RightLegBone1ToBoneT2);
RightLegBone1ToBoneT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& BoneT2ToBoneT1 = cCombinedCardiovascular.CreatePath(BoneT2, BoneT1, pulse::ExpandedCardiovascularTissuePath::BoneT2ToBoneT1);
+ SEFluidCircuitPath& BoneT2ToBoneT1 = cCombinedCardiovascular.CreatePath(BoneT2, BoneT1, pulse::TissuePath::BoneT2ToBoneT1);
BoneT2ToBoneT1.GetResistanceBaseline().SetValue((1 / BoneTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& BoneT1ToBoneT3 = cCombinedCardiovascular.CreatePath(BoneT1, BoneT3, pulse::ExpandedCardiovascularTissuePath::BoneT1ToBoneT3);
+ SEFluidCircuitPath& BoneT1ToBoneT3 = cCombinedCardiovascular.CreatePath(BoneT1, BoneT3, pulse::TissuePath::BoneT1ToBoneT3);
BoneT1ToBoneT3.GetComplianceBaseline().SetValue(BoneT1.GetVolumeBaseline(VolumeUnit::mL) / BoneT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& GroundToBoneT3 = cCombinedCardiovascular.CreatePath(*Ground, BoneT3, pulse::ExpandedCardiovascularTissuePath::GroundToBoneT3);
+ SEFluidCircuitPath& GroundToBoneT3 = cCombinedCardiovascular.CreatePath(*Ground, BoneT3, pulse::TissuePath::GroundToBoneT3);
GroundToBoneT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& BoneT1ToLymph = cCombinedCardiovascular.CreatePath(BoneT1, Lymph, pulse::ExpandedCardiovascularTissuePath::BoneT1ToLymph);
+ SEFluidCircuitPath& BoneT1ToLymph = cCombinedCardiovascular.CreatePath(BoneT1, Lymph, pulse::TissuePath::BoneT1ToLymph);
BoneT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
SETissueCompartment& BoneTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::Bone);
@@ -2887,20 +2887,20 @@ namespace pulse
BoneTissue.GetTissueToPlasmaLipoproteinRatio().SetValue(BoneLRatio);
BoneTissue.GetTotalMass().SetValue(BoneTissueMass, MassUnit::kg);
- SELiquidCompartmentLink& TorsoBoneVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoBone),
- BoneExtracellular, pulse::ExpandedVascularLink::TorsoBoneVascularToTissue);
+ SELiquidCompartmentLink& TorsoBoneVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoBone),
+ BoneExtracellular, pulse::ComputationalLifeVascularLink::TorsoBoneVascularToTissue);
TorsoBoneVascularToTissue.MapPath(TorsoBone1ToBoneT2);
- SELiquidCompartmentLink& LeftArmBoneVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmBone),
- BoneExtracellular, pulse::ExpandedVascularLink::LeftArmBoneVascularToTissue);
+ SELiquidCompartmentLink& LeftArmBoneVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmBone),
+ BoneExtracellular, pulse::ComputationalLifeVascularLink::LeftArmBoneVascularToTissue);
LeftArmBoneVascularToTissue.MapPath(LeftArmBone1ToBoneT2);
- SELiquidCompartmentLink& LeftLegBoneVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegBone),
- BoneExtracellular, pulse::ExpandedVascularLink::LeftLegBoneVascularToTissue);
+ SELiquidCompartmentLink& LeftLegBoneVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegBone),
+ BoneExtracellular, pulse::ComputationalLifeVascularLink::LeftLegBoneVascularToTissue);
LeftLegBoneVascularToTissue.MapPath(LeftLegBone1ToBoneT2);
- SELiquidCompartmentLink& RightArmBoneVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmBone),
- BoneExtracellular, pulse::ExpandedVascularLink::RightArmBoneVascularToTissue);
+ SELiquidCompartmentLink& RightArmBoneVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmBone),
+ BoneExtracellular, pulse::ComputationalLifeVascularLink::RightArmBoneVascularToTissue);
RightArmBoneVascularToTissue.MapPath(RightArmBone1ToBoneT2);
- SELiquidCompartmentLink& RightLegBoneVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegBone),
- BoneExtracellular, pulse::ExpandedVascularLink::RightLegBoneVascularToTissue);
+ SELiquidCompartmentLink& RightLegBoneVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegBone),
+ BoneExtracellular, pulse::ComputationalLifeVascularLink::RightLegBoneVascularToTissue);
RightLegBoneVascularToTissue.MapPath(RightLegBone1ToBoneT2);
SELiquidCompartmentLink& BoneTissueToLymph = m_Compartments->CreateLiquidLink(BoneExtracellular, cLymph, pulse::LymphLink::BoneTissueToLymph);
@@ -2908,7 +2908,7 @@ namespace pulse
///////////
// Brain //
- SEFluidCircuitNode* Intracranial2 = cCombinedCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::Intracranial2);
+ SEFluidCircuitNode* Intracranial2 = cCombinedCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::Intracranial2);
SEFluidCircuitNode& BrainT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::BrainT1);
SEFluidCircuitNode& BrainT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::BrainT2);
SEFluidCircuitNode& BrainT3 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::BrainT3);
@@ -2916,16 +2916,16 @@ namespace pulse
BrainT3.GetPressure().Set(Ground->GetPressure());
BrainT1.GetVolumeBaseline().SetValue(BrainEWFraction * BrainTissueVolume * 1000.0, VolumeUnit::mL);
- SEFluidCircuitPath& Intracranial1ToBrainT2 = cCombinedCardiovascular.CreatePath(*Intracranial2, BrainT2, pulse::ExpandedCardiovascularTissuePath::Intracranial2ToBrainT2);
+ SEFluidCircuitPath& Intracranial1ToBrainT2 = cCombinedCardiovascular.CreatePath(*Intracranial2, BrainT2, pulse::ComputationalLifeTissuePath::Intracranial2ToBrainT2);
Intracranial1ToBrainT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& BrainT2ToBrainT1 = cCombinedCardiovascular.CreatePath(BrainT2, BrainT1, pulse::ExpandedCardiovascularTissuePath::BrainT2ToBrainT1);
+ SEFluidCircuitPath& BrainT2ToBrainT1 = cCombinedCardiovascular.CreatePath(BrainT2, BrainT1, pulse::TissuePath::BrainT2ToBrainT1);
BrainT2ToBrainT1.GetResistanceBaseline().SetValue((1 / BrainTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& BrainT1ToBrainT3 = cCombinedCardiovascular.CreatePath(BrainT1, BrainT3, pulse::ExpandedCardiovascularTissuePath::BrainT1ToBrainT3);
+ SEFluidCircuitPath& BrainT1ToBrainT3 = cCombinedCardiovascular.CreatePath(BrainT1, BrainT3, pulse::TissuePath::BrainT1ToBrainT3);
BrainT1ToBrainT3.GetComplianceBaseline().SetValue(BrainT1.GetVolumeBaseline(VolumeUnit::mL) / BrainT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& GroundToBrainT3 = cCombinedCardiovascular.CreatePath(*Ground, BrainT3, pulse::ExpandedCardiovascularTissuePath::GroundToBrainT3);
+ SEFluidCircuitPath& GroundToBrainT3 = cCombinedCardiovascular.CreatePath(*Ground, BrainT3, pulse::TissuePath::GroundToBrainT3);
GroundToBrainT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& BrainT1ToLymph = cCombinedCardiovascular.CreatePath(BrainT1, Lymph, pulse::ExpandedCardiovascularTissuePath::BrainT1ToLymph);
+ SEFluidCircuitPath& BrainT1ToLymph = cCombinedCardiovascular.CreatePath(BrainT1, Lymph, pulse::TissuePath::BrainT1ToLymph);
BrainT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
SETissueCompartment& BrainTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::Brain);
@@ -2946,8 +2946,8 @@ namespace pulse
BrainTissue.GetTissueToPlasmaLipoproteinRatio().SetValue(BrainLRatio);
BrainTissue.GetTotalMass().SetValue(BrainTissueMass, MassUnit::kg);
- SELiquidCompartmentLink& BrainVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::Intracranial),
- BrainExtracellular, pulse::ExpandedVascularLink::BrainVascularToTissue);
+ SELiquidCompartmentLink& BrainVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::Intracranial),
+ BrainExtracellular, pulse::VascularLink::BrainVascularToTissue);
BrainVascularToTissue.MapPath(Intracranial1ToBrainT2);
SELiquidCompartmentLink& BrainTissueToLymph = m_Compartments->CreateLiquidLink(BrainExtracellular, cLymph, pulse::LymphLink::BrainTissueToLymph);
@@ -2955,9 +2955,9 @@ namespace pulse
/////////
// Gut //
- SEFluidCircuitNode* SmallIntestine = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::SmallIntestine1);
- SEFluidCircuitNode* LargeIntestine = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LargeIntestine1);
- SEFluidCircuitNode* Splanchnic = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::Splanchnic1);
+ SEFluidCircuitNode* SmallIntestine = cCardiovascular.GetNode(pulse::CardiovascularNode::SmallIntestine1);
+ SEFluidCircuitNode* LargeIntestine = cCardiovascular.GetNode(pulse::CardiovascularNode::LargeIntestine1);
+ SEFluidCircuitNode* Splanchnic = cCardiovascular.GetNode(pulse::CardiovascularNode::Splanchnic1);
SEFluidCircuitNode& GutT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::GutT1);
SEFluidCircuitNode& GutT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::GutT2);
SEFluidCircuitNode& GutT3 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::GutT3);
@@ -2965,20 +2965,20 @@ namespace pulse
GutT3.GetPressure().Set(Ground->GetPressure());
GutT1.GetVolumeBaseline().SetValue(GutEWFraction * GutTissueVolume * 1000.0, VolumeUnit::mL);
- SEFluidCircuitPath& SmallIntestine1ToGutT2 = cCombinedCardiovascular.CreatePath(*SmallIntestine, GutT2, pulse::ExpandedCardiovascularTissuePath::SmallIntestine1ToGutT2);
+ SEFluidCircuitPath& SmallIntestine1ToGutT2 = cCombinedCardiovascular.CreatePath(*SmallIntestine, GutT2, pulse::TissuePath::SmallIntestine1ToGutT2);
SmallIntestine1ToGutT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LargeIntestine1ToGutT2 = cCombinedCardiovascular.CreatePath(*LargeIntestine, GutT2, pulse::ExpandedCardiovascularTissuePath::LargeIntestine1ToGutT2);
+ SEFluidCircuitPath& LargeIntestine1ToGutT2 = cCombinedCardiovascular.CreatePath(*LargeIntestine, GutT2, pulse::TissuePath::LargeIntestine1ToGutT2);
LargeIntestine1ToGutT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& Splanchnic1ToGutT2 = cCombinedCardiovascular.CreatePath(*Splanchnic, GutT2, pulse::ExpandedCardiovascularTissuePath::Splanchnic1ToGutT2);
+ SEFluidCircuitPath& Splanchnic1ToGutT2 = cCombinedCardiovascular.CreatePath(*Splanchnic, GutT2, pulse::TissuePath::Splanchnic1ToGutT2);
Splanchnic1ToGutT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& GutT2ToGutT1 = cCombinedCardiovascular.CreatePath(GutT2, GutT1, pulse::ExpandedCardiovascularTissuePath::GutT2ToGutT1);
+ SEFluidCircuitPath& GutT2ToGutT1 = cCombinedCardiovascular.CreatePath(GutT2, GutT1, pulse::TissuePath::GutT2ToGutT1);
GutT2ToGutT1.GetResistanceBaseline().SetValue((1 / GutTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& GutT1ToGutT3 = cCombinedCardiovascular.CreatePath(GutT1, GutT3, pulse::ExpandedCardiovascularTissuePath::GutT1ToGutT3);
+ SEFluidCircuitPath& GutT1ToGutT3 = cCombinedCardiovascular.CreatePath(GutT1, GutT3, pulse::TissuePath::GutT1ToGutT3);
GutT1ToGutT3.GetComplianceBaseline().SetValue(GutT1.GetVolumeBaseline(VolumeUnit::mL) / GutT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& GroundToGutT3 = cCombinedCardiovascular.CreatePath(*Ground, GutT3, pulse::ExpandedCardiovascularTissuePath::GroundToGutT3);
+ SEFluidCircuitPath& GroundToGutT3 = cCombinedCardiovascular.CreatePath(*Ground, GutT3, pulse::TissuePath::GroundToGutT3);
GroundToGutT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& GutT1ToLymph = cCombinedCardiovascular.CreatePath(GutT1, Lymph, pulse::ExpandedCardiovascularTissuePath::GutT1ToLymph);
+ SEFluidCircuitPath& GutT1ToLymph = cCombinedCardiovascular.CreatePath(GutT1, Lymph, pulse::TissuePath::GutT1ToLymph);
GutT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
SETissueCompartment& GutTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::Gut);
@@ -2999,16 +2999,16 @@ namespace pulse
GutTissue.GetTissueToPlasmaLipoproteinRatio().SetValue(GutLRatio);
GutTissue.GetTotalMass().SetValue(GutTissueMass, MassUnit::kg);
- SELiquidCompartmentLink& SmallIntestineVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::SmallIntestine),
- GutExtracellular, pulse::ExpandedVascularLink::SmallIntestineVascularToTissue);
+ SELiquidCompartmentLink& SmallIntestineVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::SmallIntestine),
+ GutExtracellular, pulse::VascularLink::SmallIntestineVascularToTissue);
SmallIntestineVascularToTissue.MapPath(SmallIntestine1ToGutT2);
- SELiquidCompartmentLink& LargeIntestineVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::LargeIntestine),
- GutExtracellular, pulse::ExpandedVascularLink::LargeIntestineVascularToTissue);
+ SELiquidCompartmentLink& LargeIntestineVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::LargeIntestine),
+ GutExtracellular, pulse::VascularLink::LargeIntestineVascularToTissue);
LargeIntestineVascularToTissue.MapPath(LargeIntestine1ToGutT2);
- SELiquidCompartmentLink& SplanchnicVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::Splanchnic),
- GutExtracellular, pulse::ExpandedVascularLink::SplanchnicVascularToTissue);
+ SELiquidCompartmentLink& SplanchnicVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::Splanchnic),
+ GutExtracellular, pulse::VascularLink::SplanchnicVascularToTissue);
SplanchnicVascularToTissue.MapPath(Splanchnic1ToGutT2);
SELiquidCompartmentLink& GutTissueToLymph = m_Compartments->CreateLiquidLink(GutExtracellular, cLymph, pulse::LymphLink::GutTissueToLymph);
@@ -3017,10 +3017,10 @@ namespace pulse
/////////////////
// Left Kidney //
SEFluidCircuitNode* LeftKidney2;
- if (!m_Config->IsRenalEnabled())
- LeftKidney2 = cCombinedCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftKidney2);
- else
+ if (m_Config->UseExpandedKidneys() == eSwitch::On)
LeftKidney2 = cCombinedCardiovascular.GetNode(pulse::RenalNode::LeftGlomerularCapillaries);
+ else
+ LeftKidney2 = cCombinedCardiovascular.GetNode(pulse::CardiovascularNode::LeftKidney2);
SEFluidCircuitNode& LeftKidneyT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::LeftKidneyT1);
SEFluidCircuitNode& LeftKidneyT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::LeftKidneyT2);
@@ -3029,16 +3029,16 @@ namespace pulse
LeftKidneyT3.GetPressure().Set(Ground->GetPressure());
LeftKidneyT1.GetVolumeBaseline().SetValue(LKidneyEWFraction * LKidneyTissueVolume * 1000.0, VolumeUnit::mL);
- SEFluidCircuitPath& LeftKidney2ToLeftKidneyT2 = cCombinedCardiovascular.CreatePath(*LeftKidney2, LeftKidneyT2, pulse::ExpandedCardiovascularTissuePath::LeftKidney2ToLeftKidneyT2);
+ SEFluidCircuitPath& LeftKidney2ToLeftKidneyT2 = cCombinedCardiovascular.CreatePath(*LeftKidney2, LeftKidneyT2, pulse::ComputationalLifeTissuePath::LeftKidney2ToLeftKidneyT2);
LeftKidney2ToLeftKidneyT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LeftKidneyT2ToLeftKidneyT1 = cCombinedCardiovascular.CreatePath(LeftKidneyT2, LeftKidneyT1, pulse::ExpandedCardiovascularTissuePath::LeftKidneyT2ToLeftKidneyT1);
+ SEFluidCircuitPath& LeftKidneyT2ToLeftKidneyT1 = cCombinedCardiovascular.CreatePath(LeftKidneyT2, LeftKidneyT1, pulse::TissuePath::LeftKidneyT2ToLeftKidneyT1);
LeftKidneyT2ToLeftKidneyT1.GetResistanceBaseline().SetValue((1 / LKidneyTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftKidneyT1ToLeftKidneyT3 = cCombinedCardiovascular.CreatePath(LeftKidneyT1, LeftKidneyT3, pulse::ExpandedCardiovascularTissuePath::LeftKidneyT1ToLeftKidneyT3);
+ SEFluidCircuitPath& LeftKidneyT1ToLeftKidneyT3 = cCombinedCardiovascular.CreatePath(LeftKidneyT1, LeftKidneyT3, pulse::TissuePath::LeftKidneyT1ToLeftKidneyT3);
LeftKidneyT1ToLeftKidneyT3.GetComplianceBaseline().SetValue(LeftKidneyT1.GetVolumeBaseline(VolumeUnit::mL) / LeftKidneyT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& GroundToLeftKidneyT3 = cCombinedCardiovascular.CreatePath(*Ground, LeftKidneyT3, pulse::ExpandedCardiovascularTissuePath::GroundToLeftKidneyT3);
+ SEFluidCircuitPath& GroundToLeftKidneyT3 = cCombinedCardiovascular.CreatePath(*Ground, LeftKidneyT3, pulse::TissuePath::GroundToLeftKidneyT3);
GroundToLeftKidneyT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LeftKidneyT1ToLymph = cCombinedCardiovascular.CreatePath(LeftKidneyT1, Lymph, pulse::ExpandedCardiovascularTissuePath::LeftKidneyT1ToLymph);
+ SEFluidCircuitPath& LeftKidneyT1ToLymph = cCombinedCardiovascular.CreatePath(LeftKidneyT1, Lymph, pulse::TissuePath::LeftKidneyT1ToLymph);
LeftKidneyT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
SETissueCompartment& LeftKidneyTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::LeftKidney);
@@ -3059,8 +3059,8 @@ namespace pulse
LeftKidneyTissue.GetTissueToPlasmaLipoproteinRatio().SetValue(LKidneyLRatio);
LeftKidneyTissue.GetTotalMass().SetValue(LKidneyTissueMass, MassUnit::kg);
- SELiquidCompartmentLink& LeftKidneyVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftKidney),
- LeftKidneyExtracellular, pulse::ExpandedVascularLink::LeftKidneyVascularToTissue);
+ SELiquidCompartmentLink& LeftKidneyVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::LeftKidney),
+ LeftKidneyExtracellular, pulse::VascularLink::LeftKidneyVascularToTissue);
LeftKidneyVascularToTissue.MapPath(LeftKidney2ToLeftKidneyT2);
SELiquidCompartmentLink& LeftKidneyTissueToLymph = m_Compartments->CreateLiquidLink(LeftKidneyExtracellular, cLymph, pulse::LymphLink::LeftKidneyTissueToLymph);
@@ -3068,7 +3068,7 @@ namespace pulse
///////////////
// Left Lung //
- SEFluidCircuitNode* LeftPulmonaryCapillaries1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftPulmonaryCapillaries1);
+ SEFluidCircuitNode* LeftPulmonaryCapillaries1 = cCardiovascular.GetNode(pulse::CardiovascularNode::LeftPulmonaryCapillaries1);
SEFluidCircuitNode& LeftLungT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::LeftLungT1);
SEFluidCircuitNode& LeftLungT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::LeftLungT2);
SEFluidCircuitNode& LeftLungT3 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::LeftLungT3);
@@ -3076,16 +3076,16 @@ namespace pulse
LeftLungT3.GetPressure().Set(Ground->GetPressure());
LeftLungT1.GetVolumeBaseline().SetValue(LLungEWFraction * LLungTissueVolume * 1000.0, VolumeUnit::mL);
- SEFluidCircuitPath& LeftLung1ToLeftLungT2 = cCombinedCardiovascular.CreatePath(*LeftPulmonaryCapillaries1, LeftLungT2, pulse::ExpandedCardiovascularTissuePath::LeftLung1ToLeftLungT2);
+ SEFluidCircuitPath& LeftLung1ToLeftLungT2 = cCombinedCardiovascular.CreatePath(*LeftPulmonaryCapillaries1, LeftLungT2, pulse::TissuePath::LeftLung1ToLeftLungT2);
LeftLung1ToLeftLungT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LeftLungT2ToLeftLungT1 = cCombinedCardiovascular.CreatePath(LeftLungT2, LeftLungT1, pulse::ExpandedCardiovascularTissuePath::LeftLungT2ToLeftLungT1);
+ SEFluidCircuitPath& LeftLungT2ToLeftLungT1 = cCombinedCardiovascular.CreatePath(LeftLungT2, LeftLungT1, pulse::TissuePath::LeftLungT2ToLeftLungT1);
LeftLungT2ToLeftLungT1.GetResistanceBaseline().SetValue((1 / LLungTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LeftLungT1ToLeftLungT3 = cCombinedCardiovascular.CreatePath(LeftLungT1, LeftLungT3, pulse::ExpandedCardiovascularTissuePath::LeftLungT1ToLeftLungT3);
+ SEFluidCircuitPath& LeftLungT1ToLeftLungT3 = cCombinedCardiovascular.CreatePath(LeftLungT1, LeftLungT3, pulse::TissuePath::LeftLungT1ToLeftLungT3);
LeftLungT1ToLeftLungT3.GetComplianceBaseline().SetValue(LeftLungT1.GetVolumeBaseline(VolumeUnit::mL) / LeftLungT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& GroundToLeftLungT3 = cCombinedCardiovascular.CreatePath(*Ground, LeftLungT3, pulse::ExpandedCardiovascularTissuePath::GroundToLeftLungT3);
+ SEFluidCircuitPath& GroundToLeftLungT3 = cCombinedCardiovascular.CreatePath(*Ground, LeftLungT3, pulse::TissuePath::GroundToLeftLungT3);
GroundToLeftLungT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LeftLungT1ToLymph = cCombinedCardiovascular.CreatePath(LeftLungT1, Lymph, pulse::ExpandedCardiovascularTissuePath::LeftLungT1ToLymph);
+ SEFluidCircuitPath& LeftLungT1ToLymph = cCombinedCardiovascular.CreatePath(LeftLungT1, Lymph, pulse::TissuePath::LeftLungT1ToLymph);
LeftLungT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
SETissueCompartment& LeftLungTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::LeftLung);
@@ -3106,8 +3106,8 @@ namespace pulse
LeftLungTissue.GetTissueToPlasmaAlphaAcidGlycoproteinRatio().SetValue(LLungAAGRatio);
LeftLungTissue.GetTotalMass().SetValue(LLungTissueMass, MassUnit::kg);
- SELiquidCompartmentLink& LeftLungVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLung),
- LeftLungExtracellular, pulse::ExpandedVascularLink::LeftLungVascularToTissue);
+ SELiquidCompartmentLink& LeftLungVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::LeftLung),
+ LeftLungExtracellular, pulse::VascularLink::LeftLungVascularToTissue);
LeftLungVascularToTissue.MapPath(LeftLung1ToLeftLungT2);
SELiquidCompartmentLink& LeftLungTissueToLymph = m_Compartments->CreateLiquidLink(LeftLungExtracellular, cLymph, pulse::LymphLink::LeftLungTissueToLymph);
@@ -3115,7 +3115,7 @@ namespace pulse
///////////
// Liver //
- SEFluidCircuitNode* Liver1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::Liver1);
+ SEFluidCircuitNode* Liver1 = cCardiovascular.GetNode(pulse::CardiovascularNode::Liver1);
SEFluidCircuitNode& LiverT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::LiverT1);
SEFluidCircuitNode& LiverT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::LiverT2);
SEFluidCircuitNode& LiverT3 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::LiverT3);
@@ -3123,16 +3123,16 @@ namespace pulse
LiverT3.GetPressure().Set(Ground->GetPressure());
LiverT1.GetVolumeBaseline().SetValue(LiverEWFraction * LiverTissueVolume * 1000.0, VolumeUnit::mL);
- SEFluidCircuitPath& Liver1ToLiverT2 = cCombinedCardiovascular.CreatePath(*Liver1, LiverT2, pulse::ExpandedCardiovascularTissuePath::Liver1ToLiverT2);
+ SEFluidCircuitPath& Liver1ToLiverT2 = cCombinedCardiovascular.CreatePath(*Liver1, LiverT2, pulse::TissuePath::Liver1ToLiverT2);
Liver1ToLiverT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LiverT2ToLiverT1 = cCombinedCardiovascular.CreatePath(LiverT2, LiverT1, pulse::ExpandedCardiovascularTissuePath::LiverT2ToLiverT1);
+ SEFluidCircuitPath& LiverT2ToLiverT1 = cCombinedCardiovascular.CreatePath(LiverT2, LiverT1, pulse::TissuePath::LiverT2ToLiverT1);
LiverT2ToLiverT1.GetResistanceBaseline().SetValue((1 / LiverTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& LiverT1ToLiverT3 = cCombinedCardiovascular.CreatePath(LiverT1, LiverT3, pulse::ExpandedCardiovascularTissuePath::LiverT1ToLiverT3);
+ SEFluidCircuitPath& LiverT1ToLiverT3 = cCombinedCardiovascular.CreatePath(LiverT1, LiverT3, pulse::TissuePath::LiverT1ToLiverT3);
LiverT1ToLiverT3.GetComplianceBaseline().SetValue(LiverT1.GetVolumeBaseline(VolumeUnit::mL) / LiverT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& GroundToLiverT3 = cCombinedCardiovascular.CreatePath(*Ground, LiverT3, pulse::ExpandedCardiovascularTissuePath::GroundToLiverT3);
+ SEFluidCircuitPath& GroundToLiverT3 = cCombinedCardiovascular.CreatePath(*Ground, LiverT3, pulse::TissuePath::GroundToLiverT3);
GroundToLiverT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LiverT1ToLymph = cCombinedCardiovascular.CreatePath(LiverT1, Lymph, pulse::ExpandedCardiovascularTissuePath::LiverT1ToLymph);
+ SEFluidCircuitPath& LiverT1ToLymph = cCombinedCardiovascular.CreatePath(LiverT1, Lymph, pulse::TissuePath::LiverT1ToLymph);
LiverT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
SETissueCompartment& LiverTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::Liver);
@@ -3153,8 +3153,8 @@ namespace pulse
LiverTissue.GetTissueToPlasmaLipoproteinRatio().SetValue(LiverLRatio);
LiverTissue.GetTotalMass().SetValue(LiverTissueMass, MassUnit::kg);
- SELiquidCompartmentLink& LiverVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::Liver),
- LiverExtracellular, pulse::ExpandedVascularLink::LiverVascularToTissue);
+ SELiquidCompartmentLink& LiverVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::Liver),
+ LiverExtracellular, pulse::VascularLink::LiverVascularToTissue);
LiverVascularToTissue.MapPath(Liver1ToLiverT2);
SELiquidCompartmentLink& LiverTissueToLymph = m_Compartments->CreateLiquidLink(LiverExtracellular, cLymph, pulse::LymphLink::LiverTissueToLymph);
@@ -3162,11 +3162,11 @@ namespace pulse
////////////
// Muscle //
- SEFluidCircuitNode* TorsoMuscle1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::TorsoMuscle1);
- SEFluidCircuitNode* LeftArmMuscle1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftArmMuscle1);
- SEFluidCircuitNode* LeftLegMuscle1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftLegMuscle1);
- SEFluidCircuitNode* RightArmMuscle1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::RightArmMuscle1);
- SEFluidCircuitNode* RightLegMuscle1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::RightLegMuscle1);
+ SEFluidCircuitNode* TorsoMuscle1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::TorsoMuscle1);
+ SEFluidCircuitNode* LeftArmMuscle1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::LeftArmMuscle1);
+ SEFluidCircuitNode* LeftLegMuscle1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::LeftLegMuscle1);
+ SEFluidCircuitNode* RightArmMuscle1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::RightArmMuscle1);
+ SEFluidCircuitNode* RightLegMuscle1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::RightLegMuscle1);
SEFluidCircuitNode& MuscleT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::MuscleT1);
SEFluidCircuitNode& MuscleT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::MuscleT2);
SEFluidCircuitNode& MuscleT3 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::MuscleT3);
@@ -3174,24 +3174,24 @@ namespace pulse
MuscleT3.GetPressure().Set(Ground->GetPressure());
MuscleT1.GetVolumeBaseline().SetValue(MuscleEWFraction * MuscleTissueVolume * 1000.0, VolumeUnit::mL);
- SEFluidCircuitPath& TorsoMuscle1ToMuscleT2 = cCombinedCardiovascular.CreatePath(*TorsoMuscle1, MuscleT2, pulse::ExpandedCardiovascularTissuePath::TorsoMuscle1ToMuscleT2);
+ SEFluidCircuitPath& TorsoMuscle1ToMuscleT2 = cCombinedCardiovascular.CreatePath(*TorsoMuscle1, MuscleT2, pulse::ComputationalLifeTissuePath::TorsoMuscle1ToMuscleT2);
TorsoMuscle1ToMuscleT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LeftArmMuscle1ToMuscleT2 = cCombinedCardiovascular.CreatePath(*LeftArmMuscle1, MuscleT2, pulse::ExpandedCardiovascularTissuePath::LeftArmMuscle1ToMuscleT2);
+ SEFluidCircuitPath& LeftArmMuscle1ToMuscleT2 = cCombinedCardiovascular.CreatePath(*LeftArmMuscle1, MuscleT2, pulse::ComputationalLifeTissuePath::LeftArmMuscle1ToMuscleT2);
LeftArmMuscle1ToMuscleT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LeftLegMuscle1ToMuscleT2 = cCombinedCardiovascular.CreatePath(*LeftLegMuscle1, MuscleT2, pulse::ExpandedCardiovascularTissuePath::LeftLegMuscle1ToMuscleT2);
+ SEFluidCircuitPath& LeftLegMuscle1ToMuscleT2 = cCombinedCardiovascular.CreatePath(*LeftLegMuscle1, MuscleT2, pulse::ComputationalLifeTissuePath::LeftLegMuscle1ToMuscleT2);
LeftLegMuscle1ToMuscleT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& RightArmMuscle1ToMuscleT2 = cCombinedCardiovascular.CreatePath(*RightArmMuscle1, MuscleT2, pulse::ExpandedCardiovascularTissuePath::RightArmMuscle1ToMuscleT2);
+ SEFluidCircuitPath& RightArmMuscle1ToMuscleT2 = cCombinedCardiovascular.CreatePath(*RightArmMuscle1, MuscleT2, pulse::ComputationalLifeTissuePath::RightArmMuscle1ToMuscleT2);
RightArmMuscle1ToMuscleT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& RightLegMuscle1ToMuscleT2 = cCombinedCardiovascular.CreatePath(*RightLegMuscle1, MuscleT2, pulse::ExpandedCardiovascularTissuePath::RightLegMuscle1ToMuscleT2);
+ SEFluidCircuitPath& RightLegMuscle1ToMuscleT2 = cCombinedCardiovascular.CreatePath(*RightLegMuscle1, MuscleT2, pulse::ComputationalLifeTissuePath::RightLegMuscle1ToMuscleT2);
RightLegMuscle1ToMuscleT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& MuscleT2ToMuscleT1 = cCombinedCardiovascular.CreatePath(MuscleT2, MuscleT1, pulse::ExpandedCardiovascularTissuePath::MuscleT2ToMuscleT1);
+ SEFluidCircuitPath& MuscleT2ToMuscleT1 = cCombinedCardiovascular.CreatePath(MuscleT2, MuscleT1, pulse::TissuePath::MuscleT2ToMuscleT1);
MuscleT2ToMuscleT1.GetResistanceBaseline().SetValue((1 / MuscleTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& MuscleT1ToMuscleT3 = cCombinedCardiovascular.CreatePath(MuscleT1, MuscleT3, pulse::ExpandedCardiovascularTissuePath::MuscleT1ToMuscleT3);
+ SEFluidCircuitPath& MuscleT1ToMuscleT3 = cCombinedCardiovascular.CreatePath(MuscleT1, MuscleT3, pulse::TissuePath::MuscleT1ToMuscleT3);
MuscleT1ToMuscleT3.GetComplianceBaseline().SetValue(MuscleT1.GetVolumeBaseline(VolumeUnit::mL) / MuscleT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& GroundToMuscleT3 = cCombinedCardiovascular.CreatePath(*Ground, MuscleT3, pulse::ExpandedCardiovascularTissuePath::GroundToMuscleT3);
+ SEFluidCircuitPath& GroundToMuscleT3 = cCombinedCardiovascular.CreatePath(*Ground, MuscleT3, pulse::TissuePath::GroundToMuscleT3);
GroundToMuscleT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& MuscleT1ToLymph = cCombinedCardiovascular.CreatePath(MuscleT1, Lymph, pulse::ExpandedCardiovascularTissuePath::MuscleT1ToLymph);
+ SEFluidCircuitPath& MuscleT1ToLymph = cCombinedCardiovascular.CreatePath(MuscleT1, Lymph, pulse::TissuePath::MuscleT1ToLymph);
MuscleT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
SETissueCompartment& MuscleTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::Muscle);
@@ -3212,20 +3212,20 @@ namespace pulse
MuscleTissue.GetTissueToPlasmaLipoproteinRatio().SetValue(MuscleLRatio);
MuscleTissue.GetTotalMass().SetValue(MuscleTissueMass, MassUnit::kg);
- SELiquidCompartmentLink& TorsoMuscleVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoMuscle),
- MuscleExtracellular, pulse::ExpandedVascularLink::TorsoMuscleVascularToTissue);
+ SELiquidCompartmentLink& TorsoMuscleVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoMuscle),
+ MuscleExtracellular, pulse::ComputationalLifeVascularLink::TorsoMuscleVascularToTissue);
TorsoMuscleVascularToTissue.MapPath(TorsoMuscle1ToMuscleT2);
- SELiquidCompartmentLink& LeftArmMuscleVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmMuscle),
- MuscleExtracellular, pulse::ExpandedVascularLink::LeftArmMuscleVascularToTissue);
+ SELiquidCompartmentLink& LeftArmMuscleVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmMuscle),
+ MuscleExtracellular, pulse::ComputationalLifeVascularLink::LeftArmMuscleVascularToTissue);
LeftArmMuscleVascularToTissue.MapPath(LeftArmMuscle1ToMuscleT2);
- SELiquidCompartmentLink& LeftLegMuscleVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegMuscle),
- MuscleExtracellular, pulse::ExpandedVascularLink::LeftLegMuscleVascularToTissue);
+ SELiquidCompartmentLink& LeftLegMuscleVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegMuscle),
+ MuscleExtracellular, pulse::ComputationalLifeVascularLink::LeftLegMuscleVascularToTissue);
LeftLegMuscleVascularToTissue.MapPath(LeftLegMuscle1ToMuscleT2);
- SELiquidCompartmentLink& RightArmMuscleVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmMuscle),
- MuscleExtracellular, pulse::ExpandedVascularLink::RightArmMuscleVascularToTissue);
+ SELiquidCompartmentLink& RightArmMuscleVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmMuscle),
+ MuscleExtracellular, pulse::ComputationalLifeVascularLink::RightArmMuscleVascularToTissue);
RightArmMuscleVascularToTissue.MapPath(RightArmMuscle1ToMuscleT2);
- SELiquidCompartmentLink& RightLegMuscleVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegMuscle),
- MuscleExtracellular, pulse::ExpandedVascularLink::RightLegMuscleVascularToTissue);
+ SELiquidCompartmentLink& RightLegMuscleVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegMuscle),
+ MuscleExtracellular, pulse::ComputationalLifeVascularLink::RightLegMuscleVascularToTissue);
RightLegMuscleVascularToTissue.MapPath(RightLegMuscle1ToMuscleT2);
SELiquidCompartmentLink& MuscleTissueToLymph = m_Compartments->CreateLiquidLink(MuscleExtracellular, cLymph, pulse::LymphLink::MuscleTissueToLymph);
@@ -3233,7 +3233,7 @@ namespace pulse
////////////////
// Myocardium //
- SEFluidCircuitNode* Myocardium2 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::Myocardium2);
+ SEFluidCircuitNode* Myocardium2 = cCardiovascular.GetNode(pulse::CardiovascularNode::Myocardium2);
SEFluidCircuitNode& MyocardiumT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::MyocardiumT1);
SEFluidCircuitNode& MyocardiumT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::MyocardiumT2);
SEFluidCircuitNode& MyocardiumT3 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::MyocardiumT3);
@@ -3241,16 +3241,16 @@ namespace pulse
MyocardiumT3.GetPressure().Set(Ground->GetPressure());
MyocardiumT1.GetVolumeBaseline().SetValue(MyocardiumEWFraction * MyocardiumTissueVolume * 1000.0, VolumeUnit::mL);
- SEFluidCircuitPath& Myocardium2ToMyocardiumT2 = cCombinedCardiovascular.CreatePath(*Myocardium2, MyocardiumT2, pulse::ExpandedCardiovascularTissuePath::Myocardium2ToMyocardiumT2);
+ SEFluidCircuitPath& Myocardium2ToMyocardiumT2 = cCombinedCardiovascular.CreatePath(*Myocardium2, MyocardiumT2, pulse::ComputationalLifeTissuePath::Myocardium2ToMyocardiumT2);
Myocardium2ToMyocardiumT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& MyocardiumT2ToMyocardiumT1 = cCombinedCardiovascular.CreatePath(MyocardiumT2, MyocardiumT1, pulse::ExpandedCardiovascularTissuePath::MyocardiumT2ToMyocardiumT1);
+ SEFluidCircuitPath& MyocardiumT2ToMyocardiumT1 = cCombinedCardiovascular.CreatePath(MyocardiumT2, MyocardiumT1, pulse::TissuePath::MyocardiumT2ToMyocardiumT1);
MyocardiumT2ToMyocardiumT1.GetResistanceBaseline().SetValue((1 / MyocardiumTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& MyocardiumT1ToMyocardiumT3 = cCombinedCardiovascular.CreatePath(MyocardiumT1, MyocardiumT3, pulse::ExpandedCardiovascularTissuePath::MyocardiumT1ToMyocardiumT3);
+ SEFluidCircuitPath& MyocardiumT1ToMyocardiumT3 = cCombinedCardiovascular.CreatePath(MyocardiumT1, MyocardiumT3, pulse::TissuePath::MyocardiumT1ToMyocardiumT3);
MyocardiumT1ToMyocardiumT3.GetComplianceBaseline().SetValue(MyocardiumT1.GetVolumeBaseline(VolumeUnit::mL) / MyocardiumT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& GroundToMyocardiumT3 = cCombinedCardiovascular.CreatePath(*Ground, MyocardiumT3, pulse::ExpandedCardiovascularTissuePath::GroundToMyocardiumT3);
+ SEFluidCircuitPath& GroundToMyocardiumT3 = cCombinedCardiovascular.CreatePath(*Ground, MyocardiumT3, pulse::TissuePath::GroundToMyocardiumT3);
GroundToMyocardiumT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& MyocardiumT1ToLymph = cCombinedCardiovascular.CreatePath(MyocardiumT1, Lymph, pulse::ExpandedCardiovascularTissuePath::MyocardiumT1ToLymph);
+ SEFluidCircuitPath& MyocardiumT1ToLymph = cCombinedCardiovascular.CreatePath(MyocardiumT1, Lymph, pulse::TissuePath::MyocardiumT1ToLymph);
MyocardiumT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
SETissueCompartment& MyocardiumTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::Myocardium);
@@ -3271,8 +3271,8 @@ namespace pulse
MyocardiumTissue.GetTissueToPlasmaLipoproteinRatio().SetValue(MyocardiumLRatio);
MyocardiumTissue.GetTotalMass().SetValue(MyocardiumTissueMass, MassUnit::kg);
- SELiquidCompartmentLink& MyocardiumVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::Myocardium),
- MyocardiumExtracellular, pulse::ExpandedVascularLink::MyocardiumVascularToTissue);
+ SELiquidCompartmentLink& MyocardiumVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::Myocardium),
+ MyocardiumExtracellular, pulse::VascularLink::MyocardiumVascularToTissue);
MyocardiumVascularToTissue.MapPath(Myocardium2ToMyocardiumT2);
SELiquidCompartmentLink& MyocardiumTissueToLymph = m_Compartments->CreateLiquidLink(MyocardiumExtracellular, cLymph, pulse::LymphLink::MyocardiumTissueToLymph);
@@ -3281,10 +3281,10 @@ namespace pulse
//////////////////
// Right Kidney //
SEFluidCircuitNode* RightKidney2;
- if (!m_Config->IsRenalEnabled())
- RightKidney2 = cCombinedCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::RightKidney2);
- else
+ if (m_Config->UseExpandedKidneys() == eSwitch::On)
RightKidney2 = cCombinedCardiovascular.GetNode(pulse::RenalNode::RightGlomerularCapillaries);
+ else
+ RightKidney2 = cCombinedCardiovascular.GetNode(pulse::CardiovascularNode::RightKidney2);
SEFluidCircuitNode& RightKidneyT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::RightKidneyT1);
SEFluidCircuitNode& RightKidneyT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::RightKidneyT2);
@@ -3293,16 +3293,16 @@ namespace pulse
RightKidneyT3.GetPressure().Set(Ground->GetPressure());
RightKidneyT1.GetVolumeBaseline().SetValue(RKidneyEWFraction * RKidneyTissueVolume * 1000.0, VolumeUnit::mL);
- SEFluidCircuitPath& RightKidney2ToRightKidneyT2 = cCombinedCardiovascular.CreatePath(*RightKidney2, RightKidneyT2, pulse::ExpandedCardiovascularTissuePath::RightKidney2ToRightKidneyT2);
+ SEFluidCircuitPath& RightKidney2ToRightKidneyT2 = cCombinedCardiovascular.CreatePath(*RightKidney2, RightKidneyT2, pulse::ComputationalLifeTissuePath::RightKidney2ToRightKidneyT2);
RightKidney2ToRightKidneyT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& RightKidneyT2ToRightKidneyT1 = cCombinedCardiovascular.CreatePath(RightKidneyT2, RightKidneyT1, pulse::ExpandedCardiovascularTissuePath::RightKidneyT2ToRightKidneyT1);
+ SEFluidCircuitPath& RightKidneyT2ToRightKidneyT1 = cCombinedCardiovascular.CreatePath(RightKidneyT2, RightKidneyT1, pulse::TissuePath::RightKidneyT2ToRightKidneyT1);
RightKidneyT2ToRightKidneyT1.GetResistanceBaseline().SetValue((1 / RKidneyTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightKidneyT1ToRightKidneyT3 = cCombinedCardiovascular.CreatePath(RightKidneyT1, RightKidneyT3, pulse::ExpandedCardiovascularTissuePath::RightKidneyT1ToRightKidneyT3);
+ SEFluidCircuitPath& RightKidneyT1ToRightKidneyT3 = cCombinedCardiovascular.CreatePath(RightKidneyT1, RightKidneyT3, pulse::TissuePath::RightKidneyT1ToRightKidneyT3);
RightKidneyT1ToRightKidneyT3.GetComplianceBaseline().SetValue(RightKidneyT1.GetVolumeBaseline(VolumeUnit::mL) / RightKidneyT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& GroundToRightKidneyT3 = cCombinedCardiovascular.CreatePath(*Ground, RightKidneyT3, pulse::ExpandedCardiovascularTissuePath::GroundToRightKidneyT3);
+ SEFluidCircuitPath& GroundToRightKidneyT3 = cCombinedCardiovascular.CreatePath(*Ground, RightKidneyT3, pulse::TissuePath::GroundToRightKidneyT3);
GroundToRightKidneyT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& RightKidneyT1ToLymph = cCombinedCardiovascular.CreatePath(RightKidneyT1, Lymph, pulse::ExpandedCardiovascularTissuePath::RightKidneyT1ToLymph);
+ SEFluidCircuitPath& RightKidneyT1ToLymph = cCombinedCardiovascular.CreatePath(RightKidneyT1, Lymph, pulse::TissuePath::RightKidneyT1ToLymph);
RightKidneyT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
SETissueCompartment& RightKidneyTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::RightKidney);
@@ -3323,8 +3323,8 @@ namespace pulse
RightKidneyTissue.GetTissueToPlasmaLipoproteinRatio().SetValue(RKidneyLRatio);
RightKidneyTissue.GetTotalMass().SetValue(RKidneyTissueMass, MassUnit::kg);
- SELiquidCompartmentLink& RightKidneyVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightKidney),
- RightKidneyExtracellular, pulse::ExpandedVascularLink::RightKidneyVascularToTissue);
+ SELiquidCompartmentLink& RightKidneyVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::RightKidney),
+ RightKidneyExtracellular, pulse::VascularLink::RightKidneyVascularToTissue);
RightKidneyVascularToTissue.MapPath(RightKidney2ToRightKidneyT2);
SELiquidCompartmentLink& RightKidneyTissueToLymph = m_Compartments->CreateLiquidLink(RightKidneyExtracellular, cLymph, pulse::LymphLink::RightKidneyTissueToLymph);
@@ -3332,7 +3332,7 @@ namespace pulse
////////////////
// Right Lung //
- SEFluidCircuitNode* RightPulmonaryCapillaries1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::RightPulmonaryCapillaries1);
+ SEFluidCircuitNode* RightPulmonaryCapillaries1 = cCardiovascular.GetNode(pulse::CardiovascularNode::RightPulmonaryCapillaries1);
SEFluidCircuitNode& RightLungT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::RightLungT1);
SEFluidCircuitNode& RightLungT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::RightLungT2);
SEFluidCircuitNode& RightLungT3 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::RightLungT3);
@@ -3340,16 +3340,16 @@ namespace pulse
RightLungT3.GetPressure().Set(Ground->GetPressure());
RightLungT1.GetVolumeBaseline().SetValue(RLungEWFraction * RLungTissueVolume * 1000.0, VolumeUnit::mL);
- SEFluidCircuitPath& RightLung1ToRightLungT2 = cCombinedCardiovascular.CreatePath(*RightPulmonaryCapillaries1, RightLungT2, pulse::ExpandedCardiovascularTissuePath::RightLung1ToRightLungT2);
+ SEFluidCircuitPath& RightLung1ToRightLungT2 = cCombinedCardiovascular.CreatePath(*RightPulmonaryCapillaries1, RightLungT2, pulse::TissuePath::RightLung1ToRightLungT2);
RightLung1ToRightLungT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& RightLungT2ToRightLungT1 = cCombinedCardiovascular.CreatePath(RightLungT2, RightLungT1, pulse::ExpandedCardiovascularTissuePath::RightLungT2ToRightLungT1);
+ SEFluidCircuitPath& RightLungT2ToRightLungT1 = cCombinedCardiovascular.CreatePath(RightLungT2, RightLungT1, pulse::TissuePath::RightLungT2ToRightLungT1);
RightLungT2ToRightLungT1.GetResistanceBaseline().SetValue((1 / RLungTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& RightLungT1ToRightLungT3 = cCombinedCardiovascular.CreatePath(RightLungT1, RightLungT3, pulse::ExpandedCardiovascularTissuePath::RightLungT1ToRightLungT3);
+ SEFluidCircuitPath& RightLungT1ToRightLungT3 = cCombinedCardiovascular.CreatePath(RightLungT1, RightLungT3, pulse::TissuePath::RightLungT1ToRightLungT3);
RightLungT1ToRightLungT3.GetComplianceBaseline().SetValue(RightLungT1.GetVolumeBaseline(VolumeUnit::mL) / RightLungT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& GroundToRightLungT3 = cCombinedCardiovascular.CreatePath(*Ground, RightLungT3, pulse::ExpandedCardiovascularTissuePath::GroundToRightLungT3);
+ SEFluidCircuitPath& GroundToRightLungT3 = cCombinedCardiovascular.CreatePath(*Ground, RightLungT3, pulse::TissuePath::GroundToRightLungT3);
GroundToRightLungT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& RightLungT1ToLymph = cCombinedCardiovascular.CreatePath(RightLungT1, Lymph, pulse::ExpandedCardiovascularTissuePath::RightLungT1ToLymph);
+ SEFluidCircuitPath& RightLungT1ToLymph = cCombinedCardiovascular.CreatePath(RightLungT1, Lymph, pulse::TissuePath::RightLungT1ToLymph);
RightLungT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
SETissueCompartment& RightLungTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::RightLung);
@@ -3370,8 +3370,8 @@ namespace pulse
RightLungTissue.GetTissueToPlasmaLipoproteinRatio().SetValue(RLungLRatio);
RightLungTissue.GetTotalMass().SetValue(RLungTissueMass, MassUnit::kg);
- SELiquidCompartmentLink& RightLungVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightLung),
- RightLungExtracellular, pulse::ExpandedVascularLink::RightLungVascularToTissue);
+ SELiquidCompartmentLink& RightLungVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::RightLung),
+ RightLungExtracellular, pulse::VascularLink::RightLungVascularToTissue);
RightLungVascularToTissue.MapPath(RightLung1ToRightLungT2);
SELiquidCompartmentLink& RightLungTissueToLymph = m_Compartments->CreateLiquidLink(RightLungExtracellular, cLymph, pulse::LymphLink::RightLungTissueToLymph);
@@ -3379,11 +3379,11 @@ namespace pulse
//////////
// Skin //
- SEFluidCircuitNode* TorsoSkin1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::TorsoSkin1);
- SEFluidCircuitNode* LeftArmSkin1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftArmSkin1);
- SEFluidCircuitNode* LeftLegSkin1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::LeftLegSkin1);
- SEFluidCircuitNode* RightArmSkin1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::RightArmSkin1);
- SEFluidCircuitNode* RightLegSkin1 = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::RightLegSkin1);
+ SEFluidCircuitNode* TorsoSkin1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::TorsoSkin1);
+ SEFluidCircuitNode* LeftArmSkin1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::LeftArmSkin1);
+ SEFluidCircuitNode* LeftLegSkin1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::LeftLegSkin1);
+ SEFluidCircuitNode* RightArmSkin1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::RightArmSkin1);
+ SEFluidCircuitNode* RightLegSkin1 = cCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::RightLegSkin1);
SEFluidCircuitNode& SkinT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::SkinT1);
SEFluidCircuitNode& SkinT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::SkinT2);
SEFluidCircuitNode& SkinT3 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::SkinT3);
@@ -3391,27 +3391,27 @@ namespace pulse
SkinT3.GetPressure().Set(Ground->GetPressure());
SkinT1.GetVolumeBaseline().SetValue(SkinEWFraction * SkinTissueVolume * 1000.0, VolumeUnit::mL);
- SEFluidCircuitPath& TorsoSkin1ToSkinT2 = cCombinedCardiovascular.CreatePath(*TorsoSkin1, SkinT2, pulse::ExpandedCardiovascularTissuePath::TorsoSkin1ToSkinT2);
+ SEFluidCircuitPath& TorsoSkin1ToSkinT2 = cCombinedCardiovascular.CreatePath(*TorsoSkin1, SkinT2, pulse::ComputationalLifeTissuePath::TorsoSkin1ToSkinT2);
TorsoSkin1ToSkinT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LeftArmSkin1ToSkinT2 = cCombinedCardiovascular.CreatePath(*LeftArmSkin1, SkinT2, pulse::ExpandedCardiovascularTissuePath::LeftArmSkin1ToSkinT2);
+ SEFluidCircuitPath& LeftArmSkin1ToSkinT2 = cCombinedCardiovascular.CreatePath(*LeftArmSkin1, SkinT2, pulse::ComputationalLifeTissuePath::LeftArmSkin1ToSkinT2);
LeftArmSkin1ToSkinT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& LeftLegSkin1ToSkinT2 = cCombinedCardiovascular.CreatePath(*LeftLegSkin1, SkinT2, pulse::ExpandedCardiovascularTissuePath::LeftLegSkin1ToSkinT2);
+ SEFluidCircuitPath& LeftLegSkin1ToSkinT2 = cCombinedCardiovascular.CreatePath(*LeftLegSkin1, SkinT2, pulse::ComputationalLifeTissuePath::LeftLegSkin1ToSkinT2);
LeftLegSkin1ToSkinT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& RightArmSkin1ToSkinT2 = cCombinedCardiovascular.CreatePath(*RightArmSkin1, SkinT2, pulse::ExpandedCardiovascularTissuePath::RightArmSkin1ToSkinT2);
+ SEFluidCircuitPath& RightArmSkin1ToSkinT2 = cCombinedCardiovascular.CreatePath(*RightArmSkin1, SkinT2, pulse::ComputationalLifeTissuePath::RightArmSkin1ToSkinT2);
RightArmSkin1ToSkinT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& RightLegSkin1ToSkinT2 = cCombinedCardiovascular.CreatePath(*RightLegSkin1, SkinT2, pulse::ExpandedCardiovascularTissuePath::RightLegSkin1ToSkinT2);
+ SEFluidCircuitPath& RightLegSkin1ToSkinT2 = cCombinedCardiovascular.CreatePath(*RightLegSkin1, SkinT2, pulse::ComputationalLifeTissuePath::RightLegSkin1ToSkinT2);
RightLegSkin1ToSkinT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& SkinT2ToSkinT1 = cCombinedCardiovascular.CreatePath(SkinT2, SkinT1, pulse::ExpandedCardiovascularTissuePath::SkinT2ToSkinT1);
+ SEFluidCircuitPath& SkinT2ToSkinT1 = cCombinedCardiovascular.CreatePath(SkinT2, SkinT1, pulse::TissuePath::SkinT2ToSkinT1);
SkinT2ToSkinT1.GetResistanceBaseline().SetValue((1 / SkinTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& SkinT1ToSkinT3 = cCombinedCardiovascular.CreatePath(SkinT1, SkinT3, pulse::ExpandedCardiovascularTissuePath::SkinT1ToSkinT3);
+ SEFluidCircuitPath& SkinT1ToSkinT3 = cCombinedCardiovascular.CreatePath(SkinT1, SkinT3, pulse::TissuePath::SkinT1ToSkinT3);
SkinT1ToSkinT3.GetComplianceBaseline().SetValue(SkinT1.GetVolumeBaseline(VolumeUnit::mL) / SkinT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& GroundToSkinT3 = cCombinedCardiovascular.CreatePath(*Ground, SkinT3, pulse::ExpandedCardiovascularTissuePath::GroundToSkinT3);
+ SEFluidCircuitPath& GroundToSkinT3 = cCombinedCardiovascular.CreatePath(*Ground, SkinT3, pulse::TissuePath::GroundToSkinT3);
GroundToSkinT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& SkinT1ToLymph = cCombinedCardiovascular.CreatePath(SkinT1, Lymph, pulse::ExpandedCardiovascularTissuePath::SkinT1ToLymph);
+ SEFluidCircuitPath& SkinT1ToLymph = cCombinedCardiovascular.CreatePath(SkinT1, Lymph, pulse::TissuePath::SkinT1ToLymph);
SkinT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
- SEFluidCircuitPath& SkinT1ToGround = cCombinedCardiovascular.CreatePath(SkinT1, *Ground, pulse::ExpandedCardiovascularTissuePath::SkinSweating);
+ SEFluidCircuitPath& SkinT1ToGround = cCombinedCardiovascular.CreatePath(SkinT1, *Ground, pulse::TissuePath::SkinSweating);
SkinT1ToGround.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
SETissueCompartment& SkinTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::Skin);
@@ -3432,20 +3432,20 @@ namespace pulse
SkinTissue.GetTissueToPlasmaLipoproteinRatio().SetValue(SkinLRatio);
SkinTissue.GetTotalMass().SetValue(SkinTissueMass, MassUnit::kg);
- SELiquidCompartmentLink& TorsoSkinVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoSkin),
- SkinExtracellular, pulse::ExpandedVascularLink::TorsoSkinVascularToTissue);
+ SELiquidCompartmentLink& TorsoSkinVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoSkin),
+ SkinExtracellular, pulse::ComputationalLifeVascularLink::TorsoSkinVascularToTissue);
TorsoSkinVascularToTissue.MapPath(TorsoSkin1ToSkinT2);
- SELiquidCompartmentLink& LeftArmSkinVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmSkin),
- SkinExtracellular, pulse::ExpandedVascularLink::LeftArmSkinVascularToTissue);
+ SELiquidCompartmentLink& LeftArmSkinVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmSkin),
+ SkinExtracellular, pulse::ComputationalLifeVascularLink::LeftArmSkinVascularToTissue);
LeftArmSkinVascularToTissue.MapPath(LeftArmSkin1ToSkinT2);
- SELiquidCompartmentLink& LeftLegSkinVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegSkin),
- SkinExtracellular, pulse::ExpandedVascularLink::LeftLegSkinVascularToTissue);
+ SELiquidCompartmentLink& LeftLegSkinVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegSkin),
+ SkinExtracellular, pulse::ComputationalLifeVascularLink::LeftLegSkinVascularToTissue);
LeftLegSkinVascularToTissue.MapPath(LeftLegSkin1ToSkinT2);
- SELiquidCompartmentLink& RightArmSkinVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmSkin),
- SkinExtracellular, pulse::ExpandedVascularLink::RightArmSkinVascularToTissue);
+ SELiquidCompartmentLink& RightArmSkinVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmSkin),
+ SkinExtracellular, pulse::ComputationalLifeVascularLink::RightArmSkinVascularToTissue);
RightArmSkinVascularToTissue.MapPath(RightArmSkin1ToSkinT2);
- SELiquidCompartmentLink& RightLegSkinVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegSkin),
- SkinExtracellular, pulse::ExpandedVascularLink::RightLegSkinVascularToTissue);
+ SELiquidCompartmentLink& RightLegSkinVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegSkin),
+ SkinExtracellular, pulse::ComputationalLifeVascularLink::RightLegSkinVascularToTissue);
RightLegSkinVascularToTissue.MapPath(RightLegSkin1ToSkinT2);
SELiquidCompartmentLink& SkinTissueToLymph = m_Compartments->CreateLiquidLink(SkinExtracellular, cLymph, pulse::LymphLink::SkinTissueToLymph);
@@ -3453,7 +3453,7 @@ namespace pulse
////////////
// Spleen //
- SEFluidCircuitNode* Spleen = cCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::Spleen1);
+ SEFluidCircuitNode* Spleen = cCardiovascular.GetNode(pulse::CardiovascularNode::Spleen1);
SEFluidCircuitNode& SpleenT1 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::SpleenT1);
SEFluidCircuitNode& SpleenT2 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::SpleenT2);
SEFluidCircuitNode& SpleenT3 = cCombinedCardiovascular.CreateNode(pulse::TissueNode::SpleenT3);
@@ -3461,16 +3461,16 @@ namespace pulse
SpleenT3.GetPressure().Set(Ground->GetPressure());
SpleenT1.GetVolumeBaseline().SetValue(SpleenEWFraction * SpleenTissueVolume * 1000.0, VolumeUnit::mL);
- SEFluidCircuitPath& Spleen1ToSpleenT2 = cCombinedCardiovascular.CreatePath(*Spleen, SpleenT2, pulse::ExpandedCardiovascularTissuePath::Spleen1ToSpleenT2);
+ SEFluidCircuitPath& Spleen1ToSpleenT2 = cCombinedCardiovascular.CreatePath(*Spleen, SpleenT2, pulse::TissuePath::Spleen1ToSpleenT2);
Spleen1ToSpleenT2.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& SpleenT2ToSpleenT1 = cCombinedCardiovascular.CreatePath(SpleenT2, SpleenT1, pulse::ExpandedCardiovascularTissuePath::SpleenT2ToSpleenT1);
+ SEFluidCircuitPath& SpleenT2ToSpleenT1 = cCombinedCardiovascular.CreatePath(SpleenT2, SpleenT1, pulse::TissuePath::SpleenT2ToSpleenT1);
SpleenT2ToSpleenT1.GetResistanceBaseline().SetValue((1 / SpleenTissueMass) * resistanceConstant, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- SEFluidCircuitPath& SpleenT1ToSpleenT3 = cCombinedCardiovascular.CreatePath(SpleenT1, SpleenT3, pulse::ExpandedCardiovascularTissuePath::SpleenT1ToSpleenT3);
+ SEFluidCircuitPath& SpleenT1ToSpleenT3 = cCombinedCardiovascular.CreatePath(SpleenT1, SpleenT3, pulse::TissuePath::SpleenT1ToSpleenT3);
SpleenT1ToSpleenT3.GetComplianceBaseline().SetValue(SpleenT1.GetVolumeBaseline(VolumeUnit::mL) / SpleenT1.GetPressure(PressureUnit::mmHg), VolumePerPressureUnit::mL_Per_mmHg);
- SEFluidCircuitPath& GroundToSpleenT3 = cCombinedCardiovascular.CreatePath(*Ground, SpleenT3, pulse::ExpandedCardiovascularTissuePath::GroundToSpleenT3);
+ SEFluidCircuitPath& GroundToSpleenT3 = cCombinedCardiovascular.CreatePath(*Ground, SpleenT3, pulse::TissuePath::GroundToSpleenT3);
GroundToSpleenT3.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
- SEFluidCircuitPath& SpleenT1ToLymph = cCombinedCardiovascular.CreatePath(SpleenT1, Lymph, pulse::ExpandedCardiovascularTissuePath::SpleenT1ToLymph);
+ SEFluidCircuitPath& SpleenT1ToLymph = cCombinedCardiovascular.CreatePath(SpleenT1, Lymph, pulse::TissuePath::SpleenT1ToLymph);
SpleenT1ToLymph.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
SETissueCompartment& SpleenTissue = m_Compartments->CreateTissueCompartment(pulse::TissueCompartment::Spleen);
@@ -3491,8 +3491,8 @@ namespace pulse
SpleenTissue.GetTissueToPlasmaLipoproteinRatio().SetValue(SpleenLRatio);
SpleenTissue.GetTotalMass().SetValue(SpleenTissueMass, MassUnit::kg);
- SELiquidCompartmentLink& SpleenVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::ExpandedVascularCompartment::Spleen),
- SpleenExtracellular, pulse::ExpandedVascularLink::SpleenVascularToTissue);
+ SELiquidCompartmentLink& SpleenVascularToTissue = m_Compartments->CreateLiquidLink(*m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::Spleen),
+ SpleenExtracellular, pulse::VascularLink::SpleenVascularToTissue);
SpleenVascularToTissue.MapPath(Spleen1ToSpleenT2);
SELiquidCompartmentLink& SpleenTissueToLymph = m_Compartments->CreateLiquidLink(SpleenExtracellular, cLymph, pulse::LymphLink::SpleenTissueToLymph);
@@ -3503,18 +3503,18 @@ namespace pulse
}
- void Controller::SetupExpandedCardiovascularCerebrospinalFluid()
+ void Controller::SetupComputationalLifeCerebrospinalFluid()
{
- Info("Setting Up Expanded Cardiovascular Cerebrospinal Fluid");
+ Info("Setting Up ComputationalLife Cerebrospinal Fluid");
SEFluidCircuit& cCombinedCardiovascular = m_Circuits->GetActiveCardiovascularCircuit();
- SEFluidCircuitNode* Ground = cCombinedCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::Ground);
- SEFluidCircuitNode* Intracranial2 = cCombinedCardiovascular.GetNode(pulse::ExpandedCardiovascularNode::Intracranial2);
+ SEFluidCircuitNode* Ground = cCombinedCardiovascular.GetNode(pulse::CardiovascularNode::Ground);
+ SEFluidCircuitNode* Intracranial2 = cCombinedCardiovascular.GetNode(pulse::ComputationalLifeCardiovascularNode::Intracranial2);
- double brainVascularCompliance = cCombinedCardiovascular.GetPath(pulse::ExpandedCardiovascularPath::Intracranial2ToGround)->GetComplianceBaseline().GetValue(VolumePerPressureUnit::mL_Per_mmHg);
+ double brainVascularCompliance = cCombinedCardiovascular.GetPath(pulse::ComputationalLifeCardiovascularPath::Intracranial2ToGround)->GetComplianceBaseline().GetValue(VolumePerPressureUnit::mL_Per_mmHg);
double brainVascularPressure = Intracranial2->GetPressure().GetValue(PressureUnit::mmHg);
- m_Circuits->DeleteFluidPath(pulse::ExpandedCardiovascularPath::Intracranial2ToGround);
+ m_Circuits->DeleteFluidPath(pulse::ComputationalLifeCardiovascularPath::Intracranial2ToGround);
SEFluidCircuitNode& VascularCSFBarrier = cCombinedCardiovascular.CreateNode(pulse::CerebrospinalFluidNode::VascularCSFBarrier);
VascularCSFBarrier.GetPressure().SetValue(brainVascularPressure, PressureUnit::mmHg);
diff --git a/src/cpp/engine/common/controller/SetupExpandedLungs.cpp b/src/cpp/engine/common/controller/SetupExpandedLungs.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8710443cb37d2070d2012070de1745545efc9987
--- /dev/null
+++ b/src/cpp/engine/common/controller/SetupExpandedLungs.cpp
@@ -0,0 +1,2994 @@
+/* Distributed under the Apache License, Version 2.0.
+ See accompanying NOTICE file for details.*/
+
+#include "engine/PulseConfiguration.h"
+#include "engine/common/controller/Controller.h"
+#include "engine/common/controller/CircuitManager.h"
+#include "engine/common/controller/CompartmentManager.h"
+
+#include "cdm/circuit/SECircuitManager.h"
+#include "cdm/circuit/fluid/SEFluidCircuit.h"
+#include "cdm/circuit/fluid/SEFluidCircuitNode.h"
+#include "cdm/circuit/fluid/SEFluidCircuitPath.h"
+#include "cdm/compartment/fluid/SELiquidCompartment.h"
+#include "cdm/compartment/fluid/SELiquidCompartmentLink.h"
+#include "cdm/compartment/fluid/SELiquidCompartmentGraph.h"
+#include "cdm/compartment/fluid/SEGasCompartment.h"
+#include "cdm/compartment/fluid/SEGasCompartmentLink.h"
+#include "cdm/compartment/fluid/SEGasCompartmentGraph.h"
+#include "cdm/patient/SEPatient.h"
+#include "cdm/properties/SEScalar0To1.h"
+#include "cdm/properties/SEScalarArea.h"
+#include "cdm/properties/SEScalarFrequency.h"
+#include "cdm/properties/SEScalarLength.h"
+#include "cdm/properties/SEScalarMass.h"
+#include "cdm/properties/SEScalarMassPerMass.h"
+
+namespace pulse
+{
+ void Controller::SetupExpandedLungsRespiratory()
+ {
+ Info("Setting Up Expanded Lungs Respiratory");
+ double RightLungRatio = m_InitialPatient->GetRightLungRatio().GetValue();
+ double LeftLungRatio = 1 - RightLungRatio;
+
+ SEFluidCircuit& cRespiratory = m_Circuits->GetRespiratoryCircuit();
+ SEFluidCircuitNode& Ambient = *m_Circuits->GetFluidNode(pulse::EnvironmentNode::Ambient);
+ cRespiratory.AddNode(Ambient);
+
+ //Input parameters
+ const double RespiratorySystemCompliance_L_Per_cmH20 = 0.1; /// \cite Levitzky2013pulmonary
+ const double RespiratorySideCompliance_L_Per_cmH2O = RespiratorySystemCompliance_L_Per_cmH20 / 2.0; //compliances in parallel sum, so divide by 2 for each lung
+ const double LungCompliance_L_Per_cmH2O = 2.0 * RespiratorySideCompliance_L_Per_cmH2O; //compliances in series, so multiply by 2 for equal split
+ const double ChestWallCompliance_L_Per_cmH2O = LungCompliance_L_Per_cmH2O; // =0.1 L/cmH2O each /// \cite kacmarek2016egan p233
+ const double IntrapleuralPressure_cmH2O = -5.0; /// \cite Levitzky2013pulmonary
+ //const double TotalAirwayResistance_cmH2O_s_Per_L = 1.5; /// \cite Levitzky2013pulmonary
+
+ //Should add up to 100% of total airway resistance
+ /// \cite kacmarek2016egan
+ // const double TracheaResistanceFraction = 0.5;
+ // TracheaResistanceFraction is implied
+ //const double BronchiResistanceFraction = 0.3;
+ //const double AlveoliDuctResistanceFraction = 0.2;
+
+ double functionalResidualCapacity_L = m_InitialPatient->GetFunctionalResidualCapacity(VolumeUnit::L);
+ double anatomicDeadSpaceVolume_L = 0.002 * m_InitialPatient->GetWeight(MassUnit::kg); /// \cite Levitzky2013pulmonary
+ double alveolarDeadSpaceVolume_L = 0.001; //Should change with certain diseases /// \cite Levitzky2013pulmonary
+ double physiologicDeadSpaceVolume_L = anatomicDeadSpaceVolume_L + alveolarDeadSpaceVolume_L;
+ //double pleuralVolume_L = 20.0 / 1000.0; //this is a liquid volume /// \cite Levitzky2013pulmonary
+ double pleuralVolume_L = functionalResidualCapacity_L; //Make this a gas volume to mimic the liquid volume
+ double alveoliVolume_L = functionalResidualCapacity_L - physiologicDeadSpaceVolume_L;
+
+ double openResistance_cmH2O_s_Per_L = m_Config->GetDefaultOpenFlowResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+
+ SEFluidCircuitNode& RightMainBronchus = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightMainBronchus);
+ SEFluidCircuitNode& LeftMainBronchus = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftMainBronchus);
+ SEFluidCircuitNode& RightIntermediateBronchus = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightIntermediateBronchus);
+ SEFluidCircuitNode& RightSuperiorLobarBronchus = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorLobarBronchus);
+ SEFluidCircuitNode& RightMiddleLobarBronchus = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightMiddleLobarBronchus);
+ SEFluidCircuitNode& RightInferiorLobarBronchus1 = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobarBronchus1);
+ SEFluidCircuitNode& LeftInferiorLobarBronchus1 = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobarBronchus1);
+ SEFluidCircuitNode& LeftSuperiorLobarBronchus = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobarBronchus);
+ SEFluidCircuitNode& RightInferiorLobarBronchus2 = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobarBronchus2);
+ SEFluidCircuitNode& LeftInferiorLobarBronchus2 = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobarBronchus2);
+ SEFluidCircuitNode& RightSuperiorApicoposteriorBronchus = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorApicoposteriorBronchus);
+ SEFluidCircuitNode& RightInferiorLobarBronchus3 = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobarBronchus3);
+ SEFluidCircuitNode& LeftInferiorLobarBronchus3 = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobarBronchus3);
+ SEFluidCircuitNode& LeftLingularBonchus = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftLingularBonchus);
+ SEFluidCircuitNode& LeftSuperiorApicoposteriorBronchus = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorApicoposteriorBronchus);
+ SEFluidCircuitNode& RightInferiorLobarBronchus4 = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobarBronchus4);
+
+ SEFluidCircuitNode& RightSuperiorLobeApicalBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorLobeApicalBronchiole);
+ SEFluidCircuitNode& RightSuperiorLobePosteriorBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorLobePosteriorBronchiole);
+ SEFluidCircuitNode& RightSuperiorLobeAnteriorBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorLobeAnteriorBronchiole);
+ SEFluidCircuitNode& RightMiddleLobeLateralBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightMiddleLobeLateralBronchiole);
+ SEFluidCircuitNode& RightMiddleLobeMedialBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightMiddleLobeMedialBronchiole);
+ SEFluidCircuitNode& RightInferiorLobeSuperiorBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeSuperiorBronchiole);
+ SEFluidCircuitNode& RightInferiorLobeMedialBasalBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeMedialBasalBronchiole);
+ SEFluidCircuitNode& RightInferiorLobeAnteriorBasalBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeAnteriorBasalBronchiole);
+ SEFluidCircuitNode& RightInferiorLobeLateralBasalBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeLateralBasalBronchiole);
+ SEFluidCircuitNode& RightInferiorLobePosteriorBasalBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobePosteriorBasalBronchiole);
+ SEFluidCircuitNode& LeftInferiorLobePosteriorBasalBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobePosteriorBasalBronchiole);
+ SEFluidCircuitNode& LeftInferiorLobeLateralBasalBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobeLateralBasalBronchiole);
+ SEFluidCircuitNode& LeftInferiorLobeAnteromedialBasalBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobeAnteromedialBasalBronchiole);
+ SEFluidCircuitNode& LeftInferiorLobeSuperiorBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobeSuperiorBronchiole);
+ SEFluidCircuitNode& LeftSuperiorLobeInferiorLingulaBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeInferiorLingulaBronchiole);
+ SEFluidCircuitNode& LeftSuperiorLobeSuperiorLingulaBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeSuperiorLingulaBronchiole);
+ SEFluidCircuitNode& LeftSuperiorLobeAnteriorBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeAnteriorBronchiole);
+ SEFluidCircuitNode& LeftSuperiorLobeApicoposteriorBronchiole = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeApicoposteriorBronchiole);
+
+ SEFluidCircuitNode& RightSuperiorLobeApicalAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorLobeApicalAlveolarDeadSpace);
+ SEFluidCircuitNode& RightSuperiorLobePosteriorAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorLobePosteriorAlveolarDeadSpace);
+ SEFluidCircuitNode& RightSuperiorLobeAnteriorAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorLobeAnteriorAlveolarDeadSpace);
+ SEFluidCircuitNode& RightMiddleLobeLateralAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightMiddleLobeLateralAlveolarDeadSpace);
+ SEFluidCircuitNode& RightMiddleLobeMedialAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightMiddleLobeMedialAlveolarDeadSpace);
+ SEFluidCircuitNode& RightInferiorLobeSuperiorAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeSuperiorAlveolarDeadSpace);
+ SEFluidCircuitNode& RightInferiorLobeMedialBasalAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeMedialBasalAlveolarDeadSpace);
+ SEFluidCircuitNode& RightInferiorLobeAnteriorBasalAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeAnteriorBasalAlveolarDeadSpace);
+ SEFluidCircuitNode& RightInferiorLobeLateralBasalAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeLateralBasalAlveolarDeadSpace);
+ SEFluidCircuitNode& RightInferiorLobePosteriorBasalAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobePosteriorBasalAlveolarDeadSpace);
+ SEFluidCircuitNode& LeftInferiorLobePosteriorBasalAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobePosteriorBasalAlveolarDeadSpace);
+ SEFluidCircuitNode& LeftInferiorLobeLateralBasalAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobeLateralBasalAlveolarDeadSpace);
+ SEFluidCircuitNode& LeftInferiorLobeAnteromedialBasalAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
+ SEFluidCircuitNode& LeftInferiorLobeSuperiorAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobeSuperiorAlveolarDeadSpace);
+ SEFluidCircuitNode& LeftSuperiorLobeInferiorLingulaAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
+ SEFluidCircuitNode& LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
+ SEFluidCircuitNode& LeftSuperiorLobeAnteriorAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeAnteriorAlveolarDeadSpace);
+ SEFluidCircuitNode& LeftSuperiorLobeApicoposteriorAlveolarDeadSpace = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
+
+ SEFluidCircuitNode& RightSuperiorLobeApicalAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorLobeApicalAlveoli);
+ SEFluidCircuitNode& RightSuperiorLobePosteriorAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorLobePosteriorAlveoli);
+ SEFluidCircuitNode& RightSuperiorLobeAnteriorAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorLobeAnteriorAlveoli);
+ SEFluidCircuitNode& RightMiddleLobeLateralAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightMiddleLobeLateralAlveoli);
+ SEFluidCircuitNode& RightMiddleLobeMedialAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightMiddleLobeMedialAlveoli);
+ SEFluidCircuitNode& RightInferiorLobeSuperiorAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeSuperiorAlveoli);
+ SEFluidCircuitNode& RightInferiorLobeMedialBasalAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeMedialBasalAlveoli);
+ SEFluidCircuitNode& RightInferiorLobeAnteriorBasalAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeAnteriorBasalAlveoli);
+ SEFluidCircuitNode& RightInferiorLobeLateralBasalAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeLateralBasalAlveoli);
+ SEFluidCircuitNode& RightInferiorLobePosteriorBasalAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobePosteriorBasalAlveoli);
+ SEFluidCircuitNode& LeftInferiorLobePosteriorBasalAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobePosteriorBasalAlveoli);
+ SEFluidCircuitNode& LeftInferiorLobeLateralBasalAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobeLateralBasalAlveoli);
+ SEFluidCircuitNode& LeftInferiorLobeAnteromedialBasalAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobeAnteromedialBasalAlveoli);
+ SEFluidCircuitNode& LeftInferiorLobeSuperiorAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobeSuperiorAlveoli);
+ SEFluidCircuitNode& LeftSuperiorLobeInferiorLingulaAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeInferiorLingulaAlveoli);
+ SEFluidCircuitNode& LeftSuperiorLobeSuperiorLingulaAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeSuperiorLingulaAlveoli);
+ SEFluidCircuitNode& LeftSuperiorLobeAnteriorAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeAnteriorAlveoli);
+ SEFluidCircuitNode& LeftSuperiorLobeApicoposteriorAlveoli = cRespiratory.CreateNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeApicoposteriorAlveoli);
+
+ RightMainBronchus.GetPressure().Set(Ambient.GetNextPressure());
+ LeftMainBronchus.GetPressure().Set(Ambient.GetNextPressure());
+ RightIntermediateBronchus.GetPressure().Set(Ambient.GetNextPressure());
+ RightSuperiorLobarBronchus.GetPressure().Set(Ambient.GetNextPressure());
+ RightMiddleLobarBronchus.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobarBronchus1.GetPressure().Set(Ambient.GetNextPressure());
+ LeftInferiorLobarBronchus1.GetPressure().Set(Ambient.GetNextPressure());
+ LeftSuperiorLobarBronchus.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobarBronchus2.GetPressure().Set(Ambient.GetNextPressure());
+ LeftInferiorLobarBronchus2.GetPressure().Set(Ambient.GetNextPressure());
+ RightSuperiorApicoposteriorBronchus.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobarBronchus3.GetPressure().Set(Ambient.GetNextPressure());
+ LeftInferiorLobarBronchus3.GetPressure().Set(Ambient.GetNextPressure());
+ LeftLingularBonchus.GetPressure().Set(Ambient.GetNextPressure());
+ LeftSuperiorApicoposteriorBronchus.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobarBronchus4.GetPressure().Set(Ambient.GetNextPressure());
+
+ RightSuperiorLobeApicalBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ RightSuperiorLobePosteriorBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ RightSuperiorLobeAnteriorBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ RightMiddleLobeLateralBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ RightMiddleLobeMedialBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobeSuperiorBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobeMedialBasalBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobeAnteriorBasalBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobeLateralBasalBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobePosteriorBasalBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ LeftInferiorLobePosteriorBasalBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ LeftInferiorLobeLateralBasalBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ LeftInferiorLobeAnteromedialBasalBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ LeftInferiorLobeSuperiorBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ LeftSuperiorLobeInferiorLingulaBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ LeftSuperiorLobeSuperiorLingulaBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ LeftSuperiorLobeAnteriorBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+ LeftSuperiorLobeApicoposteriorBronchiole.GetPressure().Set(Ambient.GetNextPressure());
+
+ RightSuperiorLobeApicalAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ RightSuperiorLobePosteriorAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ RightSuperiorLobeAnteriorAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ RightMiddleLobeLateralAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ RightMiddleLobeMedialAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobeSuperiorAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobeMedialBasalAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobeAnteriorBasalAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobeLateralBasalAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobePosteriorBasalAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ LeftInferiorLobePosteriorBasalAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ LeftInferiorLobeLateralBasalAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ LeftInferiorLobeAnteromedialBasalAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ LeftInferiorLobeSuperiorAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ LeftSuperiorLobeInferiorLingulaAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ LeftSuperiorLobeAnteriorAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+ LeftSuperiorLobeApicoposteriorAlveolarDeadSpace.GetPressure().Set(Ambient.GetNextPressure());
+
+ RightSuperiorLobeApicalAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ RightSuperiorLobePosteriorAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ RightSuperiorLobeAnteriorAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ RightMiddleLobeLateralAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ RightMiddleLobeMedialAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobeSuperiorAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobeMedialBasalAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobeAnteriorBasalAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobeLateralBasalAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ RightInferiorLobePosteriorBasalAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ LeftInferiorLobePosteriorBasalAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ LeftInferiorLobeLateralBasalAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ LeftInferiorLobeAnteromedialBasalAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ LeftInferiorLobeSuperiorAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ LeftSuperiorLobeInferiorLingulaAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ LeftSuperiorLobeSuperiorLingulaAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ LeftSuperiorLobeAnteriorAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+ LeftSuperiorLobeApicoposteriorAlveoli.GetPressure().Set(Ambient.GetNextPressure());
+
+ double TracheaVolume_Percent = 13.40;
+ double RightMainBronchusVolume_Percent = 1.42;
+ double LeftMainBronchusVolume_Percent = 3.77;
+ double RightIntermediateBronchusVolume_Percent = 1.08;
+ double RightSuperiorLobarBronchusVolume_Percent = 0.44;
+ double RightMiddleLobarBronchusVolume_Percent = 0.30;
+ double RightInferiorLobarBronchus1Volume_Percent = 0.17;
+ double LeftInferiorLobarBronchus1Volume_Percent = 0.37;
+ double LeftSuperiorLobarBronchusVolume_Percent = 0.47;
+ double RightInferiorLobarBronchus2Volume_Percent = 0.16;
+ double LeftInferiorLobarBronchus2Volume_Percent = 0.40;
+ double RightSuperiorApicoposteriorBronchusVolume_Percent = 0.24;
+ double RightInferiorLobarBronchus3Volume_Percent = 0.30;
+ double LeftInferiorLobarBronchus3Volume_Percent = 0.12;
+ double LeftLingularBonchusVolume_Percent = 0.17;
+ double LeftSuperiorApicoposteriorBronchusVolume_Percent = 0.39;
+ double RightInferiorLobarBronchus4Volume_Percent = 0.19;
+
+ double RightSuperiorLobeApicalBronchioleVolume_Percent = 7.10;
+ double RightSuperiorLobePosteriorBronchioleVolume_Percent = 2.67;
+ double RightSuperiorLobeAnteriorBronchioleVolume_Percent = 5.73;
+ double RightMiddleLobeLateralBronchioleVolume_Percent = 2.22;
+ double RightMiddleLobeMedialBronchioleVolume_Percent = 4.81;
+ double RightInferiorLobeSuperiorBronchioleVolume_Percent = 4.74;
+ double RightInferiorLobeMedialBasalBronchioleVolume_Percent = 1.30;
+ double RightInferiorLobeAnteriorBasalBronchioleVolume_Percent = 4.20;
+ double RightInferiorLobeLateralBasalBronchioleVolume_Percent = 3.67;
+ double RightInferiorLobePosteriorBasalBronchioleVolume_Percent = 5.27;
+ double LeftInferiorLobePosteriorBasalBronchioleVolume_Percent = 4.28;
+ double LeftInferiorLobeLateralBasalBronchioleVolume_Percent = 4.89;
+ double LeftInferiorLobeAnteromedialBasalBronchioleVolume_Percent = 3.21;
+ double LeftInferiorLobeSuperiorBronchioleVolume_Percent = 3.90;
+ double LeftSuperiorLobeInferiorLingulaBronchioleVolume_Percent = 3.67;
+ double LeftSuperiorLobeSuperiorLingulaBronchioleVolume_Percent = 3.06;
+ double LeftSuperiorLobeAnteriorBronchioleVolume_Percent = 5.73;
+ double LeftSuperiorLobeApicoposteriorBronchioleVolume_Percent = 6.19;
+
+ double RightSuperiorLobeApicalAlveoliVolume_Percent = 9.3;
+ double RightSuperiorLobePosteriorAlveoliVolume_Percent = 3.5;
+ double RightSuperiorLobeAnteriorAlveoliVolume_Percent = 7.5;
+ double RightMiddleLobeLateralAlveoliVolume_Percent = 2.9;
+ double RightMiddleLobeMedialAlveoliVolume_Percent = 6.3;
+ double RightInferiorLobeSuperiorAlveoliVolume_Percent = 6.2;
+ double RightInferiorLobeMedialBasalAlveoliVolume_Percent = 1.7;
+ double RightInferiorLobeAnteriorBasalAlveoliVolume_Percent = 5.5;
+ double RightInferiorLobeLateralBasalAlveoliVolume_Percent = 4.8;
+ double RightInferiorLobePosteriorBasalAlveoliVolume_Percent = 6.9;
+ double LeftInferiorLobePosteriorBasalAlveoliVolume_Percent = 5.6;
+ double LeftInferiorLobeLateralBasalAlveoliVolume_Percent = 6.4;
+ double LeftInferiorLobeAnteromedialBasalAlveoliVolume_Percent = 4.2;
+ double LeftInferiorLobeSuperiorAlveoliVolume_Percent = 5.1;
+ double LeftSuperiorLobeInferiorLingulaAlveoliVolume_Percent = 4.8;
+ double LeftSuperiorLobeSuperiorLingulaAlveoliVolume_Percent = 4.0;
+ double LeftSuperiorLobeAnteriorAlveoliVolume_Percent = 7.5;
+ double LeftSuperiorLobeApicoposteriorAlveoliVolume_Percent = 8.1;
+
+ double remainingVolume_Percent = 100.0 - TracheaVolume_Percent;
+ RightMainBronchus.GetVolumeBaseline().SetValue(RightMainBronchusVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ LeftMainBronchus.GetVolumeBaseline().SetValue(LeftMainBronchusVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightIntermediateBronchus.GetVolumeBaseline().SetValue(RightIntermediateBronchusVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightSuperiorLobarBronchus.GetVolumeBaseline().SetValue(RightSuperiorLobarBronchusVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightMiddleLobarBronchus.GetVolumeBaseline().SetValue(RightMiddleLobarBronchusVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightInferiorLobarBronchus1.GetVolumeBaseline().SetValue(RightInferiorLobarBronchus1Volume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ LeftInferiorLobarBronchus1.GetVolumeBaseline().SetValue(LeftInferiorLobarBronchus1Volume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ LeftSuperiorLobarBronchus.GetVolumeBaseline().SetValue(LeftSuperiorLobarBronchusVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightInferiorLobarBronchus2.GetVolumeBaseline().SetValue(RightInferiorLobarBronchus2Volume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ LeftInferiorLobarBronchus2.GetVolumeBaseline().SetValue(LeftInferiorLobarBronchus2Volume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightSuperiorApicoposteriorBronchus.GetVolumeBaseline().SetValue(RightSuperiorApicoposteriorBronchusVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightInferiorLobarBronchus3.GetVolumeBaseline().SetValue(RightInferiorLobarBronchus3Volume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ LeftInferiorLobarBronchus3.GetVolumeBaseline().SetValue(LeftInferiorLobarBronchus3Volume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ LeftLingularBonchus.GetVolumeBaseline().SetValue(LeftLingularBonchusVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ LeftSuperiorApicoposteriorBronchus.GetVolumeBaseline().SetValue(LeftSuperiorApicoposteriorBronchusVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightInferiorLobarBronchus4.GetVolumeBaseline().SetValue(RightInferiorLobarBronchus4Volume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+
+ RightSuperiorLobeApicalBronchiole.GetVolumeBaseline().SetValue(RightSuperiorLobeApicalBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightSuperiorLobePosteriorBronchiole.GetVolumeBaseline().SetValue(RightSuperiorLobePosteriorBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightSuperiorLobeAnteriorBronchiole.GetVolumeBaseline().SetValue(RightSuperiorLobeAnteriorBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightMiddleLobeLateralBronchiole.GetVolumeBaseline().SetValue(RightMiddleLobeLateralBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightMiddleLobeMedialBronchiole.GetVolumeBaseline().SetValue(RightMiddleLobeMedialBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightInferiorLobeSuperiorBronchiole.GetVolumeBaseline().SetValue(RightInferiorLobeSuperiorBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightInferiorLobeMedialBasalBronchiole.GetVolumeBaseline().SetValue(RightInferiorLobeMedialBasalBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightInferiorLobeAnteriorBasalBronchiole.GetVolumeBaseline().SetValue(RightInferiorLobeAnteriorBasalBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightInferiorLobeLateralBasalBronchiole.GetVolumeBaseline().SetValue(RightInferiorLobeLateralBasalBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ RightInferiorLobePosteriorBasalBronchiole.GetVolumeBaseline().SetValue(RightInferiorLobePosteriorBasalBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ LeftInferiorLobePosteriorBasalBronchiole.GetVolumeBaseline().SetValue(LeftInferiorLobePosteriorBasalBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ LeftInferiorLobeLateralBasalBronchiole.GetVolumeBaseline().SetValue(LeftInferiorLobeLateralBasalBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ LeftInferiorLobeAnteromedialBasalBronchiole.GetVolumeBaseline().SetValue(LeftInferiorLobeAnteromedialBasalBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ LeftInferiorLobeSuperiorBronchiole.GetVolumeBaseline().SetValue(LeftInferiorLobeSuperiorBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ LeftSuperiorLobeInferiorLingulaBronchiole.GetVolumeBaseline().SetValue(LeftSuperiorLobeInferiorLingulaBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ LeftSuperiorLobeSuperiorLingulaBronchiole.GetVolumeBaseline().SetValue(LeftSuperiorLobeSuperiorLingulaBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ LeftSuperiorLobeAnteriorBronchiole.GetVolumeBaseline().SetValue(LeftSuperiorLobeAnteriorBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+ LeftSuperiorLobeApicoposteriorBronchiole.GetVolumeBaseline().SetValue(LeftSuperiorLobeApicoposteriorBronchioleVolume_Percent / remainingVolume_Percent * anatomicDeadSpaceVolume_L, VolumeUnit::L);
+
+ RightSuperiorLobeApicalAlveoli.GetVolumeBaseline().SetValue(RightSuperiorLobeApicalAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ RightSuperiorLobePosteriorAlveoli.GetVolumeBaseline().SetValue(RightSuperiorLobePosteriorAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ RightSuperiorLobeAnteriorAlveoli.GetVolumeBaseline().SetValue(RightSuperiorLobeAnteriorAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ RightMiddleLobeLateralAlveoli.GetVolumeBaseline().SetValue(RightMiddleLobeLateralAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ RightMiddleLobeMedialAlveoli.GetVolumeBaseline().SetValue(RightMiddleLobeMedialAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ RightInferiorLobeSuperiorAlveoli.GetVolumeBaseline().SetValue(RightInferiorLobeSuperiorAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ RightInferiorLobeMedialBasalAlveoli.GetVolumeBaseline().SetValue(RightInferiorLobeMedialBasalAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ RightInferiorLobeAnteriorBasalAlveoli.GetVolumeBaseline().SetValue(RightInferiorLobeAnteriorBasalAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ RightInferiorLobeLateralBasalAlveoli.GetVolumeBaseline().SetValue(RightInferiorLobeLateralBasalAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ RightInferiorLobePosteriorBasalAlveoli.GetVolumeBaseline().SetValue(RightInferiorLobePosteriorBasalAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ LeftInferiorLobePosteriorBasalAlveoli.GetVolumeBaseline().SetValue(LeftInferiorLobePosteriorBasalAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ LeftInferiorLobeLateralBasalAlveoli.GetVolumeBaseline().SetValue(LeftInferiorLobeLateralBasalAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ LeftInferiorLobeAnteromedialBasalAlveoli.GetVolumeBaseline().SetValue(LeftInferiorLobeAnteromedialBasalAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ LeftInferiorLobeSuperiorAlveoli.GetVolumeBaseline().SetValue(LeftInferiorLobeSuperiorAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ LeftSuperiorLobeInferiorLingulaAlveoli.GetVolumeBaseline().SetValue(LeftSuperiorLobeInferiorLingulaAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ LeftSuperiorLobeSuperiorLingulaAlveoli.GetVolumeBaseline().SetValue(LeftSuperiorLobeSuperiorLingulaAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ LeftSuperiorLobeAnteriorAlveoli.GetVolumeBaseline().SetValue(LeftSuperiorLobeAnteriorAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+ LeftSuperiorLobeApicoposteriorAlveoli.GetVolumeBaseline().SetValue(LeftSuperiorLobeApicoposteriorAlveoliVolume_Percent / 100.0 * alveoliVolume_L, VolumeUnit::L);
+
+ RightSuperiorLobeApicalAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ RightSuperiorLobePosteriorAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ RightSuperiorLobeAnteriorAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ RightMiddleLobeLateralAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ RightMiddleLobeMedialAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ RightInferiorLobeSuperiorAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ RightInferiorLobeMedialBasalAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ RightInferiorLobeAnteriorBasalAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ RightInferiorLobeLateralBasalAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ RightInferiorLobePosteriorBasalAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ LeftInferiorLobePosteriorBasalAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ LeftInferiorLobeLateralBasalAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ LeftInferiorLobeAnteromedialBasalAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ LeftInferiorLobeSuperiorAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ LeftSuperiorLobeInferiorLingulaAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ LeftSuperiorLobeAnteriorAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+ LeftSuperiorLobeApicoposteriorAlveolarDeadSpace.GetVolumeBaseline().SetValue(alveolarDeadSpaceVolume_L / 18.0, VolumeUnit::L);
+
+ // Airway
+ SEFluidCircuitNode& Airway = cRespiratory.CreateNode(pulse::RespiratoryNode::Airway);
+ Airway.GetPressure().Set(Ambient.GetNextPressure());
+ Airway.GetVolumeBaseline().SetValue(0.0206, VolumeUnit::L);
+ // Pharynx
+ SEFluidCircuitNode& Pharynx = cRespiratory.CreateNode(pulse::RespiratoryNode::Pharynx);
+ Pharynx.GetPressure().Set(Ambient.GetNextPressure());
+ Pharynx.GetVolumeBaseline().SetValue(0.001, VolumeUnit::L);
+ // Carina
+ SEFluidCircuitNode& Carina = cRespiratory.CreateNode(pulse::RespiratoryNode::Carina);
+ Carina.GetPressure().Set(Ambient.GetNextPressure());
+ Carina.GetVolumeBaseline().SetValue(TracheaVolume_Percent / 100.0 * anatomicDeadSpaceVolume_L, VolumeUnit::L); //Trachea Volume
+
+ // Right Pleural Connection - no volume, so it doesn't get modified by compliances
+ SEFluidCircuitNode& RightPleuralConnection = cRespiratory.CreateNode(pulse::RespiratoryNode::RightPleuralConnection);
+ RightPleuralConnection.GetPressure().SetValue(Ambient.GetNextPressure(PressureUnit::cmH2O) + IntrapleuralPressure_cmH2O, PressureUnit::cmH2O);
+ // Left Pleural Connection - no volume, so it doesn't get modified by compliances
+ SEFluidCircuitNode& LeftPleuralConnection = cRespiratory.CreateNode(pulse::RespiratoryNode::LeftPleuralConnection);
+ LeftPleuralConnection.GetPressure().SetValue(Ambient.GetNextPressure(PressureUnit::cmH2O) + IntrapleuralPressure_cmH2O, PressureUnit::cmH2O);
+ // Right Pleural
+ SEFluidCircuitNode& RightPleural = cRespiratory.CreateNode(pulse::RespiratoryNode::RightPleural);
+ RightPleural.GetPressure().SetValue(Ambient.GetNextPressure(PressureUnit::cmH2O) + IntrapleuralPressure_cmH2O, PressureUnit::cmH2O);
+ RightPleural.GetVolumeBaseline().SetValue(RightLungRatio * pleuralVolume_L, VolumeUnit::L);
+ // Left Pleural
+ SEFluidCircuitNode& LeftPleural = cRespiratory.CreateNode(pulse::RespiratoryNode::LeftPleural);
+ LeftPleural.GetPressure().SetValue(Ambient.GetNextPressure(PressureUnit::cmH2O) + IntrapleuralPressure_cmH2O, PressureUnit::cmH2O);
+ LeftPleural.GetVolumeBaseline().SetValue(LeftLungRatio * pleuralVolume_L, VolumeUnit::L);
+ // Respiratory Muscle - corresponds to a node representing the inspiratory muscles, particularly diaphragm
+ SEFluidCircuitNode& RespiratoryMuscle = cRespiratory.CreateNode(pulse::RespiratoryNode::RespiratoryMuscle);
+ RespiratoryMuscle.GetPressure().Set(Ambient.GetNextPressure());
+ // Stomach
+ SEFluidCircuitNode& Stomach = cRespiratory.CreateNode(pulse::RespiratoryNode::Stomach);
+ Stomach.GetPressure().Set(Ambient.GetNextPressure());
+ Stomach.GetVolumeBaseline().SetValue(0.1, VolumeUnit::L);
+
+ //-------------------------------------------------------------------------------------------------------------------------------------
+ // Environment to Airway connections, the path has no element.
+ double TracheaResistance_cmH2O_s_Per_L = 0.8;// Tuned from 1.125;
+ SEFluidCircuitPath& EnvironmentToAirway = cRespiratory.CreatePath(Ambient, Airway, pulse::RespiratoryPath::EnvironmentToAirway);
+ SEFluidCircuitPath& AirwayToPharynx = cRespiratory.CreatePath(Airway, Pharynx, pulse::RespiratoryPath::AirwayToPharynx);
+ SEFluidCircuitPath& PharynxToCarina = cRespiratory.CreatePath(Pharynx, Carina, pulse::RespiratoryPath::PharynxToCarina);
+ PharynxToCarina.GetResistanceBaseline().SetValue(TracheaResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ SEFluidCircuitPath& PharynxToEnvironment = cRespiratory.CreatePath(Pharynx, Ambient, pulse::RespiratoryPath::PharynxToEnvironment);
+ PharynxToEnvironment.GetResistanceBaseline().SetValue(openResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+
+ SEFluidCircuitPath& CarinaToRightMainBronchus = cRespiratory.CreatePath(Carina, RightMainBronchus, pulse::ExpandedLungsRespiratoryPath::CarinaToRightMainBronchus);
+ SEFluidCircuitPath& RightMainBronchusToRightIntermediateBronchus = cRespiratory.CreatePath(RightMainBronchus, RightIntermediateBronchus, pulse::ExpandedLungsRespiratoryPath::RightMainBronchusToRightIntermediateBronchus);
+ SEFluidCircuitPath& RightMainBronchusToRightSuperiorLobarBronchus = cRespiratory.CreatePath(RightMainBronchus, RightSuperiorLobarBronchus, pulse::ExpandedLungsRespiratoryPath::RightMainBronchusToRightSuperiorLobarBronchus);
+ SEFluidCircuitPath& RightIntermediateBronchusToRightMiddleLobarBronchus = cRespiratory.CreatePath(RightIntermediateBronchus, RightMiddleLobarBronchus, pulse::ExpandedLungsRespiratoryPath::RightIntermediateBronchusToRightMiddleLobarBronchus);
+ SEFluidCircuitPath& RightIntermediateBronchusToRightInferiorLobarBronchus1 = cRespiratory.CreatePath(RightIntermediateBronchus, RightInferiorLobarBronchus1, pulse::ExpandedLungsRespiratoryPath::RightIntermediateBronchusToRightInferiorLobarBronchus1);
+ SEFluidCircuitPath& RightInferiorLobarBronchus1ToRightInferiorLobarBronchus2 = cRespiratory.CreatePath(RightInferiorLobarBronchus1, RightInferiorLobarBronchus2, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobarBronchus1ToRightInferiorLobarBronchus2);
+ SEFluidCircuitPath& RightSuperiorLobarBronchusToRightSuperiorApicoposteriorBronchus = cRespiratory.CreatePath(RightSuperiorLobarBronchus, RightSuperiorApicoposteriorBronchus, pulse::ExpandedLungsRespiratoryPath::RightSuperiorLobarBronchusToRightSuperiorApicoposteriorBronchus);
+ SEFluidCircuitPath& RightInferiorLobarBronchus2ToRightInferiorLobarBronchus3 = cRespiratory.CreatePath(RightInferiorLobarBronchus2, RightInferiorLobarBronchus3, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobarBronchus2ToRightInferiorLobarBronchus3);
+ SEFluidCircuitPath& RightInferiorLobarBronchus2ToRightInferiorLobarBronchus4 = cRespiratory.CreatePath(RightInferiorLobarBronchus2, RightInferiorLobarBronchus4, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobarBronchus2ToRightInferiorLobarBronchus4);
+
+ SEFluidCircuitPath& CarinaToLeftMainBronchus = cRespiratory.CreatePath(Carina, LeftMainBronchus, pulse::ExpandedLungsRespiratoryPath::CarinaToLeftMainBronchus);
+ SEFluidCircuitPath& LeftMainBronchusToLeftInferiorLobarBronchus1 = cRespiratory.CreatePath(LeftMainBronchus, LeftInferiorLobarBronchus1, pulse::ExpandedLungsRespiratoryPath::LeftMainBronchusToLeftInferiorLobarBronchus1);
+ SEFluidCircuitPath& LeftMainBronchusToLeftSuperiorLobarBronchus = cRespiratory.CreatePath(LeftMainBronchus, LeftSuperiorLobarBronchus, pulse::ExpandedLungsRespiratoryPath::LeftMainBronchusToLeftSuperiorLobarBronchus);
+ SEFluidCircuitPath& LeftInferiorLobarBronchus1ToLeftInferiorLobarBronchus2 = cRespiratory.CreatePath(LeftInferiorLobarBronchus1, LeftInferiorLobarBronchus2, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobarBronchus1ToLeftInferiorLobarBronchus2);
+ SEFluidCircuitPath& LeftInferiorLobarBronchus2ToLeftInferiorLobarBronchus3 = cRespiratory.CreatePath(LeftInferiorLobarBronchus2, LeftInferiorLobarBronchus3, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobarBronchus2ToLeftInferiorLobarBronchus3);
+ SEFluidCircuitPath& LeftSuperiorLobarBronchusToLeftLingularBonchus = cRespiratory.CreatePath(LeftSuperiorLobarBronchus, LeftLingularBonchus, pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobarBronchusToLeftLingularBonchus);
+ SEFluidCircuitPath& LeftSuperiorLobarBronchusToLeftSuperiorApicoposteriorBronchus = cRespiratory.CreatePath(LeftSuperiorLobarBronchus, LeftSuperiorApicoposteriorBronchus, pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobarBronchusToLeftSuperiorApicoposteriorBronchus);
+
+ SEFluidCircuitPath& RightSuperiorApicoposteriorBronchusToRightSuperiorLobeApicalBronchiole = cRespiratory.CreatePath(RightSuperiorApicoposteriorBronchus, RightSuperiorLobeApicalBronchiole, pulse::ExpandedLungsRespiratoryPath::RightSuperiorApicoposteriorBronchusToRightSuperiorLobeApicalBronchiole);
+ SEFluidCircuitPath& RightSuperiorApicoposteriorBronchusToRightSuperiorLobePosteriorBronchiole = cRespiratory.CreatePath(RightSuperiorApicoposteriorBronchus, RightSuperiorLobePosteriorBronchiole, pulse::ExpandedLungsRespiratoryPath::RightSuperiorApicoposteriorBronchusToRightSuperiorLobePosteriorBronchiole);
+ SEFluidCircuitPath& RightSuperiorLobarBronchusToRightSuperiorLobeAnteriorBronchiole = cRespiratory.CreatePath(RightSuperiorLobarBronchus, RightSuperiorLobeAnteriorBronchiole, pulse::ExpandedLungsRespiratoryPath::RightSuperiorLobarBronchusToRightSuperiorLobeAnteriorBronchiole);
+ SEFluidCircuitPath& RightMiddleLobarBronchusToRightMiddleLobeLateralBronchiole = cRespiratory.CreatePath(RightMiddleLobarBronchus, RightMiddleLobeLateralBronchiole, pulse::ExpandedLungsRespiratoryPath::RightMiddleLobarBronchusToRightMiddleLobeLateralBronchiole);
+ SEFluidCircuitPath& RightMiddleLobarBronchusToRightMiddleLobeMedialBronchiole = cRespiratory.CreatePath(RightMiddleLobarBronchus, RightMiddleLobeMedialBronchiole, pulse::ExpandedLungsRespiratoryPath::RightMiddleLobarBronchusToRightMiddleLobeMedialBronchiole);
+ SEFluidCircuitPath& RightInferiorLobarBronchus1ToRightInferiorLobeSuperiorBronchiole = cRespiratory.CreatePath(RightInferiorLobarBronchus1, RightInferiorLobeSuperiorBronchiole, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobarBronchus1ToRightInferiorLobeSuperiorBronchiole);
+ SEFluidCircuitPath& RightInferiorLobarBronchus2ToRightInferiorLobeMedialBasalBronchiole = cRespiratory.CreatePath(RightInferiorLobarBronchus2, RightInferiorLobeMedialBasalBronchiole, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobarBronchus2ToRightInferiorLobeMedialBasalBronchiole);
+ SEFluidCircuitPath& RightInferiorLobarBronchus3ToRightInferiorLobeAnteriorBasalBronchiole = cRespiratory.CreatePath(RightInferiorLobarBronchus3, RightInferiorLobeAnteriorBasalBronchiole, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobarBronchus3ToRightInferiorLobeAnteriorBasalBronchiole);
+ SEFluidCircuitPath& RightInferiorLobarBronchus4ToRightInferiorLobeLateralBasalBronchiole = cRespiratory.CreatePath(RightInferiorLobarBronchus4, RightInferiorLobeLateralBasalBronchiole, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobarBronchus4ToRightInferiorLobeLateralBasalBronchiole);
+ SEFluidCircuitPath& RightInferiorLobarBronchus4ToRightInferiorLobePosteriorBasalBronchiole = cRespiratory.CreatePath(RightInferiorLobarBronchus4, RightInferiorLobePosteriorBasalBronchiole, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobarBronchus4ToRightInferiorLobePosteriorBasalBronchiole);
+
+ SEFluidCircuitPath& LeftInferiorLobarBronchus3ToLeftInferiorLobeLateralBasalBronchiole = cRespiratory.CreatePath(LeftInferiorLobarBronchus3, LeftInferiorLobeLateralBasalBronchiole, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobarBronchus3ToLeftInferiorLobeLateralBasalBronchiole);
+ SEFluidCircuitPath& LeftInferiorLobarBronchus3ToLeftInferiorLobePosteriorBasalBronchiole = cRespiratory.CreatePath(LeftInferiorLobarBronchus3, LeftInferiorLobePosteriorBasalBronchiole, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobarBronchus3ToLeftInferiorLobePosteriorBasalBronchiole);
+ SEFluidCircuitPath& LeftInferiorLobarBronchus2ToLeftInferiorLobeAnteromedialBasalBronchiole = cRespiratory.CreatePath(LeftInferiorLobarBronchus2, LeftInferiorLobeAnteromedialBasalBronchiole, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobarBronchus2ToLeftInferiorLobeAnteromedialBasalBronchiole);
+ SEFluidCircuitPath& LeftInferiorLobarBronchus1ToLeftInferiorLobeSuperiorBronchiole = cRespiratory.CreatePath(LeftInferiorLobarBronchus1, LeftInferiorLobeSuperiorBronchiole, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobarBronchus1ToLeftInferiorLobeSuperiorBronchiole);
+ SEFluidCircuitPath& LeftLingularBonchusToLeftSuperiorLobeInferiorLingulaBronchiole = cRespiratory.CreatePath(LeftLingularBonchus, LeftSuperiorLobeInferiorLingulaBronchiole, pulse::ExpandedLungsRespiratoryPath::LeftLingularBonchusToLeftSuperiorLobeInferiorLingulaBronchiole);
+ SEFluidCircuitPath& LeftLingularBonchusToLeftSuperiorLobeSuperiorLingulaBronchiole = cRespiratory.CreatePath(LeftLingularBonchus, LeftSuperiorLobeSuperiorLingulaBronchiole, pulse::ExpandedLungsRespiratoryPath::LeftLingularBonchusToLeftSuperiorLobeSuperiorLingulaBronchiole);
+ SEFluidCircuitPath& LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeAnteriorBronchiole = cRespiratory.CreatePath(LeftSuperiorApicoposteriorBronchus, LeftSuperiorLobeAnteriorBronchiole, pulse::ExpandedLungsRespiratoryPath::LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeAnteriorBronchiole);
+ SEFluidCircuitPath& LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeApicoposteriorBronchiole = cRespiratory.CreatePath(LeftSuperiorApicoposteriorBronchus, LeftSuperiorLobeApicoposteriorBronchiole, pulse::ExpandedLungsRespiratoryPath::LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeApicoposteriorBronchiole);
+
+ SEFluidCircuitPath& RightSuperiorLobeApicalBronchioleToRightSuperiorLobeApicalAlveolarDeadSpace = cRespiratory.CreatePath(RightSuperiorLobeApicalBronchiole, RightSuperiorLobeApicalAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::RightSuperiorLobeApicalBronchioleToRightSuperiorLobeApicalAlveolarDeadSpace);
+ SEFluidCircuitPath& RightSuperiorLobePosteriorBronchioleToRightSuperiorLobePosteriorAlveolarDeadSpace = cRespiratory.CreatePath(RightSuperiorLobePosteriorBronchiole, RightSuperiorLobePosteriorAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::RightSuperiorLobePosteriorBronchioleToRightSuperiorLobePosteriorAlveolarDeadSpace);
+ SEFluidCircuitPath& RightSuperiorLobeAnteriorBronchioleToRightSuperiorLobeAnteriorAlveolarDeadSpace = cRespiratory.CreatePath(RightSuperiorLobeAnteriorBronchiole, RightSuperiorLobeAnteriorAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::RightSuperiorLobeAnteriorBronchioleToRightSuperiorLobeAnteriorAlveolarDeadSpace);
+ SEFluidCircuitPath& RightMiddleLobeLateralBronchioleToRightMiddleLobeLateralAlveolarDeadSpace = cRespiratory.CreatePath(RightMiddleLobeLateralBronchiole, RightMiddleLobeLateralAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::RightMiddleLobeLateralBronchioleToRightMiddleLobeLateralAlveolarDeadSpace);
+ SEFluidCircuitPath& RightMiddleLobeMedialBronchioleToRightMiddleLobeMedialAlveolarDeadSpace = cRespiratory.CreatePath(RightMiddleLobeMedialBronchiole, RightMiddleLobeMedialAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::RightMiddleLobeMedialBronchioleToRightMiddleLobeMedialAlveolarDeadSpace);
+ SEFluidCircuitPath& RightInferiorLobeSuperiorBronchioleToRightInferiorLobeSuperiorAlveolarDeadSpace = cRespiratory.CreatePath(RightInferiorLobeSuperiorBronchiole, RightInferiorLobeSuperiorAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobeSuperiorBronchioleToRightInferiorLobeSuperiorAlveolarDeadSpace);
+ SEFluidCircuitPath& RightInferiorLobeMedialBasalBronchioleToRightInferiorLobeMedialBasalAlveolarDeadSpace = cRespiratory.CreatePath(RightInferiorLobeMedialBasalBronchiole, RightInferiorLobeMedialBasalAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobeMedialBasalBronchioleToRightInferiorLobeMedialBasalAlveolarDeadSpace);
+ SEFluidCircuitPath& RightInferiorLobeAnteriorBasalBronchioleToRightInferiorLobeAnteriorBasalAlveolarDeadSpace = cRespiratory.CreatePath(RightInferiorLobeAnteriorBasalBronchiole, RightInferiorLobeAnteriorBasalAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobeAnteriorBasalBronchioleToRightInferiorLobeAnteriorBasalAlveolarDeadSpace);
+ SEFluidCircuitPath& RightInferiorLobeLateralBasalBronchioleToRightInferiorLobeLateralBasalAlveolarDeadSpace = cRespiratory.CreatePath(RightInferiorLobeLateralBasalBronchiole, RightInferiorLobeLateralBasalAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobeLateralBasalBronchioleToRightInferiorLobeLateralBasalAlveolarDeadSpace);
+ SEFluidCircuitPath& RightInferiorLobePosteriorBasalBronchioleToRightInferiorLobePosteriorBasalAlveolarDeadSpace = cRespiratory.CreatePath(RightInferiorLobePosteriorBasalBronchiole, RightInferiorLobePosteriorBasalAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobePosteriorBasalBronchioleToRightInferiorLobePosteriorBasalAlveolarDeadSpace);
+
+ SEFluidCircuitPath& LeftInferiorLobePosteriorBasalBronchioleToLeftInferiorLobePosteriorBasalAlveolarDeadSpace = cRespiratory.CreatePath(LeftInferiorLobePosteriorBasalBronchiole, LeftInferiorLobePosteriorBasalAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobePosteriorBasalBronchioleToLeftInferiorLobePosteriorBasalAlveolarDeadSpace);
+ SEFluidCircuitPath& LeftInferiorLobeLateralBasalBronchioleToLeftInferiorLobeLateralBasalAlveolarDeadSpace = cRespiratory.CreatePath(LeftInferiorLobeLateralBasalBronchiole, LeftInferiorLobeLateralBasalAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobeLateralBasalBronchioleToLeftInferiorLobeLateralBasalAlveolarDeadSpace);
+ SEFluidCircuitPath& LeftInferiorLobeAnteromedialBasalBronchioleToLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace = cRespiratory.CreatePath(LeftInferiorLobeAnteromedialBasalBronchiole, LeftInferiorLobeAnteromedialBasalAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobeAnteromedialBasalBronchioleToLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
+ SEFluidCircuitPath& LeftInferiorLobeSuperiorBronchioleToLeftInferiorLobeSuperiorAlveolarDeadSpace = cRespiratory.CreatePath(LeftInferiorLobeSuperiorBronchiole, LeftInferiorLobeSuperiorAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobeSuperiorBronchioleToLeftInferiorLobeSuperiorAlveolarDeadSpace);
+ SEFluidCircuitPath& LeftSuperiorLobeInferiorLingulaBronchioleToLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace = cRespiratory.CreatePath(LeftSuperiorLobeInferiorLingulaBronchiole, LeftSuperiorLobeInferiorLingulaAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobeInferiorLingulaBronchioleToLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
+ SEFluidCircuitPath& LeftSuperiorLobeSuperiorLingulaBronchioleToLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace = cRespiratory.CreatePath(LeftSuperiorLobeSuperiorLingulaBronchiole, LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobeSuperiorLingulaBronchioleToLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
+ SEFluidCircuitPath& LeftSuperiorLobeAnteriorBronchioleToLeftSuperiorLobeAnteriorAlveolarDeadSpace = cRespiratory.CreatePath(LeftSuperiorLobeAnteriorBronchiole, LeftSuperiorLobeAnteriorAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobeAnteriorBronchioleToLeftSuperiorLobeAnteriorAlveolarDeadSpace);
+ SEFluidCircuitPath& LeftSuperiorLobeApicoposteriorBronchioleToLeftSuperiorLobeApicoposteriorAlveolarDeadSpace = cRespiratory.CreatePath(LeftSuperiorLobeApicoposteriorBronchiole, LeftSuperiorLobeApicoposteriorAlveolarDeadSpace, pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobeApicoposteriorBronchioleToLeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
+
+ SEFluidCircuitPath& RightSuperiorLobeApicalAlveolarDeadSpaceToRightSuperiorLobeApicalAlveoli = cRespiratory.CreatePath(RightSuperiorLobeApicalAlveolarDeadSpace, RightSuperiorLobeApicalAlveoli, pulse::ExpandedLungsRespiratoryPath::RightSuperiorLobeApicalAlveolarDeadSpaceToRightSuperiorLobeApicalAlveoli);
+ SEFluidCircuitPath& RightSuperiorLobePosteriorAlveolarDeadSpaceToRightSuperiorLobePosteriorAlveoli = cRespiratory.CreatePath(RightSuperiorLobePosteriorAlveolarDeadSpace, RightSuperiorLobePosteriorAlveoli, pulse::ExpandedLungsRespiratoryPath::RightSuperiorLobePosteriorAlveolarDeadSpaceToRightSuperiorLobePosteriorAlveoli);
+ SEFluidCircuitPath& RightSuperiorLobeAnteriorAlveolarDeadSpaceToRightSuperiorLobeAnteriorAlveoli = cRespiratory.CreatePath(RightSuperiorLobeAnteriorAlveolarDeadSpace, RightSuperiorLobeAnteriorAlveoli, pulse::ExpandedLungsRespiratoryPath::RightSuperiorLobeAnteriorAlveolarDeadSpaceToRightSuperiorLobeAnteriorAlveoli);
+ SEFluidCircuitPath& RightMiddleLobeLateralAlveolarDeadSpaceToRightMiddleLobeLateralAlveoli = cRespiratory.CreatePath(RightMiddleLobeLateralAlveolarDeadSpace, RightMiddleLobeLateralAlveoli, pulse::ExpandedLungsRespiratoryPath::RightMiddleLobeLateralAlveolarDeadSpaceToRightMiddleLobeLateralAlveoli);
+ SEFluidCircuitPath& RightMiddleLobeMedialAlveolarDeadSpaceToRightMiddleLobeMedialAlveoli = cRespiratory.CreatePath(RightMiddleLobeMedialAlveolarDeadSpace, RightMiddleLobeMedialAlveoli, pulse::ExpandedLungsRespiratoryPath::RightMiddleLobeMedialAlveolarDeadSpaceToRightMiddleLobeMedialAlveoli);
+ SEFluidCircuitPath& RightInferiorLobeSuperiorAlveolarDeadSpaceToRightInferiorLobeSuperiorAlveoli = cRespiratory.CreatePath(RightInferiorLobeSuperiorAlveolarDeadSpace, RightInferiorLobeSuperiorAlveoli, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobeSuperiorAlveolarDeadSpaceToRightInferiorLobeSuperiorAlveoli);
+ SEFluidCircuitPath& RightInferiorLobeMedialBasalAlveolarDeadSpaceToRightInferiorLobeMedialBasalAlveoli = cRespiratory.CreatePath(RightInferiorLobeMedialBasalAlveolarDeadSpace, RightInferiorLobeMedialBasalAlveoli, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobeMedialBasalAlveolarDeadSpaceToRightInferiorLobeMedialBasalAlveoli);
+ SEFluidCircuitPath& RightInferiorLobeAnteriorBasalAlveolarDeadSpaceToRightInferiorLobeAnteriorBasalAlveoli = cRespiratory.CreatePath(RightInferiorLobeAnteriorBasalAlveolarDeadSpace, RightInferiorLobeAnteriorBasalAlveoli, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobeAnteriorBasalAlveolarDeadSpaceToRightInferiorLobeAnteriorBasalAlveoli);
+ SEFluidCircuitPath& RightInferiorLobeLateralBasalAlveolarDeadSpaceToRightInferiorLobeLateralBasalAlveoli = cRespiratory.CreatePath(RightInferiorLobeLateralBasalAlveolarDeadSpace, RightInferiorLobeLateralBasalAlveoli, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobeLateralBasalAlveolarDeadSpaceToRightInferiorLobeLateralBasalAlveoli);
+ SEFluidCircuitPath& RightInferiorLobePosteriorBasalAlveolarDeadSpaceToRightInferiorLobePosteriorBasalAlveoli = cRespiratory.CreatePath(RightInferiorLobePosteriorBasalAlveolarDeadSpace, RightInferiorLobePosteriorBasalAlveoli, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobePosteriorBasalAlveolarDeadSpaceToRightInferiorLobePosteriorBasalAlveoli);
+
+ SEFluidCircuitPath& LeftInferiorLobePosteriorBasalAlveolarDeadSpaceToLeftInferiorLobePosteriorBasalAlveoli = cRespiratory.CreatePath(LeftInferiorLobePosteriorBasalAlveolarDeadSpace, LeftInferiorLobePosteriorBasalAlveoli, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobePosteriorBasalAlveolarDeadSpaceToLeftInferiorLobePosteriorBasalAlveoli);
+ SEFluidCircuitPath& LeftInferiorLobeLateralBasalAlveolarDeadSpaceToLeftInferiorLobeLateralBasalAlveoli = cRespiratory.CreatePath(LeftInferiorLobeLateralBasalAlveolarDeadSpace, LeftInferiorLobeLateralBasalAlveoli, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobeLateralBasalAlveolarDeadSpaceToLeftInferiorLobeLateralBasalAlveoli);
+ SEFluidCircuitPath& LeftInferiorLobeAnteromedialBasalAlveolarDeadSpaceToLeftInferiorLobeAnteromedialBasalAlveoli = cRespiratory.CreatePath(LeftInferiorLobeAnteromedialBasalAlveolarDeadSpace, LeftInferiorLobeAnteromedialBasalAlveoli, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobeAnteromedialBasalAlveolarDeadSpaceToLeftInferiorLobeAnteromedialBasalAlveoli);
+ SEFluidCircuitPath& LeftInferiorLobeSuperiorAlveolarDeadSpaceToLeftInferiorLobeSuperiorAlveoli = cRespiratory.CreatePath(LeftInferiorLobeSuperiorAlveolarDeadSpace, LeftInferiorLobeSuperiorAlveoli, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobeSuperiorAlveolarDeadSpaceToLeftInferiorLobeSuperiorAlveoli);
+ SEFluidCircuitPath& LeftSuperiorLobeInferiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeInferiorLingulaAlveoli = cRespiratory.CreatePath(LeftSuperiorLobeInferiorLingulaAlveolarDeadSpace, LeftSuperiorLobeInferiorLingulaAlveoli, pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobeInferiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeInferiorLingulaAlveoli);
+ SEFluidCircuitPath& LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeSuperiorLingulaAlveoli = cRespiratory.CreatePath(LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace, LeftSuperiorLobeSuperiorLingulaAlveoli, pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeSuperiorLingulaAlveoli);
+ SEFluidCircuitPath& LeftSuperiorLobeAnteriorAlveolarDeadSpaceToLeftSuperiorLobeAnteriorAlveoli = cRespiratory.CreatePath(LeftSuperiorLobeAnteriorAlveolarDeadSpace, LeftSuperiorLobeAnteriorAlveoli, pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobeAnteriorAlveolarDeadSpaceToLeftSuperiorLobeAnteriorAlveoli);
+ SEFluidCircuitPath& LeftSuperiorLobeApicoposteriorAlveolarDeadSpaceToLeftSuperiorLobeApicoposteriorAlveoli = cRespiratory.CreatePath(LeftSuperiorLobeApicoposteriorAlveolarDeadSpace, LeftSuperiorLobeApicoposteriorAlveoli, pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobeApicoposteriorAlveolarDeadSpaceToLeftSuperiorLobeApicoposteriorAlveoli);
+
+ SEFluidCircuitPath& RightSuperiorLobeApicalAlveoliToRightPleuralConnection = cRespiratory.CreatePath(RightSuperiorLobeApicalAlveoli, RightPleuralConnection, pulse::ExpandedLungsRespiratoryPath::RightSuperiorLobeApicalAlveoliToRightPleuralConnection);
+ SEFluidCircuitPath& RightSuperiorLobePosteriorAlveoliToRightPleuralConnection = cRespiratory.CreatePath(RightSuperiorLobePosteriorAlveoli, RightPleuralConnection, pulse::ExpandedLungsRespiratoryPath::RightSuperiorLobePosteriorAlveoliToRightPleuralConnection);
+ SEFluidCircuitPath& RightSuperiorLobeAnteriorAlveoliToRightPleuralConnection = cRespiratory.CreatePath(RightSuperiorLobeAnteriorAlveoli, RightPleuralConnection, pulse::ExpandedLungsRespiratoryPath::RightSuperiorLobeAnteriorAlveoliToRightPleuralConnection);
+ SEFluidCircuitPath& RightMiddleLobeLateralAlveoliToRightPleuralConnection = cRespiratory.CreatePath(RightMiddleLobeLateralAlveoli, RightPleuralConnection, pulse::ExpandedLungsRespiratoryPath::RightMiddleLobeLateralAlveoliToRightPleuralConnection);
+ SEFluidCircuitPath& RightMiddleLobeMedialAlveoliToRightPleuralConnection = cRespiratory.CreatePath(RightMiddleLobeMedialAlveoli, RightPleuralConnection, pulse::ExpandedLungsRespiratoryPath::RightMiddleLobeMedialAlveoliToRightPleuralConnection);
+ SEFluidCircuitPath& RightInferiorLobeSuperiorAlveoliToRightPleuralConnection = cRespiratory.CreatePath(RightInferiorLobeSuperiorAlveoli, RightPleuralConnection, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobeSuperiorAlveoliToRightPleuralConnection);
+ SEFluidCircuitPath& RightInferiorLobeMedialBasalAlveoliToRightPleuralConnection = cRespiratory.CreatePath(RightInferiorLobeMedialBasalAlveoli, RightPleuralConnection, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobeMedialBasalAlveoliToRightPleuralConnection);
+ SEFluidCircuitPath& RightInferiorLobeAnteriorBasalAlveoliToRightPleuralConnection = cRespiratory.CreatePath(RightInferiorLobeAnteriorBasalAlveoli, RightPleuralConnection, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobeAnteriorBasalAlveoliToRightPleuralConnection);
+ SEFluidCircuitPath& RightInferiorLobeLateralBasalAlveoliToRightPleuralConnection = cRespiratory.CreatePath(RightInferiorLobeLateralBasalAlveoli, RightPleuralConnection, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobeLateralBasalAlveoliToRightPleuralConnection);
+ SEFluidCircuitPath& RightInferiorLobePosteriorBasalAlveoliToRightPleuralConnection = cRespiratory.CreatePath(RightInferiorLobePosteriorBasalAlveoli, RightPleuralConnection, pulse::ExpandedLungsRespiratoryPath::RightInferiorLobePosteriorBasalAlveoliToRightPleuralConnection);
+
+ SEFluidCircuitPath& LeftInferiorLobePosteriorBasalAlveoliToLeftPleuralConnection = cRespiratory.CreatePath(LeftInferiorLobePosteriorBasalAlveoli, LeftPleuralConnection, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobePosteriorBasalAlveoliToLeftPleuralConnection);
+ SEFluidCircuitPath& LeftInferiorLobeLateralBasalAlveoliToLeftPleuralConnection = cRespiratory.CreatePath(LeftInferiorLobeLateralBasalAlveoli, LeftPleuralConnection, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobeLateralBasalAlveoliToLeftPleuralConnection);
+ SEFluidCircuitPath& LeftInferiorLobeAnteromedialBasalAlveoliToLeftPleuralConnection = cRespiratory.CreatePath(LeftInferiorLobeAnteromedialBasalAlveoli, LeftPleuralConnection, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobeAnteromedialBasalAlveoliToLeftPleuralConnection);
+ SEFluidCircuitPath& LeftInferiorLobeSuperiorAlveoliToLeftPleuralConnection = cRespiratory.CreatePath(LeftInferiorLobeSuperiorAlveoli, LeftPleuralConnection, pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobeSuperiorAlveoliToLeftPleuralConnection);
+ SEFluidCircuitPath& LeftSuperiorLobeInferiorLingulaAlveoliToLeftPleuralConnection = cRespiratory.CreatePath(LeftSuperiorLobeInferiorLingulaAlveoli, LeftPleuralConnection, pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobeInferiorLingulaAlveoliToLeftPleuralConnection);
+ SEFluidCircuitPath& LeftSuperiorLobeSuperiorLingulaAlveoliToLeftPleuralConnection = cRespiratory.CreatePath(LeftSuperiorLobeSuperiorLingulaAlveoli, LeftPleuralConnection, pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobeSuperiorLingulaAlveoliToLeftPleuralConnection);
+ SEFluidCircuitPath& LeftSuperiorLobeAnteriorAlveoliToLeftPleuralConnection = cRespiratory.CreatePath(LeftSuperiorLobeAnteriorAlveoli, LeftPleuralConnection, pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobeAnteriorAlveoliToLeftPleuralConnection);
+ SEFluidCircuitPath& LeftSuperiorLobeApicoposteriorAlveoliToLeftPleuralConnection = cRespiratory.CreatePath(LeftSuperiorLobeApicoposteriorAlveoli, LeftPleuralConnection, pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobeApicoposteriorAlveoliToLeftPleuralConnection);
+
+ double CarinaToRightMainBronchusResistance_cmH2O_s_Per_L = 0.231;
+ double RightMainBronchusToRightIntermediateBronchusResistance_cmH2O_s_Per_L = 0.150;
+ double RightMainBronchusToRightSuperiorLobarBronchusResistance_cmH2O_s_Per_L = 0.387;
+ double RightIntermediateBronchusToRightMiddleLobarBronchusResistance_cmH2O_s_Per_L = 0.877;
+ double RightIntermediateBronchusToRightInferiorLobarBronchus1Resistance_cmH2O_s_Per_L = 0.150;
+ double RightInferiorLobarBronchus1ToRightInferiorLobarBronchus2Resistance_cmH2O_s_Per_L = 0.186;
+ double RightSuperiorLobarBronchusToRightSuperiorApicoposteriorBronchusResistance_cmH2O_s_Per_L = 0.449;
+ double RightInferiorLobarBronchus2ToRightInferiorLobarBronchus3Resistance_cmH2O_s_Per_L = 0.150;
+ double RightInferiorLobarBronchus2ToRightInferiorLobarBronchus4Resistance_cmH2O_s_Per_L = 0.578;
+
+ double CarinaToLeftMainBronchusResistance_cmH2O_s_Per_L = 0.276;
+ double LeftMainBronchusToLeftInferiorLobarBronchus1Resistance_cmH2O_s_Per_L = 0.337;
+ double LeftMainBronchusToLeftSuperiorLobarBronchusResistance_cmH2O_s_Per_L = 0.410;
+ double LeftInferiorLobarBronchus1ToLeftInferiorLobarBronchus2Resistance_cmH2O_s_Per_L = 0.150;
+ double LeftInferiorLobarBronchus2ToLeftInferiorLobarBronchus3Resistance_cmH2O_s_Per_L = 0.150;
+ double LeftSuperiorLobarBronchusToLeftLingularBonchusResistance_cmH2O_s_Per_L = 0.771;
+ double LeftSuperiorLobarBronchusToLeftSuperiorApicoposteriorBronchusResistance_cmH2O_s_Per_L = 0.350;
+
+ double RightSuperiorApicoposteriorBronchusToRightSuperiorLobeApicalBronchioleResistance_cmH2O_s_Per_L = 1.486;
+ double RightSuperiorApicoposteriorBronchusToRightSuperiorLobePosteriorBronchioleResistance_cmH2O_s_Per_L = 3.621;
+ double RightSuperiorLobarBronchusToRightSuperiorLobeAnteriorBronchioleResistance_cmH2O_s_Per_L = 1.544;
+ double RightMiddleLobarBronchusToRightMiddleLobeLateralBronchioleResistance_cmH2O_s_Per_L = 2.414;
+ double RightMiddleLobarBronchusToRightMiddleLobeMedialBronchioleResistance_cmH2O_s_Per_L = 2.414;
+ double RightInferiorLobarBronchus1ToRightInferiorLobeSuperiorBronchioleResistance_cmH2O_s_Per_L = 2.395;
+ double RightInferiorLobarBronchus2ToRightInferiorLobeMedialBasalBronchioleResistance_cmH2O_s_Per_L = 3.748;
+ double RightInferiorLobarBronchus3ToRightInferiorLobeAnteriorBasalBronchioleResistance_cmH2O_s_Per_L = 1.811;
+ double RightInferiorLobarBronchus4ToRightInferiorLobeLateralBasalBronchioleResistance_cmH2O_s_Per_L = 2.465;
+ double RightInferiorLobarBronchus4ToRightInferiorLobePosteriorBasalBronchioleResistance_cmH2O_s_Per_L = 2.465;
+
+ double LeftInferiorLobarBronchus3ToLeftInferiorLobeLateralBasalBronchioleResistance_cmH2O_s_Per_L = 1.486;
+ double LeftInferiorLobarBronchus3ToLeftInferiorLobePosteriorBasalBronchioleResistance_cmH2O_s_Per_L = 2.465;
+ double LeftInferiorLobarBronchus2ToLeftInferiorLobeAnteromedialBasalBronchioleResistance_cmH2O_s_Per_L = 1.730;
+ double LeftInferiorLobarBronchus1ToLeftInferiorLobeSuperiorBronchioleResistance_cmH2O_s_Per_L = 3.515;
+ double LeftLingularBonchusToLeftSuperiorLobeInferiorLingulaBronchioleResistance_cmH2O_s_Per_L = 4.292;
+ double LeftLingularBonchusToLeftSuperiorLobeSuperiorLingulaBronchioleResistance_cmH2O_s_Per_L = 3.219;
+ double LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeAnteriorBronchioleResistance_cmH2O_s_Per_L = 1.811;
+ double LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeApicoposteriorBronchioleResistance_cmH2O_s_Per_L = 1.486;
+
+ CarinaToRightMainBronchus.GetResistanceBaseline().SetValue(CarinaToRightMainBronchusResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightMainBronchusToRightIntermediateBronchus.GetResistanceBaseline().SetValue(RightMainBronchusToRightIntermediateBronchusResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightMainBronchusToRightSuperiorLobarBronchus.GetResistanceBaseline().SetValue(RightMainBronchusToRightSuperiorLobarBronchusResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightIntermediateBronchusToRightMiddleLobarBronchus.GetResistanceBaseline().SetValue(RightIntermediateBronchusToRightMiddleLobarBronchusResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightIntermediateBronchusToRightInferiorLobarBronchus1.GetResistanceBaseline().SetValue(RightIntermediateBronchusToRightInferiorLobarBronchus1Resistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightInferiorLobarBronchus1ToRightInferiorLobarBronchus2.GetResistanceBaseline().SetValue(RightInferiorLobarBronchus1ToRightInferiorLobarBronchus2Resistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightSuperiorLobarBronchusToRightSuperiorApicoposteriorBronchus.GetResistanceBaseline().SetValue(RightSuperiorLobarBronchusToRightSuperiorApicoposteriorBronchusResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightInferiorLobarBronchus2ToRightInferiorLobarBronchus3.GetResistanceBaseline().SetValue(RightInferiorLobarBronchus2ToRightInferiorLobarBronchus3Resistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightInferiorLobarBronchus2ToRightInferiorLobarBronchus4.GetResistanceBaseline().SetValue(RightInferiorLobarBronchus2ToRightInferiorLobarBronchus4Resistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+
+ CarinaToLeftMainBronchus.GetResistanceBaseline().SetValue(CarinaToLeftMainBronchusResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ LeftMainBronchusToLeftInferiorLobarBronchus1.GetResistanceBaseline().SetValue(LeftMainBronchusToLeftInferiorLobarBronchus1Resistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ LeftMainBronchusToLeftSuperiorLobarBronchus.GetResistanceBaseline().SetValue(LeftMainBronchusToLeftSuperiorLobarBronchusResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ LeftInferiorLobarBronchus1ToLeftInferiorLobarBronchus2.GetResistanceBaseline().SetValue(LeftInferiorLobarBronchus1ToLeftInferiorLobarBronchus2Resistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ LeftInferiorLobarBronchus2ToLeftInferiorLobarBronchus3.GetResistanceBaseline().SetValue(LeftInferiorLobarBronchus2ToLeftInferiorLobarBronchus3Resistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ LeftSuperiorLobarBronchusToLeftLingularBonchus.GetResistanceBaseline().SetValue(LeftSuperiorLobarBronchusToLeftLingularBonchusResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ LeftSuperiorLobarBronchusToLeftSuperiorApicoposteriorBronchus.GetResistanceBaseline().SetValue(LeftSuperiorLobarBronchusToLeftSuperiorApicoposteriorBronchusResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+
+ RightSuperiorApicoposteriorBronchusToRightSuperiorLobeApicalBronchiole.GetResistanceBaseline().SetValue(RightSuperiorApicoposteriorBronchusToRightSuperiorLobeApicalBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightSuperiorApicoposteriorBronchusToRightSuperiorLobePosteriorBronchiole.GetResistanceBaseline().SetValue(RightSuperiorApicoposteriorBronchusToRightSuperiorLobePosteriorBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightSuperiorLobarBronchusToRightSuperiorLobeAnteriorBronchiole.GetResistanceBaseline().SetValue(RightSuperiorLobarBronchusToRightSuperiorLobeAnteriorBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightMiddleLobarBronchusToRightMiddleLobeLateralBronchiole.GetResistanceBaseline().SetValue(RightMiddleLobarBronchusToRightMiddleLobeLateralBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightMiddleLobarBronchusToRightMiddleLobeMedialBronchiole.GetResistanceBaseline().SetValue(RightMiddleLobarBronchusToRightMiddleLobeMedialBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightInferiorLobarBronchus1ToRightInferiorLobeSuperiorBronchiole.GetResistanceBaseline().SetValue(RightInferiorLobarBronchus1ToRightInferiorLobeSuperiorBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightInferiorLobarBronchus2ToRightInferiorLobeMedialBasalBronchiole.GetResistanceBaseline().SetValue(RightInferiorLobarBronchus2ToRightInferiorLobeMedialBasalBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightInferiorLobarBronchus3ToRightInferiorLobeAnteriorBasalBronchiole.GetResistanceBaseline().SetValue(RightInferiorLobarBronchus3ToRightInferiorLobeAnteriorBasalBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightInferiorLobarBronchus4ToRightInferiorLobeLateralBasalBronchiole.GetResistanceBaseline().SetValue(RightInferiorLobarBronchus4ToRightInferiorLobeLateralBasalBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ RightInferiorLobarBronchus4ToRightInferiorLobePosteriorBasalBronchiole.GetResistanceBaseline().SetValue(RightInferiorLobarBronchus4ToRightInferiorLobePosteriorBasalBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+
+ LeftInferiorLobarBronchus3ToLeftInferiorLobeLateralBasalBronchiole.GetResistanceBaseline().SetValue(LeftInferiorLobarBronchus3ToLeftInferiorLobeLateralBasalBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ LeftInferiorLobarBronchus3ToLeftInferiorLobePosteriorBasalBronchiole.GetResistanceBaseline().SetValue(LeftInferiorLobarBronchus3ToLeftInferiorLobePosteriorBasalBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ LeftInferiorLobarBronchus2ToLeftInferiorLobeAnteromedialBasalBronchiole.GetResistanceBaseline().SetValue(LeftInferiorLobarBronchus2ToLeftInferiorLobeAnteromedialBasalBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ LeftInferiorLobarBronchus1ToLeftInferiorLobeSuperiorBronchiole.GetResistanceBaseline().SetValue(LeftInferiorLobarBronchus1ToLeftInferiorLobeSuperiorBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ LeftLingularBonchusToLeftSuperiorLobeInferiorLingulaBronchiole.GetResistanceBaseline().SetValue(LeftLingularBonchusToLeftSuperiorLobeInferiorLingulaBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ LeftLingularBonchusToLeftSuperiorLobeSuperiorLingulaBronchiole.GetResistanceBaseline().SetValue(LeftLingularBonchusToLeftSuperiorLobeSuperiorLingulaBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeAnteriorBronchiole.GetResistanceBaseline().SetValue(LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeAnteriorBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeApicoposteriorBronchiole.GetResistanceBaseline().SetValue(LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeApicoposteriorBronchioleResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+
+ double RightSuperiorLobeApicalCompliance_Percent = 4.0;
+ double RightSuperiorLobePosteriorCompliance_Percent = 4.4;
+ double RightSuperiorLobeAnteriorCompliance_Percent = 5.0;
+ double RightMiddleLobeLateralCompliance_Percent = 5.9;
+ double RightMiddleLobeMedialCompliance_Percent = 5.8;
+ double RightInferiorLobeSuperiorCompliance_Percent = 5.3;
+ double RightInferiorLobeMedialBasalCompliance_Percent = 6.0;
+ double RightInferiorLobeAnteriorBasalCompliance_Percent = 6.3;
+ double RightInferiorLobeLateralBasalCompliance_Percent = 6.5;
+ double RightInferiorLobePosteriorBasalCompliance_Percent = 6.2;
+
+ double LeftInferiorLobePosteriorBasalCompliance_Percent = 6.2;
+ double LeftInferiorLobeLateralBasalCompliance_Percent = 6.4;
+ double LeftInferiorLobeAnteromedialBasalCompliance_Percent = 6.1;
+ double LeftInferiorLobeSuperiorCompliance_Percent = 5.3;
+ double LeftSuperiorLobeInferiorLingulaCompliance_Percent = 6.0;
+ double LeftSuperiorLobeSuperiorLingulaCompliance_Percent = 5.6;
+ double LeftSuperiorLobeAnteriorCompliance_Percent = 4.9;
+ double LeftSuperiorLobeApicoposteriorCompliance_Percent = 4.2;
+
+ //Both lungs in parallel
+ double LungsCompliance_L_Per_cmH2O = LungCompliance_L_Per_cmH2O * 2.0;
+
+ RightSuperiorLobeApicalAlveoliToRightPleuralConnection.GetComplianceBaseline().SetValue(RightSuperiorLobeApicalCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ RightSuperiorLobePosteriorAlveoliToRightPleuralConnection.GetComplianceBaseline().SetValue(RightSuperiorLobePosteriorCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ RightSuperiorLobeAnteriorAlveoliToRightPleuralConnection.GetComplianceBaseline().SetValue(RightSuperiorLobeAnteriorCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ RightMiddleLobeLateralAlveoliToRightPleuralConnection.GetComplianceBaseline().SetValue(RightMiddleLobeLateralCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ RightMiddleLobeMedialAlveoliToRightPleuralConnection.GetComplianceBaseline().SetValue(RightMiddleLobeMedialCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ RightInferiorLobeSuperiorAlveoliToRightPleuralConnection.GetComplianceBaseline().SetValue(RightInferiorLobeSuperiorCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ RightInferiorLobeMedialBasalAlveoliToRightPleuralConnection.GetComplianceBaseline().SetValue(RightInferiorLobeMedialBasalCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ RightInferiorLobeAnteriorBasalAlveoliToRightPleuralConnection.GetComplianceBaseline().SetValue(RightInferiorLobeAnteriorBasalCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ RightInferiorLobeLateralBasalAlveoliToRightPleuralConnection.GetComplianceBaseline().SetValue(RightInferiorLobeLateralBasalCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ RightInferiorLobePosteriorBasalAlveoliToRightPleuralConnection.GetComplianceBaseline().SetValue(RightInferiorLobePosteriorBasalCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+
+ LeftInferiorLobePosteriorBasalAlveoliToLeftPleuralConnection.GetComplianceBaseline().SetValue(LeftInferiorLobePosteriorBasalCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ LeftInferiorLobeLateralBasalAlveoliToLeftPleuralConnection.GetComplianceBaseline().SetValue(LeftInferiorLobeLateralBasalCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ LeftInferiorLobeAnteromedialBasalAlveoliToLeftPleuralConnection.GetComplianceBaseline().SetValue(LeftInferiorLobeAnteromedialBasalCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ LeftInferiorLobeSuperiorAlveoliToLeftPleuralConnection.GetComplianceBaseline().SetValue(LeftInferiorLobeSuperiorCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ LeftSuperiorLobeInferiorLingulaAlveoliToLeftPleuralConnection.GetComplianceBaseline().SetValue(LeftSuperiorLobeInferiorLingulaCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ LeftSuperiorLobeSuperiorLingulaAlveoliToLeftPleuralConnection.GetComplianceBaseline().SetValue(LeftSuperiorLobeSuperiorLingulaCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ LeftSuperiorLobeAnteriorAlveoliToLeftPleuralConnection.GetComplianceBaseline().SetValue(LeftSuperiorLobeAnteriorCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ LeftSuperiorLobeApicoposteriorAlveoliToLeftPleuralConnection.GetComplianceBaseline().SetValue(LeftSuperiorLobeApicoposteriorCompliance_Percent / 100.0 * LungsCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+
+ //Need a no element path to be able to include a node with no volume, so it doesn't get modified by compliances
+ cRespiratory.CreatePath(RightPleuralConnection, RightPleural, pulse::RespiratoryPath::RightPleuralConnectionToRightPleural);
+ cRespiratory.CreatePath(LeftPleuralConnection, LeftPleural, pulse::RespiratoryPath::LeftPleuralConnectionToLeftPleural);
+ // Paths for the Driver
+ SEFluidCircuitPath& EnvironmentToRespiratoryMuscle = cRespiratory.CreatePath(Ambient, RespiratoryMuscle, pulse::RespiratoryPath::EnvironmentToRespiratoryMuscle);
+ EnvironmentToRespiratoryMuscle.GetPressureSourceBaseline().SetValue(RespiratoryMuscle.GetPressure(PressureUnit::cmH2O) - Ambient.GetNextPressure(PressureUnit::cmH2O), PressureUnit::cmH2O);
+ // Esophageal (Stomach) path
+ SEFluidCircuitPath& AirwayToStomach = cRespiratory.CreatePath(Airway, Stomach, pulse::RespiratoryPath::AirwayToStomach);
+ AirwayToStomach.GetResistanceBaseline().SetValue(openResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ SEFluidCircuitPath& StomachToEnvironment = cRespiratory.CreatePath(Stomach, Ambient, pulse::RespiratoryPath::StomachToEnvironment);
+ StomachToEnvironment.GetComplianceBaseline().SetValue(0.05, VolumePerPressureUnit::L_Per_cmH2O);
+ StomachToEnvironment.SetNextPolarizedState(eGate::Closed);
+ // Paths to RespiratoryMuscle
+ SEFluidCircuitPath& RightPleuralToRespiratoryMuscle = cRespiratory.CreatePath(RightPleural, RespiratoryMuscle, pulse::RespiratoryPath::RightPleuralToRespiratoryMuscle);
+ RightPleuralToRespiratoryMuscle.GetComplianceBaseline().SetValue(ChestWallCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+ SEFluidCircuitPath& LeftPleuralToRespiratoryMuscle = cRespiratory.CreatePath(LeftPleural, RespiratoryMuscle, pulse::RespiratoryPath::LeftPleuralToRespiratoryMuscle);
+ LeftPleuralToRespiratoryMuscle.GetComplianceBaseline().SetValue(ChestWallCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+
+ cRespiratory.SetNextAndCurrentFromBaselines();
+ cRespiratory.StateChange();
+
+ // Setup Compartments //
+
+ // Pulmonary Compartments
+ SEGasCompartment& pAirway = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::Airway);
+ pAirway.MapNode(Airway);
+ SEGasCompartment& pStomach = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::Stomach);
+ pStomach.MapNode(Stomach);
+ SEGasCompartment& pPharynx = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::Pharynx);
+ pPharynx.MapNode(Pharynx);
+ SEGasCompartment& pCarina = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::Carina);
+ pCarina.MapNode(Carina);
+ SEGasCompartment& pLeftPleural = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::LeftPleuralCavity);
+ pLeftPleural.MapNode(LeftPleural);
+ SEGasCompartment& pRightPleural = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::RightPleuralCavity);
+ pRightPleural.MapNode(RightPleural);
+
+ SEGasCompartment& pRightMainBronchus = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightMainBronchus);
+ SEGasCompartment& pLeftMainBronchus = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftMainBronchus);
+ SEGasCompartment& pRightIntermediateBronchus = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightIntermediateBronchus);
+ SEGasCompartment& pRightSuperiorLobarBronchus = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightSuperiorLobarBronchus);
+ SEGasCompartment& pRightMiddleLobarBronchus = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightMiddleLobarBronchus);
+ SEGasCompartment& pRightInferiorLobarBronchus1 = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobarBronchus1);
+ SEGasCompartment& pLeftInferiorLobarBronchus1 = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobarBronchus1);
+ SEGasCompartment& pLeftSuperiorLobarBronchus = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobarBronchus);
+ SEGasCompartment& pRightInferiorLobarBronchus2 = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobarBronchus2);
+ SEGasCompartment& pLeftInferiorLobarBronchus2 = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobarBronchus2);
+ SEGasCompartment& pRightSuperiorApicoposteriorBronchus = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightSuperiorApicoposteriorBronchus);
+ SEGasCompartment& pRightInferiorLobarBronchus3 = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobarBronchus3);
+ SEGasCompartment& pLeftInferiorLobarBronchus3 = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobarBronchus3);
+ SEGasCompartment& pLeftLingularBonchus = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftLingularBonchus);
+ SEGasCompartment& pLeftSuperiorApicoposteriorBronchus = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorApicoposteriorBronchus);
+ SEGasCompartment& pRightInferiorLobarBronchus4 = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobarBronchus4);
+
+ SEGasCompartment& pRightSuperiorLobeApicalBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightSuperiorLobeApicalBronchiole);
+ SEGasCompartment& pRightSuperiorLobePosteriorBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightSuperiorLobePosteriorBronchiole);
+ SEGasCompartment& pRightSuperiorLobeAnteriorBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightSuperiorLobeAnteriorBronchiole);
+ SEGasCompartment& pRightMiddleLobeLateralBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightMiddleLobeLateralBronchiole);
+ SEGasCompartment& pRightMiddleLobeMedialBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightMiddleLobeMedialBronchiole);
+ SEGasCompartment& pRightInferiorLobeSuperiorBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobeSuperiorBronchiole);
+ SEGasCompartment& pRightInferiorLobeMedialBasalBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobeMedialBasalBronchiole);
+ SEGasCompartment& pRightInferiorLobeAnteriorBasalBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobeAnteriorBasalBronchiole);
+ SEGasCompartment& pRightInferiorLobeLateralBasalBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobeLateralBasalBronchiole);
+ SEGasCompartment& pRightInferiorLobePosteriorBasalBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobePosteriorBasalBronchiole);
+
+ SEGasCompartment& pLeftInferiorLobePosteriorBasalBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobePosteriorBasalBronchiole);
+ SEGasCompartment& pLeftInferiorLobeLateralBasalBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobeLateralBasalBronchiole);
+ SEGasCompartment& pLeftInferiorLobeAnteromedialBasalBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobeAnteromedialBasalBronchiole);
+ SEGasCompartment& pLeftInferiorLobeSuperiorBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobeSuperiorBronchiole);
+ SEGasCompartment& pLeftSuperiorLobeInferiorLingulaBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobeInferiorLingulaBronchiole);
+ SEGasCompartment& pLeftSuperiorLobeSuperiorLingulaBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobeSuperiorLingulaBronchiole);
+ SEGasCompartment& pLeftSuperiorLobeAnteriorBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobeAnteriorBronchiole);
+ SEGasCompartment& pLeftSuperiorLobeApicoposteriorBronchiole = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobeApicoposteriorBronchiole);
+
+ SEGasCompartment& pRightSuperiorLobeApicalAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightSuperiorLobeApicalAlveoli);
+ SEGasCompartment& pRightSuperiorLobePosteriorAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightSuperiorLobePosteriorAlveoli);
+ SEGasCompartment& pRightSuperiorLobeAnteriorAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightSuperiorLobeAnteriorAlveoli);
+ SEGasCompartment& pRightMiddleLobeLateralAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightMiddleLobeLateralAlveoli);
+ SEGasCompartment& pRightMiddleLobeMedialAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightMiddleLobeMedialAlveoli);
+ SEGasCompartment& pRightInferiorLobeSuperiorAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobeSuperiorAlveoli);
+ SEGasCompartment& pRightInferiorLobeMedialBasalAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobeMedialBasalAlveoli);
+ SEGasCompartment& pRightInferiorLobeAnteriorBasalAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobeAnteriorBasalAlveoli);
+ SEGasCompartment& pRightInferiorLobeLateralBasalAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobeLateralBasalAlveoli);
+ SEGasCompartment& pRightInferiorLobePosteriorBasalAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobePosteriorBasalAlveoli);
+
+ SEGasCompartment& pLeftInferiorLobePosteriorBasalAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobePosteriorBasalAlveoli);
+ SEGasCompartment& pLeftInferiorLobeLateralBasalAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobeLateralBasalAlveoli);
+ SEGasCompartment& pLeftInferiorLobeAnteromedialBasalAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobeAnteromedialBasalAlveoli);
+ SEGasCompartment& pLeftInferiorLobeSuperiorAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobeSuperiorAlveoli);
+ SEGasCompartment& pLeftSuperiorLobeInferiorLingulaAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobeInferiorLingulaAlveoli);
+ SEGasCompartment& pLeftSuperiorLobeSuperiorLingulaAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobeSuperiorLingulaAlveoli);
+ SEGasCompartment& pLeftSuperiorLobeAnteriorAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobeAnteriorAlveoli);
+ SEGasCompartment& pLeftSuperiorLobeApicoposteriorAlveoli = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobeApicoposteriorAlveoli);
+
+ SEGasCompartment& pRightSuperiorLobeApicalAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightSuperiorLobeApicalAlveolarDeadSpace);
+ SEGasCompartment& pRightSuperiorLobePosteriorAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightSuperiorLobePosteriorAlveolarDeadSpace);
+ SEGasCompartment& pRightSuperiorLobeAnteriorAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightSuperiorLobeAnteriorAlveolarDeadSpace);
+ SEGasCompartment& pRightMiddleLobeLateralAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightMiddleLobeLateralAlveolarDeadSpace);
+ SEGasCompartment& pRightMiddleLobeMedialAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightMiddleLobeMedialAlveolarDeadSpace);
+ SEGasCompartment& pRightInferiorLobeSuperiorAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobeSuperiorAlveolarDeadSpace);
+ SEGasCompartment& pRightInferiorLobeMedialBasalAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobeMedialBasalAlveolarDeadSpace);
+ SEGasCompartment& pRightInferiorLobeAnteriorBasalAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobeAnteriorBasalAlveolarDeadSpace);
+ SEGasCompartment& pRightInferiorLobeLateralBasalAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobeLateralBasalAlveolarDeadSpace);
+ SEGasCompartment& pRightInferiorLobePosteriorBasalAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobePosteriorBasalAlveolarDeadSpace);
+
+ SEGasCompartment& pLeftInferiorLobePosteriorBasalAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobePosteriorBasalAlveolarDeadSpace);
+ SEGasCompartment& pLeftInferiorLobeLateralBasalAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobeLateralBasalAlveolarDeadSpace);
+ SEGasCompartment& pLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
+ SEGasCompartment& pLeftInferiorLobeSuperiorAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobeSuperiorAlveolarDeadSpace);
+ SEGasCompartment& pLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
+ SEGasCompartment& pLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
+ SEGasCompartment& pLeftSuperiorLobeAnteriorAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobeAnteriorAlveolarDeadSpace);
+ SEGasCompartment& pLeftSuperiorLobeApicoposteriorAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
+
+ pRightMainBronchus.MapNode(RightMainBronchus);
+ pLeftMainBronchus.MapNode(LeftMainBronchus);
+ pRightIntermediateBronchus.MapNode(RightIntermediateBronchus);
+ pRightSuperiorLobarBronchus.MapNode(RightSuperiorLobarBronchus);
+ pRightMiddleLobarBronchus.MapNode(RightMiddleLobarBronchus);
+ pRightInferiorLobarBronchus1.MapNode(RightInferiorLobarBronchus1);
+ pLeftInferiorLobarBronchus1.MapNode(LeftInferiorLobarBronchus1);
+ pLeftSuperiorLobarBronchus.MapNode(LeftSuperiorLobarBronchus);
+ pRightInferiorLobarBronchus2.MapNode(RightInferiorLobarBronchus2);
+ pLeftInferiorLobarBronchus2.MapNode(LeftInferiorLobarBronchus2);
+ pRightSuperiorApicoposteriorBronchus.MapNode(RightSuperiorApicoposteriorBronchus);
+ pRightInferiorLobarBronchus3.MapNode(RightInferiorLobarBronchus3);
+ pLeftInferiorLobarBronchus3.MapNode(LeftInferiorLobarBronchus3);
+ pLeftLingularBonchus.MapNode(LeftLingularBonchus);
+ pLeftSuperiorApicoposteriorBronchus.MapNode(LeftSuperiorApicoposteriorBronchus);
+ pRightInferiorLobarBronchus4.MapNode(RightInferiorLobarBronchus4);
+
+ pRightSuperiorLobeApicalBronchiole.MapNode(RightSuperiorLobeApicalBronchiole);
+ pRightSuperiorLobePosteriorBronchiole.MapNode(RightSuperiorLobePosteriorBronchiole);
+ pRightSuperiorLobeAnteriorBronchiole.MapNode(RightSuperiorLobeAnteriorBronchiole);
+ pRightMiddleLobeLateralBronchiole.MapNode(RightMiddleLobeLateralBronchiole);
+ pRightMiddleLobeMedialBronchiole.MapNode(RightMiddleLobeMedialBronchiole);
+ pRightInferiorLobeSuperiorBronchiole.MapNode(RightInferiorLobeSuperiorBronchiole);
+ pRightInferiorLobeMedialBasalBronchiole.MapNode(RightInferiorLobeMedialBasalBronchiole);
+ pRightInferiorLobeAnteriorBasalBronchiole.MapNode(RightInferiorLobeAnteriorBasalBronchiole);
+ pRightInferiorLobeLateralBasalBronchiole.MapNode(RightInferiorLobeLateralBasalBronchiole);
+ pRightInferiorLobePosteriorBasalBronchiole.MapNode(RightInferiorLobePosteriorBasalBronchiole);
+
+ pLeftInferiorLobePosteriorBasalBronchiole.MapNode(LeftInferiorLobePosteriorBasalBronchiole);
+ pLeftInferiorLobeLateralBasalBronchiole.MapNode(LeftInferiorLobeLateralBasalBronchiole);
+ pLeftInferiorLobeAnteromedialBasalBronchiole.MapNode(LeftInferiorLobeAnteromedialBasalBronchiole);
+ pLeftInferiorLobeSuperiorBronchiole.MapNode(LeftInferiorLobeSuperiorBronchiole);
+ pLeftSuperiorLobeInferiorLingulaBronchiole.MapNode(LeftSuperiorLobeInferiorLingulaBronchiole);
+ pLeftSuperiorLobeSuperiorLingulaBronchiole.MapNode(LeftSuperiorLobeSuperiorLingulaBronchiole);
+ pLeftSuperiorLobeAnteriorBronchiole.MapNode(LeftSuperiorLobeAnteriorBronchiole);
+ pLeftSuperiorLobeApicoposteriorBronchiole.MapNode(LeftSuperiorLobeApicoposteriorBronchiole);
+
+ pRightSuperiorLobeApicalAlveolarDeadSpace.MapNode(RightSuperiorLobeApicalAlveolarDeadSpace);
+ pRightSuperiorLobePosteriorAlveolarDeadSpace.MapNode(RightSuperiorLobePosteriorAlveolarDeadSpace);
+ pRightSuperiorLobeAnteriorAlveolarDeadSpace.MapNode(RightSuperiorLobeAnteriorAlveolarDeadSpace);
+ pRightMiddleLobeLateralAlveolarDeadSpace.MapNode(RightMiddleLobeLateralAlveolarDeadSpace);
+ pRightMiddleLobeMedialAlveolarDeadSpace.MapNode(RightMiddleLobeMedialAlveolarDeadSpace);
+ pRightInferiorLobeSuperiorAlveolarDeadSpace.MapNode(RightInferiorLobeSuperiorAlveolarDeadSpace);
+ pRightInferiorLobeMedialBasalAlveolarDeadSpace.MapNode(RightInferiorLobeMedialBasalAlveolarDeadSpace);
+ pRightInferiorLobeAnteriorBasalAlveolarDeadSpace.MapNode(RightInferiorLobeAnteriorBasalAlveolarDeadSpace);
+ pRightInferiorLobeLateralBasalAlveolarDeadSpace.MapNode(RightInferiorLobeLateralBasalAlveolarDeadSpace);
+ pRightInferiorLobePosteriorBasalAlveolarDeadSpace.MapNode(RightInferiorLobePosteriorBasalAlveolarDeadSpace);
+
+ pLeftInferiorLobePosteriorBasalAlveolarDeadSpace.MapNode(LeftInferiorLobePosteriorBasalAlveolarDeadSpace);
+ pLeftInferiorLobeLateralBasalAlveolarDeadSpace.MapNode(LeftInferiorLobeLateralBasalAlveolarDeadSpace);
+ pLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace.MapNode(LeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
+ pLeftInferiorLobeSuperiorAlveolarDeadSpace.MapNode(LeftInferiorLobeSuperiorAlveolarDeadSpace);
+ pLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace.MapNode(LeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
+ pLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace.MapNode(LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
+ pLeftSuperiorLobeAnteriorAlveolarDeadSpace.MapNode(LeftSuperiorLobeAnteriorAlveolarDeadSpace);
+ pLeftSuperiorLobeApicoposteriorAlveolarDeadSpace.MapNode(LeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
+
+ pRightSuperiorLobeApicalAlveoli.MapNode(RightSuperiorLobeApicalAlveoli);
+ pRightSuperiorLobePosteriorAlveoli.MapNode(RightSuperiorLobePosteriorAlveoli);
+ pRightSuperiorLobeAnteriorAlveoli.MapNode(RightSuperiorLobeAnteriorAlveoli);
+ pRightMiddleLobeLateralAlveoli.MapNode(RightMiddleLobeLateralAlveoli);
+ pRightMiddleLobeMedialAlveoli.MapNode(RightMiddleLobeMedialAlveoli);
+ pRightInferiorLobeSuperiorAlveoli.MapNode(RightInferiorLobeSuperiorAlveoli);
+ pRightInferiorLobeMedialBasalAlveoli.MapNode(RightInferiorLobeMedialBasalAlveoli);
+ pRightInferiorLobeAnteriorBasalAlveoli.MapNode(RightInferiorLobeAnteriorBasalAlveoli);
+ pRightInferiorLobeLateralBasalAlveoli.MapNode(RightInferiorLobeLateralBasalAlveoli);
+ pRightInferiorLobePosteriorBasalAlveoli.MapNode(RightInferiorLobePosteriorBasalAlveoli);
+
+ pLeftInferiorLobePosteriorBasalAlveoli.MapNode(LeftInferiorLobePosteriorBasalAlveoli);
+ pLeftInferiorLobeLateralBasalAlveoli.MapNode(LeftInferiorLobeLateralBasalAlveoli);
+ pLeftInferiorLobeAnteromedialBasalAlveoli.MapNode(LeftInferiorLobeAnteromedialBasalAlveoli);
+ pLeftInferiorLobeSuperiorAlveoli.MapNode(LeftInferiorLobeSuperiorAlveoli);
+ pLeftSuperiorLobeInferiorLingulaAlveoli.MapNode(LeftSuperiorLobeInferiorLingulaAlveoli);
+ pLeftSuperiorLobeSuperiorLingulaAlveoli.MapNode(LeftSuperiorLobeSuperiorLingulaAlveoli);
+ pLeftSuperiorLobeAnteriorAlveoli.MapNode(LeftSuperiorLobeAnteriorAlveoli);
+ pLeftSuperiorLobeApicoposteriorAlveoli.MapNode(LeftSuperiorLobeApicoposteriorAlveoli);
+
+ // Set up hierarchy
+ SEGasCompartment& pLeftBranches = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftBranches);
+ pLeftBranches.AddChild(pLeftMainBronchus);
+ pLeftBranches.AddChild(pLeftInferiorLobarBronchus1);
+ pLeftBranches.AddChild(pLeftSuperiorLobarBronchus);
+ pLeftBranches.AddChild(pLeftInferiorLobarBronchus2);
+ pLeftBranches.AddChild(pLeftInferiorLobarBronchus3);
+ pLeftBranches.AddChild(pLeftLingularBonchus);
+ pLeftBranches.AddChild(pLeftSuperiorApicoposteriorBronchus);
+
+ pLeftBranches.AddChild(pLeftInferiorLobePosteriorBasalBronchiole);
+ pLeftBranches.AddChild(pLeftInferiorLobeLateralBasalBronchiole);
+ pLeftBranches.AddChild(pLeftInferiorLobeAnteromedialBasalBronchiole);
+ pLeftBranches.AddChild(pLeftInferiorLobeSuperiorBronchiole);
+ pLeftBranches.AddChild(pLeftSuperiorLobeInferiorLingulaBronchiole);
+ pLeftBranches.AddChild(pLeftSuperiorLobeSuperiorLingulaBronchiole);
+ pLeftBranches.AddChild(pLeftSuperiorLobeAnteriorBronchiole);
+ pLeftBranches.AddChild(pLeftSuperiorLobeApicoposteriorBronchiole);
+
+ SEGasCompartment& pRightBranches = m_Compartments->CreateGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightBranches);
+ pRightBranches.AddChild(pRightMainBronchus);
+ pRightBranches.AddChild(pRightIntermediateBronchus);
+ pRightBranches.AddChild(pRightSuperiorLobarBronchus);
+ pRightBranches.AddChild(pRightMiddleLobarBronchus);
+ pRightBranches.AddChild(pRightInferiorLobarBronchus1);
+ pRightBranches.AddChild(pRightInferiorLobarBronchus2);
+ pRightBranches.AddChild(pRightSuperiorApicoposteriorBronchus);
+ pRightBranches.AddChild(pRightInferiorLobarBronchus3);
+ pRightBranches.AddChild(pRightInferiorLobarBronchus4);
+
+ pRightBranches.AddChild(pRightSuperiorLobeApicalBronchiole);
+ pRightBranches.AddChild(pRightSuperiorLobePosteriorBronchiole);
+ pRightBranches.AddChild(pRightSuperiorLobeAnteriorBronchiole);
+ pRightBranches.AddChild(pRightMiddleLobeLateralBronchiole);
+ pRightBranches.AddChild(pRightMiddleLobeMedialBronchiole);
+ pRightBranches.AddChild(pRightInferiorLobeSuperiorBronchiole);
+ pRightBranches.AddChild(pRightInferiorLobeMedialBasalBronchiole);
+ pRightBranches.AddChild(pRightInferiorLobeAnteriorBasalBronchiole);
+ pRightBranches.AddChild(pRightInferiorLobeLateralBasalBronchiole);
+ pRightBranches.AddChild(pRightInferiorLobePosteriorBasalBronchiole);
+
+ SEGasCompartment& pLeftAnatomicDeadSpace = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::LeftAnatomicDeadSpace);
+ pLeftAnatomicDeadSpace.AddChild(pLeftBranches);
+
+ SEGasCompartment& pRightAnatomicDeadSpace = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::RightAnatomicDeadSpace);
+ pRightAnatomicDeadSpace.AddChild(pRightBranches);
+
+ SEGasCompartment& pLeftAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::LeftAlveolarDeadSpace);
+ pLeftAlveolarDeadSpace.AddChild(pLeftInferiorLobePosteriorBasalAlveolarDeadSpace);
+ pLeftAlveolarDeadSpace.AddChild(pLeftInferiorLobeLateralBasalAlveolarDeadSpace);
+ pLeftAlveolarDeadSpace.AddChild(pLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
+ pLeftAlveolarDeadSpace.AddChild(pLeftInferiorLobeSuperiorAlveolarDeadSpace);
+ pLeftAlveolarDeadSpace.AddChild(pLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
+ pLeftAlveolarDeadSpace.AddChild(pLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
+ pLeftAlveolarDeadSpace.AddChild(pLeftSuperiorLobeAnteriorAlveolarDeadSpace);
+ pLeftAlveolarDeadSpace.AddChild(pLeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
+
+ SEGasCompartment& pRightAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::RightAlveolarDeadSpace);
+ pRightAlveolarDeadSpace.AddChild(pRightSuperiorLobeApicalAlveolarDeadSpace);
+ pRightAlveolarDeadSpace.AddChild(pRightSuperiorLobePosteriorAlveolarDeadSpace);
+ pRightAlveolarDeadSpace.AddChild(pRightSuperiorLobeAnteriorAlveolarDeadSpace);
+ pRightAlveolarDeadSpace.AddChild(pRightMiddleLobeLateralAlveolarDeadSpace);
+ pRightAlveolarDeadSpace.AddChild(pRightMiddleLobeMedialAlveolarDeadSpace);
+ pRightAlveolarDeadSpace.AddChild(pRightInferiorLobeSuperiorAlveolarDeadSpace);
+ pRightAlveolarDeadSpace.AddChild(pRightInferiorLobeMedialBasalAlveolarDeadSpace);
+ pRightAlveolarDeadSpace.AddChild(pRightInferiorLobeAnteriorBasalAlveolarDeadSpace);
+ pRightAlveolarDeadSpace.AddChild(pRightInferiorLobeLateralBasalAlveolarDeadSpace);
+ pRightAlveolarDeadSpace.AddChild(pRightInferiorLobePosteriorBasalAlveolarDeadSpace);
+
+ SEGasCompartment& pLeftAlveoli = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::LeftAlveoli);
+ pLeftAlveoli.AddChild(pLeftInferiorLobePosteriorBasalAlveoli);
+ pLeftAlveoli.AddChild(pLeftInferiorLobeLateralBasalAlveoli);
+ pLeftAlveoli.AddChild(pLeftInferiorLobeAnteromedialBasalAlveoli);
+ pLeftAlveoli.AddChild(pLeftInferiorLobeSuperiorAlveoli);
+ pLeftAlveoli.AddChild(pLeftSuperiorLobeInferiorLingulaAlveoli);
+ pLeftAlveoli.AddChild(pLeftSuperiorLobeSuperiorLingulaAlveoli);
+ pLeftAlveoli.AddChild(pLeftSuperiorLobeAnteriorAlveoli);
+ pLeftAlveoli.AddChild(pLeftSuperiorLobeApicoposteriorAlveoli);
+
+ SEGasCompartment& pRightAlveoli = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::RightAlveoli);
+ pRightAlveoli.AddChild(pRightSuperiorLobeApicalAlveoli);
+ pRightAlveoli.AddChild(pRightSuperiorLobePosteriorAlveoli);
+ pRightAlveoli.AddChild(pRightSuperiorLobeAnteriorAlveoli);
+ pRightAlveoli.AddChild(pRightMiddleLobeLateralAlveoli);
+ pRightAlveoli.AddChild(pRightMiddleLobeMedialAlveoli);
+ pRightAlveoli.AddChild(pRightInferiorLobeSuperiorAlveoli);
+ pRightAlveoli.AddChild(pRightInferiorLobeMedialBasalAlveoli);
+ pRightAlveoli.AddChild(pRightInferiorLobeAnteriorBasalAlveoli);
+ pRightAlveoli.AddChild(pRightInferiorLobeLateralBasalAlveoli);
+ pRightAlveoli.AddChild(pRightInferiorLobePosteriorBasalAlveoli);
+
+ // Set up hierarchy
+ SEGasCompartment& pLeftLung = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::LeftLung);
+ pLeftLung.AddChild(pLeftBranches);
+ pLeftLung.AddChild(pLeftAlveoli);
+ SEGasCompartment& pRightLung = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::RightLung);
+ pRightLung.AddChild(pRightBranches);
+ pRightLung.AddChild(pRightAlveoli);
+ SEGasCompartment& pLungs = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::Lungs);
+ pLungs.AddChild(pLeftLung);
+ pLungs.AddChild(pRightLung);
+ SEGasCompartment& pPleuralCavity = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::PleuralCavity);
+ pPleuralCavity.AddChild(pLeftPleural);
+ pPleuralCavity.AddChild(pRightPleural);
+
+ // Set up other groupings
+ SEGasCompartment& pAlveoli = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::Alveoli);
+ pAlveoli.AddChild(pLeftAlveoli);
+ pAlveoli.AddChild(pRightAlveoli);
+ SEGasCompartment& pAlveolarDeadSpace = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::AlveolarDeadSpace);
+ pAlveolarDeadSpace.AddChild(pLeftAlveolarDeadSpace);
+ pAlveolarDeadSpace.AddChild(pRightAlveolarDeadSpace);
+ SEGasCompartment& pAnatomicDeadSpace = m_Compartments->CreateGasCompartment(pulse::PulmonaryCompartment::AnatomicDeadSpace);
+ /// \TODO: Add these to the dead space, and make sure to account for it in node volume
+ //pAnatomicDeadSpace.AddChild(pAirway);
+ //pAnatomicDeadSpace.AddChild(pPharynx);
+ //pAnatomicDeadSpace.AddChild(pCarina);
+ pAnatomicDeadSpace.AddChild(pLeftAnatomicDeadSpace);
+ pAnatomicDeadSpace.AddChild(pRightAnatomicDeadSpace);
+
+ //// Setup Links //
+ SEGasCompartment* gEnvironment = m_Compartments->GetGasCompartment(pulse::EnvironmentCompartment::Ambient);
+ SEGasCompartmentLink& pEnvironmentToAirway = m_Compartments->CreateGasLink(*gEnvironment, pAirway, pulse::PulmonaryLink::EnvironmentToAirway);
+ pEnvironmentToAirway.MapPath(EnvironmentToAirway);
+ SEGasCompartmentLink& pAirwayToPharynx = m_Compartments->CreateGasLink(pAirway, pPharynx, pulse::PulmonaryLink::AirwayToPharynx);
+ pAirwayToPharynx.MapPath(AirwayToPharynx);
+ SEGasCompartmentLink& pPharynxToCarina = m_Compartments->CreateGasLink(pPharynx, pCarina, pulse::PulmonaryLink::PharynxToCarina);
+ pPharynxToCarina.MapPath(PharynxToCarina);
+ SEGasCompartmentLink& pPharynxToEnvironment = m_Compartments->CreateGasLink(pPharynx, *gEnvironment, pulse::PulmonaryLink::PharynxToEnvironment);
+ pPharynxToEnvironment.MapPath(PharynxToEnvironment);
+ SEGasCompartmentLink& pAirwayToStomach = m_Compartments->CreateGasLink(pAirway, pStomach, pulse::PulmonaryLink::AirwayToStomach);
+ pAirwayToStomach.MapPath(AirwayToStomach);
+
+ SEGasCompartmentLink& pCarinaToRightMainBronchus = m_Compartments->CreateGasLink(pCarina, pRightMainBronchus, pulse::ExpandedLungsPulmonaryLink::CarinaToRightMainBronchus);
+ SEGasCompartmentLink& pRightMainBronchusToRightIntermediateBronchus = m_Compartments->CreateGasLink(pRightMainBronchus, pRightIntermediateBronchus, pulse::ExpandedLungsPulmonaryLink::RightMainBronchusToRightIntermediateBronchus);
+ SEGasCompartmentLink& pRightMainBronchusToRightSuperiorLobarBronchus = m_Compartments->CreateGasLink(pRightMainBronchus, pRightSuperiorLobarBronchus, pulse::ExpandedLungsPulmonaryLink::RightMainBronchusToRightSuperiorLobarBronchus);
+ SEGasCompartmentLink& pRightIntermediateBronchusToRightMiddleLobarBronchus = m_Compartments->CreateGasLink(pRightIntermediateBronchus, pRightMiddleLobarBronchus, pulse::ExpandedLungsPulmonaryLink::RightIntermediateBronchusToRightMiddleLobarBronchus);
+ SEGasCompartmentLink& pRightIntermediateBronchusToRightInferiorLobarBronchus1 = m_Compartments->CreateGasLink(pRightIntermediateBronchus, pRightInferiorLobarBronchus1, pulse::ExpandedLungsPulmonaryLink::RightIntermediateBronchusToRightInferiorLobarBronchus1);
+ SEGasCompartmentLink& pRightInferiorLobarBronchus1ToRightInferiorLobarBronchus2 = m_Compartments->CreateGasLink(pRightInferiorLobarBronchus1, pRightInferiorLobarBronchus2, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobarBronchus1ToRightInferiorLobarBronchus2);
+ SEGasCompartmentLink& pRightSuperiorLobarBronchusToRightSuperiorApicoposteriorBronchus = m_Compartments->CreateGasLink(pRightSuperiorLobarBronchus, pRightSuperiorApicoposteriorBronchus, pulse::ExpandedLungsPulmonaryLink::RightSuperiorLobarBronchusToRightSuperiorApicoposteriorBronchus);
+ SEGasCompartmentLink& pRightInferiorLobarBronchus2ToRightInferiorLobarBronchus3 = m_Compartments->CreateGasLink(pRightInferiorLobarBronchus2, pRightInferiorLobarBronchus3, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobarBronchus2ToRightInferiorLobarBronchus3);
+ SEGasCompartmentLink& pRightInferiorLobarBronchus2ToRightInferiorLobarBronchus4 = m_Compartments->CreateGasLink(pRightInferiorLobarBronchus2, pRightInferiorLobarBronchus4, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobarBronchus2ToRightInferiorLobarBronchus4);
+
+ SEGasCompartmentLink& pCarinaToLeftMainBronchus = m_Compartments->CreateGasLink(pCarina, pLeftMainBronchus, pulse::ExpandedLungsPulmonaryLink::CarinaToLeftMainBronchus);
+ SEGasCompartmentLink& pLeftMainBronchusToLeftInferiorLobarBronchus1 = m_Compartments->CreateGasLink(pLeftMainBronchus, pLeftInferiorLobarBronchus1, pulse::ExpandedLungsPulmonaryLink::LeftMainBronchusToLeftInferiorLobarBronchus1);
+ SEGasCompartmentLink& pLeftMainBronchusToLeftSuperiorLobarBronchus = m_Compartments->CreateGasLink(pLeftMainBronchus, pLeftSuperiorLobarBronchus, pulse::ExpandedLungsPulmonaryLink::LeftMainBronchusToLeftSuperiorLobarBronchus);
+ SEGasCompartmentLink& pLeftInferiorLobarBronchus1ToLeftInferiorLobarBronchus2 = m_Compartments->CreateGasLink(pLeftInferiorLobarBronchus1, pLeftInferiorLobarBronchus2, pulse::ExpandedLungsPulmonaryLink::LeftInferiorLobarBronchus1ToLeftInferiorLobarBronchus2);
+ SEGasCompartmentLink& pLeftInferiorLobarBronchus2ToLeftInferiorLobarBronchus3 = m_Compartments->CreateGasLink(pLeftInferiorLobarBronchus2, pLeftInferiorLobarBronchus3, pulse::ExpandedLungsPulmonaryLink::LeftInferiorLobarBronchus2ToLeftInferiorLobarBronchus3);
+ SEGasCompartmentLink& pLeftSuperiorLobarBronchusToLeftLingularBonchus = m_Compartments->CreateGasLink(pLeftSuperiorLobarBronchus, pLeftLingularBonchus, pulse::ExpandedLungsPulmonaryLink::LeftSuperiorLobarBronchusToLeftLingularBonchus);
+ SEGasCompartmentLink& pLeftSuperiorLobarBronchusToLeftSuperiorApicoposteriorBronchus = m_Compartments->CreateGasLink(pLeftSuperiorLobarBronchus, pLeftSuperiorApicoposteriorBronchus, pulse::ExpandedLungsPulmonaryLink::LeftSuperiorLobarBronchusToLeftSuperiorApicoposteriorBronchus);
+
+ SEGasCompartmentLink& pRightSuperiorApicoposteriorBronchusToRightSuperiorLobeApicalBronchiole = m_Compartments->CreateGasLink(pRightSuperiorApicoposteriorBronchus, pRightSuperiorLobeApicalBronchiole, pulse::ExpandedLungsPulmonaryLink::RightSuperiorApicoposteriorBronchusToRightSuperiorLobeApicalBronchiole);
+ SEGasCompartmentLink& pRightSuperiorApicoposteriorBronchusToRightSuperiorLobePosteriorBronchiole = m_Compartments->CreateGasLink(pRightSuperiorApicoposteriorBronchus, pRightSuperiorLobePosteriorBronchiole, pulse::ExpandedLungsPulmonaryLink::RightSuperiorApicoposteriorBronchusToRightSuperiorLobePosteriorBronchiole);
+ SEGasCompartmentLink& pRightSuperiorLobarBronchusToRightSuperiorLobeAnteriorBronchiole = m_Compartments->CreateGasLink(pRightSuperiorLobarBronchus, pRightSuperiorLobeAnteriorBronchiole, pulse::ExpandedLungsPulmonaryLink::RightSuperiorLobarBronchusToRightSuperiorLobeAnteriorBronchiole);
+ SEGasCompartmentLink& pRightMiddleLobarBronchusToRightMiddleLobeLateralBronchiole = m_Compartments->CreateGasLink(pRightMiddleLobarBronchus, pRightMiddleLobeLateralBronchiole, pulse::ExpandedLungsPulmonaryLink::RightMiddleLobarBronchusToRightMiddleLobeLateralBronchiole);
+ SEGasCompartmentLink& pRightMiddleLobarBronchusToRightMiddleLobeMedialBronchiole = m_Compartments->CreateGasLink(pRightMiddleLobarBronchus, pRightMiddleLobeMedialBronchiole, pulse::ExpandedLungsPulmonaryLink::RightMiddleLobarBronchusToRightMiddleLobeMedialBronchiole);
+ SEGasCompartmentLink& pRightInferiorLobarBronchus1ToRightInferiorLobeSuperiorBronchiole = m_Compartments->CreateGasLink(pRightInferiorLobarBronchus1, pRightInferiorLobeSuperiorBronchiole, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobarBronchus1ToRightInferiorLobeSuperiorBronchiole);
+ SEGasCompartmentLink& pRightInferiorLobarBronchus2ToRightInferiorLobeMedialBasalBronchiole = m_Compartments->CreateGasLink(pRightInferiorLobarBronchus2, pRightInferiorLobeMedialBasalBronchiole, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobarBronchus2ToRightInferiorLobeMedialBasalBronchiole);
+ SEGasCompartmentLink& pRightInferiorLobarBronchus3ToRightInferiorLobeAnteriorBasalBronchiole = m_Compartments->CreateGasLink(pRightInferiorLobarBronchus3, pRightInferiorLobeAnteriorBasalBronchiole, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobarBronchus3ToRightInferiorLobeAnteriorBasalBronchiole);
+ SEGasCompartmentLink& pRightInferiorLobarBronchus4ToRightInferiorLobeLateralBasalBronchiole = m_Compartments->CreateGasLink(pRightInferiorLobarBronchus4, pRightInferiorLobeLateralBasalBronchiole, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobarBronchus4ToRightInferiorLobeLateralBasalBronchiole);
+ SEGasCompartmentLink& pRightInferiorLobarBronchus4ToRightInferiorLobePosteriorBasalBronchiole = m_Compartments->CreateGasLink(pRightInferiorLobarBronchus4, pRightInferiorLobePosteriorBasalBronchiole, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobarBronchus4ToRightInferiorLobePosteriorBasalBronchiole);
+
+ SEGasCompartmentLink& pLeftInferiorLobarBronchus3ToLeftInferiorLobeLateralBasalBronchiole = m_Compartments->CreateGasLink(pLeftInferiorLobarBronchus3, pLeftInferiorLobeLateralBasalBronchiole, pulse::ExpandedLungsPulmonaryLink::LeftInferiorLobarBronchus3ToLeftInferiorLobeLateralBasalBronchiole);
+ SEGasCompartmentLink& pLeftInferiorLobarBronchus3ToLeftInferiorLobePosteriorBasalBronchiole = m_Compartments->CreateGasLink(pLeftInferiorLobarBronchus3, pLeftInferiorLobePosteriorBasalBronchiole, pulse::ExpandedLungsPulmonaryLink::LeftInferiorLobarBronchus3ToLeftInferiorLobePosteriorBasalBronchiole);
+ SEGasCompartmentLink& pLeftInferiorLobarBronchus2ToLeftInferiorLobeAnteromedialBasalBronchiole = m_Compartments->CreateGasLink(pLeftInferiorLobarBronchus2, pLeftInferiorLobeAnteromedialBasalBronchiole, pulse::ExpandedLungsPulmonaryLink::LeftInferiorLobarBronchus2ToLeftInferiorLobeAnteromedialBasalBronchiole);
+ SEGasCompartmentLink& pLeftInferiorLobarBronchus1ToLeftInferiorLobeSuperiorBronchiole = m_Compartments->CreateGasLink(pLeftInferiorLobarBronchus1, pLeftInferiorLobeSuperiorBronchiole, pulse::ExpandedLungsPulmonaryLink::LeftInferiorLobarBronchus1ToLeftInferiorLobeSuperiorBronchiole);
+ SEGasCompartmentLink& pLeftLingularBonchusToLeftSuperiorLobeInferiorLingulaBronchiole = m_Compartments->CreateGasLink(pLeftLingularBonchus, pLeftSuperiorLobeInferiorLingulaBronchiole, pulse::ExpandedLungsPulmonaryLink::LeftLingularBonchusToLeftSuperiorLobeInferiorLingulaBronchiole);
+ SEGasCompartmentLink& pLeftLingularBonchusToLeftSuperiorLobeSuperiorLingulaBronchiole = m_Compartments->CreateGasLink(pLeftLingularBonchus, pLeftSuperiorLobeSuperiorLingulaBronchiole, pulse::ExpandedLungsPulmonaryLink::LeftLingularBonchusToLeftSuperiorLobeSuperiorLingulaBronchiole);
+ SEGasCompartmentLink& pLeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeAnteriorBronchiole = m_Compartments->CreateGasLink(pLeftSuperiorApicoposteriorBronchus, pLeftSuperiorLobeAnteriorBronchiole, pulse::ExpandedLungsPulmonaryLink::LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeAnteriorBronchiole);
+ SEGasCompartmentLink& pLeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeApicoposteriorBronchiole = m_Compartments->CreateGasLink(pLeftSuperiorApicoposteriorBronchus, pLeftSuperiorLobeApicoposteriorBronchiole, pulse::ExpandedLungsPulmonaryLink::LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeApicoposteriorBronchiole);
+
+ SEGasCompartmentLink& pRightSuperiorLobeApicalBronchioleToRightSuperiorLobeApicalAlveolarDeadSpace = m_Compartments->CreateGasLink(pRightSuperiorLobeApicalBronchiole, pRightSuperiorLobeApicalAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::RightSuperiorLobeApicalBronchioleToRightSuperiorLobeApicalAlveolarDeadSpace);
+ SEGasCompartmentLink& pRightSuperiorLobePosteriorBronchioleToRightSuperiorLobePosteriorAlveolarDeadSpace = m_Compartments->CreateGasLink(pRightSuperiorLobePosteriorBronchiole, pRightSuperiorLobePosteriorAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::RightSuperiorLobePosteriorBronchioleToRightSuperiorLobePosteriorAlveolarDeadSpace);
+ SEGasCompartmentLink& pRightSuperiorLobeAnteriorBronchioleToRightSuperiorLobeAnteriorAlveolarDeadSpace = m_Compartments->CreateGasLink(pRightSuperiorLobeAnteriorBronchiole, pRightSuperiorLobeAnteriorAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::RightSuperiorLobeAnteriorBronchioleToRightSuperiorLobeAnteriorAlveolarDeadSpace);
+ SEGasCompartmentLink& pRightMiddleLobeLateralBronchioleToRightMiddleLobeLateralAlveolarDeadSpace = m_Compartments->CreateGasLink(pRightMiddleLobeLateralBronchiole, pRightMiddleLobeLateralAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::RightMiddleLobeLateralBronchioleToRightMiddleLobeLateralAlveolarDeadSpace);
+ SEGasCompartmentLink& pRightMiddleLobeMedialBronchioleToRightMiddleLobeMedialAlveolarDeadSpace = m_Compartments->CreateGasLink(pRightMiddleLobeMedialBronchiole, pRightMiddleLobeMedialAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::RightMiddleLobeMedialBronchioleToRightMiddleLobeMedialAlveolarDeadSpace);
+ SEGasCompartmentLink& pRightInferiorLobeSuperiorBronchioleToRightInferiorLobeSuperiorAlveolarDeadSpace = m_Compartments->CreateGasLink(pRightInferiorLobeSuperiorBronchiole, pRightInferiorLobeSuperiorAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobeSuperiorBronchioleToRightInferiorLobeSuperiorAlveolarDeadSpace);
+ SEGasCompartmentLink& pRightInferiorLobeMedialBasalBronchioleToRightInferiorLobeMedialBasalAlveolarDeadSpace = m_Compartments->CreateGasLink(pRightInferiorLobeMedialBasalBronchiole, pRightInferiorLobeMedialBasalAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobeMedialBasalBronchioleToRightInferiorLobeMedialBasalAlveolarDeadSpace);
+ SEGasCompartmentLink& pRightInferiorLobeAnteriorBasalBronchioleToRightInferiorLobeAnteriorBasalAlveolarDeadSpace = m_Compartments->CreateGasLink(pRightInferiorLobeAnteriorBasalBronchiole, pRightInferiorLobeAnteriorBasalAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobeAnteriorBasalBronchioleToRightInferiorLobeAnteriorBasalAlveolarDeadSpace);
+ SEGasCompartmentLink& pRightInferiorLobeLateralBasalBronchioleToRightInferiorLobeLateralBasalAlveolarDeadSpace = m_Compartments->CreateGasLink(pRightInferiorLobeLateralBasalBronchiole, pRightInferiorLobeLateralBasalAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobeLateralBasalBronchioleToRightInferiorLobeLateralBasalAlveolarDeadSpace);
+ SEGasCompartmentLink& pRightInferiorLobePosteriorBasalBronchioleToRightInferiorLobePosteriorBasalAlveolarDeadSpace = m_Compartments->CreateGasLink(pRightInferiorLobePosteriorBasalBronchiole, pRightInferiorLobePosteriorBasalAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobePosteriorBasalBronchioleToRightInferiorLobePosteriorBasalAlveolarDeadSpace);
+
+ SEGasCompartmentLink& pLeftInferiorLobePosteriorBasalBronchioleToLeftInferiorLobePosteriorBasalAlveolarDeadSpace = m_Compartments->CreateGasLink(pLeftInferiorLobePosteriorBasalBronchiole, pLeftInferiorLobePosteriorBasalAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::LeftInferiorLobePosteriorBasalBronchioleToLeftInferiorLobePosteriorBasalAlveolarDeadSpace);
+ SEGasCompartmentLink& pLeftInferiorLobeLateralBasalBronchioleToLeftInferiorLobeLateralBasalAlveolarDeadSpace = m_Compartments->CreateGasLink(pLeftInferiorLobeLateralBasalBronchiole, pLeftInferiorLobeLateralBasalAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::LeftInferiorLobeLateralBasalBronchioleToLeftInferiorLobeLateralBasalAlveolarDeadSpace);
+ SEGasCompartmentLink& pLeftInferiorLobeAnteromedialBasalBronchioleToLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace = m_Compartments->CreateGasLink(pLeftInferiorLobeAnteromedialBasalBronchiole, pLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::LeftInferiorLobeAnteromedialBasalBronchioleToLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
+ SEGasCompartmentLink& pLeftInferiorLobeSuperiorBronchioleToLeftInferiorLobeSuperiorAlveolarDeadSpace = m_Compartments->CreateGasLink(pLeftInferiorLobeSuperiorBronchiole, pLeftInferiorLobeSuperiorAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::LeftInferiorLobeSuperiorBronchioleToLeftInferiorLobeSuperiorAlveolarDeadSpace);
+ SEGasCompartmentLink& pLeftSuperiorLobeInferiorLingulaBronchioleToLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace = m_Compartments->CreateGasLink(pLeftSuperiorLobeInferiorLingulaBronchiole, pLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::LeftSuperiorLobeInferiorLingulaBronchioleToLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
+ SEGasCompartmentLink& pLeftSuperiorLobeSuperiorLingulaBronchioleToLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace = m_Compartments->CreateGasLink(pLeftSuperiorLobeSuperiorLingulaBronchiole, pLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::LeftSuperiorLobeSuperiorLingulaBronchioleToLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
+ SEGasCompartmentLink& pLeftSuperiorLobeAnteriorBronchioleToLeftSuperiorLobeAnteriorAlveolarDeadSpace = m_Compartments->CreateGasLink(pLeftSuperiorLobeAnteriorBronchiole, pLeftSuperiorLobeAnteriorAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::LeftSuperiorLobeAnteriorBronchioleToLeftSuperiorLobeAnteriorAlveolarDeadSpace);
+ SEGasCompartmentLink& pLeftSuperiorLobeApicoposteriorBronchioleToLeftSuperiorLobeApicoposteriorAlveolarDeadSpace = m_Compartments->CreateGasLink(pLeftSuperiorLobeApicoposteriorBronchiole, pLeftSuperiorLobeApicoposteriorAlveolarDeadSpace, pulse::ExpandedLungsPulmonaryLink::LeftSuperiorLobeApicoposteriorBronchioleToLeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
+
+ SEGasCompartmentLink& pRightSuperiorLobeApicalAlveolarDeadSpaceToRightSuperiorLobeApicalAlveoli = m_Compartments->CreateGasLink(pRightSuperiorLobeApicalAlveolarDeadSpace, pRightSuperiorLobeApicalAlveoli, pulse::ExpandedLungsPulmonaryLink::RightSuperiorLobeApicalAlveolarDeadSpaceToRightSuperiorLobeApicalAlveoli);
+ SEGasCompartmentLink& pRightSuperiorLobePosteriorAlveolarDeadSpaceToRightSuperiorLobePosteriorAlveoli = m_Compartments->CreateGasLink(pRightSuperiorLobePosteriorAlveolarDeadSpace, pRightSuperiorLobePosteriorAlveoli, pulse::ExpandedLungsPulmonaryLink::RightSuperiorLobePosteriorAlveolarDeadSpaceToRightSuperiorLobePosteriorAlveoli);
+ SEGasCompartmentLink& pRightSuperiorLobeAnteriorAlveolarDeadSpaceToRightSuperiorLobeAnteriorAlveoli = m_Compartments->CreateGasLink(pRightSuperiorLobeAnteriorAlveolarDeadSpace, pRightSuperiorLobeAnteriorAlveoli, pulse::ExpandedLungsPulmonaryLink::RightSuperiorLobeAnteriorAlveolarDeadSpaceToRightSuperiorLobeAnteriorAlveoli);
+ SEGasCompartmentLink& pRightMiddleLobeLateralAlveolarDeadSpaceToRightMiddleLobeLateralAlveoli = m_Compartments->CreateGasLink(pRightMiddleLobeLateralAlveolarDeadSpace, pRightMiddleLobeLateralAlveoli, pulse::ExpandedLungsPulmonaryLink::RightMiddleLobeLateralAlveolarDeadSpaceToRightMiddleLobeLateralAlveoli);
+ SEGasCompartmentLink& pRightMiddleLobeMedialAlveolarDeadSpaceToRightMiddleLobeMedialAlveoli = m_Compartments->CreateGasLink(pRightMiddleLobeMedialAlveolarDeadSpace, pRightMiddleLobeMedialAlveoli, pulse::ExpandedLungsPulmonaryLink::RightMiddleLobeMedialAlveolarDeadSpaceToRightMiddleLobeMedialAlveoli);
+ SEGasCompartmentLink& pRightInferiorLobeSuperiorAlveolarDeadSpaceToRightInferiorLobeSuperiorAlveoli = m_Compartments->CreateGasLink(pRightInferiorLobeSuperiorAlveolarDeadSpace, pRightInferiorLobeSuperiorAlveoli, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobeSuperiorAlveolarDeadSpaceToRightInferiorLobeSuperiorAlveoli);
+ SEGasCompartmentLink& pRightInferiorLobeMedialBasalAlveolarDeadSpaceToRightInferiorLobeMedialBasalAlveoli = m_Compartments->CreateGasLink(pRightInferiorLobeMedialBasalAlveolarDeadSpace, pRightInferiorLobeMedialBasalAlveoli, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobeMedialBasalAlveolarDeadSpaceToRightInferiorLobeMedialBasalAlveoli);
+ SEGasCompartmentLink& pRightInferiorLobeAnteriorBasalAlveolarDeadSpaceToRightInferiorLobeAnteriorBasalAlveoli = m_Compartments->CreateGasLink(pRightInferiorLobeAnteriorBasalAlveolarDeadSpace, pRightInferiorLobeAnteriorBasalAlveoli, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobeAnteriorBasalAlveolarDeadSpaceToRightInferiorLobeAnteriorBasalAlveoli);
+ SEGasCompartmentLink& pRightInferiorLobeLateralBasalAlveolarDeadSpaceToRightInferiorLobeLateralBasalAlveoli = m_Compartments->CreateGasLink(pRightInferiorLobeLateralBasalAlveolarDeadSpace, pRightInferiorLobeLateralBasalAlveoli, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobeLateralBasalAlveolarDeadSpaceToRightInferiorLobeLateralBasalAlveoli);
+ SEGasCompartmentLink& pRightInferiorLobePosteriorBasalAlveolarDeadSpaceToRightInferiorLobePosteriorBasalAlveoli = m_Compartments->CreateGasLink(pRightInferiorLobePosteriorBasalAlveolarDeadSpace, pRightInferiorLobePosteriorBasalAlveoli, pulse::ExpandedLungsPulmonaryLink::RightInferiorLobePosteriorBasalAlveolarDeadSpaceToRightInferiorLobePosteriorBasalAlveoli);
+
+ SEGasCompartmentLink& pLeftInferiorLobePosteriorBasalAlveolarDeadSpaceToLeftInferiorLobePosteriorBasalAlveoli = m_Compartments->CreateGasLink(pLeftInferiorLobePosteriorBasalAlveolarDeadSpace, pLeftInferiorLobePosteriorBasalAlveoli, pulse::ExpandedLungsPulmonaryLink::LeftInferiorLobePosteriorBasalAlveolarDeadSpaceToLeftInferiorLobePosteriorBasalAlveoli);
+ SEGasCompartmentLink& pLeftInferiorLobeLateralBasalAlveolarDeadSpaceToLeftInferiorLobeLateralBasalAlveoli = m_Compartments->CreateGasLink(pLeftInferiorLobeLateralBasalAlveolarDeadSpace, pLeftInferiorLobeLateralBasalAlveoli, pulse::ExpandedLungsPulmonaryLink::LeftInferiorLobeLateralBasalAlveolarDeadSpaceToLeftInferiorLobeLateralBasalAlveoli);
+ SEGasCompartmentLink& pLeftInferiorLobeAnteromedialBasalAlveolarDeadSpaceToLeftInferiorLobeAnteromedialBasalAlveoli = m_Compartments->CreateGasLink(pLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace, pLeftInferiorLobeAnteromedialBasalAlveoli, pulse::ExpandedLungsPulmonaryLink::LeftInferiorLobeAnteromedialBasalAlveolarDeadSpaceToLeftInferiorLobeAnteromedialBasalAlveoli);
+ SEGasCompartmentLink& pLeftInferiorLobeSuperiorAlveolarDeadSpaceToLeftInferiorLobeSuperiorAlveoli = m_Compartments->CreateGasLink(pLeftInferiorLobeSuperiorAlveolarDeadSpace, pLeftInferiorLobeSuperiorAlveoli, pulse::ExpandedLungsPulmonaryLink::LeftInferiorLobeSuperiorAlveolarDeadSpaceToLeftInferiorLobeSuperiorAlveoli);
+ SEGasCompartmentLink& pLeftSuperiorLobeInferiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeInferiorLingulaAlveoli = m_Compartments->CreateGasLink(pLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace, pLeftSuperiorLobeInferiorLingulaAlveoli, pulse::ExpandedLungsPulmonaryLink::LeftSuperiorLobeInferiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeInferiorLingulaAlveoli);
+ SEGasCompartmentLink& pLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeSuperiorLingulaAlveoli = m_Compartments->CreateGasLink(pLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace, pLeftSuperiorLobeSuperiorLingulaAlveoli, pulse::ExpandedLungsPulmonaryLink::LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeSuperiorLingulaAlveoli);
+ SEGasCompartmentLink& pLeftSuperiorLobeAnteriorAlveolarDeadSpaceToLeftSuperiorLobeAnteriorAlveoli = m_Compartments->CreateGasLink(pLeftSuperiorLobeAnteriorAlveolarDeadSpace, pLeftSuperiorLobeAnteriorAlveoli, pulse::ExpandedLungsPulmonaryLink::LeftSuperiorLobeAnteriorAlveolarDeadSpaceToLeftSuperiorLobeAnteriorAlveoli);
+ SEGasCompartmentLink& pLeftSuperiorLobeApicoposteriorAlveolarDeadSpaceToLeftSuperiorLobeApicoposteriorAlveoli = m_Compartments->CreateGasLink(pLeftSuperiorLobeApicoposteriorAlveolarDeadSpace, pLeftSuperiorLobeApicoposteriorAlveoli, pulse::ExpandedLungsPulmonaryLink::LeftSuperiorLobeApicoposteriorAlveolarDeadSpaceToLeftSuperiorLobeApicoposteriorAlveoli);
+
+ pCarinaToRightMainBronchus.MapPath(CarinaToRightMainBronchus);
+ pRightMainBronchusToRightIntermediateBronchus.MapPath(RightMainBronchusToRightIntermediateBronchus);
+ pRightMainBronchusToRightSuperiorLobarBronchus.MapPath(RightMainBronchusToRightSuperiorLobarBronchus);
+ pRightIntermediateBronchusToRightMiddleLobarBronchus.MapPath(RightIntermediateBronchusToRightMiddleLobarBronchus);
+ pRightIntermediateBronchusToRightInferiorLobarBronchus1.MapPath(RightIntermediateBronchusToRightInferiorLobarBronchus1);
+ pRightInferiorLobarBronchus1ToRightInferiorLobarBronchus2.MapPath(RightInferiorLobarBronchus1ToRightInferiorLobarBronchus2);
+ pRightSuperiorLobarBronchusToRightSuperiorApicoposteriorBronchus.MapPath(RightSuperiorLobarBronchusToRightSuperiorApicoposteriorBronchus);
+ pRightInferiorLobarBronchus2ToRightInferiorLobarBronchus3.MapPath(RightInferiorLobarBronchus2ToRightInferiorLobarBronchus3);
+ pRightInferiorLobarBronchus2ToRightInferiorLobarBronchus4.MapPath(RightInferiorLobarBronchus2ToRightInferiorLobarBronchus4);
+
+ pCarinaToLeftMainBronchus.MapPath(CarinaToLeftMainBronchus);
+ pLeftMainBronchusToLeftInferiorLobarBronchus1.MapPath(LeftMainBronchusToLeftInferiorLobarBronchus1);
+ pLeftMainBronchusToLeftSuperiorLobarBronchus.MapPath(LeftMainBronchusToLeftSuperiorLobarBronchus);
+ pLeftInferiorLobarBronchus1ToLeftInferiorLobarBronchus2.MapPath(LeftInferiorLobarBronchus1ToLeftInferiorLobarBronchus2);
+ pLeftInferiorLobarBronchus2ToLeftInferiorLobarBronchus3.MapPath(LeftInferiorLobarBronchus2ToLeftInferiorLobarBronchus3);
+ pLeftSuperiorLobarBronchusToLeftLingularBonchus.MapPath(LeftSuperiorLobarBronchusToLeftLingularBonchus);
+ pLeftSuperiorLobarBronchusToLeftSuperiorApicoposteriorBronchus.MapPath(LeftSuperiorLobarBronchusToLeftSuperiorApicoposteriorBronchus);
+
+ pRightSuperiorApicoposteriorBronchusToRightSuperiorLobeApicalBronchiole.MapPath(RightSuperiorApicoposteriorBronchusToRightSuperiorLobeApicalBronchiole);
+ pRightSuperiorApicoposteriorBronchusToRightSuperiorLobePosteriorBronchiole.MapPath(RightSuperiorApicoposteriorBronchusToRightSuperiorLobePosteriorBronchiole);
+ pRightSuperiorLobarBronchusToRightSuperiorLobeAnteriorBronchiole.MapPath(RightSuperiorLobarBronchusToRightSuperiorLobeAnteriorBronchiole);
+ pRightMiddleLobarBronchusToRightMiddleLobeLateralBronchiole.MapPath(RightMiddleLobarBronchusToRightMiddleLobeLateralBronchiole);
+ pRightMiddleLobarBronchusToRightMiddleLobeMedialBronchiole.MapPath(RightMiddleLobarBronchusToRightMiddleLobeMedialBronchiole);
+ pRightInferiorLobarBronchus1ToRightInferiorLobeSuperiorBronchiole.MapPath(RightInferiorLobarBronchus1ToRightInferiorLobeSuperiorBronchiole);
+ pRightInferiorLobarBronchus2ToRightInferiorLobeMedialBasalBronchiole.MapPath(RightInferiorLobarBronchus2ToRightInferiorLobeMedialBasalBronchiole);
+ pRightInferiorLobarBronchus3ToRightInferiorLobeAnteriorBasalBronchiole.MapPath(RightInferiorLobarBronchus3ToRightInferiorLobeAnteriorBasalBronchiole);
+ pRightInferiorLobarBronchus4ToRightInferiorLobeLateralBasalBronchiole.MapPath(RightInferiorLobarBronchus4ToRightInferiorLobeLateralBasalBronchiole);
+ pRightInferiorLobarBronchus4ToRightInferiorLobePosteriorBasalBronchiole.MapPath(RightInferiorLobarBronchus4ToRightInferiorLobePosteriorBasalBronchiole);
+
+ pLeftInferiorLobarBronchus3ToLeftInferiorLobeLateralBasalBronchiole.MapPath(LeftInferiorLobarBronchus3ToLeftInferiorLobeLateralBasalBronchiole);
+ pLeftInferiorLobarBronchus3ToLeftInferiorLobePosteriorBasalBronchiole.MapPath(LeftInferiorLobarBronchus3ToLeftInferiorLobePosteriorBasalBronchiole);
+ pLeftInferiorLobarBronchus2ToLeftInferiorLobeAnteromedialBasalBronchiole.MapPath(LeftInferiorLobarBronchus2ToLeftInferiorLobeAnteromedialBasalBronchiole);
+ pLeftInferiorLobarBronchus1ToLeftInferiorLobeSuperiorBronchiole.MapPath(LeftInferiorLobarBronchus1ToLeftInferiorLobeSuperiorBronchiole);
+ pLeftLingularBonchusToLeftSuperiorLobeInferiorLingulaBronchiole.MapPath(LeftLingularBonchusToLeftSuperiorLobeInferiorLingulaBronchiole);
+ pLeftLingularBonchusToLeftSuperiorLobeSuperiorLingulaBronchiole.MapPath(LeftLingularBonchusToLeftSuperiorLobeSuperiorLingulaBronchiole);
+ pLeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeAnteriorBronchiole.MapPath(LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeAnteriorBronchiole);
+ pLeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeApicoposteriorBronchiole.MapPath(LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeApicoposteriorBronchiole);
+
+ pRightSuperiorLobeApicalBronchioleToRightSuperiorLobeApicalAlveolarDeadSpace.MapPath(RightSuperiorLobeApicalBronchioleToRightSuperiorLobeApicalAlveolarDeadSpace);
+ pRightSuperiorLobePosteriorBronchioleToRightSuperiorLobePosteriorAlveolarDeadSpace.MapPath(RightSuperiorLobePosteriorBronchioleToRightSuperiorLobePosteriorAlveolarDeadSpace);
+ pRightSuperiorLobeAnteriorBronchioleToRightSuperiorLobeAnteriorAlveolarDeadSpace.MapPath(RightSuperiorLobeAnteriorBronchioleToRightSuperiorLobeAnteriorAlveolarDeadSpace);
+ pRightMiddleLobeLateralBronchioleToRightMiddleLobeLateralAlveolarDeadSpace.MapPath(RightMiddleLobeLateralBronchioleToRightMiddleLobeLateralAlveolarDeadSpace);
+ pRightMiddleLobeMedialBronchioleToRightMiddleLobeMedialAlveolarDeadSpace.MapPath(RightMiddleLobeMedialBronchioleToRightMiddleLobeMedialAlveolarDeadSpace);
+ pRightInferiorLobeSuperiorBronchioleToRightInferiorLobeSuperiorAlveolarDeadSpace.MapPath(RightInferiorLobeSuperiorBronchioleToRightInferiorLobeSuperiorAlveolarDeadSpace);
+ pRightInferiorLobeMedialBasalBronchioleToRightInferiorLobeMedialBasalAlveolarDeadSpace.MapPath(RightInferiorLobeMedialBasalBronchioleToRightInferiorLobeMedialBasalAlveolarDeadSpace);
+ pRightInferiorLobeAnteriorBasalBronchioleToRightInferiorLobeAnteriorBasalAlveolarDeadSpace.MapPath(RightInferiorLobeAnteriorBasalBronchioleToRightInferiorLobeAnteriorBasalAlveolarDeadSpace);
+ pRightInferiorLobeLateralBasalBronchioleToRightInferiorLobeLateralBasalAlveolarDeadSpace.MapPath(RightInferiorLobeLateralBasalBronchioleToRightInferiorLobeLateralBasalAlveolarDeadSpace);
+ pRightInferiorLobePosteriorBasalBronchioleToRightInferiorLobePosteriorBasalAlveolarDeadSpace.MapPath(RightInferiorLobePosteriorBasalBronchioleToRightInferiorLobePosteriorBasalAlveolarDeadSpace);
+
+ pLeftInferiorLobePosteriorBasalBronchioleToLeftInferiorLobePosteriorBasalAlveolarDeadSpace.MapPath(LeftInferiorLobePosteriorBasalBronchioleToLeftInferiorLobePosteriorBasalAlveolarDeadSpace);
+ pLeftInferiorLobeLateralBasalBronchioleToLeftInferiorLobeLateralBasalAlveolarDeadSpace.MapPath(LeftInferiorLobeLateralBasalBronchioleToLeftInferiorLobeLateralBasalAlveolarDeadSpace);
+ pLeftInferiorLobeAnteromedialBasalBronchioleToLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace.MapPath(LeftInferiorLobeAnteromedialBasalBronchioleToLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
+ pLeftInferiorLobeSuperiorBronchioleToLeftInferiorLobeSuperiorAlveolarDeadSpace.MapPath(LeftInferiorLobeSuperiorBronchioleToLeftInferiorLobeSuperiorAlveolarDeadSpace);
+ pLeftSuperiorLobeInferiorLingulaBronchioleToLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace.MapPath(LeftSuperiorLobeInferiorLingulaBronchioleToLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
+ pLeftSuperiorLobeSuperiorLingulaBronchioleToLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace.MapPath(LeftSuperiorLobeSuperiorLingulaBronchioleToLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
+ pLeftSuperiorLobeAnteriorBronchioleToLeftSuperiorLobeAnteriorAlveolarDeadSpace.MapPath(LeftSuperiorLobeAnteriorBronchioleToLeftSuperiorLobeAnteriorAlveolarDeadSpace);
+ pLeftSuperiorLobeApicoposteriorBronchioleToLeftSuperiorLobeApicoposteriorAlveolarDeadSpace.MapPath(LeftSuperiorLobeApicoposteriorBronchioleToLeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
+
+ pRightSuperiorLobeApicalAlveolarDeadSpaceToRightSuperiorLobeApicalAlveoli.MapPath(RightSuperiorLobeApicalAlveolarDeadSpaceToRightSuperiorLobeApicalAlveoli);
+ pRightSuperiorLobePosteriorAlveolarDeadSpaceToRightSuperiorLobePosteriorAlveoli.MapPath(RightSuperiorLobePosteriorAlveolarDeadSpaceToRightSuperiorLobePosteriorAlveoli);
+ pRightSuperiorLobeAnteriorAlveolarDeadSpaceToRightSuperiorLobeAnteriorAlveoli.MapPath(RightSuperiorLobeAnteriorAlveolarDeadSpaceToRightSuperiorLobeAnteriorAlveoli);
+ pRightMiddleLobeLateralAlveolarDeadSpaceToRightMiddleLobeLateralAlveoli.MapPath(RightMiddleLobeLateralAlveolarDeadSpaceToRightMiddleLobeLateralAlveoli);
+ pRightMiddleLobeMedialAlveolarDeadSpaceToRightMiddleLobeMedialAlveoli.MapPath(RightMiddleLobeMedialAlveolarDeadSpaceToRightMiddleLobeMedialAlveoli);
+ pRightInferiorLobeSuperiorAlveolarDeadSpaceToRightInferiorLobeSuperiorAlveoli.MapPath(RightInferiorLobeSuperiorAlveolarDeadSpaceToRightInferiorLobeSuperiorAlveoli);
+ pRightInferiorLobeMedialBasalAlveolarDeadSpaceToRightInferiorLobeMedialBasalAlveoli.MapPath(RightInferiorLobeMedialBasalAlveolarDeadSpaceToRightInferiorLobeMedialBasalAlveoli);
+ pRightInferiorLobeAnteriorBasalAlveolarDeadSpaceToRightInferiorLobeAnteriorBasalAlveoli.MapPath(RightInferiorLobeAnteriorBasalAlveolarDeadSpaceToRightInferiorLobeAnteriorBasalAlveoli);
+ pRightInferiorLobeLateralBasalAlveolarDeadSpaceToRightInferiorLobeLateralBasalAlveoli.MapPath(RightInferiorLobeLateralBasalAlveolarDeadSpaceToRightInferiorLobeLateralBasalAlveoli);
+ pRightInferiorLobePosteriorBasalAlveolarDeadSpaceToRightInferiorLobePosteriorBasalAlveoli.MapPath(RightInferiorLobePosteriorBasalAlveolarDeadSpaceToRightInferiorLobePosteriorBasalAlveoli);
+
+ pLeftInferiorLobePosteriorBasalAlveolarDeadSpaceToLeftInferiorLobePosteriorBasalAlveoli.MapPath(LeftInferiorLobePosteriorBasalAlveolarDeadSpaceToLeftInferiorLobePosteriorBasalAlveoli);
+ pLeftInferiorLobeLateralBasalAlveolarDeadSpaceToLeftInferiorLobeLateralBasalAlveoli.MapPath(LeftInferiorLobeLateralBasalAlveolarDeadSpaceToLeftInferiorLobeLateralBasalAlveoli);
+ pLeftInferiorLobeAnteromedialBasalAlveolarDeadSpaceToLeftInferiorLobeAnteromedialBasalAlveoli.MapPath(LeftInferiorLobeAnteromedialBasalAlveolarDeadSpaceToLeftInferiorLobeAnteromedialBasalAlveoli);
+ pLeftInferiorLobeSuperiorAlveolarDeadSpaceToLeftInferiorLobeSuperiorAlveoli.MapPath(LeftInferiorLobeSuperiorAlveolarDeadSpaceToLeftInferiorLobeSuperiorAlveoli);
+ pLeftSuperiorLobeInferiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeInferiorLingulaAlveoli.MapPath(LeftSuperiorLobeInferiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeInferiorLingulaAlveoli);
+ pLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeSuperiorLingulaAlveoli.MapPath(LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeSuperiorLingulaAlveoli);
+ pLeftSuperiorLobeAnteriorAlveolarDeadSpaceToLeftSuperiorLobeAnteriorAlveoli.MapPath(LeftSuperiorLobeAnteriorAlveolarDeadSpaceToLeftSuperiorLobeAnteriorAlveoli);
+ pLeftSuperiorLobeApicoposteriorAlveolarDeadSpaceToLeftSuperiorLobeApicoposteriorAlveoli.MapPath(LeftSuperiorLobeApicoposteriorAlveolarDeadSpaceToLeftSuperiorLobeApicoposteriorAlveoli);
+
+ // Create the respiratory graph for transport //
+ SEGasCompartmentGraph& gRespiratory = m_Compartments->GetRespiratoryGraph();
+
+ gRespiratory.AddCompartment(*gEnvironment);
+
+ gRespiratory.AddCompartment(pAirway);
+ gRespiratory.AddCompartment(pPharynx);
+ gRespiratory.AddCompartment(pCarina);
+
+ gRespiratory.AddCompartment(pStomach);
+
+ gRespiratory.AddCompartment(pRightMainBronchus);
+ gRespiratory.AddCompartment(pLeftMainBronchus);
+ gRespiratory.AddCompartment(pRightIntermediateBronchus);
+ gRespiratory.AddCompartment(pRightSuperiorLobarBronchus);
+ gRespiratory.AddCompartment(pRightMiddleLobarBronchus);
+ gRespiratory.AddCompartment(pRightInferiorLobarBronchus1);
+ gRespiratory.AddCompartment(pLeftInferiorLobarBronchus1);
+ gRespiratory.AddCompartment(pLeftSuperiorLobarBronchus);
+ gRespiratory.AddCompartment(pRightInferiorLobarBronchus2);
+ gRespiratory.AddCompartment(pLeftInferiorLobarBronchus2);
+ gRespiratory.AddCompartment(pRightSuperiorApicoposteriorBronchus);
+ gRespiratory.AddCompartment(pRightInferiorLobarBronchus3);
+ gRespiratory.AddCompartment(pLeftInferiorLobarBronchus3);
+ gRespiratory.AddCompartment(pLeftLingularBonchus);
+ gRespiratory.AddCompartment(pLeftSuperiorApicoposteriorBronchus);
+ gRespiratory.AddCompartment(pRightInferiorLobarBronchus4);
+
+ gRespiratory.AddCompartment(pRightSuperiorLobeApicalBronchiole);
+ gRespiratory.AddCompartment(pRightSuperiorLobePosteriorBronchiole);
+ gRespiratory.AddCompartment(pRightSuperiorLobeAnteriorBronchiole);
+ gRespiratory.AddCompartment(pRightMiddleLobeLateralBronchiole);
+ gRespiratory.AddCompartment(pRightMiddleLobeMedialBronchiole);
+ gRespiratory.AddCompartment(pRightInferiorLobeSuperiorBronchiole);
+ gRespiratory.AddCompartment(pRightInferiorLobeMedialBasalBronchiole);
+ gRespiratory.AddCompartment(pRightInferiorLobeAnteriorBasalBronchiole);
+ gRespiratory.AddCompartment(pRightInferiorLobeLateralBasalBronchiole);
+ gRespiratory.AddCompartment(pRightInferiorLobePosteriorBasalBronchiole);
+
+ gRespiratory.AddCompartment(pLeftInferiorLobePosteriorBasalBronchiole);
+ gRespiratory.AddCompartment(pLeftInferiorLobeLateralBasalBronchiole);
+ gRespiratory.AddCompartment(pLeftInferiorLobeAnteromedialBasalBronchiole);
+ gRespiratory.AddCompartment(pLeftInferiorLobeSuperiorBronchiole);
+ gRespiratory.AddCompartment(pLeftSuperiorLobeInferiorLingulaBronchiole);
+ gRespiratory.AddCompartment(pLeftSuperiorLobeSuperiorLingulaBronchiole);
+ gRespiratory.AddCompartment(pLeftSuperiorLobeAnteriorBronchiole);
+ gRespiratory.AddCompartment(pLeftSuperiorLobeApicoposteriorBronchiole);
+
+ gRespiratory.AddCompartment(pRightSuperiorLobeApicalAlveolarDeadSpace);
+ gRespiratory.AddCompartment(pRightSuperiorLobePosteriorAlveolarDeadSpace);
+ gRespiratory.AddCompartment(pRightSuperiorLobeAnteriorAlveolarDeadSpace);
+ gRespiratory.AddCompartment(pRightMiddleLobeLateralAlveolarDeadSpace);
+ gRespiratory.AddCompartment(pRightMiddleLobeMedialAlveolarDeadSpace);
+ gRespiratory.AddCompartment(pRightInferiorLobeSuperiorAlveolarDeadSpace);
+ gRespiratory.AddCompartment(pRightInferiorLobeMedialBasalAlveolarDeadSpace);
+ gRespiratory.AddCompartment(pRightInferiorLobeAnteriorBasalAlveolarDeadSpace);
+ gRespiratory.AddCompartment(pRightInferiorLobeLateralBasalAlveolarDeadSpace);
+ gRespiratory.AddCompartment(pRightInferiorLobePosteriorBasalAlveolarDeadSpace);
+
+ gRespiratory.AddCompartment(pLeftInferiorLobePosteriorBasalAlveolarDeadSpace);
+ gRespiratory.AddCompartment(pLeftInferiorLobeLateralBasalAlveolarDeadSpace);
+ gRespiratory.AddCompartment(pLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
+ gRespiratory.AddCompartment(pLeftInferiorLobeSuperiorAlveolarDeadSpace);
+ gRespiratory.AddCompartment(pLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
+ gRespiratory.AddCompartment(pLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
+ gRespiratory.AddCompartment(pLeftSuperiorLobeAnteriorAlveolarDeadSpace);
+ gRespiratory.AddCompartment(pLeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
+
+ gRespiratory.AddCompartment(pRightSuperiorLobeApicalAlveoli);
+ gRespiratory.AddCompartment(pRightSuperiorLobePosteriorAlveoli);
+ gRespiratory.AddCompartment(pRightSuperiorLobeAnteriorAlveoli);
+ gRespiratory.AddCompartment(pRightMiddleLobeLateralAlveoli);
+ gRespiratory.AddCompartment(pRightMiddleLobeMedialAlveoli);
+ gRespiratory.AddCompartment(pRightInferiorLobeSuperiorAlveoli);
+ gRespiratory.AddCompartment(pRightInferiorLobeMedialBasalAlveoli);
+ gRespiratory.AddCompartment(pRightInferiorLobeAnteriorBasalAlveoli);
+ gRespiratory.AddCompartment(pRightInferiorLobeLateralBasalAlveoli);
+ gRespiratory.AddCompartment(pRightInferiorLobePosteriorBasalAlveoli);
+
+ gRespiratory.AddCompartment(pLeftInferiorLobePosteriorBasalAlveoli);
+ gRespiratory.AddCompartment(pLeftInferiorLobeLateralBasalAlveoli);
+ gRespiratory.AddCompartment(pLeftInferiorLobeAnteromedialBasalAlveoli);
+ gRespiratory.AddCompartment(pLeftInferiorLobeSuperiorAlveoli);
+ gRespiratory.AddCompartment(pLeftSuperiorLobeInferiorLingulaAlveoli);
+ gRespiratory.AddCompartment(pLeftSuperiorLobeSuperiorLingulaAlveoli);
+ gRespiratory.AddCompartment(pLeftSuperiorLobeAnteriorAlveoli);
+ gRespiratory.AddCompartment(pLeftSuperiorLobeApicoposteriorAlveoli);
+
+ gRespiratory.AddLink(pEnvironmentToAirway);
+ gRespiratory.AddLink(pAirwayToPharynx);
+ gRespiratory.AddLink(pAirwayToStomach);
+ gRespiratory.AddLink(pPharynxToCarina);
+ gRespiratory.AddLink(pPharynxToEnvironment);
+
+ gRespiratory.AddLink(pCarinaToRightMainBronchus);
+ gRespiratory.AddLink(pRightMainBronchusToRightIntermediateBronchus);
+ gRespiratory.AddLink(pRightMainBronchusToRightSuperiorLobarBronchus);
+ gRespiratory.AddLink(pRightIntermediateBronchusToRightMiddleLobarBronchus);
+ gRespiratory.AddLink(pRightIntermediateBronchusToRightInferiorLobarBronchus1);
+ gRespiratory.AddLink(pRightInferiorLobarBronchus1ToRightInferiorLobarBronchus2);
+ gRespiratory.AddLink(pRightSuperiorLobarBronchusToRightSuperiorApicoposteriorBronchus);
+ gRespiratory.AddLink(pRightInferiorLobarBronchus2ToRightInferiorLobarBronchus3);
+ gRespiratory.AddLink(pRightInferiorLobarBronchus2ToRightInferiorLobarBronchus4);
+
+ gRespiratory.AddLink(pCarinaToLeftMainBronchus);
+ gRespiratory.AddLink(pLeftMainBronchusToLeftInferiorLobarBronchus1);
+ gRespiratory.AddLink(pLeftMainBronchusToLeftSuperiorLobarBronchus);
+ gRespiratory.AddLink(pLeftInferiorLobarBronchus1ToLeftInferiorLobarBronchus2);
+ gRespiratory.AddLink(pLeftInferiorLobarBronchus2ToLeftInferiorLobarBronchus3);
+ gRespiratory.AddLink(pLeftSuperiorLobarBronchusToLeftLingularBonchus);
+ gRespiratory.AddLink(pLeftSuperiorLobarBronchusToLeftSuperiorApicoposteriorBronchus);
+
+ gRespiratory.AddLink(pRightSuperiorApicoposteriorBronchusToRightSuperiorLobeApicalBronchiole);
+ gRespiratory.AddLink(pRightSuperiorApicoposteriorBronchusToRightSuperiorLobePosteriorBronchiole);
+ gRespiratory.AddLink(pRightSuperiorLobarBronchusToRightSuperiorLobeAnteriorBronchiole);
+ gRespiratory.AddLink(pRightMiddleLobarBronchusToRightMiddleLobeLateralBronchiole);
+ gRespiratory.AddLink(pRightMiddleLobarBronchusToRightMiddleLobeMedialBronchiole);
+ gRespiratory.AddLink(pRightInferiorLobarBronchus1ToRightInferiorLobeSuperiorBronchiole);
+ gRespiratory.AddLink(pRightInferiorLobarBronchus2ToRightInferiorLobeMedialBasalBronchiole);
+ gRespiratory.AddLink(pRightInferiorLobarBronchus3ToRightInferiorLobeAnteriorBasalBronchiole);
+ gRespiratory.AddLink(pRightInferiorLobarBronchus4ToRightInferiorLobeLateralBasalBronchiole);
+ gRespiratory.AddLink(pRightInferiorLobarBronchus4ToRightInferiorLobePosteriorBasalBronchiole);
+
+ gRespiratory.AddLink(pLeftInferiorLobarBronchus3ToLeftInferiorLobeLateralBasalBronchiole);
+ gRespiratory.AddLink(pLeftInferiorLobarBronchus3ToLeftInferiorLobePosteriorBasalBronchiole);
+ gRespiratory.AddLink(pLeftInferiorLobarBronchus2ToLeftInferiorLobeAnteromedialBasalBronchiole);
+ gRespiratory.AddLink(pLeftInferiorLobarBronchus1ToLeftInferiorLobeSuperiorBronchiole);
+ gRespiratory.AddLink(pLeftLingularBonchusToLeftSuperiorLobeInferiorLingulaBronchiole);
+ gRespiratory.AddLink(pLeftLingularBonchusToLeftSuperiorLobeSuperiorLingulaBronchiole);
+ gRespiratory.AddLink(pLeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeAnteriorBronchiole);
+ gRespiratory.AddLink(pLeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeApicoposteriorBronchiole);
+
+ gRespiratory.AddLink(pRightSuperiorLobeApicalBronchioleToRightSuperiorLobeApicalAlveolarDeadSpace);
+ gRespiratory.AddLink(pRightSuperiorLobePosteriorBronchioleToRightSuperiorLobePosteriorAlveolarDeadSpace);
+ gRespiratory.AddLink(pRightSuperiorLobeAnteriorBronchioleToRightSuperiorLobeAnteriorAlveolarDeadSpace);
+ gRespiratory.AddLink(pRightMiddleLobeLateralBronchioleToRightMiddleLobeLateralAlveolarDeadSpace);
+ gRespiratory.AddLink(pRightMiddleLobeMedialBronchioleToRightMiddleLobeMedialAlveolarDeadSpace);
+ gRespiratory.AddLink(pRightInferiorLobeSuperiorBronchioleToRightInferiorLobeSuperiorAlveolarDeadSpace);
+ gRespiratory.AddLink(pRightInferiorLobeMedialBasalBronchioleToRightInferiorLobeMedialBasalAlveolarDeadSpace);
+ gRespiratory.AddLink(pRightInferiorLobeAnteriorBasalBronchioleToRightInferiorLobeAnteriorBasalAlveolarDeadSpace);
+ gRespiratory.AddLink(pRightInferiorLobeLateralBasalBronchioleToRightInferiorLobeLateralBasalAlveolarDeadSpace);
+ gRespiratory.AddLink(pRightInferiorLobePosteriorBasalBronchioleToRightInferiorLobePosteriorBasalAlveolarDeadSpace);
+
+ gRespiratory.AddLink(pLeftInferiorLobePosteriorBasalBronchioleToLeftInferiorLobePosteriorBasalAlveolarDeadSpace);
+ gRespiratory.AddLink(pLeftInferiorLobeLateralBasalBronchioleToLeftInferiorLobeLateralBasalAlveolarDeadSpace);
+ gRespiratory.AddLink(pLeftInferiorLobeAnteromedialBasalBronchioleToLeftInferiorLobeAnteromedialBasalAlveolarDeadSpace);
+ gRespiratory.AddLink(pLeftInferiorLobeSuperiorBronchioleToLeftInferiorLobeSuperiorAlveolarDeadSpace);
+ gRespiratory.AddLink(pLeftSuperiorLobeInferiorLingulaBronchioleToLeftSuperiorLobeInferiorLingulaAlveolarDeadSpace);
+ gRespiratory.AddLink(pLeftSuperiorLobeSuperiorLingulaBronchioleToLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace);
+ gRespiratory.AddLink(pLeftSuperiorLobeAnteriorBronchioleToLeftSuperiorLobeAnteriorAlveolarDeadSpace);
+ gRespiratory.AddLink(pLeftSuperiorLobeApicoposteriorBronchioleToLeftSuperiorLobeApicoposteriorAlveolarDeadSpace);
+
+ gRespiratory.AddLink(pRightSuperiorLobeApicalAlveolarDeadSpaceToRightSuperiorLobeApicalAlveoli);
+ gRespiratory.AddLink(pRightSuperiorLobePosteriorAlveolarDeadSpaceToRightSuperiorLobePosteriorAlveoli);
+ gRespiratory.AddLink(pRightSuperiorLobeAnteriorAlveolarDeadSpaceToRightSuperiorLobeAnteriorAlveoli);
+ gRespiratory.AddLink(pRightMiddleLobeLateralAlveolarDeadSpaceToRightMiddleLobeLateralAlveoli);
+ gRespiratory.AddLink(pRightMiddleLobeMedialAlveolarDeadSpaceToRightMiddleLobeMedialAlveoli);
+ gRespiratory.AddLink(pRightInferiorLobeSuperiorAlveolarDeadSpaceToRightInferiorLobeSuperiorAlveoli);
+ gRespiratory.AddLink(pRightInferiorLobeMedialBasalAlveolarDeadSpaceToRightInferiorLobeMedialBasalAlveoli);
+ gRespiratory.AddLink(pRightInferiorLobeAnteriorBasalAlveolarDeadSpaceToRightInferiorLobeAnteriorBasalAlveoli);
+ gRespiratory.AddLink(pRightInferiorLobeLateralBasalAlveolarDeadSpaceToRightInferiorLobeLateralBasalAlveoli);
+ gRespiratory.AddLink(pRightInferiorLobePosteriorBasalAlveolarDeadSpaceToRightInferiorLobePosteriorBasalAlveoli);
+
+ gRespiratory.AddLink(pLeftInferiorLobePosteriorBasalAlveolarDeadSpaceToLeftInferiorLobePosteriorBasalAlveoli);
+ gRespiratory.AddLink(pLeftInferiorLobeLateralBasalAlveolarDeadSpaceToLeftInferiorLobeLateralBasalAlveoli);
+ gRespiratory.AddLink(pLeftInferiorLobeAnteromedialBasalAlveolarDeadSpaceToLeftInferiorLobeAnteromedialBasalAlveoli);
+ gRespiratory.AddLink(pLeftInferiorLobeSuperiorAlveolarDeadSpaceToLeftInferiorLobeSuperiorAlveoli);
+ gRespiratory.AddLink(pLeftSuperiorLobeInferiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeInferiorLingulaAlveoli);
+ gRespiratory.AddLink(pLeftSuperiorLobeSuperiorLingulaAlveolarDeadSpaceToLeftSuperiorLobeSuperiorLingulaAlveoli);
+ gRespiratory.AddLink(pLeftSuperiorLobeAnteriorAlveolarDeadSpaceToLeftSuperiorLobeAnteriorAlveoli);
+ gRespiratory.AddLink(pLeftSuperiorLobeApicoposteriorAlveolarDeadSpaceToLeftSuperiorLobeApicoposteriorAlveoli);
+
+ gRespiratory.StateChange();
+
+ // Generically set up the Aerosol Graph, this is a mirror of the Respiratory Gas Graph, only it's a liquid graph
+ SELiquidCompartmentGraph& lAerosol = m_Compartments->GetAerosolGraph();
+ SELiquidCompartment* lEnvironment = m_Compartments->GetLiquidCompartment(pulse::EnvironmentCompartment::Ambient);
+ lAerosol.AddCompartment(*lEnvironment);
+ // First Create the compartments and map the same nodes
+ for (auto gasCmpt : gRespiratory.GetCompartments())
+ {
+ std::string name = gasCmpt->GetName();
+ SELiquidCompartment& liquidCmpt = m_Compartments->CreateLiquidCompartment(name);
+ if (gasCmpt->HasNodeMapping())
+ {
+ for (auto node : gasCmpt->GetNodeMapping().GetNodes())
+ liquidCmpt.MapNode(*node);
+ }
+ }
+ // Hook up any hierarchies
+ for (auto gasCmpt : gRespiratory.GetCompartments())
+ {
+ std::string name = gasCmpt->GetName();
+ SELiquidCompartment* liquidCmpt = m_Compartments->GetLiquidCompartment(name);
+ if (gasCmpt->HasChildren())
+ {
+ for (auto child : gasCmpt->GetChildren())
+ liquidCmpt->AddChild(*m_Compartments->GetLiquidCompartment(child->GetName()));
+ }
+ }
+ // Add leaf compartments to the graph
+ for (auto gasCmpt : gRespiratory.GetCompartments())
+ {
+ std::string name = gasCmpt->GetName();
+ SELiquidCompartment* liquidCmpt = m_Compartments->GetLiquidCompartment(name);
+ if (!liquidCmpt->HasChildren())
+ lAerosol.AddCompartment(*liquidCmpt);
+ }
+ // Create Links
+ for (auto gasLink : gRespiratory.GetLinks())
+ {
+ std::string name = gasLink->GetName();
+ SELiquidCompartment* src = m_Compartments->GetLiquidCompartment(gasLink->GetSourceCompartment().GetName());
+ SELiquidCompartment* tgt = m_Compartments->GetLiquidCompartment(gasLink->GetTargetCompartment().GetName());
+ SELiquidCompartmentLink& liquidLink = m_Compartments->CreateLiquidLink(*src, *tgt, name);
+ if (gasLink->HasPath())
+ liquidLink.MapPath(*gasLink->GetPath());
+ lAerosol.AddLink(liquidLink);
+ }
+ lAerosol.StateChange();
+ }
+
+ void Controller::SetupExpandedLungsCardiovascular()
+ {
+ Info("Setting Up Expanded Lungs Cardiovascular");
+ bool male = m_InitialPatient->GetSex() == ePatient_Sex::Male ? true : false;
+ double RightLungRatio = m_InitialPatient->GetRightLungRatio().GetValue();
+ double LeftLungRatio = 1 - RightLungRatio;
+ double bloodVolume_mL = m_InitialPatient->GetBloodVolumeBaseline(VolumeUnit::mL);
+
+ double systolicPressureTarget_mmHg = m_InitialPatient->GetSystolicArterialPressureBaseline(PressureUnit::mmHg);
+
+ const double cardiacOutputTarget_mL_Per_min = male ? 5600.0 : 4900.0;
+ const double cardiacOutputTarget_mL_Per_s = cardiacOutputTarget_mL_Per_min / 60;
+
+ const double pulmonaryShuntFractionFactor = 0.009; // Used to set the pulmonary shunt fraction. Actual shunt will be roughly double this value (two lungs).
+ // The way this works is we compute resistances and compliances based on the hemodynamic variables above that are either in the patient
+ // file or we use the defaults if nothing is there. Because the actual impedance depends on the frequency, the computations assume a resting heart rate.
+ // So if a user needs to put pressures in the patient file assuming that the pts baseline hr is in the normal range (around 72).
+ // If someone wants a patient with a high hr because s/he is exercising or something, then they need to use the action.
+ // If a user wants a patient with a ridiculously high resting hr, then they will need to estimate what the pressures and CO would be if the pt had a normal resting hr.
+
+ // Our configuration can apply a modifier to adjust any of these targets to get closer to the target systolic and diastolic pressures from the patient file
+ // The tuning method in cardiovascular will do the fine tuning, but modifiers can speed up the process.
+ /// \todo Make these a function of the systolic and diastolic pressure by fitting a curve to the data from the variations test
+ const double systemicResistanceModifier = 1.0; // 0.849;
+ const double largeArteriesComplianceModifier = 1.0;//0.4333;
+ const double expandedPulmonaryCapillariesComplianceModifier = 1.0;
+ const double expandedPulmonaryLeftCapillariesVolumeModifier = 0.83;
+ const double expandedPulmonaryRightCapillariesVolumeModifier = 0.66;
+ //const double expandedPulmonaryLeftCapillariesVolumeModifier = 1.0;
+ //const double expandedPulmonaryRightCapillariesVolumeModifier = 1.0;
+
+ //Flow rates from \cite valentin2002icrp
+ double VascularFlowTargetAorta = 1.0 * cardiacOutputTarget_mL_Per_s;
+ double VascularFlowTargetArm = 0.015 * cardiacOutputTarget_mL_Per_s;
+ double VascularFlowTargetBone = 0.05 * cardiacOutputTarget_mL_Per_s;
+ double VascularFlowTargetBrain = 0.12 * cardiacOutputTarget_mL_Per_s;
+ double VascularFlowTargetFat = male ? 0.05 * cardiacOutputTarget_mL_Per_s : 0.085 * cardiacOutputTarget_mL_Per_s;
+ double VascularFlowTargetKidney = male ? 0.085 * cardiacOutputTarget_mL_Per_s : 0.075 * cardiacOutputTarget_mL_Per_s;
+ double VascularFlowTargetLargeIntestine = male ? 0.04 * cardiacOutputTarget_mL_Per_s : 0.05 * cardiacOutputTarget_mL_Per_s;
+ double VascularFlowTargetLeg = 0.0525 * cardiacOutputTarget_mL_Per_s;
+ double VascularFlowTargetMuscle = male ? 0.17 * cardiacOutputTarget_mL_Per_s : 0.12 * cardiacOutputTarget_mL_Per_s;
+ double VascularFlowTargetMyocardium = male ? 0.04 * cardiacOutputTarget_mL_Per_s : 0.05 * cardiacOutputTarget_mL_Per_s;
+ double VascularFlowTargetPulmCapRight = RightLungRatio * cardiacOutputTarget_mL_Per_s * (1 - pulmonaryShuntFractionFactor);
+ double VascularFlowTargetPulmVeinsRight = RightLungRatio * cardiacOutputTarget_mL_Per_s * (1 - pulmonaryShuntFractionFactor);
+ double VascularFlowTargetPulmArtLeft = LeftLungRatio * cardiacOutputTarget_mL_Per_s * (1 - pulmonaryShuntFractionFactor);
+ double VascularFlowTargetPulmCapLeft = LeftLungRatio * cardiacOutputTarget_mL_Per_s * (1 - pulmonaryShuntFractionFactor);
+ double VascularFlowTargetPulmVeinsLeft = LeftLungRatio * cardiacOutputTarget_mL_Per_s * (1 - pulmonaryShuntFractionFactor);
+ double VascularFlowTargetSkin = 0.05 * cardiacOutputTarget_mL_Per_s;
+ double VascularFlowTargetSmallIntestine = male ? 0.1 * cardiacOutputTarget_mL_Per_s : 0.11 * cardiacOutputTarget_mL_Per_s;
+ double VascularFlowTargetSplanchnic = 0.01 * cardiacOutputTarget_mL_Per_s;
+ double VascularFlowTargetSpleen = 0.03 * cardiacOutputTarget_mL_Per_s;
+ double VascularFlowTargetPortalVein = VascularFlowTargetLargeIntestine + VascularFlowTargetSmallIntestine + VascularFlowTargetSplanchnic + VascularFlowTargetSpleen;
+ double VascularFlowTargetLiver = (male ? 0.255 * cardiacOutputTarget_mL_Per_s : 0.27 * cardiacOutputTarget_mL_Per_s) - VascularFlowTargetPortalVein;
+
+ double VascularFlowTargetPulmCapTotal = VascularFlowTargetPulmCapRight + VascularFlowTargetPulmCapLeft;
+
+ double VascularFlowTargetRightSuperiorLobeApicalPulmonaryCapillaries = 2.04 / 100.0 * VascularFlowTargetPulmCapTotal;
+ double VascularFlowTargetRightSuperiorLobePosteriorPulmonaryCapillaries = 2.95 / 100.0 * VascularFlowTargetPulmCapTotal;
+ double VascularFlowTargetRightSuperiorLobeAnteriorPulmonaryCapillaries = 4.23 / 100.0 * VascularFlowTargetPulmCapTotal;
+ double VascularFlowTargetRightMiddleLobeLateralPulmonaryCapillaries = 6.34 / 100.0 * VascularFlowTargetPulmCapTotal;
+ double VascularFlowTargetRightMiddleLobeMedialPulmonaryCapillaries = 6.19 / 100.0 * VascularFlowTargetPulmCapTotal;
+ double VascularFlowTargetRightInferiorLobeSuperiorPulmonaryCapillaries = 4.91 / 100.0 * VascularFlowTargetPulmCapTotal;
+ double VascularFlowTargetRightInferiorLobeMedialBasalPulmonaryCapillaries = 6.64 / 100.0 * VascularFlowTargetPulmCapTotal;
+ double VascularFlowTargetRightInferiorLobeAnteriorBasalPulmonaryCapillaries = 7.32 / 100.0 * VascularFlowTargetPulmCapTotal;
+ double VascularFlowTargetRightInferiorLobeLateralBasalPulmonaryCapillaries = 7.62 / 100.0 * VascularFlowTargetPulmCapTotal;
+ double VascularFlowTargetRightInferiorLobePosteriorBasalPulmonaryCapillaries = 6.94 / 100.0 * VascularFlowTargetPulmCapTotal;
+
+ double VascularFlowTargetLeftInferiorLobePosteriorBasalPulmonaryCapillaries = 7.02 / 100.0 * VascularFlowTargetPulmCapTotal;
+ double VascularFlowTargetLeftInferiorLobeLateralBasalPulmonaryCapillaries = 7.47 / 100.0 * VascularFlowTargetPulmCapTotal;
+ double VascularFlowTargetLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries = 6.79 / 100.0 * VascularFlowTargetPulmCapTotal;
+ double VascularFlowTargetLeftInferiorLobeSuperiorPulmonaryCapillaries = 4.91 / 100.0 * VascularFlowTargetPulmCapTotal;
+ double VascularFlowTargetLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries = 6.49 / 100.0 * VascularFlowTargetPulmCapTotal;
+ double VascularFlowTargetLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries = 5.58 / 100.0 * VascularFlowTargetPulmCapTotal;
+ double VascularFlowTargetLeftSuperiorLobeAnteriorPulmonaryCapillaries = 4.08 / 100.0 * VascularFlowTargetPulmCapTotal;
+ double VascularFlowTargetLeftSuperiorLobeApicoposteriorPulmonaryCapillaries = 2.50 / 100.0 * VascularFlowTargetPulmCapTotal;
+
+ // Pressure targets derived from information available in \cite guyton2006medical and \cite van2013davis
+ double VascularPressureTargetAorta = 1.0 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetArm = 0.33 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetBone = 0.33 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetBrain = 0.08 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetFat = 0.33 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetHeartLeft = 1.06667 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetHeartRight = 0.16667 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetKidney = 0.33 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetLargeIntestine = 0.33 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetLeg = 0.33 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetLiver = 0.25 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetMuscle = 0.33 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetMyocardium = 0.33 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetPulmArtRight = 0.13333 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetPulmCapRight = 0.0650 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetPulmVeinsRight = 0.03846 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetPulmArtLeft = 0.13333 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetPulmCapLeft = 0.0650 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetPulmVeinsLeft = 0.03846 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetSkin = 0.0833 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetSmallIntestine = 0.33 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetSplanchnic = 0.33 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetSpleen = 0.33 * systolicPressureTarget_mmHg;
+ double VascularPressureTargetVenaCava = 0.0333 * systolicPressureTarget_mmHg;
+
+ // Volume fractions from \cite valentin2002icrp
+ double VolumeFractionAorta = 0.05;
+ double VolumeFractionArm = 0.02;
+ double VolumeFractionBone = 0.07;
+ double VolumeFractionBrain = 0.012;
+ double VolumeFractionFat = male ? 0.05 : 0.085;
+ double VolumeFractionHeartLeft = 0.0025;
+ double VolumeFractionHeartRight = 0.0025;
+ double VolumeFractionKidney = 0.02;
+ double VolumeFractionLargeIntestine = 0.022;
+ double VolumeFractionLeg = 0.04;
+ double VolumeFractionLiver = 0.1;
+ double VolumeFractionMuscle = male ? 0.14 : 0.105;
+ double VolumeFractionMyocardium = 0.01;
+ double VolumeFractionPulmArtRight = 0.03 * RightLungRatio;
+ double VolumeFractionPulmCapRight = 0.02 * RightLungRatio;
+ double VolumeFractionPulmVeinsRight = 0.055 * RightLungRatio;
+ double VolumeFractionPulmArtLeft = 0.03 * LeftLungRatio;
+ double VolumeFractionPulmCapLeft = 0.02 * LeftLungRatio;
+ double VolumeFractionPulmVeinsLeft = 0.055 * LeftLungRatio;
+ double VolumeFractionSkin = 0.03;
+ double VolumeFractionSmallIntestine = 0.038;
+ double VolumeFractionSplanchnic = 0.01;
+ double VolumeFractionSpleen = 0.014;
+ double VolumeFractionVenaCava = 0.175;
+
+ double VolumeFractionPulmCapTotal = VolumeFractionPulmCapRight + VolumeFractionPulmCapLeft;
+
+ double VolumeFractionRightSuperiorLobeApicalPulmonaryCapillaries = 9.3 / 100.0 * VolumeFractionPulmCapTotal;
+ double VolumeFractionRightSuperiorLobePosteriorPulmonaryCapillaries = 3.5 / 100.0 * VolumeFractionPulmCapTotal;
+ double VolumeFractionRightSuperiorLobeAnteriorPulmonaryCapillaries = 7.5 / 100.0 * VolumeFractionPulmCapTotal;
+ double VolumeFractionRightMiddleLobeLateralPulmonaryCapillaries = 2.9 / 100.0 * VolumeFractionPulmCapTotal;
+ double VolumeFractionRightMiddleLobeMedialPulmonaryCapillaries = 6.3 / 100.0 * VolumeFractionPulmCapTotal;
+ double VolumeFractionRightInferiorLobeSuperiorPulmonaryCapillaries = 6.2 / 100.0 * VolumeFractionPulmCapTotal;
+ double VolumeFractionRightInferiorLobeMedialBasalPulmonaryCapillaries = 1.7 / 100.0 * VolumeFractionPulmCapTotal;
+ double VolumeFractionRightInferiorLobeAnteriorBasalPulmonaryCapillaries = 5.5 / 100.0 * VolumeFractionPulmCapTotal;
+ double VolumeFractionRightInferiorLobeLateralBasalPulmonaryCapillaries = 4.8 / 100.0 * VolumeFractionPulmCapTotal;
+ double VolumeFractionRightInferiorLobePosteriorBasalPulmonaryCapillaries = 6.9 / 100.0 * VolumeFractionPulmCapTotal;
+
+ double VolumeFractionLeftInferiorLobePosteriorBasalPulmonaryCapillaries = 5.6 / 100.0 * VolumeFractionPulmCapTotal;
+ double VolumeFractionLeftInferiorLobeLateralBasalPulmonaryCapillaries = 6.4 / 100.0 * VolumeFractionPulmCapTotal;
+ double VolumeFractionLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries = 4.2 / 100.0 * VolumeFractionPulmCapTotal;
+ double VolumeFractionLeftInferiorLobeSuperiorPulmonaryCapillaries = 5.1 / 100.0 * VolumeFractionPulmCapTotal;
+ double VolumeFractionLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries = 4.8 / 100.0 * VolumeFractionPulmCapTotal;
+ double VolumeFractionLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries = 4.0 / 100.0 * VolumeFractionPulmCapTotal;
+ double VolumeFractionLeftSuperiorLobeAnteriorPulmonaryCapillaries = 7.5 / 100.0 * VolumeFractionPulmCapTotal;
+ double VolumeFractionLeftSuperiorLobeApicoposteriorPulmonaryCapillaries = 8.1 / 100.0 * VolumeFractionPulmCapTotal;
+
+ // Compute resistances from mean flow rates and pressure targets
+ double ResistanceAorta = (VascularPressureTargetHeartLeft - systolicPressureTarget_mmHg) / VascularFlowTargetAorta;
+ double ResistanceArm = (systolicPressureTarget_mmHg - VascularPressureTargetArm) / VascularFlowTargetArm;
+ double ResistanceArmVenous = (VascularPressureTargetArm - VascularPressureTargetVenaCava) / VascularFlowTargetArm;
+ double ResistanceBone = (systolicPressureTarget_mmHg - VascularPressureTargetBone) / VascularFlowTargetBone;
+ double ResistanceBoneVenous = (VascularPressureTargetBone - VascularPressureTargetVenaCava) / VascularFlowTargetBone;
+ double ResistanceBrain = (systolicPressureTarget_mmHg - VascularPressureTargetBrain) / VascularFlowTargetBrain;
+ double ResistanceBrainVenous = (VascularPressureTargetBrain - VascularPressureTargetVenaCava) / VascularFlowTargetBrain;
+ double ResistanceFat = (systolicPressureTarget_mmHg - VascularPressureTargetFat) / VascularFlowTargetFat;
+ double ResistanceFatVenous = (VascularPressureTargetFat - VascularPressureTargetVenaCava) / VascularFlowTargetFat;
+ double ResistanceHeartLeft = 0.0008;
+ double ResistanceHeartRight = (systolicPressureTarget_mmHg - VascularPressureTargetVenaCava) / cardiacOutputTarget_mL_Per_s;
+ double ResistanceKidney = (systolicPressureTarget_mmHg - VascularPressureTargetKidney) / VascularFlowTargetKidney;
+ double ResistanceKidneyVenous = (VascularPressureTargetKidney - VascularPressureTargetVenaCava) / VascularFlowTargetKidney;
+ double ResistanceLargeIntestine = (systolicPressureTarget_mmHg - VascularPressureTargetLargeIntestine) / VascularFlowTargetLargeIntestine;
+ double ResistanceLargeIntestineVenous = (VascularPressureTargetLargeIntestine - VascularPressureTargetLiver) / VascularFlowTargetLargeIntestine;
+ double ResistanceLeg = (systolicPressureTarget_mmHg - VascularPressureTargetLeg) / VascularFlowTargetLeg;
+ double ResistanceLegVenous = (VascularPressureTargetLeg - VascularPressureTargetVenaCava) / VascularFlowTargetLeg;
+ double ResistanceLiver = (systolicPressureTarget_mmHg - VascularPressureTargetLiver) / VascularFlowTargetLiver;
+ double ResistanceLiverVenous = (VascularPressureTargetLiver - VascularPressureTargetVenaCava) / (VascularFlowTargetLiver + VascularFlowTargetPortalVein);
+ double ResistanceMuscle = (systolicPressureTarget_mmHg - VascularPressureTargetMuscle) / VascularFlowTargetMuscle;
+ double ResistanceMuscleVenous = (VascularPressureTargetMuscle - VascularPressureTargetVenaCava) / VascularFlowTargetMuscle;
+ double ResistanceMyocardium = (systolicPressureTarget_mmHg - VascularPressureTargetMyocardium) / VascularFlowTargetMyocardium;
+ double ResistanceMyocardiumVenous = (VascularPressureTargetMyocardium - VascularPressureTargetVenaCava) / VascularFlowTargetMyocardium;
+ //double ResistancePulmCapRight = (VascularPressureTargetPulmArtRight - VascularPressureTargetPulmCapRight) / VascularFlowTargetPulmCapRight;
+ double ResistancePulmVeinsRight = (VascularPressureTargetPulmCapRight - VascularPressureTargetPulmVeinsRight) / VascularFlowTargetPulmVeinsRight;
+ double ResistancePulmArt = (VascularPressureTargetHeartRight - VascularPressureTargetPulmArtLeft) / VascularFlowTargetPulmArtLeft;
+ //double ResistancePulmCapLeft = (VascularPressureTargetPulmArtLeft - VascularPressureTargetPulmCapLeft) / VascularFlowTargetPulmCapLeft;
+ double ResistancePulmVeinsLeft = (VascularPressureTargetPulmCapLeft - VascularPressureTargetPulmVeinsLeft) / VascularFlowTargetPulmVeinsLeft;
+ double ResistanceSkin = (systolicPressureTarget_mmHg - VascularPressureTargetSkin) / VascularFlowTargetSkin;
+ double ResistanceSkinVenous = (VascularPressureTargetSkin - VascularPressureTargetVenaCava) / VascularFlowTargetSkin;
+ double ResistanceSmallIntestine = (systolicPressureTarget_mmHg - VascularPressureTargetSmallIntestine) / VascularFlowTargetSmallIntestine;
+ double ResistanceSmallIntestineVenous = (VascularPressureTargetSmallIntestine - VascularPressureTargetLiver) / VascularFlowTargetSmallIntestine;
+ double ResistanceSplanchnic = (systolicPressureTarget_mmHg - VascularPressureTargetSplanchnic) / VascularFlowTargetSplanchnic;
+ double ResistanceSplanchnicVenous = (VascularPressureTargetSplanchnic - VascularPressureTargetLiver) / VascularFlowTargetSplanchnic;
+ double ResistanceSpleen = (systolicPressureTarget_mmHg - VascularPressureTargetSpleen) / VascularFlowTargetSpleen;
+ double ResistanceSpleenVenous = (VascularPressureTargetSpleen - VascularPressureTargetLiver) / VascularFlowTargetSpleen;
+
+ double ResistanceRightSuperiorLobeApicalPulmonaryCapillaries = (VascularPressureTargetPulmArtRight - VascularPressureTargetPulmCapRight) / VascularFlowTargetRightSuperiorLobeApicalPulmonaryCapillaries;
+ double ResistanceRightSuperiorLobePosteriorPulmonaryCapillaries = (VascularPressureTargetPulmArtRight - VascularPressureTargetPulmCapRight) / VascularFlowTargetRightSuperiorLobePosteriorPulmonaryCapillaries;
+ double ResistanceRightSuperiorLobeAnteriorPulmonaryCapillaries = (VascularPressureTargetPulmArtRight - VascularPressureTargetPulmCapRight) / VascularFlowTargetRightSuperiorLobeAnteriorPulmonaryCapillaries;
+ double ResistanceRightMiddleLobeLateralPulmonaryCapillaries = (VascularPressureTargetPulmArtRight - VascularPressureTargetPulmCapRight) / VascularFlowTargetRightMiddleLobeLateralPulmonaryCapillaries;
+ double ResistanceRightMiddleLobeMedialPulmonaryCapillaries = (VascularPressureTargetPulmArtRight - VascularPressureTargetPulmCapRight) / VascularFlowTargetRightMiddleLobeMedialPulmonaryCapillaries;
+ double ResistanceRightInferiorLobeSuperiorPulmonaryCapillaries = (VascularPressureTargetPulmArtRight - VascularPressureTargetPulmCapRight) / VascularFlowTargetRightInferiorLobeSuperiorPulmonaryCapillaries;
+ double ResistanceRightInferiorLobeMedialBasalPulmonaryCapillaries = (VascularPressureTargetPulmArtRight - VascularPressureTargetPulmCapRight) / VascularFlowTargetRightInferiorLobeMedialBasalPulmonaryCapillaries;
+ double ResistanceRightInferiorLobeAnteriorBasalPulmonaryCapillaries = (VascularPressureTargetPulmArtRight - VascularPressureTargetPulmCapRight) / VascularFlowTargetRightInferiorLobeAnteriorBasalPulmonaryCapillaries;
+ double ResistanceRightInferiorLobeLateralBasalPulmonaryCapillaries = (VascularPressureTargetPulmArtRight - VascularPressureTargetPulmCapRight) / VascularFlowTargetRightInferiorLobeLateralBasalPulmonaryCapillaries;
+ double ResistanceRightInferiorLobePosteriorBasalPulmonaryCapillaries = (VascularPressureTargetPulmArtRight - VascularPressureTargetPulmCapRight) / VascularFlowTargetRightInferiorLobePosteriorBasalPulmonaryCapillaries;
+
+ double ResistanceLeftInferiorLobePosteriorBasalPulmonaryCapillaries = (VascularPressureTargetPulmArtLeft - VascularPressureTargetPulmCapLeft) / VascularFlowTargetLeftInferiorLobePosteriorBasalPulmonaryCapillaries;
+ double ResistanceLeftInferiorLobeLateralBasalPulmonaryCapillaries = (VascularPressureTargetPulmArtLeft - VascularPressureTargetPulmCapLeft) / VascularFlowTargetLeftInferiorLobeLateralBasalPulmonaryCapillaries;
+ double ResistanceLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries = (VascularPressureTargetPulmArtLeft - VascularPressureTargetPulmCapLeft) / VascularFlowTargetLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries;
+ double ResistanceLeftInferiorLobeSuperiorPulmonaryCapillaries = (VascularPressureTargetPulmArtLeft - VascularPressureTargetPulmCapLeft) / VascularFlowTargetLeftInferiorLobeSuperiorPulmonaryCapillaries;
+ double ResistanceLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries = (VascularPressureTargetPulmArtLeft - VascularPressureTargetPulmCapLeft) / VascularFlowTargetLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries;
+ double ResistanceLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries = (VascularPressureTargetPulmArtLeft - VascularPressureTargetPulmCapLeft) / VascularFlowTargetLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries;
+ double ResistanceLeftSuperiorLobeAnteriorPulmonaryCapillaries = (VascularPressureTargetPulmArtLeft - VascularPressureTargetPulmCapLeft) / VascularFlowTargetLeftSuperiorLobeAnteriorPulmonaryCapillaries;
+ double ResistanceLeftSuperiorLobeApicoposteriorPulmonaryCapillaries = (VascularPressureTargetPulmArtLeft - VascularPressureTargetPulmCapLeft) / VascularFlowTargetLeftSuperiorLobeApicoposteriorPulmonaryCapillaries;
+
+ double ResistanceRightSuperiorLobeApicalPulmonaryVeins = (VascularPressureTargetPulmCapRight - VascularPressureTargetPulmVeinsRight) / VascularFlowTargetRightSuperiorLobeApicalPulmonaryCapillaries;
+ double ResistanceRightSuperiorLobePosteriorPulmonaryVeins = (VascularPressureTargetPulmCapRight - VascularPressureTargetPulmVeinsRight) / VascularFlowTargetRightSuperiorLobePosteriorPulmonaryCapillaries;
+ double ResistanceRightSuperiorLobeAnteriorPulmonaryVeins = (VascularPressureTargetPulmCapRight - VascularPressureTargetPulmVeinsRight) / VascularFlowTargetRightSuperiorLobeAnteriorPulmonaryCapillaries;
+ double ResistanceRightMiddleLobeLateralPulmonaryVeins = (VascularPressureTargetPulmCapRight - VascularPressureTargetPulmVeinsRight) / VascularFlowTargetRightMiddleLobeLateralPulmonaryCapillaries;
+ double ResistanceRightMiddleLobeMedialPulmonaryVeins = (VascularPressureTargetPulmCapRight - VascularPressureTargetPulmVeinsRight) / VascularFlowTargetRightMiddleLobeMedialPulmonaryCapillaries;
+ double ResistanceRightInferiorLobeSuperiorPulmonaryVeins = (VascularPressureTargetPulmCapRight - VascularPressureTargetPulmVeinsRight) / VascularFlowTargetRightInferiorLobeSuperiorPulmonaryCapillaries;
+ double ResistanceRightInferiorLobeMedialBasalPulmonaryVeins = (VascularPressureTargetPulmCapRight - VascularPressureTargetPulmVeinsRight) / VascularFlowTargetRightInferiorLobeMedialBasalPulmonaryCapillaries;
+ double ResistanceRightInferiorLobeAnteriorBasalPulmonaryVeins = (VascularPressureTargetPulmCapRight - VascularPressureTargetPulmVeinsRight) / VascularFlowTargetRightInferiorLobeAnteriorBasalPulmonaryCapillaries;
+ double ResistanceRightInferiorLobeLateralBasalPulmonaryVeins = (VascularPressureTargetPulmCapRight - VascularPressureTargetPulmVeinsRight) / VascularFlowTargetRightInferiorLobeLateralBasalPulmonaryCapillaries;
+ double ResistanceRightInferiorLobePosteriorBasalPulmonaryVeins = (VascularPressureTargetPulmCapRight - VascularPressureTargetPulmVeinsRight) / VascularFlowTargetRightInferiorLobePosteriorBasalPulmonaryCapillaries;
+
+ double ResistanceLeftInferiorLobePosteriorBasalPulmonaryVeins = (VascularPressureTargetPulmCapLeft - VascularPressureTargetPulmVeinsLeft) / VascularFlowTargetLeftInferiorLobePosteriorBasalPulmonaryCapillaries;
+ double ResistanceLeftInferiorLobeLateralBasalPulmonaryVeins = (VascularPressureTargetPulmCapLeft - VascularPressureTargetPulmVeinsLeft) / VascularFlowTargetLeftInferiorLobeLateralBasalPulmonaryCapillaries;
+ double ResistanceLeftInferiorLobeAnteromedialBasalPulmonaryVeins = (VascularPressureTargetPulmCapLeft - VascularPressureTargetPulmVeinsLeft) / VascularFlowTargetLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries;
+ double ResistanceLeftInferiorLobeSuperiorPulmonaryVeins = (VascularPressureTargetPulmCapLeft - VascularPressureTargetPulmVeinsLeft) / VascularFlowTargetLeftInferiorLobeSuperiorPulmonaryCapillaries;
+ double ResistanceLeftSuperiorLobeInferiorLingulaPulmonaryVeins = (VascularPressureTargetPulmCapLeft - VascularPressureTargetPulmVeinsLeft) / VascularFlowTargetLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries;
+ double ResistanceLeftSuperiorLobeSuperiorLingulaPulmonaryVeins = (VascularPressureTargetPulmCapLeft - VascularPressureTargetPulmVeinsLeft) / VascularFlowTargetLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries;
+ double ResistanceLeftSuperiorLobeAnteriorPulmonaryVeins = (VascularPressureTargetPulmCapLeft - VascularPressureTargetPulmVeinsLeft) / VascularFlowTargetLeftSuperiorLobeAnteriorPulmonaryCapillaries;
+ double ResistanceLeftSuperiorLobeApicoposteriorPulmonaryVeins = (VascularPressureTargetPulmCapLeft - VascularPressureTargetPulmVeinsLeft) / VascularFlowTargetLeftSuperiorLobeApicoposteriorPulmonaryCapillaries;
+
+ // Portal vein and shunt are just paths - only have resistance
+ double ResistancePortalVein = 0.001; // The portal vein is just a pathway in Pulse. The pressure across this path does not represent portal vein pressure (if it did our patient would always be portal hypertensive)
+ double ResistanceShuntRight = (VascularPressureTargetPulmArtRight - VascularPressureTargetPulmCapRight) / (cardiacOutputTarget_mL_Per_s * pulmonaryShuntFractionFactor);
+ double ResistanceShuntLeft = (VascularPressureTargetPulmArtLeft - VascularPressureTargetPulmCapLeft) / (cardiacOutputTarget_mL_Per_s * pulmonaryShuntFractionFactor);
+
+ // Make a circuit
+ SEFluidCircuit& cCardiovascular = m_Circuits->GetCardiovascularCircuit();
+
+ // Create Nodes, set volume baselines and pressures where appropriate
+ SEFluidCircuitNode& RightHeart1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightHeart1);
+ RightHeart1.GetPressure().SetValue(0.0, PressureUnit::mmHg);
+ SEFluidCircuitNode& RightHeart2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightHeart2);
+ SEFluidCircuitNode& RightHeart3 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightHeart3);
+ RightHeart3.GetPressure().SetValue(0.0, PressureUnit::mmHg);
+ RightHeart1.GetVolumeBaseline().SetValue(VolumeFractionHeartRight * bloodVolume_mL, VolumeUnit::mL);
+
+ SEFluidCircuitNode& MainPulmonaryArteries1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::MainPulmonaryArteries1);
+
+ SEFluidCircuitNode& RightIntermediatePulmonaryArteries1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightIntermediatePulmonaryArteries1);
+ SEFluidCircuitNode& RightPulmonaryArteries1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightPulmonaryArteries1);
+ RightPulmonaryArteries1.GetVolumeBaseline().SetValue(VolumeFractionPulmArtRight * bloodVolume_mL, VolumeUnit::mL);
+ RightPulmonaryArteries1.GetPressure().SetValue(VascularPressureTargetPulmArtRight, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& LeftIntermediatePulmonaryArteries1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftIntermediatePulmonaryArteries1);
+ SEFluidCircuitNode& LeftPulmonaryArteries1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftPulmonaryArteries1);
+ LeftPulmonaryArteries1.GetVolumeBaseline().SetValue(VolumeFractionPulmArtLeft * bloodVolume_mL, VolumeUnit::mL);
+ LeftPulmonaryArteries1.GetPressure().SetValue(VascularPressureTargetPulmArtLeft, PressureUnit::mmHg);
+
+ //SEFluidCircuitNode& RightPulmonaryCapillaries1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightPulmonaryCapillaries1);
+ //RightPulmonaryCapillaries1.GetVolumeBaseline().SetValue(VolumeFractionPulmCapRight * bloodVolume_mL, VolumeUnit::mL);
+ //RightPulmonaryCapillaries1.GetPressure().SetValue(VascularPressureTargetPulmCapRight, PressureUnit::mmHg);
+
+ //SEFluidCircuitNode& LeftPulmonaryCapillaries1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftPulmonaryCapillaries1);
+ //LeftPulmonaryCapillaries1.GetVolumeBaseline().SetValue(VolumeFractionPulmCapLeft * bloodVolume_mL, VolumeUnit::mL);
+ //LeftPulmonaryCapillaries1.GetPressure().SetValue(VascularPressureTargetPulmCapLeft, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& RightIntermediatePulmonaryVeins1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightIntermediatePulmonaryVeins1);
+ SEFluidCircuitNode& RightPulmonaryVeins1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightPulmonaryVeins1);
+ RightPulmonaryVeins1.GetVolumeBaseline().SetValue(VolumeFractionPulmVeinsRight * bloodVolume_mL, VolumeUnit::mL);
+ RightPulmonaryVeins1.GetPressure().SetValue(VascularPressureTargetPulmVeinsRight, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& LeftIntermediatePulmonaryVeins1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftIntermediatePulmonaryVeins1);
+ SEFluidCircuitNode& LeftPulmonaryVeins1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftPulmonaryVeins1);
+ LeftPulmonaryVeins1.GetVolumeBaseline().SetValue(VolumeFractionPulmVeinsLeft * bloodVolume_mL, VolumeUnit::mL);
+ LeftPulmonaryVeins1.GetPressure().SetValue(VascularPressureTargetPulmVeinsLeft, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& LeftHeart1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftHeart1);
+ LeftHeart1.GetPressure().SetValue(0.0, PressureUnit::mmHg);
+ SEFluidCircuitNode& LeftHeart2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftHeart2);
+ SEFluidCircuitNode& LeftHeart3 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftHeart3);
+ LeftHeart3.GetPressure().SetValue(0.0, PressureUnit::mmHg);
+ LeftHeart1.GetVolumeBaseline().SetValue(VolumeFractionHeartLeft * bloodVolume_mL, VolumeUnit::mL);
+
+ SEFluidCircuitNode& Aorta1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Aorta1);
+ SEFluidCircuitNode& Aorta2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Aorta2);
+ SEFluidCircuitNode& Aorta3 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Aorta3);
+ SEFluidCircuitNode& Aorta4 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Aorta4);
+ Aorta4.GetPressure().SetValue(0.0, PressureUnit::mmHg);
+ Aorta1.GetVolumeBaseline().SetValue(VolumeFractionAorta * bloodVolume_mL, VolumeUnit::mL);
+ Aorta1.GetPressure().SetValue(VascularPressureTargetAorta, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& Brain1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Brain1);
+ SEFluidCircuitNode& Brain2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Brain2);
+ Brain1.GetVolumeBaseline().SetValue(VolumeFractionBrain * bloodVolume_mL, VolumeUnit::mL);
+ Brain1.GetPressure().SetValue(0.0, PressureUnit::mmHg);
+ Brain1.GetPressure().SetValue(VascularPressureTargetBrain, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& Bone1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Bone1);
+ SEFluidCircuitNode& Bone2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Bone2);
+ Bone1.GetVolumeBaseline().SetValue(VolumeFractionBone * bloodVolume_mL, VolumeUnit::mL);
+ Bone1.GetPressure().SetValue(VascularPressureTargetBone, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& Fat1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Fat1);
+ SEFluidCircuitNode& Fat2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Fat2);
+ Fat1.GetVolumeBaseline().SetValue(VolumeFractionFat * bloodVolume_mL, VolumeUnit::mL);
+ Fat1.GetPressure().SetValue(VascularPressureTargetFat, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& LargeIntestine1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LargeIntestine1);
+ LargeIntestine1.GetVolumeBaseline().SetValue(VolumeFractionLargeIntestine * bloodVolume_mL, VolumeUnit::mL);
+ LargeIntestine1.GetPressure().SetValue(VascularPressureTargetLargeIntestine, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& Liver1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Liver1);
+ SEFluidCircuitNode& Liver2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Liver2);
+ Liver1.GetVolumeBaseline().SetValue(VolumeFractionLiver * bloodVolume_mL, VolumeUnit::mL);
+ Liver1.GetPressure().SetValue(VascularPressureTargetLiver, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& LeftArm1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftArm1);
+ SEFluidCircuitNode& LeftArm2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftArm2);
+ LeftArm1.GetVolumeBaseline().SetValue(VolumeFractionArm * bloodVolume_mL, VolumeUnit::mL);
+ LeftArm1.GetPressure().SetValue(VascularPressureTargetArm, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& LeftKidney1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftKidney1);
+ SEFluidCircuitNode& LeftKidney2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftKidney2);
+ LeftKidney1.GetVolumeBaseline().SetValue(0.5 * VolumeFractionKidney * bloodVolume_mL, VolumeUnit::mL);
+ LeftKidney1.GetPressure().SetValue(VascularPressureTargetKidney, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& LeftLeg1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftLeg1);
+ SEFluidCircuitNode& LeftLeg2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::LeftLeg2);
+ LeftLeg1.GetVolumeBaseline().SetValue(VolumeFractionLeg * bloodVolume_mL, VolumeUnit::mL);
+ LeftLeg1.GetPressure().SetValue(VascularPressureTargetLeg, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& Muscle1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Muscle1);
+ SEFluidCircuitNode& Muscle2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Muscle2);
+ Muscle1.GetVolumeBaseline().SetValue(VolumeFractionMuscle * bloodVolume_mL, VolumeUnit::mL);
+ Muscle1.GetPressure().SetValue(VascularPressureTargetMuscle, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& Myocardium1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Myocardium1);
+ SEFluidCircuitNode& Myocardium2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Myocardium2);
+ Myocardium1.GetVolumeBaseline().SetValue(VolumeFractionMyocardium * bloodVolume_mL, VolumeUnit::mL);
+ Myocardium1.GetPressure().SetValue(VascularPressureTargetMyocardium, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& PortalVein1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::PortalVein1);
+
+ SEFluidCircuitNode& RightArm1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightArm1);
+ SEFluidCircuitNode& RightArm2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightArm2);
+ RightArm1.GetVolumeBaseline().SetValue(VolumeFractionArm * bloodVolume_mL, VolumeUnit::mL);
+ RightArm1.GetPressure().SetValue(VascularPressureTargetArm, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& RightKidney1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightKidney1);
+ SEFluidCircuitNode& RightKidney2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightKidney2);
+ RightKidney1.GetVolumeBaseline().SetValue(0.5 * VolumeFractionKidney * bloodVolume_mL, VolumeUnit::mL);
+ RightKidney1.GetPressure().SetValue(VascularPressureTargetKidney, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& RightLeg1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightLeg1);
+ SEFluidCircuitNode& RightLeg2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::RightLeg2);
+ RightLeg1.GetVolumeBaseline().SetValue(VolumeFractionLeg * bloodVolume_mL, VolumeUnit::mL);
+ RightLeg1.GetPressure().SetValue(VascularPressureTargetLeg, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& Skin1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Skin1);
+ SEFluidCircuitNode& Skin2 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Skin2);
+ Skin1.GetVolumeBaseline().SetValue(VolumeFractionSkin * bloodVolume_mL, VolumeUnit::mL);
+ Skin1.GetPressure().SetValue(VascularPressureTargetSkin, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& SmallIntestine1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::SmallIntestine1);
+ SmallIntestine1.GetVolumeBaseline().SetValue(VolumeFractionSmallIntestine * bloodVolume_mL, VolumeUnit::mL);
+ SmallIntestine1.GetPressure().SetValue(VascularPressureTargetSmallIntestine, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& Splanchnic1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Splanchnic1);
+ Splanchnic1.GetVolumeBaseline().SetValue(VolumeFractionSplanchnic * bloodVolume_mL, VolumeUnit::mL);
+ Splanchnic1.GetPressure().SetValue(VascularPressureTargetSplanchnic, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& Spleen1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::Spleen1);
+ Spleen1.GetVolumeBaseline().SetValue(VolumeFractionSpleen * bloodVolume_mL, VolumeUnit::mL);
+ Spleen1.GetPressure().SetValue(VascularPressureTargetSpleen, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& VenaCava1 = cCardiovascular.CreateNode(pulse::CardiovascularNode::VenaCava1);
+ VenaCava1.GetVolumeBaseline().SetValue(VolumeFractionVenaCava * bloodVolume_mL, VolumeUnit::mL);
+ VenaCava1.GetPressure().SetValue(VascularPressureTargetVenaCava, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& Ground = cCardiovascular.CreateNode(pulse::CardiovascularNode::Ground);
+ Ground.SetAsReferenceNode();
+ Ground.GetPressure().SetValue(0.0, PressureUnit::mmHg);
+
+ double blood_mL = 0;
+ for (SEFluidCircuitNode* n : cCardiovascular.GetNodes())
+ {
+ if (n->HasVolumeBaseline())
+ blood_mL += n->GetVolumeBaseline(VolumeUnit::mL);
+ }
+ if (blood_mL > bloodVolume_mL)
+ Error("Blood volume greater than total blood volume");
+
+ SEFluidCircuitNode& Pericardium = cCardiovascular.CreateNode(pulse::CardiovascularNode::Pericardium1);
+ Pericardium.GetVolumeBaseline().SetValue(15.0, VolumeUnit::mL);
+ Pericardium.GetPressure().SetValue(1.0, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& AbdominalCavity = cCardiovascular.CreateNode(pulse::CardiovascularNode::AbdominalCavity1);
+ AbdominalCavity.GetVolumeBaseline().SetValue(10.0, VolumeUnit::mL);
+ AbdominalCavity.GetPressure().SetValue(0.0, PressureUnit::mmHg);
+
+ SEFluidCircuitNode& RightSuperiorLobeApicalPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::RightSuperiorLobeApicalPulmonaryCapillaries);
+ SEFluidCircuitNode& RightSuperiorLobePosteriorPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::RightSuperiorLobePosteriorPulmonaryCapillaries);
+ SEFluidCircuitNode& RightSuperiorLobeAnteriorPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::RightSuperiorLobeAnteriorPulmonaryCapillaries);
+ SEFluidCircuitNode& RightMiddleLobeLateralPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::RightMiddleLobeLateralPulmonaryCapillaries);
+ SEFluidCircuitNode& RightMiddleLobeMedialPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::RightMiddleLobeMedialPulmonaryCapillaries);
+ SEFluidCircuitNode& RightInferiorLobeSuperiorPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::RightInferiorLobeSuperiorPulmonaryCapillaries);
+ SEFluidCircuitNode& RightInferiorLobeMedialBasalPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::RightInferiorLobeMedialBasalPulmonaryCapillaries);
+ SEFluidCircuitNode& RightInferiorLobeAnteriorBasalPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::RightInferiorLobeAnteriorBasalPulmonaryCapillaries);
+ SEFluidCircuitNode& RightInferiorLobeLateralBasalPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::RightInferiorLobeLateralBasalPulmonaryCapillaries);
+ SEFluidCircuitNode& RightInferiorLobePosteriorBasalPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::RightInferiorLobePosteriorBasalPulmonaryCapillaries);
+
+ SEFluidCircuitNode& LeftInferiorLobePosteriorBasalPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::LeftInferiorLobePosteriorBasalPulmonaryCapillaries);
+ SEFluidCircuitNode& LeftInferiorLobeLateralBasalPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::LeftInferiorLobeLateralBasalPulmonaryCapillaries);
+ SEFluidCircuitNode& LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
+ SEFluidCircuitNode& LeftInferiorLobeSuperiorPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::LeftInferiorLobeSuperiorPulmonaryCapillaries);
+ SEFluidCircuitNode& LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
+ SEFluidCircuitNode& LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
+ SEFluidCircuitNode& LeftSuperiorLobeAnteriorPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::LeftSuperiorLobeAnteriorPulmonaryCapillaries);
+ SEFluidCircuitNode& LeftSuperiorLobeApicoposteriorPulmonaryCapillaries = cCardiovascular.CreateNode(pulse::ExpandedLungsCardiovascularNode::LeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
+
+ RightSuperiorLobeApicalPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionRightSuperiorLobeApicalPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+ RightSuperiorLobePosteriorPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionRightSuperiorLobePosteriorPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+ RightSuperiorLobeAnteriorPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionRightSuperiorLobeAnteriorPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+ RightMiddleLobeLateralPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionRightMiddleLobeLateralPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+ RightMiddleLobeMedialPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionRightMiddleLobeMedialPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+ RightInferiorLobeSuperiorPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionRightInferiorLobeSuperiorPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+ RightInferiorLobeMedialBasalPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionRightInferiorLobeMedialBasalPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+ RightInferiorLobeAnteriorBasalPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionRightInferiorLobeAnteriorBasalPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+ RightInferiorLobeLateralBasalPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionRightInferiorLobeLateralBasalPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+ RightInferiorLobePosteriorBasalPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionRightInferiorLobePosteriorBasalPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+
+ LeftInferiorLobePosteriorBasalPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionLeftInferiorLobePosteriorBasalPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+ LeftInferiorLobeLateralBasalPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionLeftInferiorLobeLateralBasalPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+ LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+ LeftInferiorLobeSuperiorPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionLeftInferiorLobeSuperiorPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+ LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+ LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+ LeftSuperiorLobeAnteriorPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionLeftSuperiorLobeAnteriorPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+ LeftSuperiorLobeApicoposteriorPulmonaryCapillaries.GetVolumeBaseline().SetValue(VolumeFractionLeftSuperiorLobeApicoposteriorPulmonaryCapillaries * bloodVolume_mL, VolumeUnit::mL);
+
+ double totalRightVolume_mL =
+ RightSuperiorLobeApicalPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) +
+ RightSuperiorLobePosteriorPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) +
+ RightSuperiorLobeAnteriorPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) +
+ RightMiddleLobeLateralPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) +
+ RightMiddleLobeMedialPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) +
+ RightInferiorLobeSuperiorPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) +
+ RightInferiorLobeMedialBasalPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) +
+ RightInferiorLobeAnteriorBasalPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) +
+ RightInferiorLobeLateralBasalPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) +
+ RightInferiorLobePosteriorBasalPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL);
+
+ double totalLeftVolume_mL =
+ LeftInferiorLobePosteriorBasalPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) +
+ LeftInferiorLobeLateralBasalPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) +
+ LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) +
+ LeftInferiorLobeSuperiorPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) +
+ LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) +
+ LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) +
+ LeftSuperiorLobeAnteriorPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) +
+ LeftSuperiorLobeApicoposteriorPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL);
+
+ double totalVolume_mL = totalRightVolume_mL + totalLeftVolume_mL;
+
+ RightSuperiorLobeApicalPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapRight, PressureUnit::mmHg);
+ RightSuperiorLobePosteriorPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapRight, PressureUnit::mmHg);
+ RightSuperiorLobeAnteriorPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapRight, PressureUnit::mmHg);
+ RightMiddleLobeLateralPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapRight, PressureUnit::mmHg);
+ RightMiddleLobeMedialPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapRight, PressureUnit::mmHg);
+ RightInferiorLobeSuperiorPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapRight, PressureUnit::mmHg);
+ RightInferiorLobeMedialBasalPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapRight, PressureUnit::mmHg);
+ RightInferiorLobeAnteriorBasalPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapRight, PressureUnit::mmHg);
+ RightInferiorLobeLateralBasalPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapRight, PressureUnit::mmHg);
+ RightInferiorLobePosteriorBasalPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapRight, PressureUnit::mmHg);
+
+ LeftInferiorLobePosteriorBasalPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapLeft, PressureUnit::mmHg);
+ LeftInferiorLobeLateralBasalPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapLeft, PressureUnit::mmHg);
+ LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapLeft, PressureUnit::mmHg);
+ LeftInferiorLobeSuperiorPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapLeft, PressureUnit::mmHg);
+ LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapLeft, PressureUnit::mmHg);
+ LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapLeft, PressureUnit::mmHg);
+ LeftSuperiorLobeAnteriorPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapLeft, PressureUnit::mmHg);
+ LeftSuperiorLobeApicoposteriorPulmonaryCapillaries.GetPressure().SetValue(VascularPressureTargetPulmCapLeft, PressureUnit::mmHg);
+
+ // Create Paths, set switch (diodes), compliances, and resistances where appropriate
+ SEFluidCircuitPath& VenaCava1ToRightHeart2 = cCardiovascular.CreatePath(VenaCava1, RightHeart2, pulse::CardiovascularPath::VenaCava1ToRightHeart2);
+ VenaCava1ToRightHeart2.GetResistanceBaseline().SetValue(ResistanceHeartRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& RightHeart2ToRightHeart1 = cCardiovascular.CreatePath(RightHeart2, RightHeart1, pulse::CardiovascularPath::RightHeart2ToRightHeart1);
+ RightHeart2ToRightHeart1.SetNextValve(eGate::Closed);
+ SEFluidCircuitPath& RightHeart1ToRightHeart3 = cCardiovascular.CreatePath(RightHeart1, RightHeart3, pulse::CardiovascularPath::RightHeart1ToRightHeart3);
+ SEFluidCircuitPath& RightHeart3ToGround = cCardiovascular.CreatePath(Ground, RightHeart3, pulse::CardiovascularPath::RightHeart3ToGround);
+ RightHeart3ToGround.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
+
+ SEFluidCircuitPath& RightHeart1ToMainPulmonaryArteries1 = cCardiovascular.CreatePath(RightHeart1, MainPulmonaryArteries1, pulse::CardiovascularPath::RightHeart1ToMainPulmonaryArteries1);
+ RightHeart1ToMainPulmonaryArteries1.SetNextValve(eGate::Closed);
+
+ SEFluidCircuitPath& MainPulmonaryArteries1ToRightIntermediatePulmonaryArteries1 = cCardiovascular.CreatePath(MainPulmonaryArteries1, RightIntermediatePulmonaryArteries1, pulse::CardiovascularPath::MainPulmonaryArteries1ToRightIntermediatePulmonaryArteries1);
+ //MainPulmonaryArteries1ToRightIntermediatePulmonaryArteries1.SetNextValve(eGate::Closed);
+ SEFluidCircuitPath& RightIntermediatePulmonaryArteries1ToRightPulmonaryArteries1 = cCardiovascular.CreatePath(RightIntermediatePulmonaryArteries1, RightPulmonaryArteries1, pulse::CardiovascularPath::RightIntermediatePulmonaryArteries1ToRightPulmonaryArteries1);
+ RightIntermediatePulmonaryArteries1ToRightPulmonaryArteries1.GetResistanceBaseline().SetValue(ResistancePulmArt, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+
+ //SEFluidCircuitPath& RightPulmonaryArteries1ToRightPulmonaryVeins1 = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightPulmonaryVeins1, pulse::CardiovascularPath::RightPulmonaryArteries1ToRightPulmonaryVeins1);
+ //RightPulmonaryArteries1ToRightPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceShuntRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ //SEFluidCircuitPath& RightPulmonaryArteries1ToRightPulmonaryCapillaries1 = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightPulmonaryCapillaries1, pulse::CardiovascularPath::RightPulmonaryArteries1ToRightPulmonaryCapillaries1);
+ //RightPulmonaryArteries1ToRightPulmonaryCapillaries1.GetResistanceBaseline().SetValue(ResistancePulmCapRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& RightPulmonaryArteries1ToGround = cCardiovascular.CreatePath(RightPulmonaryArteries1, Ground, pulse::CardiovascularPath::RightPulmonaryArteries1ToGround);
+ RightPulmonaryArteries1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ //SEFluidCircuitPath& RightPulmonaryCapillaries1ToRightPulmonaryVeins1 = cCardiovascular.CreatePath(RightPulmonaryCapillaries1, RightPulmonaryVeins1, pulse::CardiovascularPath::RightPulmonaryCapillaries1ToRightPulmonaryVeins1);
+ //RightPulmonaryCapillaries1ToRightPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistancePulmVeinsRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ //SEFluidCircuitPath& RightPulmonaryCapillaries1ToGround = cCardiovascular.CreatePath(RightPulmonaryCapillaries1, Ground, pulse::CardiovascularPath::RightPulmonaryCapillaries1ToGround);
+ //RightPulmonaryCapillaries1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+
+ SEFluidCircuitPath& RightPulmonaryVeins1ToRightIntermediatePulmonaryVeins1 = cCardiovascular.CreatePath(RightPulmonaryVeins1, RightIntermediatePulmonaryVeins1, pulse::CardiovascularPath::RightPulmonaryVeins1ToRightIntermediatePulmonaryVeins1);
+ RightPulmonaryVeins1ToRightIntermediatePulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceHeartLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& RightPulmonaryVeins1ToGround = cCardiovascular.CreatePath(RightPulmonaryVeins1, Ground, pulse::CardiovascularPath::RightPulmonaryVeins1ToGround);
+ RightPulmonaryVeins1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& RightIntermediatePulmonaryVeins1ToLeftHeart2 = cCardiovascular.CreatePath(RightIntermediatePulmonaryVeins1, LeftHeart2, pulse::CardiovascularPath::RightIntermediatePulmonaryVeins1ToLeftHeart2);
+ //RightIntermediatePulmonaryVeins1ToLeftHeart2.SetNextValve(eGate::Closed);
+
+ SEFluidCircuitPath& MainPulmonaryArteries1ToLeftIntermediatePulmonaryArteries1 = cCardiovascular.CreatePath(MainPulmonaryArteries1, LeftIntermediatePulmonaryArteries1, pulse::CardiovascularPath::MainPulmonaryArteries1ToLeftIntermediatePulmonaryArteries1);
+ //MainPulmonaryArteries1ToLeftIntermediatePulmonaryArteries1.SetNextValve(eGate::Closed);
+ SEFluidCircuitPath& LeftIntermediatePulmonaryArteries1ToLeftPulmonaryArteries1 = cCardiovascular.CreatePath(LeftIntermediatePulmonaryArteries1, LeftPulmonaryArteries1, pulse::CardiovascularPath::LeftIntermediatePulmonaryArteries1ToLeftPulmonaryArteries1);
+ LeftIntermediatePulmonaryArteries1ToLeftPulmonaryArteries1.GetResistanceBaseline().SetValue(ResistancePulmArt, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+
+ //SEFluidCircuitPath& LeftPulmonaryArteries1ToLeftPulmonaryVeins1 = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftPulmonaryVeins1, pulse::CardiovascularPath::LeftPulmonaryArteries1ToLeftPulmonaryVeins1);
+ //LeftPulmonaryArteries1ToLeftPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceShuntLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ //SEFluidCircuitPath& LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1 = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftPulmonaryCapillaries1, pulse::CardiovascularPath::LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1);
+ //LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1.GetResistanceBaseline().SetValue(ResistancePulmCapLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& LeftPulmonaryArteries1ToGround = cCardiovascular.CreatePath(LeftPulmonaryArteries1, Ground, pulse::CardiovascularPath::LeftPulmonaryArteries1ToGround);
+ LeftPulmonaryArteries1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ //SEFluidCircuitPath& LeftPulmonaryCapillaries1ToGround = cCardiovascular.CreatePath(LeftPulmonaryCapillaries1, Ground, pulse::CardiovascularPath::LeftPulmonaryCapillaries1ToGround);
+ //LeftPulmonaryCapillaries1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ //SEFluidCircuitPath& LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1 = cCardiovascular.CreatePath(LeftPulmonaryCapillaries1, LeftPulmonaryVeins1, pulse::CardiovascularPath::LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1);
+ //LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistancePulmVeinsLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+
+ SEFluidCircuitPath& LeftPulmonaryVeins1ToLeftIntermediatePulmonaryVeins1 = cCardiovascular.CreatePath(LeftPulmonaryVeins1, LeftIntermediatePulmonaryVeins1, pulse::CardiovascularPath::LeftPulmonaryVeins1ToLeftIntermediatePulmonaryVeins1);
+ LeftPulmonaryVeins1ToLeftIntermediatePulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceHeartLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& LeftPulmonaryVeins1ToGround = cCardiovascular.CreatePath(LeftPulmonaryVeins1, Ground, pulse::CardiovascularPath::LeftPulmonaryVeins1ToGround);
+ LeftPulmonaryVeins1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& LeftIntermediatePulmonaryVeins1ToLeftHeart2 = cCardiovascular.CreatePath(LeftIntermediatePulmonaryVeins1, LeftHeart2, pulse::CardiovascularPath::LeftIntermediatePulmonaryVeins1ToLeftHeart2);
+ //LeftIntermediatePulmonaryVeins1ToLeftHeart2.SetNextValve(eGate::Closed);
+ SEFluidCircuitPath& LeftHeart2ToLeftHeart1 = cCardiovascular.CreatePath(LeftHeart2, LeftHeart1, pulse::CardiovascularPath::LeftHeart2ToLeftHeart1);
+ LeftHeart2ToLeftHeart1.SetNextValve(eGate::Closed);
+ SEFluidCircuitPath& LeftHeart1ToLeftHeart3 = cCardiovascular.CreatePath(LeftHeart1, LeftHeart3, pulse::CardiovascularPath::LeftHeart1ToLeftHeart3);
+
+ SEFluidCircuitPath& LeftHeart3ToGround = cCardiovascular.CreatePath(Ground, LeftHeart3, pulse::CardiovascularPath::LeftHeart3ToGround);
+ LeftHeart3ToGround.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
+ SEFluidCircuitPath& LeftHeart1ToAorta2 = cCardiovascular.CreatePath(LeftHeart1, Aorta2, pulse::CardiovascularPath::LeftHeart1ToAorta2);
+ LeftHeart1ToAorta2.SetNextValve(eGate::Closed);
+ cCardiovascular.CreatePath(Aorta2, Aorta3, pulse::CardiovascularPath::Aorta2ToAorta3);
+ SEFluidCircuitPath& Aorta3ToAorta1 = cCardiovascular.CreatePath(Aorta3, Aorta1, pulse::CardiovascularPath::Aorta3ToAorta1);
+ Aorta3ToAorta1.GetResistanceBaseline().SetValue(ResistanceAorta, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Aorta1ToAorta4 = cCardiovascular.CreatePath(Aorta1, Aorta4, pulse::CardiovascularPath::Aorta1ToAorta4);
+ Aorta1ToAorta4.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+
+ SEFluidCircuitPath& Aorta1ToBrain1 = cCardiovascular.CreatePath(Aorta1, Brain1, pulse::CardiovascularPath::Aorta1ToBrain1);
+ Aorta1ToBrain1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceBrain, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Brain1ToGround = cCardiovascular.CreatePath(Brain1, Ground, pulse::CardiovascularPath::Brain1ToGround);
+ Brain1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ /*SEFluidCircuitPath& GroundToBrain1 = cCardiovascular.CreatePath(Ground, Brain1, pulse::CardiovascularPath::GroundToBrain1);
+ GroundToBrain1.GetPressureSourceBaseline().SetValue(1.0, PressureUnit::mmHg);*/
+ SEFluidCircuitPath& Brain1ToBrain2 = cCardiovascular.CreatePath(Brain1, Brain2, pulse::CardiovascularPath::Brain1ToBrain2);
+ Brain1ToBrain2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceBrainVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Brain2ToVenaCava1 = cCardiovascular.CreatePath(Brain2, VenaCava1, pulse::CardiovascularPath::Brain2ToVenaCava1);
+
+ SEFluidCircuitPath& Aorta1ToBone1 = cCardiovascular.CreatePath(Aorta1, Bone1, pulse::CardiovascularPath::Aorta1ToBone1);
+ Aorta1ToBone1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceBone, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Bone1ToGround = cCardiovascular.CreatePath(Bone1, Ground, pulse::CardiovascularPath::Bone1ToGround);
+ Bone1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& Bone1ToBone2 = cCardiovascular.CreatePath(Bone1, Bone2, pulse::CardiovascularPath::Bone1ToBone2);
+ Bone1ToBone2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceBoneVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Bone2ToVenaCava1 = cCardiovascular.CreatePath(Bone2, VenaCava1, pulse::CardiovascularPath::Bone2ToVenaCava1);
+
+ SEFluidCircuitPath& Aorta1ToFat1 = cCardiovascular.CreatePath(Aorta1, Fat1, pulse::CardiovascularPath::Aorta1ToFat1);
+ Aorta1ToFat1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceFat, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Fat1ToGround = cCardiovascular.CreatePath(Fat1, Ground, pulse::CardiovascularPath::Fat1ToGround);
+ Fat1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& Fat1ToFat2 = cCardiovascular.CreatePath(Fat1, Fat2, pulse::CardiovascularPath::Fat1ToFat2);
+ Fat1ToFat2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceFatVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Fat2ToVenaCava1 = cCardiovascular.CreatePath(Fat2, VenaCava1, pulse::CardiovascularPath::Fat2ToVenaCava1);
+
+ SEFluidCircuitPath& Aorta1ToLargeIntestine1 = cCardiovascular.CreatePath(Aorta1, LargeIntestine1, pulse::CardiovascularPath::Aorta1ToLargeIntestine1);
+ Aorta1ToLargeIntestine1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLargeIntestine, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& LargeIntestine1ToGround = cCardiovascular.CreatePath(LargeIntestine1, Ground, pulse::CardiovascularPath::LargeIntestine1ToGround);
+ LargeIntestine1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& LargeIntestine1ToPortalVein1 = cCardiovascular.CreatePath(LargeIntestine1, PortalVein1, pulse::CardiovascularPath::LargeIntestine1ToPortalVein1);
+ LargeIntestine1ToPortalVein1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLargeIntestineVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+
+ SEFluidCircuitPath& Aorta1ToLeftArm1 = cCardiovascular.CreatePath(Aorta1, LeftArm1, pulse::CardiovascularPath::Aorta1ToLeftArm1);
+ Aorta1ToLeftArm1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArm, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& LeftArm1ToGround = cCardiovascular.CreatePath(LeftArm1, Ground, pulse::CardiovascularPath::LeftArm1ToGround);
+ LeftArm1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& LeftArm1ToLeftArm2 = cCardiovascular.CreatePath(LeftArm1, LeftArm2, pulse::CardiovascularPath::LeftArm1ToLeftArm2);
+ LeftArm1ToLeftArm2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& LeftArm2ToVenaCava1 = cCardiovascular.CreatePath(LeftArm2, VenaCava1, pulse::CardiovascularPath::LeftArm2ToVenaCava1);
+
+ SEFluidCircuitPath& Aorta1ToLeftKidney1 = cCardiovascular.CreatePath(Aorta1, LeftKidney1, pulse::CardiovascularPath::Aorta1ToLeftKidney1);
+ Aorta1ToLeftKidney1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceKidney, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& LeftKidney1ToGround = cCardiovascular.CreatePath(LeftKidney1, Ground, pulse::CardiovascularPath::LeftKidney1ToGround);
+ LeftKidney1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& LeftKidney1ToLeftKidney2 = cCardiovascular.CreatePath(LeftKidney1, LeftKidney2, pulse::CardiovascularPath::LeftKidney1ToLeftKidney2);
+ LeftKidney1ToLeftKidney2.GetResistanceBaseline().SetValue(ResistanceKidneyVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& LeftKidney2ToVenaCava1 = cCardiovascular.CreatePath(LeftKidney2, VenaCava1, pulse::CardiovascularPath::LeftKidney2ToVenaCava1);
+
+ SEFluidCircuitPath& Aorta1ToLeftLeg1 = cCardiovascular.CreatePath(Aorta1, LeftLeg1, pulse::CardiovascularPath::Aorta1ToLeftLeg1);
+ Aorta1ToLeftLeg1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLeg, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& LeftLeg1ToGround = cCardiovascular.CreatePath(LeftLeg1, Ground, pulse::CardiovascularPath::LeftLeg1ToGround);
+ LeftLeg1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& LeftLeg1ToLeftLeg2 = cCardiovascular.CreatePath(LeftLeg1, LeftLeg2, pulse::CardiovascularPath::LeftLeg1ToLeftLeg2);
+ LeftLeg1ToLeftLeg2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& LeftLeg2ToVenaCava1 = cCardiovascular.CreatePath(LeftLeg2, VenaCava1, pulse::CardiovascularPath::LeftLeg2ToVenaCava1);
+
+ SEFluidCircuitPath& Aorta1ToLiver1 = cCardiovascular.CreatePath(Aorta1, Liver1, pulse::CardiovascularPath::Aorta1ToLiver1);
+ Aorta1ToLiver1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLiver, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Liver1ToGround = cCardiovascular.CreatePath(Liver1, Ground, pulse::CardiovascularPath::Liver1ToGround);
+ Liver1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& PortalVein1ToLiver1 = cCardiovascular.CreatePath(PortalVein1, Liver1, pulse::CardiovascularPath::PortalVein1ToLiver1);
+ PortalVein1ToLiver1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistancePortalVein, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Liver1ToLiver2 = cCardiovascular.CreatePath(Liver1, Liver2, pulse::CardiovascularPath::Liver1ToLiver2);
+ Liver1ToLiver2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLiverVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Liver2ToVenaCava1 = cCardiovascular.CreatePath(Liver2, VenaCava1, pulse::CardiovascularPath::Liver2ToVenaCava1);
+
+ SEFluidCircuitPath& Aorta1ToMuscle1 = cCardiovascular.CreatePath(Aorta1, Muscle1, pulse::CardiovascularPath::Aorta1ToMuscle1);
+ Aorta1ToMuscle1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceMuscle, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Muscle1ToGround = cCardiovascular.CreatePath(Muscle1, Ground, pulse::CardiovascularPath::Muscle1ToGround);
+ Muscle1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& Muscle1ToMuscle2 = cCardiovascular.CreatePath(Muscle1, Muscle2, pulse::CardiovascularPath::Muscle1ToMuscle2);
+ Muscle1ToMuscle2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceMuscleVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Muscle2ToVenaCava1 = cCardiovascular.CreatePath(Muscle2, VenaCava1, pulse::CardiovascularPath::Muscle2ToVenaCava1);
+
+ SEFluidCircuitPath& Aorta1ToMyocardium1 = cCardiovascular.CreatePath(Aorta1, Myocardium1, pulse::CardiovascularPath::Aorta1ToMyocardium1);
+ Aorta1ToMyocardium1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceMyocardium, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Myocardium1ToGround = cCardiovascular.CreatePath(Myocardium1, Ground, pulse::CardiovascularPath::Myocardium1ToGround);
+ Myocardium1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& Myocardium1ToMyocardium2 = cCardiovascular.CreatePath(Myocardium1, Myocardium2, pulse::CardiovascularPath::Myocardium1ToMyocardium2);
+ Myocardium1ToMyocardium2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceMyocardiumVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Myocardium2ToVenaCava1 = cCardiovascular.CreatePath(Myocardium2, VenaCava1, pulse::CardiovascularPath::Myocardium2ToVenaCava1);
+
+ SEFluidCircuitPath& PericardiumToGround = cCardiovascular.CreatePath(Pericardium, Ground, pulse::CardiovascularPath::Pericardium1ToGround);
+ SEFluidCircuitPath& GroundToPericardium = cCardiovascular.CreatePath(Ground, Pericardium, pulse::CardiovascularPath::GroundToPericardium1);
+ GroundToPericardium.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
+
+ SEFluidCircuitPath& Aorta1ToRightArm1 = cCardiovascular.CreatePath(Aorta1, RightArm1, pulse::CardiovascularPath::Aorta1ToRightArm1);
+ Aorta1ToRightArm1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArm, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& RightArm1ToGround = cCardiovascular.CreatePath(RightArm1, Ground, pulse::CardiovascularPath::RightArm1ToGround);
+ RightArm1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& RightArm1ToRightArm2 = cCardiovascular.CreatePath(RightArm1, RightArm2, pulse::CardiovascularPath::RightArm1ToRightArm2);
+ RightArm1ToRightArm2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceArmVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& RightArm2ToVenaCava1 = cCardiovascular.CreatePath(RightArm2, VenaCava1, pulse::CardiovascularPath::RightArm2ToVenaCava1);
+
+ SEFluidCircuitPath& Aorta1ToRightKidney1 = cCardiovascular.CreatePath(Aorta1, RightKidney1, pulse::CardiovascularPath::Aorta1ToRightKidney1);
+ Aorta1ToRightKidney1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceKidney, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& RightKidney1ToGround = cCardiovascular.CreatePath(RightKidney1, Ground, pulse::CardiovascularPath::RightKidney1ToGround);
+ RightKidney1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& RightKidney1ToRightKidney2 = cCardiovascular.CreatePath(RightKidney1, RightKidney2, pulse::CardiovascularPath::RightKidney1ToRightKidney2);
+ RightKidney1ToRightKidney2.GetResistanceBaseline().SetValue(ResistanceKidneyVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& RightKidney2ToVenaCava1 = cCardiovascular.CreatePath(RightKidney2, VenaCava1, pulse::CardiovascularPath::RightKidney2ToVenaCava1);
+
+ SEFluidCircuitPath& Aorta1ToRightLeg1 = cCardiovascular.CreatePath(Aorta1, RightLeg1, pulse::CardiovascularPath::Aorta1ToRightLeg1);
+ Aorta1ToRightLeg1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLeg, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& RightLeg1ToGround = cCardiovascular.CreatePath(RightLeg1, Ground, pulse::CardiovascularPath::RightLeg1ToGround);
+ RightLeg1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& RightLeg1ToRightLeg2 = cCardiovascular.CreatePath(RightLeg1, RightLeg2, pulse::CardiovascularPath::RightLeg1ToRightLeg2);
+ RightLeg1ToRightLeg2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceLegVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& RightLeg2ToVenaCava1 = cCardiovascular.CreatePath(RightLeg2, VenaCava1, pulse::CardiovascularPath::RightLeg2ToVenaCava1);
+
+ SEFluidCircuitPath& Aorta1ToSkin1 = cCardiovascular.CreatePath(Aorta1, Skin1, pulse::CardiovascularPath::Aorta1ToSkin1);
+ Aorta1ToSkin1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceSkin, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Skin1ToGround = cCardiovascular.CreatePath(Skin1, Ground, pulse::CardiovascularPath::Skin1ToGround);
+ Skin1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& Skin1ToSkin2 = cCardiovascular.CreatePath(Skin1, Skin2, pulse::CardiovascularPath::Skin1ToSkin2);
+ Skin1ToSkin2.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceSkinVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Skin2ToVenaCava1 = cCardiovascular.CreatePath(Skin2, VenaCava1, pulse::CardiovascularPath::Skin2ToVenaCava1);
+
+ SEFluidCircuitPath& Aorta1ToSmallIntestine1 = cCardiovascular.CreatePath(Aorta1, SmallIntestine1, pulse::CardiovascularPath::Aorta1ToSmallIntestine1);
+ Aorta1ToSmallIntestine1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceSmallIntestine, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& SmallIntestine1ToGround = cCardiovascular.CreatePath(SmallIntestine1, Ground, pulse::CardiovascularPath::SmallIntestine1ToGround);
+ SmallIntestine1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& SmallIntestine1ToPortalVein1 = cCardiovascular.CreatePath(SmallIntestine1, PortalVein1, pulse::CardiovascularPath::SmallIntestine1ToPortalVein1);
+ SmallIntestine1ToPortalVein1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceSmallIntestineVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+
+ SEFluidCircuitPath& Aorta1ToSplanchnic1 = cCardiovascular.CreatePath(Aorta1, Splanchnic1, pulse::CardiovascularPath::Aorta1ToSplanchnic1);
+ Aorta1ToSplanchnic1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceSplanchnic, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Splanchnic1ToGround = cCardiovascular.CreatePath(Splanchnic1, Ground, pulse::CardiovascularPath::Splanchnic1ToGround);
+ Splanchnic1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& SplanchnicToPortalVein = cCardiovascular.CreatePath(Splanchnic1, PortalVein1, pulse::CardiovascularPath::Splanchnic1ToPortalVein1);
+ SplanchnicToPortalVein.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceSplanchnicVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+
+ SEFluidCircuitPath& Aorta1ToSpleen1 = cCardiovascular.CreatePath(Aorta1, Spleen1, pulse::CardiovascularPath::Aorta1ToSpleen1);
+ Aorta1ToSpleen1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceSpleen, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ SEFluidCircuitPath& Spleen1ToGround = cCardiovascular.CreatePath(Spleen1, Ground, pulse::CardiovascularPath::Spleen1ToGround);
+ Spleen1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& Spleen1ToPortalVein1 = cCardiovascular.CreatePath(Spleen1, PortalVein1, pulse::CardiovascularPath::Spleen1ToPortalVein1);
+ Spleen1ToPortalVein1.GetResistanceBaseline().SetValue(systemicResistanceModifier * ResistanceSpleenVenous, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+
+ SEFluidCircuitPath& AbdominalCavityToGround = cCardiovascular.CreatePath(AbdominalCavity, Ground, pulse::CardiovascularPath::AbdominalCavity1ToGround);
+ SEFluidCircuitPath& GroundToAbdominalCavity = cCardiovascular.CreatePath(Ground, AbdominalCavity, pulse::CardiovascularPath::GroundToAbdominalCavity1);
+ GroundToAbdominalCavity.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
+
+ SEFluidCircuitPath& GroundToAorta4 = cCardiovascular.CreatePath(Ground, Aorta4, pulse::CardiovascularPath::GroundToAorta4);
+ GroundToAorta4.GetPressureSourceBaseline().SetValue(0.0, PressureUnit::mmHg);
+
+ SEFluidCircuitPath& VenaCava1ToGround = cCardiovascular.CreatePath(VenaCava1, Ground, pulse::CardiovascularPath::VenaCava1ToGround);
+ VenaCava1ToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ SEFluidCircuitPath& IVToVenaCava1 = cCardiovascular.CreatePath(Ground, VenaCava1, pulse::CardiovascularPath::IVToVenaCava1);
+ IVToVenaCava1.GetFlowSourceBaseline().SetValue(0.0, VolumePerTimeUnit::mL_Per_s);
+
+ SEFluidCircuitPath& RightPulmonaryArteries1ToRightSuperiorLobeApicalPulmonaryCapillaries = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightSuperiorLobeApicalPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightSuperiorLobeApicalPulmonaryCapillaries);
+ SEFluidCircuitPath& RightPulmonaryArteries1ToRightSuperiorLobePosteriorPulmonaryCapillaries = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightSuperiorLobePosteriorPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightSuperiorLobePosteriorPulmonaryCapillaries);
+ SEFluidCircuitPath& RightPulmonaryArteries1ToRightSuperiorLobeAnteriorPulmonaryCapillaries = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightSuperiorLobeAnteriorPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightSuperiorLobeAnteriorPulmonaryCapillaries);
+ SEFluidCircuitPath& RightPulmonaryArteries1ToRightMiddleLobeLateralPulmonaryCapillaries = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightMiddleLobeLateralPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightMiddleLobeLateralPulmonaryCapillaries);
+ SEFluidCircuitPath& RightPulmonaryArteries1ToRightMiddleLobeMedialPulmonaryCapillaries = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightMiddleLobeMedialPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightMiddleLobeMedialPulmonaryCapillaries);
+ SEFluidCircuitPath& RightPulmonaryArteries1ToRightInferiorLobeSuperiorPulmonaryCapillaries = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightInferiorLobeSuperiorPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobeSuperiorPulmonaryCapillaries);
+ SEFluidCircuitPath& RightPulmonaryArteries1ToRightInferiorLobeMedialBasalPulmonaryCapillaries = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightInferiorLobeMedialBasalPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobeMedialBasalPulmonaryCapillaries);
+ SEFluidCircuitPath& RightPulmonaryArteries1ToRightInferiorLobeAnteriorBasalPulmonaryCapillaries = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightInferiorLobeAnteriorBasalPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobeAnteriorBasalPulmonaryCapillaries);
+ SEFluidCircuitPath& RightPulmonaryArteries1ToRightInferiorLobeLateralBasalPulmonaryCapillaries = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightInferiorLobeLateralBasalPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobeLateralBasalPulmonaryCapillaries);
+ SEFluidCircuitPath& RightPulmonaryArteries1ToRightInferiorLobePosteriorBasalPulmonaryCapillaries = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightInferiorLobePosteriorBasalPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobePosteriorBasalPulmonaryCapillaries);
+
+ SEFluidCircuitPath& LeftPulmonaryArteries1ToLeftInferiorLobePosteriorBasalPulmonaryCapillaries = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftInferiorLobePosteriorBasalPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftInferiorLobePosteriorBasalPulmonaryCapillaries);
+ SEFluidCircuitPath& LeftPulmonaryArteries1ToLeftInferiorLobeLateralBasalPulmonaryCapillaries = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftInferiorLobeLateralBasalPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftInferiorLobeLateralBasalPulmonaryCapillaries);
+ SEFluidCircuitPath& LeftPulmonaryArteries1ToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
+ SEFluidCircuitPath& LeftPulmonaryArteries1ToLeftInferiorLobeSuperiorPulmonaryCapillaries = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftInferiorLobeSuperiorPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftInferiorLobeSuperiorPulmonaryCapillaries);
+ SEFluidCircuitPath& LeftPulmonaryArteries1ToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
+ SEFluidCircuitPath& LeftPulmonaryArteries1ToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
+ SEFluidCircuitPath& LeftPulmonaryArteries1ToLeftSuperiorLobeAnteriorPulmonaryCapillaries = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftSuperiorLobeAnteriorPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftSuperiorLobeAnteriorPulmonaryCapillaries);
+ SEFluidCircuitPath& LeftPulmonaryArteries1ToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftSuperiorLobeApicoposteriorPulmonaryCapillaries, pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
+
+ SEFluidCircuitPath& RightSuperiorLobeApicalPulmonaryCapillariesToRightPulmonaryVeins1 = cCardiovascular.CreatePath(RightSuperiorLobeApicalPulmonaryCapillaries, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeApicalPulmonaryCapillariesToRightPulmonaryVeins1);
+ SEFluidCircuitPath& RightSuperiorLobePosteriorPulmonaryCapillariesToRightPulmonaryVeins1 = cCardiovascular.CreatePath(RightSuperiorLobePosteriorPulmonaryCapillaries, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobePosteriorPulmonaryCapillariesToRightPulmonaryVeins1);
+ SEFluidCircuitPath& RightSuperiorLobeAnteriorPulmonaryCapillariesToRightPulmonaryVeins1 = cCardiovascular.CreatePath(RightSuperiorLobeAnteriorPulmonaryCapillaries, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeAnteriorPulmonaryCapillariesToRightPulmonaryVeins1);
+ SEFluidCircuitPath& RightMiddleLobeLateralPulmonaryCapillariesToRightPulmonaryVeins1 = cCardiovascular.CreatePath(RightMiddleLobeLateralPulmonaryCapillaries, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeLateralPulmonaryCapillariesToRightPulmonaryVeins1);
+ SEFluidCircuitPath& RightMiddleLobeMedialPulmonaryCapillariesToRightPulmonaryVeins1 = cCardiovascular.CreatePath(RightMiddleLobeMedialPulmonaryCapillaries, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeMedialPulmonaryCapillariesToRightPulmonaryVeins1);
+ SEFluidCircuitPath& RightInferiorLobeSuperiorPulmonaryCapillariesToRightPulmonaryVeins1 = cCardiovascular.CreatePath(RightInferiorLobeSuperiorPulmonaryCapillaries, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeSuperiorPulmonaryCapillariesToRightPulmonaryVeins1);
+ SEFluidCircuitPath& RightInferiorLobeMedialBasalPulmonaryCapillariesToRightPulmonaryVeins1 = cCardiovascular.CreatePath(RightInferiorLobeMedialBasalPulmonaryCapillaries, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeMedialBasalPulmonaryCapillariesToRightPulmonaryVeins1);
+ SEFluidCircuitPath& RightInferiorLobeAnteriorBasalPulmonaryCapillariesToRightPulmonaryVeins1 = cCardiovascular.CreatePath(RightInferiorLobeAnteriorBasalPulmonaryCapillaries, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeAnteriorBasalPulmonaryCapillariesToRightPulmonaryVeins1);
+ SEFluidCircuitPath& RightInferiorLobeLateralBasalPulmonaryCapillariesToRightPulmonaryVeins1 = cCardiovascular.CreatePath(RightInferiorLobeLateralBasalPulmonaryCapillaries, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeLateralBasalPulmonaryCapillariesToRightPulmonaryVeins1);
+ SEFluidCircuitPath& RightInferiorLobePosteriorBasalPulmonaryCapillariesToRightPulmonaryVeins1 = cCardiovascular.CreatePath(RightInferiorLobePosteriorBasalPulmonaryCapillaries, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightInferiorLobePosteriorBasalPulmonaryCapillariesToRightPulmonaryVeins1);
+
+ SEFluidCircuitPath& LeftInferiorLobePosteriorBasalPulmonaryCapillariesToLeftPulmonaryVeins1 = cCardiovascular.CreatePath(LeftInferiorLobePosteriorBasalPulmonaryCapillaries, LeftPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobePosteriorBasalPulmonaryCapillariesToLeftPulmonaryVeins1);
+ SEFluidCircuitPath& LeftInferiorLobeLateralBasalPulmonaryCapillariesToLeftPulmonaryVeins1 = cCardiovascular.CreatePath(LeftInferiorLobeLateralBasalPulmonaryCapillaries, LeftPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeLateralBasalPulmonaryCapillariesToLeftPulmonaryVeins1);
+ SEFluidCircuitPath& LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToLeftPulmonaryVeins1 = cCardiovascular.CreatePath(LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries, LeftPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToLeftPulmonaryVeins1);
+ SEFluidCircuitPath& LeftInferiorLobeSuperiorPulmonaryCapillariesToLeftPulmonaryVeins1 = cCardiovascular.CreatePath(LeftInferiorLobeSuperiorPulmonaryCapillaries, LeftPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeSuperiorPulmonaryCapillariesToLeftPulmonaryVeins1);
+ SEFluidCircuitPath& LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins1 = cCardiovascular.CreatePath(LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries, LeftPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins1);
+ SEFluidCircuitPath& LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins1 = cCardiovascular.CreatePath(LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries, LeftPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins1);
+ SEFluidCircuitPath& LeftSuperiorLobeAnteriorPulmonaryCapillariesToLeftPulmonaryVeins1 = cCardiovascular.CreatePath(LeftSuperiorLobeAnteriorPulmonaryCapillaries, LeftPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeAnteriorPulmonaryCapillariesToLeftPulmonaryVeins1);
+ SEFluidCircuitPath& LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToLeftPulmonaryVeins1 = cCardiovascular.CreatePath(LeftSuperiorLobeApicoposteriorPulmonaryCapillaries, LeftPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToLeftPulmonaryVeins1);
+
+ SEFluidCircuitPath& RightSuperiorLobeApicalPulmonaryCapillariesToGround = cCardiovascular.CreatePath(RightSuperiorLobeApicalPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeApicalPulmonaryCapillariesToGround);
+ SEFluidCircuitPath& RightSuperiorLobePosteriorPulmonaryCapillariesToGround = cCardiovascular.CreatePath(RightSuperiorLobePosteriorPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobePosteriorPulmonaryCapillariesToGround);
+ SEFluidCircuitPath& RightSuperiorLobeAnteriorPulmonaryCapillariesToGround = cCardiovascular.CreatePath(RightSuperiorLobeAnteriorPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeAnteriorPulmonaryCapillariesToGround);
+ SEFluidCircuitPath& RightMiddleLobeLateralPulmonaryCapillariesToGround = cCardiovascular.CreatePath(RightMiddleLobeLateralPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeLateralPulmonaryCapillariesToGround);
+ SEFluidCircuitPath& RightMiddleLobeMedialPulmonaryCapillariesToGround = cCardiovascular.CreatePath(RightMiddleLobeMedialPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeMedialPulmonaryCapillariesToGround);
+ SEFluidCircuitPath& RightInferiorLobeSuperiorPulmonaryCapillariesToGround = cCardiovascular.CreatePath(RightInferiorLobeSuperiorPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeSuperiorPulmonaryCapillariesToGround);
+ SEFluidCircuitPath& RightInferiorLobeMedialBasalPulmonaryCapillariesToGround = cCardiovascular.CreatePath(RightInferiorLobeMedialBasalPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeMedialBasalPulmonaryCapillariesToGround);
+ SEFluidCircuitPath& RightInferiorLobeAnteriorBasalPulmonaryCapillariesToGround = cCardiovascular.CreatePath(RightInferiorLobeAnteriorBasalPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeAnteriorBasalPulmonaryCapillariesToGround);
+ SEFluidCircuitPath& RightInferiorLobeLateralBasalPulmonaryCapillariesToGround = cCardiovascular.CreatePath(RightInferiorLobeLateralBasalPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeLateralBasalPulmonaryCapillariesToGround);
+ SEFluidCircuitPath& RightInferiorLobePosteriorBasalPulmonaryCapillariesToGround = cCardiovascular.CreatePath(RightInferiorLobePosteriorBasalPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::RightInferiorLobePosteriorBasalPulmonaryCapillariesToGround);
+
+ SEFluidCircuitPath& LeftInferiorLobePosteriorBasalPulmonaryCapillariesToGround = cCardiovascular.CreatePath(LeftInferiorLobePosteriorBasalPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobePosteriorBasalPulmonaryCapillariesToGround);
+ SEFluidCircuitPath& LeftInferiorLobeLateralBasalPulmonaryCapillariesToGround = cCardiovascular.CreatePath(LeftInferiorLobeLateralBasalPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeLateralBasalPulmonaryCapillariesToGround);
+ SEFluidCircuitPath& LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToGround = cCardiovascular.CreatePath(LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToGround);
+ SEFluidCircuitPath& LeftInferiorLobeSuperiorPulmonaryCapillariesToGround = cCardiovascular.CreatePath(LeftInferiorLobeSuperiorPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeSuperiorPulmonaryCapillariesToGround);
+ SEFluidCircuitPath& LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToGround = cCardiovascular.CreatePath(LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToGround);
+ SEFluidCircuitPath& LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToGround = cCardiovascular.CreatePath(LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToGround);
+ SEFluidCircuitPath& LeftSuperiorLobeAnteriorPulmonaryCapillariesToGround = cCardiovascular.CreatePath(LeftSuperiorLobeAnteriorPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeAnteriorPulmonaryCapillariesToGround);
+ SEFluidCircuitPath& LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToGround = cCardiovascular.CreatePath(LeftSuperiorLobeApicoposteriorPulmonaryCapillaries, Ground, pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToGround);
+
+ RightPulmonaryArteries1ToRightSuperiorLobeApicalPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceRightSuperiorLobeApicalPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightPulmonaryArteries1ToRightSuperiorLobePosteriorPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceRightSuperiorLobePosteriorPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightPulmonaryArteries1ToRightSuperiorLobeAnteriorPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceRightSuperiorLobeAnteriorPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightPulmonaryArteries1ToRightMiddleLobeLateralPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceRightMiddleLobeLateralPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightPulmonaryArteries1ToRightMiddleLobeMedialPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceRightMiddleLobeMedialPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightPulmonaryArteries1ToRightInferiorLobeSuperiorPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceRightInferiorLobeSuperiorPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightPulmonaryArteries1ToRightInferiorLobeMedialBasalPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceRightInferiorLobeMedialBasalPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightPulmonaryArteries1ToRightInferiorLobeAnteriorBasalPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceRightInferiorLobeAnteriorBasalPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightPulmonaryArteries1ToRightInferiorLobeLateralBasalPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceRightInferiorLobeLateralBasalPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightPulmonaryArteries1ToRightInferiorLobePosteriorBasalPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceRightInferiorLobePosteriorBasalPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+
+ LeftPulmonaryArteries1ToLeftInferiorLobePosteriorBasalPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceLeftInferiorLobePosteriorBasalPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftPulmonaryArteries1ToLeftInferiorLobeLateralBasalPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceLeftInferiorLobeLateralBasalPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftPulmonaryArteries1ToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftPulmonaryArteries1ToLeftInferiorLobeSuperiorPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceLeftInferiorLobeSuperiorPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftPulmonaryArteries1ToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftPulmonaryArteries1ToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftPulmonaryArteries1ToLeftSuperiorLobeAnteriorPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceLeftSuperiorLobeAnteriorPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftPulmonaryArteries1ToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries.GetResistanceBaseline().SetValue(ResistanceLeftSuperiorLobeApicoposteriorPulmonaryCapillaries, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+
+ RightSuperiorLobeApicalPulmonaryCapillariesToRightPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceRightSuperiorLobeApicalPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightSuperiorLobePosteriorPulmonaryCapillariesToRightPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceRightSuperiorLobePosteriorPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightSuperiorLobeAnteriorPulmonaryCapillariesToRightPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceRightSuperiorLobeAnteriorPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightMiddleLobeLateralPulmonaryCapillariesToRightPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceRightMiddleLobeLateralPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightMiddleLobeMedialPulmonaryCapillariesToRightPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceRightMiddleLobeMedialPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightInferiorLobeSuperiorPulmonaryCapillariesToRightPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceRightInferiorLobeSuperiorPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightInferiorLobeMedialBasalPulmonaryCapillariesToRightPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceRightInferiorLobeMedialBasalPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightInferiorLobeAnteriorBasalPulmonaryCapillariesToRightPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceRightInferiorLobeAnteriorBasalPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightInferiorLobeLateralBasalPulmonaryCapillariesToRightPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceRightInferiorLobeLateralBasalPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightInferiorLobePosteriorBasalPulmonaryCapillariesToRightPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceRightInferiorLobePosteriorBasalPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+
+ LeftInferiorLobePosteriorBasalPulmonaryCapillariesToLeftPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceLeftInferiorLobePosteriorBasalPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftInferiorLobeLateralBasalPulmonaryCapillariesToLeftPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceLeftInferiorLobeLateralBasalPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToLeftPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceLeftInferiorLobeAnteromedialBasalPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftInferiorLobeSuperiorPulmonaryCapillariesToLeftPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceLeftInferiorLobeSuperiorPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceLeftSuperiorLobeInferiorLingulaPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceLeftSuperiorLobeSuperiorLingulaPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftSuperiorLobeAnteriorPulmonaryCapillariesToLeftPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceLeftSuperiorLobeAnteriorPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToLeftPulmonaryVeins1.GetResistanceBaseline().SetValue(ResistanceLeftSuperiorLobeApicoposteriorPulmonaryVeins, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+
+ RightSuperiorLobeApicalPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ RightSuperiorLobePosteriorPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ RightSuperiorLobeAnteriorPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ RightMiddleLobeLateralPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ RightMiddleLobeMedialPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ RightInferiorLobeSuperiorPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ RightInferiorLobeMedialBasalPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ RightInferiorLobeAnteriorBasalPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ RightInferiorLobeLateralBasalPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ RightInferiorLobePosteriorBasalPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+
+ LeftInferiorLobePosteriorBasalPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ LeftInferiorLobeLateralBasalPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ LeftInferiorLobeSuperiorPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ LeftSuperiorLobeAnteriorPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+ LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(0.0, VolumePerPressureUnit::mL_Per_mmHg);
+
+ //Shunts
+ SEFluidCircuitPath& RightSuperiorLobeApicalShunt = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeApicalShunt);
+ SEFluidCircuitPath& RightSuperiorLobePosteriorShunt = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobePosteriorShunt);
+ SEFluidCircuitPath& RightSuperiorLobeAnteriorShunt = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeAnteriorShunt);
+ SEFluidCircuitPath& RightMiddleLobeLateralShunt = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeLateralShunt);
+ SEFluidCircuitPath& RightMiddleLobeMedialShunt = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeMedialShunt);
+ SEFluidCircuitPath& RightInferiorLobeSuperiorShunt = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeSuperiorShunt);
+ SEFluidCircuitPath& RightInferiorLobeMedialBasalShunt = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeMedialBasalShunt);
+ SEFluidCircuitPath& RightInferiorLobeAnteriorBasalShunt = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeAnteriorBasalShunt);
+ SEFluidCircuitPath& RightInferiorLobeLateralBasalShunt = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeLateralBasalShunt);
+ SEFluidCircuitPath& RightInferiorLobePosteriorBasalShunt = cCardiovascular.CreatePath(RightPulmonaryArteries1, RightPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::RightInferiorLobePosteriorBasalShunt);
+
+ SEFluidCircuitPath& LeftInferiorLobePosteriorBasalShunt = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobePosteriorBasalShunt);
+ SEFluidCircuitPath& LeftInferiorLobeLateralBasalShunt = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeLateralBasalShunt);
+ SEFluidCircuitPath& LeftInferiorLobeAnteromedialBasalShunt = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeAnteromedialBasalShunt);
+ SEFluidCircuitPath& LeftInferiorLobeSuperiorShunt = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeSuperiorShunt);
+ SEFluidCircuitPath& LeftSuperiorLobeInferiorLingulaShunt = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeInferiorLingulaShunt);
+ SEFluidCircuitPath& LeftSuperiorLobeSuperiorLingulaShunt = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeSuperiorLingulaShunt);
+ SEFluidCircuitPath& LeftSuperiorLobeAnteriorShunt = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeAnteriorShunt);
+ SEFluidCircuitPath& LeftSuperiorLobeApicoposteriorShunt = cCardiovascular.CreatePath(LeftPulmonaryArteries1, LeftPulmonaryVeins1, pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeApicoposteriorShunt);
+
+ RightSuperiorLobeApicalShunt.GetResistanceBaseline().SetValue(10.0 * ResistanceShuntRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightSuperiorLobePosteriorShunt.GetResistanceBaseline().SetValue(10.0 * ResistanceShuntRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightSuperiorLobeAnteriorShunt.GetResistanceBaseline().SetValue(10.0 * ResistanceShuntRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightMiddleLobeLateralShunt.GetResistanceBaseline().SetValue(10.0 * ResistanceShuntRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightMiddleLobeMedialShunt.GetResistanceBaseline().SetValue(10.0 * ResistanceShuntRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightInferiorLobeSuperiorShunt.GetResistanceBaseline().SetValue(10.0 * ResistanceShuntRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightInferiorLobeMedialBasalShunt.GetResistanceBaseline().SetValue(10.0 * ResistanceShuntRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightInferiorLobeAnteriorBasalShunt.GetResistanceBaseline().SetValue(10.0 * ResistanceShuntRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightInferiorLobeLateralBasalShunt.GetResistanceBaseline().SetValue(10.0 * ResistanceShuntRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ RightInferiorLobePosteriorBasalShunt.GetResistanceBaseline().SetValue(10.0 * ResistanceShuntRight, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+
+ LeftInferiorLobePosteriorBasalShunt.GetResistanceBaseline().SetValue(8.0 * ResistanceShuntLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftInferiorLobeLateralBasalShunt.GetResistanceBaseline().SetValue(8.0 * ResistanceShuntLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftInferiorLobeAnteromedialBasalShunt.GetResistanceBaseline().SetValue(8.0 * ResistanceShuntLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftInferiorLobeSuperiorShunt.GetResistanceBaseline().SetValue(8.0 * ResistanceShuntLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftSuperiorLobeInferiorLingulaShunt.GetResistanceBaseline().SetValue(8.0 * ResistanceShuntLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftSuperiorLobeSuperiorLingulaShunt.GetResistanceBaseline().SetValue(8.0 * ResistanceShuntLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftSuperiorLobeAnteriorShunt.GetResistanceBaseline().SetValue(8.0 * ResistanceShuntLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ LeftSuperiorLobeApicoposteriorShunt.GetResistanceBaseline().SetValue(8.0 * ResistanceShuntLeft, PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+
+ // Compute compliances from target pressures and baseline volumes
+ for (SEFluidCircuitPath* p : cCardiovascular.GetPaths())
+ {
+ if (p->HasComplianceBaseline())
+ {
+ SEFluidCircuitNode& src = p->GetSourceNode();
+ if (!src.HasVolumeBaseline())
+ Fatal("Compliance paths must have a volume baseline.");
+ double pressure = src.GetPressure(PressureUnit::mmHg);
+ double volume = src.GetVolumeBaseline(VolumeUnit::mL);
+ p->GetComplianceBaseline().SetValue(volume / pressure, VolumePerPressureUnit::mL_Per_mmHg);
+ }
+ }
+
+ // Calibrate compliance for expanded components
+ RightSuperiorLobeApicalPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(RightSuperiorLobeApicalPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+ RightSuperiorLobePosteriorPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(RightSuperiorLobePosteriorPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+ RightSuperiorLobeAnteriorPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(RightSuperiorLobeAnteriorPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+ RightMiddleLobeLateralPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(RightMiddleLobeLateralPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+ RightMiddleLobeMedialPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(RightMiddleLobeMedialPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+ RightInferiorLobeSuperiorPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(RightInferiorLobeSuperiorPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+ RightInferiorLobeMedialBasalPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(RightInferiorLobeMedialBasalPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+ RightInferiorLobeAnteriorBasalPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(RightInferiorLobeAnteriorBasalPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+ RightInferiorLobeLateralBasalPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(RightInferiorLobeLateralBasalPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+ RightInferiorLobePosteriorBasalPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(RightInferiorLobePosteriorBasalPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+
+ LeftInferiorLobePosteriorBasalPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(LeftInferiorLobePosteriorBasalPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+ LeftInferiorLobeLateralBasalPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(LeftInferiorLobeLateralBasalPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+ LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+ LeftInferiorLobeSuperiorPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(LeftInferiorLobeSuperiorPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+ LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+ LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+ LeftSuperiorLobeAnteriorPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(LeftSuperiorLobeAnteriorPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+ LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToGround.GetComplianceBaseline().SetValue(LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToGround.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg) * expandedPulmonaryCapillariesComplianceModifier, VolumePerPressureUnit::mL_Per_mmHg);
+
+ // Calibrate volume for expanded components
+ RightSuperiorLobeApicalPulmonaryCapillaries.GetVolumeBaseline().SetValue(RightSuperiorLobeApicalPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryRightCapillariesVolumeModifier, VolumeUnit::mL);
+ RightSuperiorLobePosteriorPulmonaryCapillaries.GetVolumeBaseline().SetValue(RightSuperiorLobePosteriorPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryRightCapillariesVolumeModifier, VolumeUnit::mL);
+ RightSuperiorLobeAnteriorPulmonaryCapillaries.GetVolumeBaseline().SetValue(RightSuperiorLobeAnteriorPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryRightCapillariesVolumeModifier, VolumeUnit::mL);
+ RightMiddleLobeLateralPulmonaryCapillaries.GetVolumeBaseline().SetValue(RightMiddleLobeLateralPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryRightCapillariesVolumeModifier, VolumeUnit::mL);
+ RightMiddleLobeMedialPulmonaryCapillaries.GetVolumeBaseline().SetValue(RightMiddleLobeMedialPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryRightCapillariesVolumeModifier, VolumeUnit::mL);
+ RightInferiorLobeSuperiorPulmonaryCapillaries.GetVolumeBaseline().SetValue(RightInferiorLobeSuperiorPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryRightCapillariesVolumeModifier, VolumeUnit::mL);
+ RightInferiorLobeMedialBasalPulmonaryCapillaries.GetVolumeBaseline().SetValue(RightInferiorLobeMedialBasalPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryRightCapillariesVolumeModifier, VolumeUnit::mL);
+ RightInferiorLobeAnteriorBasalPulmonaryCapillaries.GetVolumeBaseline().SetValue(RightInferiorLobeAnteriorBasalPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryRightCapillariesVolumeModifier, VolumeUnit::mL);
+ RightInferiorLobeLateralBasalPulmonaryCapillaries.GetVolumeBaseline().SetValue(RightInferiorLobeLateralBasalPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryRightCapillariesVolumeModifier, VolumeUnit::mL);
+ RightInferiorLobePosteriorBasalPulmonaryCapillaries.GetVolumeBaseline().SetValue(RightInferiorLobePosteriorBasalPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryRightCapillariesVolumeModifier, VolumeUnit::mL);
+
+ LeftInferiorLobePosteriorBasalPulmonaryCapillaries.GetVolumeBaseline().SetValue(LeftInferiorLobePosteriorBasalPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryLeftCapillariesVolumeModifier, VolumeUnit::mL);
+ LeftInferiorLobeLateralBasalPulmonaryCapillaries.GetVolumeBaseline().SetValue(LeftInferiorLobeLateralBasalPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryLeftCapillariesVolumeModifier, VolumeUnit::mL);
+ LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries.GetVolumeBaseline().SetValue(LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryLeftCapillariesVolumeModifier, VolumeUnit::mL);
+ LeftInferiorLobeSuperiorPulmonaryCapillaries.GetVolumeBaseline().SetValue(LeftInferiorLobeSuperiorPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryLeftCapillariesVolumeModifier, VolumeUnit::mL);
+ LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries.GetVolumeBaseline().SetValue(LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryLeftCapillariesVolumeModifier, VolumeUnit::mL);
+ LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries.GetVolumeBaseline().SetValue(LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryLeftCapillariesVolumeModifier, VolumeUnit::mL);
+ LeftSuperiorLobeAnteriorPulmonaryCapillaries.GetVolumeBaseline().SetValue(LeftSuperiorLobeAnteriorPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryLeftCapillariesVolumeModifier, VolumeUnit::mL);
+ LeftSuperiorLobeApicoposteriorPulmonaryCapillaries.GetVolumeBaseline().SetValue(LeftSuperiorLobeApicoposteriorPulmonaryCapillaries.GetVolumeBaseline(VolumeUnit::mL) * expandedPulmonaryLeftCapillariesVolumeModifier, VolumeUnit::mL);
+
+ // Hearts and pericardium have special compliance computations
+ double InitialComplianceHeartRight = 1.0 / 0.0243;
+ double InitialComplianceHeartLeft = 1.0 / 0.049;
+ // Volumes are initialized from the volume baselines. The heart volume initialization is a little tricky. To much prime and the
+ // initial pressure wave will be devastating to the rest of the CV system during the first contraction phase. Too little prime
+ // and there will be issues with available flow as the elastance decreases during the first relaxation phase.
+ // The 1/4 full initialization gives decent results.
+ RightHeart1ToRightHeart3.GetComplianceBaseline().SetValue(InitialComplianceHeartRight, VolumePerPressureUnit::mL_Per_mmHg);
+ LeftHeart1ToLeftHeart3.GetComplianceBaseline().SetValue(InitialComplianceHeartLeft, VolumePerPressureUnit::mL_Per_mmHg);
+ PericardiumToGround.GetComplianceBaseline().SetValue(100.0, VolumePerPressureUnit::mL_Per_mmHg);
+
+ //Make these polarized, so chest compression can't give a negative volume
+ RightHeart1ToRightHeart3.SetNextPolarizedState(eGate::Closed);
+ LeftHeart1ToLeftHeart3.SetNextPolarizedState(eGate::Closed);
+
+ double VolumeModifierAorta = 1.16722 * 1.018749, VolumeModifierBrain = 0.998011 * 1.038409, VolumeModifierBone = 1.175574 * 0.985629, VolumeModifierFat = 1.175573 * 0.986527;
+ double VolumeModifierLargeIntestine = 1.17528 * 0.985609, VolumeModifierArmL = 1.175573 * 0.986529, VolumeModifierKidneyL = 0.737649 * 0.954339, VolumeModifierLegL = 1.175573 * 0.986529;
+ double VolumeModifierPulmArtL = 0.855566 * 1.095697, VolumeModifierPulmCapL = 0.724704 * 1.079139, VolumeModifierPulmVeinL = 0.548452 * 1.056844 * 1.062, VolumeModifierLiver = 1.157475 * 0.991848;
+ double VolumeModifierMuscle = 1.175573 * 0.986529, VolumeModifierMyocard = 1.175564 * 0.986531, VolumeModifierArmR = 1.175573 * 0.986529, VolumeModifierKidneyR = 0.737649 * 0.954339;
+ double VolumeModifierLegR = 1.175573 * 0.986529, VolumeModifierPulmArtR = 0.756158 * 1.121167, VolumeModifierPulmCapR = 0.602545 * 1.118213, VolumeModifierPulmVeinR = 0.395656 * 1.11424 * 1.11;
+ double VolumeModifierSkin = 1.007306 * 1.035695, VolumeModifierSmallIntestine = 1.17528 * 0.986509, VolumeModifierSplanchnic = 1.17528 * 0.986509, VolumeModifierSpleen = 1.17528 * 0.986509;
+ double VolumeModifierVenaCava = 0.66932 * 1.134447;
+
+ //And also modify the compliances
+ Aorta1ToAorta4.GetComplianceBaseline().SetValue(largeArteriesComplianceModifier * Aorta1ToAorta4.GetComplianceBaseline(VolumePerPressureUnit::mL_Per_mmHg), VolumePerPressureUnit::mL_Per_mmHg);
+
+ //For Internal Hemorrhage
+ AbdominalCavityToGround.GetComplianceBaseline().SetValue(100.0, VolumePerPressureUnit::mL_Per_mmHg);
+
+ RightPulmonaryArteries1.GetVolumeBaseline().SetValue(VolumeModifierPulmArtR * RightPulmonaryArteries1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ LeftPulmonaryArteries1.GetVolumeBaseline().SetValue(VolumeModifierPulmArtL * LeftPulmonaryArteries1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ //RightPulmonaryCapillaries1.GetVolumeBaseline().SetValue(VolumeModifierPulmCapR * RightPulmonaryCapillaries1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ //LeftPulmonaryCapillaries1.GetVolumeBaseline().SetValue(VolumeModifierPulmCapL * LeftPulmonaryCapillaries1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ RightPulmonaryVeins1.GetVolumeBaseline().SetValue(VolumeModifierPulmVeinR * RightPulmonaryVeins1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ LeftPulmonaryVeins1.GetVolumeBaseline().SetValue(VolumeModifierPulmVeinL * LeftPulmonaryVeins1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ Aorta1.GetVolumeBaseline().SetValue(VolumeModifierAorta * Aorta1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ Brain1.GetVolumeBaseline().SetValue(VolumeModifierBrain * Brain1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ Bone1.GetVolumeBaseline().SetValue(VolumeModifierBone * Bone1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ Fat1.GetVolumeBaseline().SetValue(VolumeModifierFat * Fat1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ LargeIntestine1.GetVolumeBaseline().SetValue(VolumeModifierLargeIntestine * LargeIntestine1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ Liver1.GetVolumeBaseline().SetValue(VolumeModifierLiver * Liver1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ LeftArm1.GetVolumeBaseline().SetValue(VolumeModifierArmL * LeftArm1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ LeftKidney1.GetVolumeBaseline().SetValue(VolumeModifierKidneyL * LeftKidney1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ LeftLeg1.GetVolumeBaseline().SetValue(VolumeModifierLegL * LeftLeg1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ Muscle1.GetVolumeBaseline().SetValue(VolumeModifierMuscle * Muscle1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ Myocardium1.GetVolumeBaseline().SetValue(VolumeModifierMyocard * Myocardium1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ RightArm1.GetVolumeBaseline().SetValue(VolumeModifierArmR * RightArm1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ RightKidney1.GetVolumeBaseline().SetValue(VolumeModifierKidneyR * RightKidney1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ RightLeg1.GetVolumeBaseline().SetValue(VolumeModifierLegR * RightLeg1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ Skin1.GetVolumeBaseline().SetValue(VolumeModifierSkin * Skin1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ SmallIntestine1.GetVolumeBaseline().SetValue(VolumeModifierSmallIntestine * SmallIntestine1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ Splanchnic1.GetVolumeBaseline().SetValue(VolumeModifierSplanchnic * Splanchnic1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ Spleen1.GetVolumeBaseline().SetValue(VolumeModifierSpleen * Spleen1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+ VenaCava1.GetVolumeBaseline().SetValue(VolumeModifierVenaCava * VenaCava1.GetVolumeBaseline(VolumeUnit::mL), VolumeUnit::mL);
+
+ // Prepare circuit for compartment creation
+ cCardiovascular.SetNextAndCurrentFromBaselines();
+ cCardiovascular.StateChange();
+
+ SEFluidCircuit& cCombinedCardiovascular = m_Circuits->GetActiveCardiovascularCircuit();
+ cCombinedCardiovascular.AddCircuit(cCardiovascular);
+ cCombinedCardiovascular.SetNextAndCurrentFromBaselines();
+ cCombinedCardiovascular.StateChange();
+
+ /////////////////////////
+ // Create Compartments //
+ /////////////////////////
+
+ /////////////////
+ // Right Heart //
+ SELiquidCompartment& vRightHeart = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightHeart);
+ vRightHeart.MapNode(RightHeart1);
+ vRightHeart.MapNode(RightHeart2);
+ vRightHeart.MapNode(RightHeart3);
+ vRightHeart.MapNode(MainPulmonaryArteries1);
+ //////////////////////////////
+ // Right Pulmonary Arteries //
+ SELiquidCompartment& vRightPulmonaryArteries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightPulmonaryArteries);
+ vRightPulmonaryArteries.MapNode(RightPulmonaryArteries1);
+ vRightPulmonaryArteries.MapNode(RightIntermediatePulmonaryArteries1);
+ /////////////////////////////
+ // Left Pulmonary Arteries //
+ SELiquidCompartment& vLeftPulmonaryArteries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryArteries);
+ vLeftPulmonaryArteries.MapNode(LeftPulmonaryArteries1);
+ vLeftPulmonaryArteries.MapNode(LeftIntermediatePulmonaryArteries1);
+ ////////////////////////
+ // Pulmonary Arteries //
+ SELiquidCompartment& vPulmonaryArteries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::PulmonaryArteries);
+ vPulmonaryArteries.AddChild(vRightPulmonaryArteries);
+ vPulmonaryArteries.AddChild(vLeftPulmonaryArteries);
+ /////////////////////////////////
+ // Right Pulmonary Capillaries //
+ //SELiquidCompartment& vRightPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightPulmonaryCapillaries);
+ //vRightPulmonaryCapillaries.MapNode(RightPulmonaryCapillaries1);
+ ////////////////////////////////
+ // Left Pulmonary Capillaries //
+ //SELiquidCompartment& vLeftPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryCapillaries);
+ //vLeftPulmonaryCapillaries.MapNode(LeftPulmonaryCapillaries1);
+ ///////////////////////////
+ // Pulmonary Capillaries //
+ //SELiquidCompartment& vPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::PulmonaryCapillaries);
+ //vPulmonaryCapillaries.AddChild(vRightPulmonaryCapillaries);
+ //vPulmonaryCapillaries.AddChild(vLeftPulmonaryCapillaries);
+ ///////////////////////////
+ // Right Pulmonary Veins //
+ SELiquidCompartment& vRightPulmonaryVeins = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightPulmonaryVeins);
+ vRightPulmonaryVeins.MapNode(RightPulmonaryVeins1);
+ //////////////////////////
+ // Left Pulmonary Veins //
+ SELiquidCompartment& vLeftPulmonaryVeins = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryVeins);
+ vLeftPulmonaryVeins.MapNode(LeftPulmonaryVeins1);
+ /////////////////////
+ // Pulmonary Veins //
+ SELiquidCompartment& vPulmonaryVeins = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::PulmonaryVeins);
+ vPulmonaryVeins.AddChild(vRightPulmonaryVeins);
+ vPulmonaryVeins.AddChild(vLeftPulmonaryVeins);
+ ////////////////
+ // Left Heart //
+ SELiquidCompartment& vLeftHeart = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftHeart);
+ vLeftHeart.MapNode(LeftHeart1);
+ vLeftHeart.MapNode(LeftHeart2);
+ vLeftHeart.MapNode(LeftHeart3);
+ ///////////
+ // Aorta //
+ SELiquidCompartment& vAorta = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Aorta);
+ vAorta.MapNode(Aorta1);
+ vAorta.MapNode(Aorta2);
+ vAorta.MapNode(Aorta3);
+ vAorta.MapNode(Aorta4);
+ ///////////
+ // Abdominal Cavity //
+ SELiquidCompartment& vAbdominalCavity = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::AbdominalCavity);
+ vAbdominalCavity.MapNode(AbdominalCavity);
+ // Brain //
+ SELiquidCompartment& vBrain = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Brain);
+ vBrain.MapNode(Brain1);
+ vBrain.MapNode(Brain2);
+ //////////
+ // Bone //
+ SELiquidCompartment& vBone = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Bone);
+ vBone.MapNode(Bone1);
+ vBone.MapNode(Bone2);
+ /////////
+ // Fat //
+ SELiquidCompartment& vFat = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Fat);
+ vFat.MapNode(Fat1);
+ vFat.MapNode(Fat2);
+ /////////////////////
+ // Large Intestine //
+ SELiquidCompartment& vLargeIntestine = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LargeIntestine);
+ vLargeIntestine.MapNode(LargeIntestine1);
+ ///////////
+ // Liver //
+ SELiquidCompartment& vLiver = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Liver);
+ vLiver.MapNode(Liver1);
+ vLiver.MapNode(Liver2);
+ vLiver.MapNode(PortalVein1);
+ //////////////
+ // Left Arm //
+ SELiquidCompartment& vLeftArm = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftArm);
+ vLeftArm.MapNode(LeftArm1);
+ vLeftArm.MapNode(LeftArm2);
+ /////////////////
+ // Left Kidney //
+ SELiquidCompartment& vLeftKidney = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftKidney);
+ vLeftKidney.MapNode(LeftKidney1);
+ vLeftKidney.MapNode(LeftKidney2);
+ //////////////
+ // Left Leg //
+ SELiquidCompartment& vLeftLeg = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftLeg);
+ vLeftLeg.MapNode(LeftLeg1);
+ vLeftLeg.MapNode(LeftLeg2);
+ ////////////
+ // Muscle //
+ SELiquidCompartment& vMuscle = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Muscle);
+ vMuscle.MapNode(Muscle1);
+ vMuscle.MapNode(Muscle2);
+ ////////////////
+ // Myocardium //
+ SELiquidCompartment& vMyocardium = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Myocardium);
+ vMyocardium.MapNode(Myocardium1);
+ vMyocardium.MapNode(Myocardium2);
+ /////////////////
+ // Pericardium //
+ SELiquidCompartment& vPericardium = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Pericardium);
+ vPericardium.MapNode(Pericardium);
+ ///////////////
+ // Right Arm //
+ SELiquidCompartment& vRightArm = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightArm);
+ vRightArm.MapNode(RightArm1);
+ vRightArm.MapNode(RightArm2);
+ //////////////////
+ // Right Kidney //
+ SELiquidCompartment& vRightKidney = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightKidney);
+ vRightKidney.MapNode(RightKidney1);
+ vRightKidney.MapNode(RightKidney2);
+ ///////////////
+ // Right Leg //
+ SELiquidCompartment& vRightLeg = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightLeg);
+ vRightLeg.MapNode(RightLeg1);
+ vRightLeg.MapNode(RightLeg2);
+ //////////
+ // Skin //
+ SELiquidCompartment& vSkin = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Skin);
+ vSkin.MapNode(Skin1);
+ vSkin.MapNode(Skin2);
+ /////////////////////
+ // Small Intestine //
+ SELiquidCompartment& vSmallIntestine = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::SmallIntestine);
+ vSmallIntestine.MapNode(SmallIntestine1);
+ ////////////////
+ // Splanchnic //
+ SELiquidCompartment& vSplanchnic = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Splanchnic);
+ vSplanchnic.MapNode(Splanchnic1);
+ ////////////
+ // Spleen //
+ SELiquidCompartment& vSpleen = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Spleen);
+ vSpleen.MapNode(Spleen1);
+ //////////////
+ // VenaCava //
+ SELiquidCompartment& vVenaCava = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::VenaCava);
+ vVenaCava.MapNode(VenaCava1);
+ ////////////
+ // Ground //
+ SELiquidCompartment& vGround = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Ground);
+ vGround.MapNode(Ground);
+
+ SELiquidCompartment& vRightSuperiorLobeApicalPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightSuperiorLobeApicalPulmonaryCapillaries);
+ SELiquidCompartment& vRightSuperiorLobePosteriorPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightSuperiorLobePosteriorPulmonaryCapillaries);
+ SELiquidCompartment& vRightSuperiorLobeAnteriorPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightSuperiorLobeAnteriorPulmonaryCapillaries);
+ SELiquidCompartment& vRightMiddleLobeLateralPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightMiddleLobeLateralPulmonaryCapillaries);
+ SELiquidCompartment& vRightMiddleLobeMedialPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightMiddleLobeMedialPulmonaryCapillaries);
+ SELiquidCompartment& vRightInferiorLobeSuperiorPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightInferiorLobeSuperiorPulmonaryCapillaries);
+ SELiquidCompartment& vRightInferiorLobeMedialBasalPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightInferiorLobeMedialBasalPulmonaryCapillaries);
+ SELiquidCompartment& vRightInferiorLobeAnteriorBasalPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightInferiorLobeAnteriorBasalPulmonaryCapillaries);
+ SELiquidCompartment& vRightInferiorLobeLateralBasalPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightInferiorLobeLateralBasalPulmonaryCapillaries);
+ SELiquidCompartment& vRightInferiorLobePosteriorBasalPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightInferiorLobePosteriorBasalPulmonaryCapillaries);
+
+ SELiquidCompartment& vLeftInferiorLobePosteriorBasalPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::LeftInferiorLobePosteriorBasalPulmonaryCapillaries);
+ SELiquidCompartment& vLeftInferiorLobeLateralBasalPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::LeftInferiorLobeLateralBasalPulmonaryCapillaries);
+ SELiquidCompartment& vLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
+ SELiquidCompartment& vLeftInferiorLobeSuperiorPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::LeftInferiorLobeSuperiorPulmonaryCapillaries);
+ SELiquidCompartment& vLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
+ SELiquidCompartment& vLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
+ SELiquidCompartment& vLeftSuperiorLobeAnteriorPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::LeftSuperiorLobeAnteriorPulmonaryCapillaries);
+ SELiquidCompartment& vLeftSuperiorLobeApicoposteriorPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::ExpandedLungsVascularCompartment::LeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
+
+ vRightSuperiorLobeApicalPulmonaryCapillaries.MapNode(RightSuperiorLobeApicalPulmonaryCapillaries);
+ vRightSuperiorLobePosteriorPulmonaryCapillaries.MapNode(RightSuperiorLobePosteriorPulmonaryCapillaries);
+ vRightSuperiorLobeAnteriorPulmonaryCapillaries.MapNode(RightSuperiorLobeAnteriorPulmonaryCapillaries);
+ vRightMiddleLobeLateralPulmonaryCapillaries.MapNode(RightMiddleLobeLateralPulmonaryCapillaries);
+ vRightMiddleLobeMedialPulmonaryCapillaries.MapNode(RightMiddleLobeMedialPulmonaryCapillaries);
+ vRightInferiorLobeSuperiorPulmonaryCapillaries.MapNode(RightInferiorLobeSuperiorPulmonaryCapillaries);
+ vRightInferiorLobeMedialBasalPulmonaryCapillaries.MapNode(RightInferiorLobeMedialBasalPulmonaryCapillaries);
+ vRightInferiorLobeAnteriorBasalPulmonaryCapillaries.MapNode(RightInferiorLobeAnteriorBasalPulmonaryCapillaries);
+ vRightInferiorLobeLateralBasalPulmonaryCapillaries.MapNode(RightInferiorLobeLateralBasalPulmonaryCapillaries);
+ vRightInferiorLobePosteriorBasalPulmonaryCapillaries.MapNode(RightInferiorLobePosteriorBasalPulmonaryCapillaries);
+
+ vLeftInferiorLobePosteriorBasalPulmonaryCapillaries.MapNode(LeftInferiorLobePosteriorBasalPulmonaryCapillaries);
+ vLeftInferiorLobeLateralBasalPulmonaryCapillaries.MapNode(LeftInferiorLobeLateralBasalPulmonaryCapillaries);
+ vLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries.MapNode(LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
+ vLeftInferiorLobeSuperiorPulmonaryCapillaries.MapNode(LeftInferiorLobeSuperiorPulmonaryCapillaries);
+ vLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries.MapNode(LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
+ vLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries.MapNode(LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
+ vLeftSuperiorLobeAnteriorPulmonaryCapillaries.MapNode(LeftSuperiorLobeAnteriorPulmonaryCapillaries);
+ vLeftSuperiorLobeApicoposteriorPulmonaryCapillaries.MapNode(LeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
+
+ //////////////////////////
+ // Set up our hierarchy //
+ //////////////////////////
+ SELiquidCompartment& vRightPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightPulmonaryCapillaries);
+ SELiquidCompartment& vLeftPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryCapillaries);
+
+ vRightPulmonaryCapillaries.AddChild(vRightSuperiorLobeApicalPulmonaryCapillaries);
+ vRightPulmonaryCapillaries.AddChild(vRightSuperiorLobePosteriorPulmonaryCapillaries);
+ vRightPulmonaryCapillaries.AddChild(vRightSuperiorLobeAnteriorPulmonaryCapillaries);
+ vRightPulmonaryCapillaries.AddChild(vRightMiddleLobeLateralPulmonaryCapillaries);
+ vRightPulmonaryCapillaries.AddChild(vRightMiddleLobeMedialPulmonaryCapillaries);
+ vRightPulmonaryCapillaries.AddChild(vRightInferiorLobeSuperiorPulmonaryCapillaries);
+ vRightPulmonaryCapillaries.AddChild(vRightInferiorLobeMedialBasalPulmonaryCapillaries);
+ vRightPulmonaryCapillaries.AddChild(vRightInferiorLobeAnteriorBasalPulmonaryCapillaries);
+ vRightPulmonaryCapillaries.AddChild(vRightInferiorLobeLateralBasalPulmonaryCapillaries);
+ vRightPulmonaryCapillaries.AddChild(vRightInferiorLobePosteriorBasalPulmonaryCapillaries);
+
+ vLeftPulmonaryCapillaries.AddChild(vLeftInferiorLobePosteriorBasalPulmonaryCapillaries);
+ vLeftPulmonaryCapillaries.AddChild(vLeftInferiorLobeLateralBasalPulmonaryCapillaries);
+ vLeftPulmonaryCapillaries.AddChild(vLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
+ vLeftPulmonaryCapillaries.AddChild(vLeftInferiorLobeSuperiorPulmonaryCapillaries);
+ vLeftPulmonaryCapillaries.AddChild(vLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
+ vLeftPulmonaryCapillaries.AddChild(vLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
+ vLeftPulmonaryCapillaries.AddChild(vLeftSuperiorLobeAnteriorPulmonaryCapillaries);
+ vLeftPulmonaryCapillaries.AddChild(vLeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
+
+ SELiquidCompartment& vPulmonaryCapillaries = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::PulmonaryCapillaries);
+ vPulmonaryCapillaries.AddChild(vRightPulmonaryCapillaries);
+ vPulmonaryCapillaries.AddChild(vLeftPulmonaryCapillaries);
+
+ SELiquidCompartment& vKidneys = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Kidneys);
+ vKidneys.AddChild(vLeftKidney);
+ vKidneys.AddChild(vRightKidney);
+ SELiquidCompartment& vHeart = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Heart);
+ vHeart.AddChild(vMyocardium);
+ vHeart.AddChild(vLeftHeart);
+ vHeart.AddChild(vRightHeart);
+ vHeart.AddChild(vPericardium);
+ SELiquidCompartment& vLeftLung = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::LeftLung);
+ vLeftLung.AddChild(vLeftPulmonaryArteries);
+ vLeftLung.AddChild(vLeftPulmonaryCapillaries);
+ vLeftLung.AddChild(vLeftPulmonaryVeins);
+ SELiquidCompartment& vRightLung = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::RightLung);
+ vRightLung.AddChild(vRightPulmonaryArteries);
+ vRightLung.AddChild(vRightPulmonaryCapillaries);
+ vRightLung.AddChild(vRightPulmonaryVeins);
+ SELiquidCompartment& vLungs = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Lungs);
+ vLungs.AddChild(vLeftLung);
+ vLungs.AddChild(vRightLung);
+ SELiquidCompartment& vGut = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Gut);
+ vGut.AddChild(vSplanchnic);
+ vGut.AddChild(vSmallIntestine);
+ vGut.AddChild(vLargeIntestine);
+ SELiquidCompartment& vAbdomen = m_Compartments->CreateLiquidCompartment(pulse::VascularCompartment::Abdomen);
+ vAbdomen.AddChild(vSplanchnic);
+ vAbdomen.AddChild(vSmallIntestine);
+ vAbdomen.AddChild(vLargeIntestine);
+ vAbdomen.AddChild(vLeftKidney);
+ vAbdomen.AddChild(vRightKidney);
+ vAbdomen.AddChild(vSpleen);
+ vAbdomen.AddChild(vLiver);
+ vAbdomen.AddChild(vVenaCava);
+ vAbdomen.AddChild(vAorta);
+ vAbdomen.AddChild(vAbdominalCavity);
+
+
+ //////////////////
+ // Create Links //
+ //////////////////
+
+ /////////////////////
+ // Heart and Lungs //
+ SELiquidCompartmentLink& vVenaCavaToRightHeart = m_Compartments->CreateLiquidLink(vVenaCava, vRightHeart, pulse::VascularLink::VenaCavaToRightHeart);
+ vVenaCavaToRightHeart.MapPath(VenaCava1ToRightHeart2);
+ SELiquidCompartmentLink& vRightHeartToLeftPulmonaryArteries = m_Compartments->CreateLiquidLink(vRightHeart, vLeftPulmonaryArteries, pulse::VascularLink::RightHeartToLeftPulmonaryArteries);
+ vRightHeartToLeftPulmonaryArteries.MapPath(MainPulmonaryArteries1ToLeftIntermediatePulmonaryArteries1);
+ //SELiquidCompartmentLink& vLeftPulmonaryArteriesToCapillaries = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryCapillaries, pulse::VascularLink::LeftPulmonaryArteriesToCapillaries);
+ //vLeftPulmonaryArteriesToCapillaries.MapPath(LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1);
+ //SELiquidCompartmentLink& vLeftPulmonaryArteriesToVeins = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::VascularLink::LeftPulmonaryArteriesToVeins);
+ //vLeftPulmonaryArteriesToVeins.MapPath(LeftPulmonaryArteries1ToLeftPulmonaryVeins1);
+ //SELiquidCompartmentLink& vLeftPulmonaryCapillariesToVeins = m_Compartments->CreateLiquidLink(vLeftPulmonaryCapillaries, vLeftPulmonaryVeins, pulse::VascularLink::LeftPulmonaryCapillariesToVeins);
+ //vLeftPulmonaryCapillariesToVeins.MapPath(LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1);
+ SELiquidCompartmentLink& vLeftPulmonaryVeinsToLeftHeart = m_Compartments->CreateLiquidLink(vLeftPulmonaryVeins, vLeftHeart, pulse::VascularLink::LeftPulmonaryVeinsToLeftHeart);
+ vLeftPulmonaryVeinsToLeftHeart.MapPath(LeftIntermediatePulmonaryVeins1ToLeftHeart2);
+ SELiquidCompartmentLink& vRightHeartToRightPulmonaryArteries = m_Compartments->CreateLiquidLink(vRightHeart, vRightPulmonaryArteries, pulse::VascularLink::RightHeartToRightPulmonaryArteries);
+ vRightHeartToRightPulmonaryArteries.MapPath(MainPulmonaryArteries1ToRightIntermediatePulmonaryArteries1);
+ //SELiquidCompartmentLink& vRightPulmonaryArteriesToCapillaries = m_Compartments->CreateLiquidLink(vRightPulmonaryArteries, vRightPulmonaryCapillaries, pulse::VascularLink::RightPulmonaryArteriesToCapillaries);
+ //vRightPulmonaryArteriesToCapillaries.MapPath(RightPulmonaryArteries1ToRightPulmonaryCapillaries1);
+ //SELiquidCompartmentLink& vRightPulmonaryArteriesToVeins = m_Compartments->CreateLiquidLink(vRightPulmonaryArteries, vRightPulmonaryVeins, pulse::VascularLink::RightPulmonaryArteriesToVeins);
+ //vRightPulmonaryArteriesToVeins.MapPath(RightPulmonaryArteries1ToRightPulmonaryVeins1);
+ //SELiquidCompartmentLink& vRightPulmonaryCapillariesToVeins = m_Compartments->CreateLiquidLink(vRightPulmonaryCapillaries, vRightPulmonaryVeins, pulse::VascularLink::RightPulmonaryCapillariesToVeins);
+ //vRightPulmonaryCapillariesToVeins.MapPath(RightPulmonaryCapillaries1ToRightPulmonaryVeins1);
+ SELiquidCompartmentLink& vRightPulmonaryVeinsToLeftHeart = m_Compartments->CreateLiquidLink(vRightPulmonaryVeins, vLeftHeart, pulse::VascularLink::RightPulmonaryVeinsToLeftHeart);
+ vRightPulmonaryVeinsToLeftHeart.MapPath(RightIntermediatePulmonaryVeins1ToLeftHeart2);
+ SELiquidCompartmentLink& vLeftHeartToAorta = m_Compartments->CreateLiquidLink(vLeftHeart, vAorta, pulse::VascularLink::LeftHeartToAorta);
+ vLeftHeartToAorta.MapPath(LeftHeart1ToAorta2);
+ //////////
+ // Bone //
+ SELiquidCompartmentLink& vAortaToBone = m_Compartments->CreateLiquidLink(vAorta, vBone, pulse::VascularLink::AortaToBone);
+ vAortaToBone.MapPath(Aorta1ToBone1);
+ SELiquidCompartmentLink& vBoneToVenaCava = m_Compartments->CreateLiquidLink(vBone, vVenaCava, pulse::VascularLink::BoneToVenaCava);
+ vBoneToVenaCava.MapPath(Bone2ToVenaCava1);
+ ///////////
+ // Brain //
+ SELiquidCompartmentLink& vAortaToBrain = m_Compartments->CreateLiquidLink(vAorta, vBrain, pulse::VascularLink::AortaToBrain);
+ vAortaToBrain.MapPath(Aorta1ToBrain1);
+ SELiquidCompartmentLink& vBrainToVenaCava = m_Compartments->CreateLiquidLink(vBrain, vVenaCava, pulse::VascularLink::BrainToVenaCava);
+ vBrainToVenaCava.MapPath(Brain2ToVenaCava1);
+ /////////
+ // Fat //
+ SELiquidCompartmentLink& vAortaToFat = m_Compartments->CreateLiquidLink(vAorta, vFat, pulse::VascularLink::AortaToFat);
+ vAortaToFat.MapPath(Aorta1ToFat1);
+ SELiquidCompartmentLink& vFatToVenaCava = m_Compartments->CreateLiquidLink(vFat, vVenaCava, pulse::VascularLink::FatToVenaCava);
+ vFatToVenaCava.MapPath(Fat2ToVenaCava1);
+ /////////////////////
+ // Large Intestine //
+ SELiquidCompartmentLink& vAortaToLargeIntestine = m_Compartments->CreateLiquidLink(vAorta, vLargeIntestine, pulse::VascularLink::AortaToLargeIntestine);
+ vAortaToLargeIntestine.MapPath(Aorta1ToLargeIntestine1);
+ SELiquidCompartmentLink& vLargeIntestineToLiver = m_Compartments->CreateLiquidLink(vLargeIntestine, vLiver, pulse::VascularLink::LargeIntestineToLiver);
+ vLargeIntestineToLiver.MapPath(LargeIntestine1ToPortalVein1);
+ ///////////
+ // Liver //
+ SELiquidCompartmentLink& vAortaToLiver = m_Compartments->CreateLiquidLink(vAorta, vLiver, pulse::VascularLink::AortaToLiver);
+ vAortaToLiver.MapPath(Aorta1ToLiver1);
+ SELiquidCompartmentLink& vLiverToVenaCava = m_Compartments->CreateLiquidLink(vLiver, vVenaCava, pulse::VascularLink::LiverToVenaCava);
+ vLiverToVenaCava.MapPath(Liver2ToVenaCava1);
+ //////////////
+ // Left Arm //
+ SELiquidCompartmentLink& vAortaToLeftArm = m_Compartments->CreateLiquidLink(vAorta, vLeftArm, pulse::VascularLink::AortaToLeftArm);
+ vAortaToLeftArm.MapPath(Aorta1ToLeftArm1);
+ SELiquidCompartmentLink& vLeftArmToVenaCava = m_Compartments->CreateLiquidLink(vLeftArm, vVenaCava, pulse::VascularLink::LeftArmToVenaCava);
+ vLeftArmToVenaCava.MapPath(LeftArm2ToVenaCava1);
+ /////////////////
+ // Left Kidney //
+ SELiquidCompartmentLink& vAortaToLeftKidney = m_Compartments->CreateLiquidLink(vAorta, vLeftKidney, pulse::VascularLink::AortaToLeftKidney);
+ vAortaToLeftKidney.MapPath(Aorta1ToLeftKidney1);
+ SELiquidCompartmentLink& vLeftKidneyToVenaCava = m_Compartments->CreateLiquidLink(vLeftKidney, vVenaCava, pulse::VascularLink::LeftKidneyToVenaCava);
+ vLeftKidneyToVenaCava.MapPath(LeftKidney2ToVenaCava1);
+ //////////////
+ // Left Leg //
+ SELiquidCompartmentLink& vAortaToLeftLeg = m_Compartments->CreateLiquidLink(vAorta, vLeftLeg, pulse::VascularLink::AortaToLeftLeg);
+ vAortaToLeftLeg.MapPath(Aorta1ToLeftLeg1);
+ SELiquidCompartmentLink& vLeftLegToVenaCava = m_Compartments->CreateLiquidLink(vLeftLeg, vVenaCava, pulse::VascularLink::LeftLegToVenaCava);
+ vLeftLegToVenaCava.MapPath(LeftLeg2ToVenaCava1);
+ ////////////
+ // Muscle //
+ SELiquidCompartmentLink& vAortaToMuscle = m_Compartments->CreateLiquidLink(vAorta, vMuscle, pulse::VascularLink::AortaToMuscle);
+ vAortaToMuscle.MapPath(Aorta1ToMuscle1);
+ SELiquidCompartmentLink& vMuscleToVenaCava = m_Compartments->CreateLiquidLink(vMuscle, vVenaCava, pulse::VascularLink::MuscleToVenaCava);
+ vMuscleToVenaCava.MapPath(Muscle2ToVenaCava1);
+ ////////////////
+ // Myocardium //
+ SELiquidCompartmentLink& vAortaToMyocardium = m_Compartments->CreateLiquidLink(vAorta, vMyocardium, pulse::VascularLink::AortaToMyocardium);
+ vAortaToMyocardium.MapPath(Aorta1ToMyocardium1);
+ SELiquidCompartmentLink& vMyocardiumToVenaCava = m_Compartments->CreateLiquidLink(vMyocardium, vVenaCava, pulse::VascularLink::MyocardiumToVenaCava);
+ vMyocardiumToVenaCava.MapPath(Myocardium2ToVenaCava1);
+ ///////////////
+ // Right Arm //
+ SELiquidCompartmentLink& vAortaToRightArm = m_Compartments->CreateLiquidLink(vAorta, vRightArm, pulse::VascularLink::AortaToRightArm);
+ vAortaToRightArm.MapPath(Aorta1ToRightArm1);
+ SELiquidCompartmentLink& vRightArmToVenaCava = m_Compartments->CreateLiquidLink(vRightArm, vVenaCava, pulse::VascularLink::RightArmToVenaCava);
+ vRightArmToVenaCava.MapPath(RightArm2ToVenaCava1);
+ //////////////////
+ // Right Kidney //
+ SELiquidCompartmentLink& vAortaToRightKidney = m_Compartments->CreateLiquidLink(vAorta, vRightKidney, pulse::VascularLink::AortaToRightKidney);
+ vAortaToRightKidney.MapPath(Aorta1ToRightKidney1);
+ SELiquidCompartmentLink& vRightKidneyToVenaCava = m_Compartments->CreateLiquidLink(vRightKidney, vVenaCava, pulse::VascularLink::RightKidneyToVenaCava);
+ vRightKidneyToVenaCava.MapPath(RightKidney2ToVenaCava1);
+ ///////////////
+ // Right Leg //
+ SELiquidCompartmentLink& vAortaToRightLeg = m_Compartments->CreateLiquidLink(vAorta, vRightLeg, pulse::VascularLink::AortaToRightLeg);
+ vAortaToRightLeg.MapPath(Aorta1ToRightLeg1);
+ SELiquidCompartmentLink& vRightLegToVenaCava = m_Compartments->CreateLiquidLink(vRightLeg, vVenaCava, pulse::VascularLink::RightLegToVenaCava);
+ vRightLegToVenaCava.MapPath(RightLeg2ToVenaCava1);
+ //////////
+ // Skin //
+ SELiquidCompartmentLink& vAortaToSkin = m_Compartments->CreateLiquidLink(vAorta, vSkin, pulse::VascularLink::AortaToSkin);
+ vAortaToSkin.MapPath(Aorta1ToSkin1);
+ SELiquidCompartmentLink& vSkinToVenaCava = m_Compartments->CreateLiquidLink(vSkin, vVenaCava, pulse::VascularLink::SkinToVenaCava);
+ vSkinToVenaCava.MapPath(Skin2ToVenaCava1);
+ /////////////////////
+ // Small Intestine //
+ SELiquidCompartmentLink& vAortaToSmallIntestine = m_Compartments->CreateLiquidLink(vAorta, vSmallIntestine, pulse::VascularLink::AortaToSmallIntestine);
+ vAortaToSmallIntestine.MapPath(Aorta1ToSmallIntestine1);
+ SELiquidCompartmentLink& vSmallIntestineToLiver = m_Compartments->CreateLiquidLink(vSmallIntestine, vLiver, pulse::VascularLink::SmallIntestineToLiver);
+ vSmallIntestineToLiver.MapPath(SmallIntestine1ToPortalVein1);
+ ////////////////
+ // Splanchnic //
+ SELiquidCompartmentLink& vAortaToSplanchnic = m_Compartments->CreateLiquidLink(vAorta, vSplanchnic, pulse::VascularLink::AortaToSplanchnic);
+ vAortaToSplanchnic.MapPath(Aorta1ToSplanchnic1);
+ SELiquidCompartmentLink& vSplanchnicToLiver = m_Compartments->CreateLiquidLink(vSplanchnic, vLiver, pulse::VascularLink::SplanchnicToLiver);
+ vSplanchnicToLiver.MapPath(SplanchnicToPortalVein);
+ ////////////
+ // Spleen //
+ SELiquidCompartmentLink& vAortaToSpleen = m_Compartments->CreateLiquidLink(vAorta, vSpleen, pulse::VascularLink::AortaToSpleen);
+ vAortaToSpleen.MapPath(Aorta1ToSpleen1);
+ SELiquidCompartmentLink& vSpleenToLiver = m_Compartments->CreateLiquidLink(vSpleen, vLiver, pulse::VascularLink::SpleenToLiver);
+ vSpleenToLiver.MapPath(Spleen1ToPortalVein1);
+
+ /////////////////////
+ // Bleeds and IV's //
+ SELiquidCompartmentLink& vVenaCavaIV = m_Compartments->CreateLiquidLink(vGround, vVenaCava, pulse::VascularLink::VenaCavaIV);
+ vVenaCavaIV.MapPath(IVToVenaCava1);
+
+ SELiquidCompartmentLink& vRightPulmonaryArteriesToRightSuperiorLobeApicalPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vRightPulmonaryArteries, vRightSuperiorLobeApicalPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightSuperiorLobeApicalPulmonaryCapillaries);
+ SELiquidCompartmentLink& vRightPulmonaryArteriesToRightSuperiorLobePosteriorPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vRightPulmonaryArteries, vRightSuperiorLobePosteriorPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightSuperiorLobePosteriorPulmonaryCapillaries);
+ SELiquidCompartmentLink& vRightPulmonaryArteriesToRightSuperiorLobeAnteriorPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vRightPulmonaryArteries, vRightSuperiorLobeAnteriorPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightSuperiorLobeAnteriorPulmonaryCapillaries);
+ SELiquidCompartmentLink& vRightPulmonaryArteriesToRightMiddleLobeLateralPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vRightPulmonaryArteries, vRightMiddleLobeLateralPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightMiddleLobeLateralPulmonaryCapillaries);
+ SELiquidCompartmentLink& vRightPulmonaryArteriesToRightMiddleLobeMedialPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vRightPulmonaryArteries, vRightMiddleLobeMedialPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightMiddleLobeMedialPulmonaryCapillaries);
+ SELiquidCompartmentLink& vRightPulmonaryArteriesToRightInferiorLobeSuperiorPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vRightPulmonaryArteries, vRightInferiorLobeSuperiorPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightInferiorLobeSuperiorPulmonaryCapillaries);
+ SELiquidCompartmentLink& vRightPulmonaryArteriesToRightInferiorLobeMedialBasalPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vRightPulmonaryArteries, vRightInferiorLobeMedialBasalPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightInferiorLobeMedialBasalPulmonaryCapillaries);
+ SELiquidCompartmentLink& vRightPulmonaryArteriesToRightInferiorLobeAnteriorBasalPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vRightPulmonaryArteries, vRightInferiorLobeAnteriorBasalPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightInferiorLobeAnteriorBasalPulmonaryCapillaries);
+ SELiquidCompartmentLink& vRightPulmonaryArteriesToRightInferiorLobeLateralBasalPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vRightPulmonaryArteries, vRightInferiorLobeLateralBasalPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightInferiorLobeLateralBasalPulmonaryCapillaries);
+ SELiquidCompartmentLink& vRightPulmonaryArteriesToRightInferiorLobePosteriorBasalPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vRightPulmonaryArteries, vRightInferiorLobePosteriorBasalPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightInferiorLobePosteriorBasalPulmonaryCapillaries);
+
+ SELiquidCompartmentLink& vLeftPulmonaryArteriesToLeftInferiorLobePosteriorBasalPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftInferiorLobePosteriorBasalPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::LeftPulmonaryArteriesToLeftInferiorLobePosteriorBasalPulmonaryCapillaries);
+ SELiquidCompartmentLink& vLeftPulmonaryArteriesToLeftInferiorLobeLateralBasalPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftInferiorLobeLateralBasalPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::LeftPulmonaryArteriesToLeftInferiorLobeLateralBasalPulmonaryCapillaries);
+ SELiquidCompartmentLink& vLeftPulmonaryArteriesToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::LeftPulmonaryArteriesToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
+ SELiquidCompartmentLink& vLeftPulmonaryArteriesToLeftInferiorLobeSuperiorPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftInferiorLobeSuperiorPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::LeftPulmonaryArteriesToLeftInferiorLobeSuperiorPulmonaryCapillaries);
+ SELiquidCompartmentLink& vLeftPulmonaryArteriesToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::LeftPulmonaryArteriesToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
+ SELiquidCompartmentLink& vLeftPulmonaryArteriesToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::LeftPulmonaryArteriesToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
+ SELiquidCompartmentLink& vLeftPulmonaryArteriesToLeftSuperiorLobeAnteriorPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftSuperiorLobeAnteriorPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::LeftPulmonaryArteriesToLeftSuperiorLobeAnteriorPulmonaryCapillaries);
+ SELiquidCompartmentLink& vLeftPulmonaryArteriesToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftSuperiorLobeApicoposteriorPulmonaryCapillaries, pulse::ExpandedLungsVascularLink::LeftPulmonaryArteriesToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
+
+ SELiquidCompartmentLink& vRightSuperiorLobeApicalPulmonaryCapillariesToRightPulmonaryVeins = m_Compartments->CreateLiquidLink(vRightSuperiorLobeApicalPulmonaryCapillaries, vRightPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightSuperiorLobeApicalPulmonaryCapillariesToRightPulmonaryVeins);
+ SELiquidCompartmentLink& vRightSuperiorLobePosteriorPulmonaryCapillariesToRightPulmonaryVeins = m_Compartments->CreateLiquidLink(vRightSuperiorLobePosteriorPulmonaryCapillaries, vRightPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightSuperiorLobePosteriorPulmonaryCapillariesToRightPulmonaryVeins);
+ SELiquidCompartmentLink& vRightSuperiorLobeAnteriorPulmonaryCapillariesToRightPulmonaryVeins = m_Compartments->CreateLiquidLink(vRightSuperiorLobeAnteriorPulmonaryCapillaries, vRightPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightSuperiorLobeAnteriorPulmonaryCapillariesToRightPulmonaryVeins);
+ SELiquidCompartmentLink& vRightMiddleLobeLateralPulmonaryCapillariesToRightPulmonaryVeins = m_Compartments->CreateLiquidLink(vRightMiddleLobeLateralPulmonaryCapillaries, vRightPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightMiddleLobeLateralPulmonaryCapillariesToRightPulmonaryVeins);
+ SELiquidCompartmentLink& vRightMiddleLobeMedialPulmonaryCapillariesToRightPulmonaryVeins = m_Compartments->CreateLiquidLink(vRightMiddleLobeMedialPulmonaryCapillaries, vRightPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightMiddleLobeMedialPulmonaryCapillariesToRightPulmonaryVeins);
+ SELiquidCompartmentLink& vRightInferiorLobeSuperiorPulmonaryCapillariesToRightPulmonaryVeins = m_Compartments->CreateLiquidLink(vRightInferiorLobeSuperiorPulmonaryCapillaries, vRightPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightInferiorLobeSuperiorPulmonaryCapillariesToRightPulmonaryVeins);
+ SELiquidCompartmentLink& vRightInferiorLobeMedialBasalPulmonaryCapillariesToRightPulmonaryVeins = m_Compartments->CreateLiquidLink(vRightInferiorLobeMedialBasalPulmonaryCapillaries, vRightPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightInferiorLobeMedialBasalPulmonaryCapillariesToRightPulmonaryVeins);
+ SELiquidCompartmentLink& vRightInferiorLobeAnteriorBasalPulmonaryCapillariesToRightPulmonaryVeins = m_Compartments->CreateLiquidLink(vRightInferiorLobeAnteriorBasalPulmonaryCapillaries, vRightPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightInferiorLobeAnteriorBasalPulmonaryCapillariesToRightPulmonaryVeins);
+ SELiquidCompartmentLink& vRightInferiorLobeLateralBasalPulmonaryCapillariesToRightPulmonaryVeins = m_Compartments->CreateLiquidLink(vRightInferiorLobeLateralBasalPulmonaryCapillaries, vRightPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightInferiorLobeLateralBasalPulmonaryCapillariesToRightPulmonaryVeins);
+ SELiquidCompartmentLink& vRightInferiorLobePosteriorBasalPulmonaryCapillariesToRightPulmonaryVeins = m_Compartments->CreateLiquidLink(vRightInferiorLobePosteriorBasalPulmonaryCapillaries, vRightPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightInferiorLobePosteriorBasalPulmonaryCapillariesToRightPulmonaryVeins);
+
+ SELiquidCompartmentLink& vLeftInferiorLobePosteriorBasalPulmonaryCapillariesToLeftPulmonaryVeins = m_Compartments->CreateLiquidLink(vLeftInferiorLobePosteriorBasalPulmonaryCapillaries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::LeftInferiorLobePosteriorBasalPulmonaryCapillariesToLeftPulmonaryVeins);
+ SELiquidCompartmentLink& vLeftInferiorLobeLateralBasalPulmonaryCapillariesToLeftPulmonaryVeins = m_Compartments->CreateLiquidLink(vLeftInferiorLobeLateralBasalPulmonaryCapillaries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::LeftInferiorLobeLateralBasalPulmonaryCapillariesToLeftPulmonaryVeins);
+ SELiquidCompartmentLink& vLeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToLeftPulmonaryVeins = m_Compartments->CreateLiquidLink(vLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToLeftPulmonaryVeins);
+ SELiquidCompartmentLink& vLeftInferiorLobeSuperiorPulmonaryCapillariesToLeftPulmonaryVeins = m_Compartments->CreateLiquidLink(vLeftInferiorLobeSuperiorPulmonaryCapillaries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::LeftInferiorLobeSuperiorPulmonaryCapillariesToLeftPulmonaryVeins);
+ SELiquidCompartmentLink& vLeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins = m_Compartments->CreateLiquidLink(vLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins);
+ SELiquidCompartmentLink& vLeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins = m_Compartments->CreateLiquidLink(vLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins);
+ SELiquidCompartmentLink& vLeftSuperiorLobeAnteriorPulmonaryCapillariesToLeftPulmonaryVeins = m_Compartments->CreateLiquidLink(vLeftSuperiorLobeAnteriorPulmonaryCapillaries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::LeftSuperiorLobeAnteriorPulmonaryCapillariesToLeftPulmonaryVeins);
+ SELiquidCompartmentLink& vLeftSuperiorLobeApicoposteriorPulmonaryCapillariesToLeftPulmonaryVeins = m_Compartments->CreateLiquidLink(vLeftSuperiorLobeApicoposteriorPulmonaryCapillaries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToLeftPulmonaryVeins);
+
+ SELiquidCompartmentLink& vRightSuperiorLobeApicalShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightSuperiorLobeApicalShunt);
+ SELiquidCompartmentLink& vRightSuperiorLobePosteriorShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightSuperiorLobePosteriorShunt);
+ SELiquidCompartmentLink& vRightSuperiorLobeAnteriorShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightSuperiorLobeAnteriorShunt);
+ SELiquidCompartmentLink& vRightMiddleLobeLateralShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightMiddleLobeLateralShunt);
+ SELiquidCompartmentLink& vRightMiddleLobeMedialShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightMiddleLobeMedialShunt);
+ SELiquidCompartmentLink& vRightInferiorLobeSuperiorShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightInferiorLobeSuperiorShunt);
+ SELiquidCompartmentLink& vRightInferiorLobeMedialBasalShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightInferiorLobeMedialBasalShunt);
+ SELiquidCompartmentLink& vRightInferiorLobeAnteriorBasalShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightInferiorLobeAnteriorBasalShunt);
+ SELiquidCompartmentLink& vRightInferiorLobeLateralBasalShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightInferiorLobeLateralBasalShunt);
+ SELiquidCompartmentLink& vRightInferiorLobePosteriorBasalShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::RightInferiorLobePosteriorBasalShunt);
+
+ SELiquidCompartmentLink& vLeftInferiorLobePosteriorBasalShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::LeftInferiorLobePosteriorBasalShunt);
+ SELiquidCompartmentLink& vLeftInferiorLobeLateralBasalShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::LeftInferiorLobeLateralBasalShunt);
+ SELiquidCompartmentLink& vLeftInferiorLobeAnteromedialBasalShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::LeftInferiorLobeAnteromedialBasalShunt);
+ SELiquidCompartmentLink& vLeftInferiorLobeSuperiorShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::LeftInferiorLobeSuperiorShunt);
+ SELiquidCompartmentLink& vLeftSuperiorLobeInferiorLingulaShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::LeftSuperiorLobeInferiorLingulaShunt);
+ SELiquidCompartmentLink& vLeftSuperiorLobeSuperiorLingulaShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::LeftSuperiorLobeSuperiorLingulaShunt);
+ SELiquidCompartmentLink& vLeftSuperiorLobeAnteriorShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::LeftSuperiorLobeAnteriorShunt);
+ SELiquidCompartmentLink& vLeftSuperiorLobeApicoposteriorShunt = m_Compartments->CreateLiquidLink(vLeftPulmonaryArteries, vLeftPulmonaryVeins, pulse::ExpandedLungsVascularLink::LeftSuperiorLobeApicoposteriorShunt);
+
+ vRightPulmonaryArteriesToRightSuperiorLobeApicalPulmonaryCapillaries.MapPath( RightPulmonaryArteries1ToRightSuperiorLobeApicalPulmonaryCapillaries);
+ vRightPulmonaryArteriesToRightSuperiorLobePosteriorPulmonaryCapillaries.MapPath( RightPulmonaryArteries1ToRightSuperiorLobePosteriorPulmonaryCapillaries);
+ vRightPulmonaryArteriesToRightSuperiorLobeAnteriorPulmonaryCapillaries.MapPath( RightPulmonaryArteries1ToRightSuperiorLobeAnteriorPulmonaryCapillaries);
+ vRightPulmonaryArteriesToRightMiddleLobeLateralPulmonaryCapillaries.MapPath( RightPulmonaryArteries1ToRightMiddleLobeLateralPulmonaryCapillaries);
+ vRightPulmonaryArteriesToRightMiddleLobeMedialPulmonaryCapillaries.MapPath( RightPulmonaryArteries1ToRightMiddleLobeMedialPulmonaryCapillaries);
+ vRightPulmonaryArteriesToRightInferiorLobeSuperiorPulmonaryCapillaries.MapPath( RightPulmonaryArteries1ToRightInferiorLobeSuperiorPulmonaryCapillaries);
+ vRightPulmonaryArteriesToRightInferiorLobeMedialBasalPulmonaryCapillaries.MapPath( RightPulmonaryArteries1ToRightInferiorLobeMedialBasalPulmonaryCapillaries);
+ vRightPulmonaryArteriesToRightInferiorLobeAnteriorBasalPulmonaryCapillaries.MapPath( RightPulmonaryArteries1ToRightInferiorLobeAnteriorBasalPulmonaryCapillaries);
+ vRightPulmonaryArteriesToRightInferiorLobeLateralBasalPulmonaryCapillaries.MapPath( RightPulmonaryArteries1ToRightInferiorLobeLateralBasalPulmonaryCapillaries);
+ vRightPulmonaryArteriesToRightInferiorLobePosteriorBasalPulmonaryCapillaries.MapPath( RightPulmonaryArteries1ToRightInferiorLobePosteriorBasalPulmonaryCapillaries);
+
+ vLeftPulmonaryArteriesToLeftInferiorLobePosteriorBasalPulmonaryCapillaries.MapPath( LeftPulmonaryArteries1ToLeftInferiorLobePosteriorBasalPulmonaryCapillaries);
+ vLeftPulmonaryArteriesToLeftInferiorLobeLateralBasalPulmonaryCapillaries.MapPath( LeftPulmonaryArteries1ToLeftInferiorLobeLateralBasalPulmonaryCapillaries);
+ vLeftPulmonaryArteriesToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries.MapPath(LeftPulmonaryArteries1ToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
+ vLeftPulmonaryArteriesToLeftInferiorLobeSuperiorPulmonaryCapillaries.MapPath( LeftPulmonaryArteries1ToLeftInferiorLobeSuperiorPulmonaryCapillaries);
+ vLeftPulmonaryArteriesToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries.MapPath( LeftPulmonaryArteries1ToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
+ vLeftPulmonaryArteriesToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries.MapPath( LeftPulmonaryArteries1ToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
+ vLeftPulmonaryArteriesToLeftSuperiorLobeAnteriorPulmonaryCapillaries.MapPath( LeftPulmonaryArteries1ToLeftSuperiorLobeAnteriorPulmonaryCapillaries);
+ vLeftPulmonaryArteriesToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries.MapPath( LeftPulmonaryArteries1ToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
+
+ vRightSuperiorLobeApicalPulmonaryCapillariesToRightPulmonaryVeins.MapPath( RightSuperiorLobeApicalPulmonaryCapillariesToRightPulmonaryVeins1);
+ vRightSuperiorLobePosteriorPulmonaryCapillariesToRightPulmonaryVeins.MapPath( RightSuperiorLobePosteriorPulmonaryCapillariesToRightPulmonaryVeins1);
+ vRightSuperiorLobeAnteriorPulmonaryCapillariesToRightPulmonaryVeins.MapPath( RightSuperiorLobeAnteriorPulmonaryCapillariesToRightPulmonaryVeins1);
+ vRightMiddleLobeLateralPulmonaryCapillariesToRightPulmonaryVeins.MapPath( RightMiddleLobeLateralPulmonaryCapillariesToRightPulmonaryVeins1);
+ vRightMiddleLobeMedialPulmonaryCapillariesToRightPulmonaryVeins.MapPath( RightMiddleLobeMedialPulmonaryCapillariesToRightPulmonaryVeins1);
+ vRightInferiorLobeSuperiorPulmonaryCapillariesToRightPulmonaryVeins.MapPath( RightInferiorLobeSuperiorPulmonaryCapillariesToRightPulmonaryVeins1);
+ vRightInferiorLobeMedialBasalPulmonaryCapillariesToRightPulmonaryVeins.MapPath( RightInferiorLobeMedialBasalPulmonaryCapillariesToRightPulmonaryVeins1);
+ vRightInferiorLobeAnteriorBasalPulmonaryCapillariesToRightPulmonaryVeins.MapPath( RightInferiorLobeAnteriorBasalPulmonaryCapillariesToRightPulmonaryVeins1);
+ vRightInferiorLobeLateralBasalPulmonaryCapillariesToRightPulmonaryVeins.MapPath( RightInferiorLobeLateralBasalPulmonaryCapillariesToRightPulmonaryVeins1);
+ vRightInferiorLobePosteriorBasalPulmonaryCapillariesToRightPulmonaryVeins.MapPath( RightInferiorLobePosteriorBasalPulmonaryCapillariesToRightPulmonaryVeins1);
+
+ vLeftInferiorLobePosteriorBasalPulmonaryCapillariesToLeftPulmonaryVeins.MapPath( LeftInferiorLobePosteriorBasalPulmonaryCapillariesToLeftPulmonaryVeins1);
+ vLeftInferiorLobeLateralBasalPulmonaryCapillariesToLeftPulmonaryVeins.MapPath( LeftInferiorLobeLateralBasalPulmonaryCapillariesToLeftPulmonaryVeins1);
+ vLeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToLeftPulmonaryVeins.MapPath( LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToLeftPulmonaryVeins1);
+ vLeftInferiorLobeSuperiorPulmonaryCapillariesToLeftPulmonaryVeins.MapPath( LeftInferiorLobeSuperiorPulmonaryCapillariesToLeftPulmonaryVeins1);
+ vLeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins.MapPath( LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins1);
+ vLeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins.MapPath( LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins1);
+ vLeftSuperiorLobeAnteriorPulmonaryCapillariesToLeftPulmonaryVeins.MapPath( LeftSuperiorLobeAnteriorPulmonaryCapillariesToLeftPulmonaryVeins1);
+ vLeftSuperiorLobeApicoposteriorPulmonaryCapillariesToLeftPulmonaryVeins.MapPath( LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToLeftPulmonaryVeins1);
+
+ vRightSuperiorLobeApicalShunt.MapPath(RightSuperiorLobeApicalShunt);
+ vRightSuperiorLobePosteriorShunt.MapPath(RightSuperiorLobePosteriorShunt);
+ vRightSuperiorLobeAnteriorShunt.MapPath(RightSuperiorLobeAnteriorShunt);
+ vRightMiddleLobeLateralShunt.MapPath(RightMiddleLobeLateralShunt);
+ vRightMiddleLobeMedialShunt.MapPath(RightMiddleLobeMedialShunt);
+ vRightInferiorLobeSuperiorShunt.MapPath(RightInferiorLobeSuperiorShunt);
+ vRightInferiorLobeMedialBasalShunt.MapPath(RightInferiorLobeMedialBasalShunt);
+ vRightInferiorLobeAnteriorBasalShunt.MapPath(RightInferiorLobeAnteriorBasalShunt);
+ vRightInferiorLobeLateralBasalShunt.MapPath(RightInferiorLobeLateralBasalShunt);
+ vRightInferiorLobePosteriorBasalShunt.MapPath(RightInferiorLobePosteriorBasalShunt);
+
+ vLeftInferiorLobePosteriorBasalShunt.MapPath(LeftInferiorLobePosteriorBasalShunt);
+ vLeftInferiorLobeLateralBasalShunt.MapPath(LeftInferiorLobeLateralBasalShunt);
+ vLeftInferiorLobeAnteromedialBasalShunt.MapPath(LeftInferiorLobeAnteromedialBasalShunt);
+ vLeftInferiorLobeSuperiorShunt.MapPath(LeftInferiorLobeSuperiorShunt);
+ vLeftSuperiorLobeInferiorLingulaShunt.MapPath(LeftSuperiorLobeInferiorLingulaShunt);
+ vLeftSuperiorLobeSuperiorLingulaShunt.MapPath(LeftSuperiorLobeSuperiorLingulaShunt);
+ vLeftSuperiorLobeAnteriorShunt.MapPath(LeftSuperiorLobeAnteriorShunt);
+ vLeftSuperiorLobeApicoposteriorShunt.MapPath(LeftSuperiorLobeApicoposteriorShunt);
+
+ SELiquidCompartmentGraph& gCardiovascular = m_Compartments->GetCardiovascularGraph();
+ gCardiovascular.AddCompartment(vRightHeart);
+ gCardiovascular.AddCompartment(vRightPulmonaryArteries);
+ gCardiovascular.AddCompartment(vLeftPulmonaryArteries);
+ //gCardiovascular.AddCompartment(vRightPulmonaryCapillaries);
+ //gCardiovascular.AddCompartment(vLeftPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vRightPulmonaryVeins);
+ gCardiovascular.AddCompartment(vLeftPulmonaryVeins);
+ gCardiovascular.AddCompartment(vLeftHeart);
+ gCardiovascular.AddCompartment(vAorta);
+ gCardiovascular.AddCompartment(vBrain);
+ gCardiovascular.AddCompartment(vBone);
+ gCardiovascular.AddCompartment(vFat);
+ gCardiovascular.AddCompartment(vLargeIntestine);
+ gCardiovascular.AddCompartment(vLiver);
+ gCardiovascular.AddCompartment(vLeftArm);
+ gCardiovascular.AddCompartment(vLeftKidney);
+ gCardiovascular.AddCompartment(vLeftLeg);
+ gCardiovascular.AddCompartment(vMuscle);
+ gCardiovascular.AddCompartment(vMyocardium);
+ gCardiovascular.AddCompartment(vRightArm);
+ gCardiovascular.AddCompartment(vRightKidney);
+ gCardiovascular.AddCompartment(vRightLeg);
+ gCardiovascular.AddCompartment(vSkin);
+ gCardiovascular.AddCompartment(vSmallIntestine);
+ gCardiovascular.AddCompartment(vSplanchnic);
+ gCardiovascular.AddCompartment(vSpleen);
+ gCardiovascular.AddCompartment(vVenaCava);
+
+ gCardiovascular.AddCompartment(vRightSuperiorLobeApicalPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vRightSuperiorLobePosteriorPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vRightSuperiorLobeAnteriorPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vRightMiddleLobeLateralPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vRightMiddleLobeMedialPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vRightInferiorLobeSuperiorPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vRightInferiorLobeMedialBasalPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vRightInferiorLobeAnteriorBasalPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vRightInferiorLobeLateralBasalPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vRightInferiorLobePosteriorBasalPulmonaryCapillaries);
+
+ gCardiovascular.AddCompartment(vLeftInferiorLobePosteriorBasalPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vLeftInferiorLobeLateralBasalPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vLeftInferiorLobeSuperiorPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vLeftSuperiorLobeAnteriorPulmonaryCapillaries);
+ gCardiovascular.AddCompartment(vLeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
+
+ gCardiovascular.AddLink(vVenaCavaToRightHeart);
+ gCardiovascular.AddLink(vRightHeartToLeftPulmonaryArteries);
+ //gCardiovascular.AddLink(vLeftPulmonaryArteriesToCapillaries);
+ //gCardiovascular.AddLink(vLeftPulmonaryArteriesToVeins);
+ //gCardiovascular.AddLink(vLeftPulmonaryCapillariesToVeins);
+ gCardiovascular.AddLink(vLeftPulmonaryVeinsToLeftHeart);
+ gCardiovascular.AddLink(vRightHeartToRightPulmonaryArteries);
+ //gCardiovascular.AddLink(vRightPulmonaryArteriesToCapillaries);
+ //gCardiovascular.AddLink(vRightPulmonaryArteriesToVeins);
+ //gCardiovascular.AddLink(vRightPulmonaryCapillariesToVeins);
+ gCardiovascular.AddLink(vRightPulmonaryVeinsToLeftHeart);
+ gCardiovascular.AddLink(vLeftHeartToAorta);
+ gCardiovascular.AddLink(vAortaToBone);
+ gCardiovascular.AddLink(vBoneToVenaCava);
+ gCardiovascular.AddLink(vAortaToBrain);
+ gCardiovascular.AddLink(vBrainToVenaCava);
+ gCardiovascular.AddLink(vAortaToFat);
+ gCardiovascular.AddLink(vFatToVenaCava);
+ gCardiovascular.AddLink(vAortaToLargeIntestine);
+ gCardiovascular.AddLink(vLargeIntestineToLiver);
+ gCardiovascular.AddLink(vAortaToLeftArm);
+ gCardiovascular.AddLink(vLeftArmToVenaCava);
+ gCardiovascular.AddLink(vAortaToLeftKidney);
+ gCardiovascular.AddLink(vLeftKidneyToVenaCava);
+ gCardiovascular.AddLink(vAortaToLeftLeg);
+ gCardiovascular.AddLink(vLeftLegToVenaCava);
+ gCardiovascular.AddLink(vAortaToLiver);
+ gCardiovascular.AddLink(vLiverToVenaCava);
+ gCardiovascular.AddLink(vAortaToMuscle);
+ gCardiovascular.AddLink(vMuscleToVenaCava);
+ gCardiovascular.AddLink(vAortaToMyocardium);
+ gCardiovascular.AddLink(vMyocardiumToVenaCava);
+ gCardiovascular.AddLink(vAortaToRightArm);
+ gCardiovascular.AddLink(vRightArmToVenaCava);
+ gCardiovascular.AddLink(vAortaToRightKidney);
+ gCardiovascular.AddLink(vRightKidneyToVenaCava);
+ gCardiovascular.AddLink(vAortaToRightLeg);
+ gCardiovascular.AddLink(vRightLegToVenaCava);
+ gCardiovascular.AddLink(vAortaToSkin);
+ gCardiovascular.AddLink(vSkinToVenaCava);
+ gCardiovascular.AddLink(vAortaToSmallIntestine);
+ gCardiovascular.AddLink(vSmallIntestineToLiver);
+ gCardiovascular.AddLink(vAortaToSplanchnic);
+ gCardiovascular.AddLink(vSplanchnicToLiver);
+ gCardiovascular.AddLink(vAortaToSpleen);
+ gCardiovascular.AddLink(vSpleenToLiver);
+ gCardiovascular.AddLink(vVenaCavaIV);
+
+ gCardiovascular.AddLink(vRightPulmonaryArteriesToRightSuperiorLobeApicalPulmonaryCapillaries);
+ gCardiovascular.AddLink(vRightPulmonaryArteriesToRightSuperiorLobePosteriorPulmonaryCapillaries);
+ gCardiovascular.AddLink(vRightPulmonaryArteriesToRightSuperiorLobeAnteriorPulmonaryCapillaries);
+ gCardiovascular.AddLink(vRightPulmonaryArteriesToRightMiddleLobeLateralPulmonaryCapillaries);
+ gCardiovascular.AddLink(vRightPulmonaryArteriesToRightMiddleLobeMedialPulmonaryCapillaries);
+ gCardiovascular.AddLink(vRightPulmonaryArteriesToRightInferiorLobeSuperiorPulmonaryCapillaries);
+ gCardiovascular.AddLink(vRightPulmonaryArteriesToRightInferiorLobeMedialBasalPulmonaryCapillaries);
+ gCardiovascular.AddLink(vRightPulmonaryArteriesToRightInferiorLobeAnteriorBasalPulmonaryCapillaries);
+ gCardiovascular.AddLink(vRightPulmonaryArteriesToRightInferiorLobeLateralBasalPulmonaryCapillaries);
+ gCardiovascular.AddLink(vRightPulmonaryArteriesToRightInferiorLobePosteriorBasalPulmonaryCapillaries);
+
+ gCardiovascular.AddLink(vLeftPulmonaryArteriesToLeftInferiorLobePosteriorBasalPulmonaryCapillaries);
+ gCardiovascular.AddLink(vLeftPulmonaryArteriesToLeftInferiorLobeLateralBasalPulmonaryCapillaries);
+ gCardiovascular.AddLink(vLeftPulmonaryArteriesToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries);
+ gCardiovascular.AddLink(vLeftPulmonaryArteriesToLeftInferiorLobeSuperiorPulmonaryCapillaries);
+ gCardiovascular.AddLink(vLeftPulmonaryArteriesToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries);
+ gCardiovascular.AddLink(vLeftPulmonaryArteriesToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries);
+ gCardiovascular.AddLink(vLeftPulmonaryArteriesToLeftSuperiorLobeAnteriorPulmonaryCapillaries);
+ gCardiovascular.AddLink(vLeftPulmonaryArteriesToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries);
+
+ gCardiovascular.AddLink(vRightSuperiorLobeApicalPulmonaryCapillariesToRightPulmonaryVeins);
+ gCardiovascular.AddLink(vRightSuperiorLobePosteriorPulmonaryCapillariesToRightPulmonaryVeins);
+ gCardiovascular.AddLink(vRightSuperiorLobeAnteriorPulmonaryCapillariesToRightPulmonaryVeins);
+ gCardiovascular.AddLink(vRightMiddleLobeLateralPulmonaryCapillariesToRightPulmonaryVeins);
+ gCardiovascular.AddLink(vRightMiddleLobeMedialPulmonaryCapillariesToRightPulmonaryVeins);
+ gCardiovascular.AddLink(vRightInferiorLobeSuperiorPulmonaryCapillariesToRightPulmonaryVeins);
+ gCardiovascular.AddLink(vRightInferiorLobeMedialBasalPulmonaryCapillariesToRightPulmonaryVeins);
+ gCardiovascular.AddLink(vRightInferiorLobeAnteriorBasalPulmonaryCapillariesToRightPulmonaryVeins);
+ gCardiovascular.AddLink(vRightInferiorLobeLateralBasalPulmonaryCapillariesToRightPulmonaryVeins);
+ gCardiovascular.AddLink(vRightInferiorLobePosteriorBasalPulmonaryCapillariesToRightPulmonaryVeins);
+
+ gCardiovascular.AddLink(vLeftInferiorLobePosteriorBasalPulmonaryCapillariesToLeftPulmonaryVeins);
+ gCardiovascular.AddLink(vLeftInferiorLobeLateralBasalPulmonaryCapillariesToLeftPulmonaryVeins);
+ gCardiovascular.AddLink(vLeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToLeftPulmonaryVeins);
+ gCardiovascular.AddLink(vLeftInferiorLobeSuperiorPulmonaryCapillariesToLeftPulmonaryVeins);
+ gCardiovascular.AddLink(vLeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins);
+ gCardiovascular.AddLink(vLeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins);
+ gCardiovascular.AddLink(vLeftSuperiorLobeAnteriorPulmonaryCapillariesToLeftPulmonaryVeins);
+ gCardiovascular.AddLink(vLeftSuperiorLobeApicoposteriorPulmonaryCapillariesToLeftPulmonaryVeins);
+
+ gCardiovascular.AddLink(vRightSuperiorLobeApicalShunt);
+ gCardiovascular.AddLink(vRightSuperiorLobePosteriorShunt);
+ gCardiovascular.AddLink(vRightSuperiorLobeAnteriorShunt);
+ gCardiovascular.AddLink(vRightMiddleLobeLateralShunt);
+ gCardiovascular.AddLink(vRightMiddleLobeMedialShunt);
+ gCardiovascular.AddLink(vRightInferiorLobeSuperiorShunt);
+ gCardiovascular.AddLink(vRightInferiorLobeMedialBasalShunt);
+ gCardiovascular.AddLink(vRightInferiorLobeAnteriorBasalShunt);
+ gCardiovascular.AddLink(vRightInferiorLobeLateralBasalShunt);
+ gCardiovascular.AddLink(vRightInferiorLobePosteriorBasalShunt);
+
+ gCardiovascular.AddLink(vLeftInferiorLobePosteriorBasalShunt);
+ gCardiovascular.AddLink(vLeftInferiorLobeLateralBasalShunt);
+ gCardiovascular.AddLink(vLeftInferiorLobeAnteromedialBasalShunt);
+ gCardiovascular.AddLink(vLeftInferiorLobeSuperiorShunt);
+ gCardiovascular.AddLink(vLeftSuperiorLobeInferiorLingulaShunt);
+ gCardiovascular.AddLink(vLeftSuperiorLobeSuperiorLingulaShunt);
+ gCardiovascular.AddLink(vLeftSuperiorLobeAnteriorShunt);
+ gCardiovascular.AddLink(vLeftSuperiorLobeApicoposteriorShunt);
+
+ // Remove modifiers of paths we removed
+ m_Config->GetModifiers().erase(pulse::CardiovascularPath::RightPulmonaryArteries1ToRightPulmonaryCapillaries1);
+ m_Config->GetModifiers().erase(pulse::CardiovascularPath::RightPulmonaryCapillaries1ToRightPulmonaryVeins1);
+ m_Config->GetModifiers().erase(pulse::CardiovascularPath::RightPulmonaryArteries1ToRightPulmonaryVeins1);
+ m_Config->GetModifiers().erase(pulse::CardiovascularPath::LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1);
+ m_Config->GetModifiers().erase(pulse::CardiovascularPath::LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1);
+ m_Config->GetModifiers().erase(pulse::CardiovascularPath::LeftPulmonaryArteries1ToLeftPulmonaryVeins1);
+
+ gCardiovascular.StateChange();
+
+ SELiquidCompartmentGraph& gCombinedCardiovascular = m_Compartments->GetActiveCardiovascularGraph();
+ gCombinedCardiovascular.AddGraph(gCardiovascular);
+ gCombinedCardiovascular.StateChange();
+
+ totalLeftVolume_mL = m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryCapillaries)->GetVolume(VolumeUnit::mL);
+ totalRightVolume_mL = m_Compartments->GetLiquidCompartment(pulse::VascularCompartment::RightPulmonaryCapillaries)->GetVolume(VolumeUnit::mL);
+ }
+}
\ No newline at end of file
diff --git a/src/cpp/engine/common/controller/SetupExpandedRespiratory.cpp b/src/cpp/engine/common/controller/SetupExpandedRespiratory.cpp
deleted file mode 100644
index 276afbe8f9af90f75e7da152cc23a1dcbe059f0e..0000000000000000000000000000000000000000
--- a/src/cpp/engine/common/controller/SetupExpandedRespiratory.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Distributed under the Apache License, Version 2.0.
- See accompanying NOTICE file for details.*/
-
-#include "engine/PulseConfiguration.h"
-#include "engine/common/controller/Controller.h"
-#include "engine/common/controller/CircuitManager.h"
-#include "engine/common/controller/CompartmentManager.h"
-
-#include "cdm/circuit/SECircuitManager.h"
-#include "cdm/circuit/fluid/SEFluidCircuit.h"
-#include "cdm/circuit/fluid/SEFluidCircuitNode.h"
-#include "cdm/circuit/fluid/SEFluidCircuitPath.h"
-#include "cdm/compartment/fluid/SELiquidCompartment.h"
-#include "cdm/compartment/fluid/SELiquidCompartmentLink.h"
-#include "cdm/compartment/fluid/SELiquidCompartmentGraph.h"
-#include "cdm/compartment/fluid/SEGasCompartment.h"
-#include "cdm/compartment/fluid/SEGasCompartmentLink.h"
-#include "cdm/compartment/fluid/SEGasCompartmentGraph.h"
-#include "cdm/patient/SEPatient.h"
-#include "cdm/properties/SEScalar0To1.h"
-#include "cdm/properties/SEScalarArea.h"
-#include "cdm/properties/SEScalarFrequency.h"
-#include "cdm/properties/SEScalarLength.h"
-#include "cdm/properties/SEScalarMass.h"
-#include "cdm/properties/SEScalarMassPerMass.h"
-
-namespace pulse
-{
- void Controller::SetupExpandedPulmonaryRespiratory()
- {
- Fatal("Expanded respiratory circuit not yet implemented.");
- }
-
- void Controller::SetupExpandedPulmonaryCardiovascular()
- {
- Fatal("Expanded cardiovascular pulmonary subcircuit not yet implemented.");
- }
-}
\ No newline at end of file
diff --git a/src/cpp/engine/common/controller/SubstanceManager.cpp b/src/cpp/engine/common/controller/SubstanceManager.cpp
index 6d6ac4bdec71108088b2e1df5f6bceddf975a025..244c9d836021c7cff3660fb1d014c50e79caa3fb 100644
--- a/src/cpp/engine/common/controller/SubstanceManager.cpp
+++ b/src/cpp/engine/common/controller/SubstanceManager.cpp
@@ -238,9 +238,9 @@ namespace pulse
}
}
- if (m_data.GetConfiguration().UseExpandedRespiratory() == eSwitch::On)
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::On)
{
- for (SEGasCompartment* cmpt : m_data.GetCompartments().GetExpandedPulmonaryLeafCompartments())
+ for (SEGasCompartment* cmpt : m_data.GetCompartments().GetExpandedLungsPulmonaryLeafCompartments())
{
if (cmpt->HasVolume())
{
@@ -351,162 +351,124 @@ namespace pulse
double Hb_total_mM = Hb_total_g_Per_dL / m_Hb->GetMolarMass(MassPerAmountUnit::g_Per_mmol) * 10.0;
// Bootstrapped values from many runs (using standard patient)
- if (m_data.GetConfiguration().UseExpandedVasculature() == eSwitch::On)
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Aorta), Hb_total_mM, 0.974905, 0.129608, 0.02817, 1.3012, 25.9389, 7.39961);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Bone), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Brain), Hb_total_mM, 0.827281, 0.0612181, 0.133288, 1.38958, 26.0916, 7.37362);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Fat), Hb_total_mM, 0.830303, 0.0616616, 0.128914, 1.38717, 26.0876, 7.3743);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LargeIntestine), Hb_total_mM, 0.807872, 0.0584747, 0.149044, 1.39821, 26.106, 7.37117);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftAfferentArteriole), Hb_total_mM, 0.927186, 0.0870192, 0.0595885, 1.35232, 26.0285, 7.38437);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftArm), Hb_total_mM, 0.974914, 0.129637, 0.0281665, 1.30153, 25.9395, 7.39951);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftEfferentArteriole), Hb_total_mM, 0.907413, 0.0791142, 0.072315, 1.35842, 26.0389, 7.38259);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftGlomerularCapillaries), Hb_total_mM, 0.9209, 0.0773075, 0.031322, 1.07857, 25.5034, 7.47375);
+ //No Hb through glomerular ultrafiltration
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftBowmansCapsules), 0.0, 0.0, 0.0773075, 0.0, 1.07857, 25.5034, 7.47375);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftTubules), 0.0, 0.0, 0.0773075, 0.0, 1.07857, 25.5034, 7.47375);
+ //----------------------------------------
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftHeart), Hb_total_mM, 0.974919, 0.129622, 0.0281731, 1.30089, 25.9384, 7.3997);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftLeg), Hb_total_mM, 0.974914, 0.129637, 0.0281665, 1.30153, 25.9395, 7.39951);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftPeritubularCapillaries), Hb_total_mM, 0.89667, 0.0757891, 0.0873866, 1.36599, 26.0518, 7.38039);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryArteries), Hb_total_mM, 0.813117, 0.0591941, 0.146207, 1.39669, 26.1035, 7.3716);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryCapillaries), Hb_total_mM, 0.983029, 0.149863, 0.0281766, 1.29193, 25.9223, 7.40244);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryVeins), Hb_total_mM, 0.974924, 0.129359, 0.0282471, 1.29371, 25.9255, 7.40189);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftRenalArtery), Hb_total_mM, 0.941145, 0.0945363, 0.0484668, 1.34704, 26.0194, 7.38592);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftRenalVein), Hb_total_mM, 0.859657, 0.0668517, 0.112249, 1.37857, 26.0731, 7.37676);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Liver), Hb_total_mM, 0.729017, 0.0500882, 0.21436, 1.43708, 26.1698, 7.36032);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Muscle), Hb_total_mM, 0.830253, 0.0616652, 0.130118, 1.38785, 26.0887, 7.37411);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Myocardium), Hb_total_mM, 0.829366, 0.0615371, 0.13173, 1.38874, 26.0902, 7.37386);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Pericardium), Hb_total_mM, 0.725881, 0.0491881, 0.142507, 1.39215, 26.0959, 7.37289);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightAfferentArteriole), Hb_total_mM, 0.927186, 0.0870192, 0.0595885, 1.35232, 26.0285, 7.38437);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightArm), Hb_total_mM, 0.974914, 0.129637, 0.0281665, 1.30153, 25.9395, 7.39951);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightEfferentArteriole), Hb_total_mM, 0.907413, 0.0791142, 0.072315, 1.35842, 26.0389, 7.38259);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightGlomerularCapillaries), Hb_total_mM, 0.9209, 0.0773075, 0.031322, 1.07857, 25.5034, 7.47375);
+ //No Hb through glomerular ultrafiltration
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightBowmansCapsules), 0.0, 0.0, 0.0773075, 0.0, 1.07857, 25.5034, 7.47375);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightTubules), 0.0, 0.0, 0.0773075, 0.0, 1.07857, 25.5034, 7.47375);
+ //----------------------------------------
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightHeart), Hb_total_mM, 0.813115, 0.0591938, 0.14621, 1.39669, 26.1035, 7.3716);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightLeg), Hb_total_mM, 0.974914, 0.129637, 0.0281665, 1.30153, 25.9395, 7.39951);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightPeritubularCapillaries), Hb_total_mM, 0.89667, 0.0757891, 0.0873866, 1.36599, 26.0518, 7.38039);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightPulmonaryArteries), Hb_total_mM, 0.813117, 0.0591941, 0.146207, 1.39669, 26.1035, 7.3716);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightPulmonaryCapillaries), Hb_total_mM, 0.982298, 0.148493, 0.0279498, 1.31484, 25.9632, 7.39548);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightPulmonaryVeins), Hb_total_mM, 0.974936, 0.130199, 0.0280263, 1.31523, 25.9638, 7.39537);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightRenalArtery), Hb_total_mM, 0.941145, 0.0945363, 0.0484668, 1.34704, 26.0194, 7.38592);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightRenalVein), Hb_total_mM, 0.859657, 0.0668517, 0.112249, 1.37857, 26.0731, 7.37676);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Skin), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::SmallIntestine), Hb_total_mM, 0.842176, 0.0636112, 0.122046, 1.3836, 26.0816, 7.37532);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Splanchnic), Hb_total_mM, 0.817051, 0.0597293, 0.141898, 1.39428, 26.0995, 7.37228);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Spleen), Hb_total_mM, 0.830039, 0.0616463, 0.131757, 1.38878, 26.0903, 7.37385);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::VenaCava), Hb_total_mM, 0.813122, 0.0591948, 0.146203, 1.39669, 26.1035, 7.3716);
+
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Bone), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Bone));
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Brain), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Brain));
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Fat), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Fat));
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Gut), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Gut));
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::LeftKidney), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftKidney));
+ //TODO: Make this work for the expanded model
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::Off)
{
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::Aorta), Hb_total_mM, 0.974905, 0.129608, 0.02817, 1.3012, 25.9389, 7.39961);
- CopyConcentrations (*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::Aorta), *cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::ArterialBuffer));
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::Extracranial), Hb_total_mM, 0.827281, 0.0612181, 0.133288, 1.38958, 26.0916, 7.37362);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::Intracranial), Hb_total_mM, 0.827281, 0.0612181, 0.133288, 1.38958, 26.0916, 7.37362);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::Gut1), Hb_total_mM, 0.859657, 0.0668517, 0.112249, 1.37857, 26.0731, 7.37676);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LargeIntestine), Hb_total_mM, 0.807872, 0.0584747, 0.149044, 1.39821, 26.106, 7.37117);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftAfferentArteriole), Hb_total_mM, 0.927186, 0.0870192, 0.0595885, 1.35232, 26.0285, 7.38437);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmArterioles), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmBone), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmFat), Hb_total_mM, 0.830303, 0.0616616, 0.128914, 1.38717, 26.0876, 7.3743);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmMicrovasculature), Hb_total_mM, 0.974914, 0.129637, 0.0281665, 1.30153, 25.9395, 7.39951);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmMuscle), Hb_total_mM, 0.830253, 0.0616652, 0.130118, 1.38785, 26.0887, 7.37411);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmSkin), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftArmVenules), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftEfferentArteriole), Hb_total_mM, 0.907413, 0.0791142, 0.072315, 1.35842, 26.0389, 7.38259);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftGlomerularCapillaries), Hb_total_mM, 0.9209, 0.0773075, 0.031322, 1.07857, 25.5034, 7.47375);
- //No Hb through glomerular ultrafiltration
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftBowmansCapsules), 0.0, 0.0, 0.0773075, 0.0, 1.07857, 25.5034, 7.47375);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftTubules), 0.0, 0.0, 0.0773075, 0.0, 1.07857, 25.5034, 7.47375);
- //----------------------------------------
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftHeart), Hb_total_mM, 0.974919, 0.129622, 0.0281731, 1.30089, 25.9384, 7.3997);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegArterioles), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegBone), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegFat), Hb_total_mM, 0.830303, 0.0616616, 0.128914, 1.38717, 26.0876, 7.3743);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegMicrovasculature), Hb_total_mM, 0.974914, 0.129637, 0.0281665, 1.30153, 25.9395, 7.39951);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegMuscle), Hb_total_mM, 0.830253, 0.0616652, 0.130118, 1.38785, 26.0887, 7.37411);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegSkin), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLegVenules), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftPeritubularCapillaries), Hb_total_mM, 0.89667, 0.0757891, 0.0873866, 1.36599, 26.0518, 7.38039);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftPulmonaryArteries), Hb_total_mM, 0.813117, 0.0591941, 0.146207, 1.39669, 26.1035, 7.3716);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftPulmonaryCapillaries), Hb_total_mM, 0.983029, 0.149863, 0.0281766, 1.29193, 25.9223, 7.40244);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftPulmonaryVeins), Hb_total_mM, 0.974924, 0.129359, 0.0282471, 1.29371, 25.9255, 7.40189);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftRenalArtery), Hb_total_mM, 0.941145, 0.0945363, 0.0484668, 1.34704, 26.0194, 7.38592);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftRenalVein), Hb_total_mM, 0.859657, 0.0668517, 0.112249, 1.37857, 26.0731, 7.37676);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::Liver), Hb_total_mM, 0.729017, 0.0500882, 0.21436, 1.43708, 26.1698, 7.36032);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::Myocardium), Hb_total_mM, 0.829366, 0.0615371, 0.13173, 1.38874, 26.0902, 7.37386);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::Pericardium), Hb_total_mM, 0.725881, 0.0491881, 0.142507, 1.39215, 26.0959, 7.37289);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightAfferentArteriole), Hb_total_mM, 0.927186, 0.0870192, 0.0595885, 1.35232, 26.0285, 7.38437);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmArterioles), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmBone), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmFat), Hb_total_mM, 0.830303, 0.0616616, 0.128914, 1.38717, 26.0876, 7.3743);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmMicrovasculature), Hb_total_mM, 0.974914, 0.129637, 0.0281665, 1.30153, 25.9395, 7.39951); //todo
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmMuscle), Hb_total_mM, 0.830253, 0.0616652, 0.130118, 1.38785, 26.0887, 7.37411);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmSkin), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightArmVenules), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightEfferentArteriole), Hb_total_mM, 0.907413, 0.0791142, 0.072315, 1.35842, 26.0389, 7.38259);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightGlomerularCapillaries), Hb_total_mM, 0.9209, 0.0773075, 0.031322, 1.07857, 25.5034, 7.47375);
- //No Hb through glomerular ultrafiltration
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightBowmansCapsules), 0.0, 0.0, 0.0773075, 0.0, 1.07857, 25.5034, 7.47375);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightTubules), 0.0, 0.0, 0.0773075, 0.0, 1.07857, 25.5034, 7.47375);
- //----------------------------------------
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightHeart), Hb_total_mM, 0.813115, 0.0591938, 0.14621, 1.39669, 26.1035, 7.3716);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegArterioles), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegBone), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegFat), Hb_total_mM, 0.830303, 0.0616616, 0.128914, 1.38717, 26.0876, 7.3743);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegMicrovasculature), Hb_total_mM, 0.974914, 0.129637, 0.0281665, 1.30153, 25.9395, 7.39951);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegMuscle), Hb_total_mM, 0.830253, 0.0616652, 0.130118, 1.38785, 26.0887, 7.37411);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegSkin), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightLegVenules), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightPeritubularCapillaries), Hb_total_mM, 0.89667, 0.0757891, 0.0873866, 1.36599, 26.0518, 7.38039);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightPulmonaryArteries), Hb_total_mM, 0.813117, 0.0591941, 0.146207, 1.39669, 26.1035, 7.3716);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightPulmonaryCapillaries), Hb_total_mM, 0.982298, 0.148493, 0.0279498, 1.31484, 25.9632, 7.39548);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightPulmonaryVeins), Hb_total_mM, 0.974936, 0.130199, 0.0280263, 1.31523, 25.9638, 7.39537);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightRenalArtery), Hb_total_mM, 0.941145, 0.0945363, 0.0484668, 1.34704, 26.0194, 7.38592);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightRenalVein), Hb_total_mM, 0.859657, 0.0668517, 0.112249, 1.37857, 26.0731, 7.37676);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::SmallIntestine), Hb_total_mM, 0.842176, 0.0636112, 0.122046, 1.3836, 26.0816, 7.37532);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::Splanchnic), Hb_total_mM, 0.817051, 0.0597293, 0.141898, 1.39428, 26.0995, 7.37228);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::Spleen), Hb_total_mM, 0.830039, 0.0616463, 0.131757, 1.38878, 26.0903, 7.37385);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoArterioles), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoBone), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoFat), Hb_total_mM, 0.830303, 0.0616616, 0.128914, 1.38717, 26.0876, 7.3743);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoMicrovasculature), Hb_total_mM, 0.830253, 0.0616652, 0.130118, 1.38785, 26.0887, 7.37411);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoMuscle), Hb_total_mM, 0.830253, 0.0616652, 0.130118, 1.38785, 26.0887, 7.37411);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoSkin), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoVenules), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::VenaCava), Hb_total_mM, 0.813122, 0.0591948, 0.146203, 1.39669, 26.1035, 7.3716);
- CopyConcentrations(*cmpts.GetLiquidCompartment( pulse::ExpandedVascularCompartment::VenaCava), *cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::VenousBuffer));
-
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Bone), *cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoBone));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Brain), *cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::Intracranial));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Fat), *cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoFat));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Gut), *cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::Gut));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::LeftKidney), *cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftKidney));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::LeftLung), *cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::LeftLung));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Liver), *cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::Liver));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Muscle), *cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoMuscle));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Myocardium), *cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::Myocardium));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::RightKidney), *cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightKidney));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::RightLung), *cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::RightLung));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Skin), *cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::TorsoSkin));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Spleen), *cmpts.GetLiquidCompartment(pulse::ExpandedVascularCompartment::Spleen));
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::LeftLung), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftLung));
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::RightLung), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightLung));
}
- else
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Liver), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Liver));
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Muscle), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Muscle));
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Myocardium), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Myocardium));
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::RightKidney), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightKidney));
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Skin), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Skin));
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Spleen), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Spleen));
+
+ if (m_data.GetConfiguration().UseComputationalLifeExpansion() == eSwitch::On)
{
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Aorta), Hb_total_mM, 0.974905, 0.129608, 0.02817, 1.3012, 25.9389, 7.39961);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Bone), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Brain), Hb_total_mM, 0.827281, 0.0612181, 0.133288, 1.38958, 26.0916, 7.37362);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Fat), Hb_total_mM, 0.830303, 0.0616616, 0.128914, 1.38717, 26.0876, 7.3743);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LargeIntestine), Hb_total_mM, 0.807872, 0.0584747, 0.149044, 1.39821, 26.106, 7.37117);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftAfferentArteriole), Hb_total_mM, 0.927186, 0.0870192, 0.0595885, 1.35232, 26.0285, 7.38437);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftArm), Hb_total_mM, 0.974914, 0.129637, 0.0281665, 1.30153, 25.9395, 7.39951);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftEfferentArteriole), Hb_total_mM, 0.907413, 0.0791142, 0.072315, 1.35842, 26.0389, 7.38259);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftGlomerularCapillaries), Hb_total_mM, 0.9209, 0.0773075, 0.031322, 1.07857, 25.5034, 7.47375);
- //No Hb through glomerular ultrafiltration
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftBowmansCapsules), 0.0, 0.0, 0.0773075, 0.0, 1.07857, 25.5034, 7.47375);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftTubules), 0.0, 0.0, 0.0773075, 0.0, 1.07857, 25.5034, 7.47375);
- //----------------------------------------
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftHeart), Hb_total_mM, 0.974919, 0.129622, 0.0281731, 1.30089, 25.9384, 7.3997);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftLeg), Hb_total_mM, 0.974914, 0.129637, 0.0281665, 1.30153, 25.9395, 7.39951);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftPeritubularCapillaries), Hb_total_mM, 0.89667, 0.0757891, 0.0873866, 1.36599, 26.0518, 7.38039);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryArteries), Hb_total_mM, 0.813117, 0.0591941, 0.146207, 1.39669, 26.1035, 7.3716);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryCapillaries), Hb_total_mM, 0.983029, 0.149863, 0.0281766, 1.29193, 25.9223, 7.40244);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryVeins), Hb_total_mM, 0.974924, 0.129359, 0.0282471, 1.29371, 25.9255, 7.40189);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftRenalArtery), Hb_total_mM, 0.941145, 0.0945363, 0.0484668, 1.34704, 26.0194, 7.38592);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftRenalVein), Hb_total_mM, 0.859657, 0.0668517, 0.112249, 1.37857, 26.0731, 7.37676);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Liver), Hb_total_mM, 0.729017, 0.0500882, 0.21436, 1.43708, 26.1698, 7.36032);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Muscle), Hb_total_mM, 0.830253, 0.0616652, 0.130118, 1.38785, 26.0887, 7.37411);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Myocardium), Hb_total_mM, 0.829366, 0.0615371, 0.13173, 1.38874, 26.0902, 7.37386);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Pericardium), Hb_total_mM, 0.725881, 0.0491881, 0.142507, 1.39215, 26.0959, 7.37289);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightAfferentArteriole), Hb_total_mM, 0.927186, 0.0870192, 0.0595885, 1.35232, 26.0285, 7.38437);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightArm), Hb_total_mM, 0.974914, 0.129637, 0.0281665, 1.30153, 25.9395, 7.39951);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightEfferentArteriole), Hb_total_mM, 0.907413, 0.0791142, 0.072315, 1.35842, 26.0389, 7.38259);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightGlomerularCapillaries), Hb_total_mM, 0.9209, 0.0773075, 0.031322, 1.07857, 25.5034, 7.47375);
- //No Hb through glomerular ultrafiltration
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightBowmansCapsules), 0.0, 0.0, 0.0773075, 0.0, 1.07857, 25.5034, 7.47375);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightTubules), 0.0, 0.0, 0.0773075, 0.0, 1.07857, 25.5034, 7.47375);
+ CopyConcentrations(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Aorta), *cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::ArterialBuffer));
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::Extracranial), Hb_total_mM, 0.827281, 0.0612181, 0.133288, 1.38958, 26.0916, 7.37362);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::Intracranial), Hb_total_mM, 0.827281, 0.0612181, 0.133288, 1.38958, 26.0916, 7.37362);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::Gut1), Hb_total_mM, 0.859657, 0.0668517, 0.112249, 1.37857, 26.0731, 7.37676);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmArterioles), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmBone), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmFat), Hb_total_mM, 0.830303, 0.0616616, 0.128914, 1.38717, 26.0876, 7.3743);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmMicrovasculature), Hb_total_mM, 0.974914, 0.129637, 0.0281665, 1.30153, 25.9395, 7.39951);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmMuscle), Hb_total_mM, 0.830253, 0.0616652, 0.130118, 1.38785, 26.0887, 7.37411);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmSkin), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftArmVenules), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
//----------------------------------------
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightHeart), Hb_total_mM, 0.813115, 0.0591938, 0.14621, 1.39669, 26.1035, 7.3716);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightLeg), Hb_total_mM, 0.974914, 0.129637, 0.0281665, 1.30153, 25.9395, 7.39951);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightPeritubularCapillaries), Hb_total_mM, 0.89667, 0.0757891, 0.0873866, 1.36599, 26.0518, 7.38039);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightPulmonaryArteries), Hb_total_mM, 0.813117, 0.0591941, 0.146207, 1.39669, 26.1035, 7.3716);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightPulmonaryCapillaries), Hb_total_mM, 0.982298, 0.148493, 0.0279498, 1.31484, 25.9632, 7.39548);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightPulmonaryVeins), Hb_total_mM, 0.974936, 0.130199, 0.0280263, 1.31523, 25.9638, 7.39537);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightRenalArtery), Hb_total_mM, 0.941145, 0.0945363, 0.0484668, 1.34704, 26.0194, 7.38592);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightRenalVein), Hb_total_mM, 0.859657, 0.0668517, 0.112249, 1.37857, 26.0731, 7.37676);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Skin), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::SmallIntestine), Hb_total_mM, 0.842176, 0.0636112, 0.122046, 1.3836, 26.0816, 7.37532);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Splanchnic), Hb_total_mM, 0.817051, 0.0597293, 0.141898, 1.39428, 26.0995, 7.37228);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::Spleen), Hb_total_mM, 0.830039, 0.0616463, 0.131757, 1.38878, 26.0903, 7.37385);
- InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::VenaCava), Hb_total_mM, 0.813122, 0.0591948, 0.146203, 1.39669, 26.1035, 7.3716);
-
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Bone), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Bone));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Brain), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Brain));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Fat), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Fat));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Gut), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Gut));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::LeftKidney), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftKidney));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::LeftLung), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::LeftLung));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Liver), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Liver));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Muscle), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Muscle));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Myocardium), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Myocardium));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::RightKidney), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightKidney));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::RightLung), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::RightLung));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Skin), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Skin));
- InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Spleen), *cmpts.GetLiquidCompartment(pulse::VascularCompartment::Spleen));
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegArterioles), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegBone), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegFat), Hb_total_mM, 0.830303, 0.0616616, 0.128914, 1.38717, 26.0876, 7.3743);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegMicrovasculature), Hb_total_mM, 0.974914, 0.129637, 0.0281665, 1.30153, 25.9395, 7.39951);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegMuscle), Hb_total_mM, 0.830253, 0.0616652, 0.130118, 1.38785, 26.0887, 7.37411);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegSkin), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::LeftLegVenules), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
+
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmArterioles), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmBone), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmFat), Hb_total_mM, 0.830303, 0.0616616, 0.128914, 1.38717, 26.0876, 7.3743);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmMicrovasculature), Hb_total_mM, 0.974914, 0.129637, 0.0281665, 1.30153, 25.9395, 7.39951); //todo
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmMuscle), Hb_total_mM, 0.830253, 0.0616652, 0.130118, 1.38785, 26.0887, 7.37411);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmSkin), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightArmVenules), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
+
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegArterioles), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegBone), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegFat), Hb_total_mM, 0.830303, 0.0616616, 0.128914, 1.38717, 26.0876, 7.3743);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegMicrovasculature), Hb_total_mM, 0.974914, 0.129637, 0.0281665, 1.30153, 25.9395, 7.39951);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegMuscle), Hb_total_mM, 0.830253, 0.0616652, 0.130118, 1.38785, 26.0887, 7.37411);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegSkin), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::RightLegVenules), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
+
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoArterioles), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoBone), Hb_total_mM, 0.830363, 0.0616873, 0.13056, 1.3881, 26.0892, 7.37404);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoFat), Hb_total_mM, 0.830303, 0.0616616, 0.128914, 1.38717, 26.0876, 7.3743);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoMicrovasculature), Hb_total_mM, 0.830253, 0.0616652, 0.130118, 1.38785, 26.0887, 7.37411);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoMuscle), Hb_total_mM, 0.830253, 0.0616652, 0.130118, 1.38785, 26.0887, 7.37411);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoSkin), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
+ InitializeBloodGases(*cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoVenules), Hb_total_mM, 0.82836, 0.061373, 0.131491, 1.38858, 26.09, 7.3739);
+
+ CopyConcentrations(*cmpts.GetLiquidCompartment(pulse::VascularCompartment::VenaCava), *cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::VenousBuffer));
+
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Bone), *cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoBone));
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Brain), *cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::Intracranial));
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Fat), *cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoFat));
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Muscle), *cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoMuscle));
+ InitializeBloodGases(*cmpts.GetTissueCompartment(pulse::TissueCompartment::Skin), *cmpts.GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::TorsoSkin));
}
SEScalarMassPerVolume concentration;
diff --git a/src/cpp/engine/common/system/physiology/BloodChemistryModel.cpp b/src/cpp/engine/common/system/physiology/BloodChemistryModel.cpp
index 3ea20a1c802951b7d471a9275873a8967c2f21b7..97f4957e3870efda0c1ce0fb84d539b12f7ef937 100644
--- a/src/cpp/engine/common/system/physiology/BloodChemistryModel.cpp
+++ b/src/cpp/engine/common/system/physiology/BloodChemistryModel.cpp
@@ -135,10 +135,10 @@ namespace pulse
m_AortaO2 = m_Aorta->GetSubstanceQuantity(m_data.GetSubstances().GetO2());
m_AortaCO2 = m_Aorta->GetSubstanceQuantity(m_data.GetSubstances().GetCO2());
m_AortaHCO3 = m_Aorta->GetSubstanceQuantity(m_data.GetSubstances().GetHCO3());
- if(m_data.GetConfiguration().UseExpandedVasculature() == eSwitch::Off)
+ if(m_data.GetConfiguration().UseComputationalLifeExpansion() == eSwitch::Off)
m_BrainO2 = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::Brain)->GetSubstanceQuantity(m_data.GetSubstances().GetO2());
else
- m_BrainO2 = m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedVascularCompartment::Intracranial)->GetSubstanceQuantity(m_data.GetSubstances().GetO2());
+ m_BrainO2 = m_data.GetCompartments().GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::Intracranial)->GetSubstanceQuantity(m_data.GetSubstances().GetO2());
m_MyocardiumO2 = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::Myocardium)->GetSubstanceQuantity(m_data.GetSubstances().GetO2());
m_RightArm = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::RightArm);
diff --git a/src/cpp/engine/common/system/physiology/CardiovascularModel.cpp b/src/cpp/engine/common/system/physiology/CardiovascularModel.cpp
index f0ecebce5c982ca28d4edb97f1c047ebd8e32dba..ff09a74c90e698788099b3cd47e776052c6ef96a 100644
--- a/src/cpp/engine/common/system/physiology/CardiovascularModel.cpp
+++ b/src/cpp/engine/common/system/physiology/CardiovascularModel.cpp
@@ -384,9 +384,47 @@ namespace pulse
m_RightPulmonaryVeinsNode = m_CirculatoryCircuit->GetNode(pulse::CardiovascularNode::RightPulmonaryVeins1);
m_AbdominalCavityNode = m_CirculatoryCircuit->GetNode(pulse::CardiovascularNode::AbdominalCavity1);
//Paths
- if (m_data.GetConfiguration().UseExpandedRespiratory() == eSwitch::On)
- {
- //Not yet implemented
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::On)
+ {
+ m_RightPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeApicalShunt));
+ m_RightPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobePosteriorShunt));
+ m_RightPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeAnteriorShunt));
+ m_RightPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeLateralShunt));
+ m_RightPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeMedialShunt));
+ m_RightPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeSuperiorShunt));
+ m_RightPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeMedialBasalShunt));
+ m_RightPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeAnteriorBasalShunt));
+ m_RightPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeLateralBasalShunt));
+ m_RightPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobePosteriorBasalShunt));
+
+ m_LeftPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobePosteriorBasalShunt));
+ m_LeftPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeLateralBasalShunt));
+ m_LeftPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeAnteromedialBasalShunt));
+ m_LeftPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeSuperiorShunt));
+ m_LeftPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeInferiorLingulaShunt));
+ m_LeftPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeSuperiorLingulaShunt));
+ m_LeftPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeAnteriorShunt));
+ m_LeftPulmonaryArteriesToVeins.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeApicoposteriorShunt));
+
+ m_RightPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightSuperiorLobeApicalPulmonaryCapillaries));
+ m_RightPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightSuperiorLobePosteriorPulmonaryCapillaries));
+ m_RightPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightSuperiorLobeAnteriorPulmonaryCapillaries));
+ m_RightPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightMiddleLobeLateralPulmonaryCapillaries));
+ m_RightPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightMiddleLobeMedialPulmonaryCapillaries));
+ m_RightPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobeSuperiorPulmonaryCapillaries));
+ m_RightPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobeMedialBasalPulmonaryCapillaries));
+ m_RightPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobeAnteriorBasalPulmonaryCapillaries));
+ m_RightPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobeLateralBasalPulmonaryCapillaries));
+ m_RightPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobePosteriorBasalPulmonaryCapillaries));
+
+ m_LeftPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftInferiorLobePosteriorBasalPulmonaryCapillaries));
+ m_LeftPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftInferiorLobeLateralBasalPulmonaryCapillaries));
+ m_LeftPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries));
+ m_LeftPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftInferiorLobeSuperiorPulmonaryCapillaries));
+ m_LeftPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries));
+ m_LeftPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries));
+ m_LeftPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftSuperiorLobeAnteriorPulmonaryCapillaries));
+ m_LeftPulmonaryArteriesToCapillaries.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries));
}
else
{
@@ -425,169 +463,169 @@ namespace pulse
m_LeftPulmonaryVenousReturnResistancePath = m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::LeftPulmonaryVeins1ToLeftIntermediatePulmonaryVeins1);
// Setup Default vs. Expanded Circuit Parameters
- if (m_data.GetConfiguration().UseExpandedVasculature() == eSwitch::On)
+ if (m_data.GetConfiguration().UseComputationalLifeExpansion() == eSwitch::On)
{
// For Metabolic Tone Response
- m_AortaToBrain = m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Aorta5ToIntracranial1);
- m_AortaToMyocardium = m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Aorta5ToMyocardium1);
- m_BrainToVenaCava = m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Intracranial3ToVenaCava2);
- m_MyocardiumToVenaCava = m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Myocardium3ToVenaCava2);
- m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Torso1ToTorsoMuscle1));
- m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::TorsoMuscle1ToTorso2));
- m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArm1ToRightArmMuscle1));
- m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArmMuscle1ToRightArm2));
- m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmMuscle1));
- m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArmMuscle1ToLeftArm2));
- m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegMuscle1));
- m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLegMuscle1ToRightLeg2));
- m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegMuscle1));
- m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLegMuscle1ToLeftLeg2));
-
- m_Brain = m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedVascularCompartment::Intracranial);
- m_BrainResistanceDownstreamPath = m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Intracranial2ToIntracranial3);
- m_BrainResistanceUpstreamPath = m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Intracranial1ToIntracranial2);
-
- m_SkinPaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Torso1ToTorsoSkin1));
- m_SkinPaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArm1ToRightArmSkin1));
- m_SkinPaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmSkin1));
- m_SkinPaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegSkin1));
- m_SkinPaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegSkin1));
-
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Extracranial1ToExtracranial2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Extracranial2ToExtracranial3));
-
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Intracranial1ToIntracranial2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Intracranial2ToIntracranial3));
-
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Myocardium1ToMyocardium2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Myocardium2ToMyocardium3));
-
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Gut1ToLiver1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Gut1ToSplanchnic1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Gut1ToSpleen1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Gut1ToSmallIntestine1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Gut1ToLargeIntestine1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::PortalVein1ToLiver1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Liver1ToLiver2));
-
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArm1ToRightArmBone1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArmBone1ToRightArm2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArm1ToRightArmFat1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArmFat1ToRightArm2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArm1ToRightArmMuscle1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArmMuscle1ToRightArm2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArm1ToRightArmSkin1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArmSkin1ToRightArm2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArm1ToRightArmMicrovasculature1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArmMicrovasculature1ToRightArm2));
-
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmBone1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArmBone1ToLeftArm2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmFat1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArmFat1ToLeftArm2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmMuscle1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArmMuscle1ToLeftArm2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmSkin1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArmSkin1ToLeftArm2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArm1ToLeftArmMicrovasculature1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArmMicrovasculature1ToLeftArm2));
-
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Torso1ToTorsoBone1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::TorsoBone1ToTorso2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Torso1ToTorsoFat1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::TorsoFat1ToTorso2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Torso1ToTorsoMuscle1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::TorsoMuscle1ToTorso2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Torso1ToTorsoSkin1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::TorsoSkin1ToTorso2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Torso1ToTorsoMicrovasculature1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::TorsoMicrovasculature1ToTorso2));
-
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegBone1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLegBone1ToRightLeg2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegFat1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLegFat1ToRightLeg2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegMuscle1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLegMuscle1ToRightLeg2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegSkin1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLegSkin1ToRightLeg2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLeg1ToRightLegMicrovasculature1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLegMicrovasculature1ToRightLeg2));
-
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegBone1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLegBone1ToLeftLeg2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegFat1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLegFat1ToLeftLeg2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegMuscle1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLegMuscle1ToLeftLeg2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegSkin1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLegSkin1ToLeftLeg2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLeg1ToLeftLegMicrovasculature1));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLegMicrovasculature1ToLeftLeg2));
-
-
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Extracranial1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Intracranial1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Extracranial3ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Intracranial3ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Myocardium1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Myocardium2ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Myocardium3ToGround));
-
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArm1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArmBone1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArmFat1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArmMuscle1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArmSkin1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArmMicrovasculature1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightArm2ToGround));
-
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArm1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArmBone1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArmFat1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArmMuscle1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArmSkin1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArmMicrovasculature1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftArm2ToGround));
-
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Torso1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::TorsoBone1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::TorsoFat1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::TorsoMuscle1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::TorsoSkin1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::TorsoMicrovasculature1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Torso2ToGround));
-
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLeg1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLegBone1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLegFat1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLegMuscle1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLegSkin1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLegMicrovasculature1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightLeg2ToGround));
-
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLeg1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLegBone1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLegFat1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLegMuscle1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLegSkin1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLegMicrovasculature1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftLeg2ToGround));
-
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Gut1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Liver1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Liver2ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Splanchnic1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::Spleen1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LargeIntestine1ToGround));
- m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::SmallIntestine1ToGround));
-
- if (!m_data.GetConfiguration().IsRenalEnabled())
- {
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftKidney1ToLeftKidney2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightKidney1ToRightKidney2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::LeftKidney3ToVenaCava2));
- m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedCardiovascularPath::RightKidney3ToVenaCava2));
+ m_AortaToBrain = m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Aorta5ToIntracranial1);
+ m_AortaToMyocardium = m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Aorta5ToMyocardium1);
+ m_BrainToVenaCava = m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Intracranial3ToVenaCava2);
+ m_MyocardiumToVenaCava = m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Myocardium3ToVenaCava2);
+ m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Torso1ToTorsoMuscle1));
+ m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::TorsoMuscle1ToTorso2));
+ m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmMuscle1));
+ m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArmMuscle1ToRightArm2));
+ m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmMuscle1));
+ m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArmMuscle1ToLeftArm2));
+ m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegMuscle1));
+ m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLegMuscle1ToRightLeg2));
+ m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegMuscle1));
+ m_MuscleResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLegMuscle1ToLeftLeg2));
+
+ m_Brain = m_data.GetCompartments().GetLiquidCompartment(pulse::ComputationalLifeVascularCompartment::Intracranial);
+ m_BrainResistanceDownstreamPath = m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Intracranial2ToIntracranial3);
+ m_BrainResistanceUpstreamPath = m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Intracranial1ToIntracranial2);
+
+ m_SkinPaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Torso1ToTorsoSkin1));
+ m_SkinPaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmSkin1));
+ m_SkinPaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmSkin1));
+ m_SkinPaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegSkin1));
+ m_SkinPaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegSkin1));
+
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Extracranial1ToExtracranial2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Extracranial2ToExtracranial3));
+
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Intracranial1ToIntracranial2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Intracranial2ToIntracranial3));
+
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::Myocardium1ToMyocardium2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Myocardium2ToMyocardium3));
+
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Gut1ToLiver1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Gut1ToSplanchnic1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Gut1ToSpleen1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Gut1ToSmallIntestine1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Gut1ToLargeIntestine1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::PortalVein1ToLiver1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::Liver1ToLiver2));
+
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmBone1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArmBone1ToRightArm2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmFat1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArmFat1ToRightArm2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmMuscle1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArmMuscle1ToRightArm2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmSkin1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArmSkin1ToRightArm2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArm1ToRightArmMicrovasculature1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArmMicrovasculature1ToRightArm2));
+
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmBone1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArmBone1ToLeftArm2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmFat1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArmFat1ToLeftArm2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmMuscle1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArmMuscle1ToLeftArm2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmSkin1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArmSkin1ToLeftArm2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArm1ToLeftArmMicrovasculature1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArmMicrovasculature1ToLeftArm2));
+
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Torso1ToTorsoBone1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::TorsoBone1ToTorso2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Torso1ToTorsoFat1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::TorsoFat1ToTorso2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Torso1ToTorsoMuscle1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::TorsoMuscle1ToTorso2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Torso1ToTorsoSkin1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::TorsoSkin1ToTorso2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Torso1ToTorsoMicrovasculature1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::TorsoMicrovasculature1ToTorso2));
+
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegBone1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLegBone1ToRightLeg2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegFat1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLegFat1ToRightLeg2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegMuscle1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLegMuscle1ToRightLeg2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegSkin1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLegSkin1ToRightLeg2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLeg1ToRightLegMicrovasculature1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLegMicrovasculature1ToRightLeg2));
+
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegBone1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLegBone1ToLeftLeg2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegFat1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLegFat1ToLeftLeg2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegMuscle1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLegMuscle1ToLeftLeg2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegSkin1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLegSkin1ToLeftLeg2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLeg1ToLeftLegMicrovasculature1));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLegMicrovasculature1ToLeftLeg2));
+
+
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Extracranial1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Intracranial1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Extracranial3ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Intracranial3ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::Myocardium1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Myocardium2ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Myocardium3ToGround));
+
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::RightArm1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArmBone1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArmFat1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArmMuscle1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArmSkin1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArmMicrovasculature1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightArm2ToGround));
+
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::LeftArm1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArmBone1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArmFat1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArmMuscle1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArmSkin1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArmMicrovasculature1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftArm2ToGround));
+
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Torso1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::TorsoBone1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::TorsoFat1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::TorsoMuscle1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::TorsoSkin1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::TorsoMicrovasculature1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Torso2ToGround));
+
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::RightLeg1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLegBone1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLegFat1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLegMuscle1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLegSkin1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLegMicrovasculature1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightLeg2ToGround));
+
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::LeftLeg1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLegBone1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLegFat1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLegMuscle1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLegSkin1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLegMicrovasculature1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftLeg2ToGround));
+
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Gut1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::Liver1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::Liver2ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::Splanchnic1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::Spleen1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::LargeIntestine1ToGround));
+ m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::SmallIntestine1ToGround));
+
+ if (m_data.GetConfiguration().UseExpandedKidneys() != eSwitch::On)
+ {
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::LeftKidney1ToLeftKidney2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::RightKidney1ToRightKidney2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::LeftKidney3ToVenaCava2));
+ m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ComputationalLifeCardiovascularPath::RightKidney3ToVenaCava2));
m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::RenalPath::LeftRenalArteryCompliance));
m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::RenalPath::RightRenalArteryCompliance));
@@ -662,7 +700,7 @@ namespace pulse
m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::LargeIntestine1ToGround));
m_SystemicCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::SmallIntestine1ToGround));
- if (!m_data.GetConfiguration().IsRenalEnabled())
+ if (m_data.GetConfiguration().UseExpandedKidneys() != eSwitch::On)
{
m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::Aorta1ToLeftKidney1));
m_SystemicResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::Aorta1ToRightKidney1));
@@ -685,9 +723,27 @@ namespace pulse
m_AortaResistancePaths.push_back(m_AortaResistancePath);
m_VenaCavaResistancePaths.push_back(m_VenaCavaResistancePath);
- if (m_data.GetConfiguration().UseExpandedRespiratory() == eSwitch::On)
- {
- //Not yet implemented
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::On)
+ {
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeApicalPulmonaryCapillariesToGround));
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobePosteriorPulmonaryCapillariesToGround));
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeAnteriorPulmonaryCapillariesToGround));
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeLateralPulmonaryCapillariesToGround));
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeMedialPulmonaryCapillariesToGround));
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeSuperiorPulmonaryCapillariesToGround));
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeMedialBasalPulmonaryCapillariesToGround));
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeAnteriorBasalPulmonaryCapillariesToGround));
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeLateralBasalPulmonaryCapillariesToGround));
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobePosteriorBasalPulmonaryCapillariesToGround));
+
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobePosteriorBasalPulmonaryCapillariesToGround));
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeLateralBasalPulmonaryCapillariesToGround));
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToGround));
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeSuperiorPulmonaryCapillariesToGround));
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToGround));
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToGround));
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeAnteriorPulmonaryCapillariesToGround));
+ m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToGround));
}
else
{
@@ -701,9 +757,67 @@ namespace pulse
m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::LeftPulmonaryVeins1ToGround));
m_RespiratoryCompliancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::RightPulmonaryVeins1ToGround));
- if (m_data.GetConfiguration().UseExpandedRespiratory() == eSwitch::On)
- {
- //Not yet implemented
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::On)
+ {
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeApicalShunt));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobePosteriorShunt));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeAnteriorShunt));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeLateralShunt));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeMedialShunt));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeSuperiorShunt));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeMedialBasalShunt));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeAnteriorBasalShunt));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeLateralBasalShunt));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobePosteriorBasalShunt));
+
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobePosteriorBasalShunt));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeLateralBasalShunt));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeAnteromedialBasalShunt));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeSuperiorShunt));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeInferiorLingulaShunt));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeSuperiorLingulaShunt));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeAnteriorShunt));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeApicoposteriorShunt));
+
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightSuperiorLobeApicalPulmonaryCapillaries));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightSuperiorLobePosteriorPulmonaryCapillaries));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightSuperiorLobeAnteriorPulmonaryCapillaries));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightMiddleLobeLateralPulmonaryCapillaries));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightMiddleLobeMedialPulmonaryCapillaries));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobeSuperiorPulmonaryCapillaries));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobeMedialBasalPulmonaryCapillaries));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobeAnteriorBasalPulmonaryCapillaries));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobeLateralBasalPulmonaryCapillaries));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobePosteriorBasalPulmonaryCapillaries));
+
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftInferiorLobePosteriorBasalPulmonaryCapillaries));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftInferiorLobeLateralBasalPulmonaryCapillaries));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftInferiorLobeSuperiorPulmonaryCapillaries));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftSuperiorLobeAnteriorPulmonaryCapillaries));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries));
+
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeApicalPulmonaryCapillariesToRightPulmonaryVeins1));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobePosteriorPulmonaryCapillariesToRightPulmonaryVeins1));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeAnteriorPulmonaryCapillariesToRightPulmonaryVeins1));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeLateralPulmonaryCapillariesToRightPulmonaryVeins1));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeMedialPulmonaryCapillariesToRightPulmonaryVeins1));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeSuperiorPulmonaryCapillariesToRightPulmonaryVeins1));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeMedialBasalPulmonaryCapillariesToRightPulmonaryVeins1));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeAnteriorBasalPulmonaryCapillariesToRightPulmonaryVeins1));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeLateralBasalPulmonaryCapillariesToRightPulmonaryVeins1));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobePosteriorBasalPulmonaryCapillariesToRightPulmonaryVeins1));
+
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobePosteriorBasalPulmonaryCapillariesToLeftPulmonaryVeins1));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeLateralBasalPulmonaryCapillariesToLeftPulmonaryVeins1));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToLeftPulmonaryVeins1));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeSuperiorPulmonaryCapillariesToLeftPulmonaryVeins1));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins1));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins1));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeAnteriorPulmonaryCapillariesToLeftPulmonaryVeins1));
+ m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToLeftPulmonaryVeins1));
}
else
{
@@ -723,7 +837,7 @@ namespace pulse
m_PulmonaryResistancePaths.push_back(m_CirculatoryCircuit->GetPath(pulse::CardiovascularPath::RightPulmonaryVeins1ToRightIntermediatePulmonaryVeins1));
// Add the expanded kidney paths
- if (m_data.GetConfiguration().IsRenalEnabled())
+ if (m_data.GetConfiguration().UseExpandedKidneys() == eSwitch::On)
{
SEFluidCircuitPath* p;
// Add kidney resistance paths
@@ -3429,58 +3543,58 @@ namespace pulse
std::vector tissueResistancePaths;
std::vector tissuePressureCVSources;
- if (m_data.GetConfiguration().UseExpandedVasculature() == eSwitch::On)
+ if (m_data.GetConfiguration().UseComputationalLifeExpansion() == eSwitch::On)
{
- tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ExpandedCardiovascularNode::TorsoBone1));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::ExpandedCardiovascularTissuePath::BoneT2ToBoneT1));
+ tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ComputationalLifeCardiovascularNode::TorsoBone1));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::BoneT2ToBoneT1));
- tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ExpandedCardiovascularNode::Intracranial2));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::ExpandedCardiovascularTissuePath::BrainT2ToBrainT1));
+ tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ComputationalLifeCardiovascularNode::Intracranial2));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::BrainT2ToBrainT1));
- tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ExpandedCardiovascularNode::TorsoFat1));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::ExpandedCardiovascularTissuePath::FatT2ToFatT1));
+ tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ComputationalLifeCardiovascularNode::TorsoFat1));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::FatT2ToFatT1));
// Have to pick one of the 3 nodes GI is mapped to for pressure (Could use Large Intestine | Splanchnic)
- tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ExpandedCardiovascularNode::SmallIntestine1));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::ExpandedCardiovascularTissuePath::GutT2ToGutT1));
+ tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::CardiovascularNode::SmallIntestine1));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::GutT2ToGutT1));
- tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ExpandedCardiovascularNode::Liver1));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::ExpandedCardiovascularTissuePath::LiverT2ToLiverT1));
+ tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::CardiovascularNode::Liver1));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::LiverT2ToLiverT1));
- if (m_data.GetConfiguration().IsRenalEnabled())
+ if (m_data.GetConfiguration().UseExpandedKidneys() == eSwitch::On)
{
tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::RenalNode::LeftGlomerularCapillaries));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::ExpandedCardiovascularTissuePath::LeftKidneyT2ToLeftKidneyT1));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::LeftKidneyT2ToLeftKidneyT1));
tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::RenalNode::RightGlomerularCapillaries));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::ExpandedCardiovascularTissuePath::RightKidneyT2ToRightKidneyT1));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::RightKidneyT2ToRightKidneyT1));
}
else
{
- tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ExpandedCardiovascularNode::LeftKidney2));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::ExpandedCardiovascularTissuePath::LeftKidneyT2ToLeftKidneyT1));
+ tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::CardiovascularNode::LeftKidney2));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::LeftKidneyT2ToLeftKidneyT1));
- tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ExpandedCardiovascularNode::RightKidney2));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::ExpandedCardiovascularTissuePath::RightKidneyT2ToRightKidneyT1));
+ tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::CardiovascularNode::RightKidney2));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::RightKidneyT2ToRightKidneyT1));
}
- tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ExpandedCardiovascularNode::LeftPulmonaryCapillaries1));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::ExpandedCardiovascularTissuePath::LeftLungT2ToLeftLungT1));
+ tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::CardiovascularNode::LeftPulmonaryCapillaries1));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::LeftLungT2ToLeftLungT1));
- tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ExpandedCardiovascularNode::TorsoMuscle1));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::ExpandedCardiovascularTissuePath::MuscleT2ToMuscleT1));
+ tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ComputationalLifeCardiovascularNode::TorsoMuscle1));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::MuscleT2ToMuscleT1));
- tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ExpandedCardiovascularNode::Myocardium2));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::ExpandedCardiovascularTissuePath::MyocardiumT2ToMyocardiumT1));
+ tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::CardiovascularNode::Myocardium2));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::MyocardiumT2ToMyocardiumT1));
- tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ExpandedCardiovascularNode::RightPulmonaryCapillaries1));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::ExpandedCardiovascularTissuePath::RightLungT2ToRightLungT1));
+ tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::CardiovascularNode::RightPulmonaryCapillaries1));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::RightLungT2ToRightLungT1));
- tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ExpandedCardiovascularNode::TorsoSkin1));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::ExpandedCardiovascularTissuePath::SkinT2ToSkinT1));
+ tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ComputationalLifeCardiovascularNode::TorsoSkin1));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::SkinT2ToSkinT1));
- tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::ExpandedCardiovascularNode::Spleen1));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::ExpandedCardiovascularTissuePath::SpleenT2ToSpleenT1));
+ tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::CardiovascularNode::Spleen1));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::SpleenT2ToSpleenT1));
}
else
{
@@ -3500,7 +3614,7 @@ namespace pulse
tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::CardiovascularNode::Liver1));
tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::LiverT2ToLiverT1));
- if (m_data.GetConfiguration().IsRenalEnabled())
+ if (m_data.GetConfiguration().UseExpandedKidneys() == eSwitch::On)
{
tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::RenalNode::LeftGlomerularCapillaries));
tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::LeftKidneyT2ToLeftKidneyT1));
@@ -3517,8 +3631,15 @@ namespace pulse
tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::RightKidneyT2ToRightKidneyT1));
}
- tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::CardiovascularNode::LeftPulmonaryCapillaries1));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::LeftLungT2ToLeftLungT1));
+ //TODO: Make this work for the expanded model
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::Off)
+ {
+ tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::CardiovascularNode::LeftPulmonaryCapillaries1));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::LeftLungT2ToLeftLungT1));
+
+ tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::CardiovascularNode::RightPulmonaryCapillaries1));
+ tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::RightLungT2ToRightLungT1));
+ }
tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::CardiovascularNode::Muscle1));
tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::MuscleT2ToMuscleT1));
@@ -3526,9 +3647,6 @@ namespace pulse
tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::CardiovascularNode::Myocardium1));
tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::MyocardiumT2ToMyocardiumT1));
- tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::CardiovascularNode::RightPulmonaryCapillaries1));
- tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::RightLungT2ToRightLungT1));
-
tissuePressureCVSources.push_back(m_data.GetCircuits().GetFluidNode(pulse::CardiovascularNode::Skin1));
tissueResistancePaths.push_back(m_data.GetCircuits().GetFluidPath(pulse::TissuePath::SkinT2ToSkinT1));
diff --git a/src/cpp/engine/common/system/physiology/RespiratoryModel.cpp b/src/cpp/engine/common/system/physiology/RespiratoryModel.cpp
index c196a8d7a96e664bc9083465c78de8778d0a4f1b..9eb8ff32e182e77171b5b79d804692c05191d638 100644
--- a/src/cpp/engine/common/system/physiology/RespiratoryModel.cpp
+++ b/src/cpp/engine/common/system/physiology/RespiratoryModel.cpp
@@ -36,6 +36,7 @@
#include "cdm/patient/actions/SEMechanicalVentilation.h"
#include "cdm/patient/actions/SENeedleDecompression.h"
#include "cdm/patient/actions/SEPneumoniaExacerbation.h"
+#include "cdm/patient/actions/SEPrimaryBlastLungInjury.h"
#include "cdm/patient/actions/SEPulmonaryShuntExacerbation.h"
#include "cdm/patient/actions/SERespiratoryFatigue.h"
#include "cdm/patient/actions/SERespiratoryMechanicsConfiguration.h"
@@ -171,8 +172,6 @@ namespace pulse
m_LeftLungExtravascular = nullptr;
m_RightLungExtravascular = nullptr;
// Cardiovascular
- m_LeftPulmonaryCapillaries = nullptr;
- m_RightPulmonaryCapillaries = nullptr;
m_AortaO2 = nullptr;
m_AortaCO2 = nullptr;
m_LeftPleuralCavity = nullptr;
@@ -209,8 +208,6 @@ namespace pulse
m_RightNeedleToRightPleural = nullptr;
m_LeftAlveoliToLeftPleuralConnection = nullptr;
m_RightAlveoliToRightPleuralConnection = nullptr;
- m_LeftPulmonaryCapillary = nullptr;
- m_RightPulmonaryCapillary = nullptr;
m_ConnectionToAirway = nullptr;
m_GroundToConnection = nullptr;
// Substance
@@ -443,67 +440,76 @@ namespace pulse
m_VentilatoryOcclusionPressure_cmH2O = m_data.GetConfiguration().GetVentilatoryOcclusionPressure(PressureUnit::cmH2O); //This increases the absolute max driver pressure
m_MinimumAllowableTidalVolume_L = m_data.GetConfiguration().GetMinimumAllowableTidalVolume(VolumeUnit::L);
m_MinimumAllowableInpiratoryAndExpiratoryPeriod_s = m_data.GetConfiguration().GetMinimumAllowableInpiratoryAndExpiratoryPeriod(TimeUnit::s);
- //Compartments
+ //Circuits
+ m_RespiratoryCircuit = &m_data.GetCircuits().GetRespiratoryCircuit();
+ // Nodes
+ m_AirwayNode = m_RespiratoryCircuit->GetNode(pulse::RespiratoryNode::Airway);
+ m_RespiratoryMuscleNode = m_RespiratoryCircuit->GetNode(pulse::RespiratoryNode::RespiratoryMuscle);
+ m_LeftPleuralNode = m_RespiratoryCircuit->GetNode(pulse::RespiratoryNode::LeftPleural);
+ m_RightPleuralNode = m_RespiratoryCircuit->GetNode(pulse::RespiratoryNode::RightPleural);
+ m_AmbientNode = m_RespiratoryCircuit->GetNode(pulse::EnvironmentNode::Ambient);
+ m_StomachNode = m_RespiratoryCircuit->GetNode(pulse::RespiratoryNode::Stomach);
+ // Compartments
m_Environment = m_data.GetCompartments().GetGasCompartment(pulse::EnvironmentCompartment::Ambient);
- m_AerosolAirway = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::Airway);
- m_AerosolCarina = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::Carina);
- m_AerosolLeftAnatomicDeadSpace = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::LeftAnatomicDeadSpace);
- m_AerosolLeftAlveolarDeadSpace = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::LeftAlveolarDeadSpace);
- m_AerosolLeftAlveoli = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::LeftAlveoli);
- m_AerosolRightAnatomicDeadSpace = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::RightAnatomicDeadSpace);
- m_AerosolRightAlveolarDeadSpace = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::RightAlveolarDeadSpace);
- m_AerosolRightAlveoli = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::RightAlveoli);
+ m_Carina = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::Carina);
+ m_CarinaO2 = m_Carina->GetSubstanceQuantity(m_data.GetSubstances().GetO2());
m_Lungs = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::Lungs);
m_LeftLung = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::LeftLung);
m_RightLung = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::RightLung);
m_PleuralCavity = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::PleuralCavity);
m_LeftPleuralCavity = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::LeftPleuralCavity);
m_RightPleuralCavity = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::RightPleuralCavity);
- m_LeftLungExtravascular = m_data.GetCompartments().GetLiquidCompartment(pulse::ExtravascularCompartment::LeftLungIntracellular);
- m_RightLungExtravascular = m_data.GetCompartments().GetLiquidCompartment(pulse::ExtravascularCompartment::RightLungIntracellular);
- m_Carina = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::Carina);
- m_CarinaO2 = m_Carina->GetSubstanceQuantity(m_data.GetSubstances().GetO2());
- m_LeftAlveoli = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::LeftAlveoli);
- m_RightAlveoli = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::RightAlveoli);
m_AnatomicDeadSpace = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::AnatomicDeadSpace);
m_AlveolarDeadSpace = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::AlveolarDeadSpace);
m_LeftAlveolarDeadSpace = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::LeftAlveolarDeadSpace);
m_RightAlveolarDeadSpace = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::RightAlveolarDeadSpace);
m_Alveoli = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::Alveoli);
+ m_LeftAlveoli = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::LeftAlveoli);
m_LeftAlveoliO2 = m_LeftAlveoli->GetSubstanceQuantity(m_data.GetSubstances().GetO2());
+ m_RightAlveoli = m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::RightAlveoli);
m_RightAlveoliO2 = m_RightAlveoli->GetSubstanceQuantity(m_data.GetSubstances().GetO2());
- // Compartments for aerosol effects
- m_AerosolEffects.clear();
- m_AerosolEffects.push_back(m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::Carina));
- m_AerosolEffects.push_back(m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::LeftAlveoli));
- m_AerosolEffects.push_back(m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::LeftAnatomicDeadSpace));
- m_AerosolEffects.push_back(m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::LeftAlveolarDeadSpace));
- m_AerosolEffects.push_back(m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::RightAlveoli));
- m_AerosolEffects.push_back(m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::RightAnatomicDeadSpace));
- m_AerosolEffects.push_back(m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::RightAlveolarDeadSpace));
- //Circuits
- m_RespiratoryCircuit = &m_data.GetCircuits().GetRespiratoryCircuit();
- //Nodes
- m_AirwayNode = m_RespiratoryCircuit->GetNode(pulse::RespiratoryNode::Airway);
- m_LeftPleuralNode = m_RespiratoryCircuit->GetNode(pulse::RespiratoryNode::LeftPleural);
- m_RespiratoryMuscleNode = m_RespiratoryCircuit->GetNode(pulse::RespiratoryNode::RespiratoryMuscle);
- m_RightPleuralNode = m_RespiratoryCircuit->GetNode(pulse::RespiratoryNode::RightPleural);
- m_AmbientNode = m_RespiratoryCircuit->GetNode(pulse::EnvironmentNode::Ambient);
- m_StomachNode = m_RespiratoryCircuit->GetNode(pulse::RespiratoryNode::Stomach);
- if (m_data.GetConfiguration().UseExpandedRespiratory() == eSwitch::Off)
- {
- // Side
- // Alveoli Node
- // Dead Space Node
- // Resistance Path
- // Compliance Path
- // Shunt Link
- // Arteries Link
- // Veins Link
- // Veins Path
- // Alveoli Compartment
- // Capillary Compartment
+ //Mechanical Ventilation Compartments
+ m_MechanicalVentilationConnection = m_data.GetCompartments().GetGasCompartment(pulse::MechanicalVentilationCompartment::Connection);
+ m_MechanicalVentilationAerosolConnection = m_data.GetCompartments().GetLiquidCompartment(pulse::MechanicalVentilationCompartment::Connection);
+ // Paths
+ m_RightPleuralToRespiratoryMuscle = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::RightPleuralToRespiratoryMuscle);
+ m_LeftPleuralToRespiratoryMuscle = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::LeftPleuralToRespiratoryMuscle);
+ m_DriverPressurePath = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::EnvironmentToRespiratoryMuscle);
+ m_AirwayToPharynx = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::AirwayToPharynx);
+ m_PharynxToCarina = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::PharynxToCarina);
+ m_PharynxToEnvironment = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::PharynxToEnvironment);
+ m_AirwayToStomach = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::AirwayToStomach);
+ m_ConnectionToAirway = m_data.GetCircuits().GetRespiratoryAndMechanicalVentilationCircuit().GetPath(pulse::MechanicalVentilationPath::ConnectionToAirway);
+ m_GroundToConnection = m_data.GetCircuits().GetRespiratoryAndMechanicalVentilationCircuit().GetPath(pulse::MechanicalVentilationPath::GroundToConnection);
+
+ if (m_data.HasCardiovascular())
+ {
+ SELiquidCompartment* Aorta = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::Aorta);
+ m_AortaO2 = Aorta->GetSubstanceQuantity(m_data.GetSubstances().GetO2());
+ m_AortaCO2 = Aorta->GetSubstanceQuantity(m_data.GetSubstances().GetCO2());
+ }
+
+ //Substance - Overdose
+ m_Oversedation = m_data.GetSubstances().GetSubstance("Oversedation");
+
+ // Gather up the lung paths and components for the current lung configuration
+ // Component Order
+ // Side
+ // Alveoli Node
+ // Dead Space Node
+ // Resistance Path
+ // Compliance Path
+ // Shunt Path
+ // Arteries Path
+ // Veins Path
+ // Alveoli Compartment
+ // Capillary Compartment
+ // Shunt Link
+ // Arteries Link
+ // Veins Link
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::Off)
+ {
m_LungComponents[eLungCompartment::LeftLung] =
{
eSide::Left,
@@ -511,14 +517,14 @@ namespace pulse
m_RespiratoryCircuit->GetNode(pulse::RespiratoryNode::LeftAlveolarDeadSpace),
m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::LeftAnatomicDeadSpaceToLeftAlveolarDeadSpace),
m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::LeftAlveoliToLeftPleuralConnection),
- m_data.GetCompartments().GetLiquidLink(pulse::VascularLink::LeftPulmonaryArteriesToVeins),
- m_data.GetCompartments().GetLiquidLink(pulse::VascularLink::LeftPulmonaryArteriesToCapillaries),
- m_data.GetCompartments().GetLiquidLink(pulse::VascularLink::LeftPulmonaryCapillariesToVeins),
m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::CardiovascularPath::LeftPulmonaryArteries1ToLeftPulmonaryVeins1),
m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::CardiovascularPath::LeftPulmonaryArteries1ToLeftPulmonaryCapillaries1),
m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::CardiovascularPath::LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1),
m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::LeftAlveoli),
- m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryCapillaries)
+ m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::VascularLink::LeftPulmonaryArteriesToVeins),
+ m_data.GetCompartments().GetLiquidLink(pulse::VascularLink::LeftPulmonaryArteriesToCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::VascularLink::LeftPulmonaryCapillariesToVeins)
};
m_LungComponents[eLungCompartment::RightLung] =
{
@@ -527,72 +533,362 @@ namespace pulse
m_RespiratoryCircuit->GetNode(pulse::RespiratoryNode::RightAlveolarDeadSpace),
m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::RightAnatomicDeadSpaceToRightAlveolarDeadSpace),
m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::RightAlveoliToRightPleuralConnection),
- m_data.GetCompartments().GetLiquidLink(pulse::VascularLink::RightPulmonaryArteriesToVeins),
- m_data.GetCompartments().GetLiquidLink(pulse::VascularLink::RightPulmonaryArteriesToCapillaries),
- m_data.GetCompartments().GetLiquidLink(pulse::VascularLink::RightPulmonaryCapillariesToVeins),
m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::CardiovascularPath::RightPulmonaryArteries1ToRightPulmonaryVeins1),
m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::CardiovascularPath::RightPulmonaryArteries1ToRightPulmonaryCapillaries1),
m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::CardiovascularPath::RightPulmonaryCapillaries1ToRightPulmonaryVeins1),
m_data.GetCompartments().GetGasCompartment(pulse::PulmonaryCompartment::RightAlveoli),
- m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::RightPulmonaryCapillaries)
+ m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::RightPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::VascularLink::RightPulmonaryArteriesToVeins),
+ m_data.GetCompartments().GetLiquidLink(pulse::VascularLink::RightPulmonaryArteriesToCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::VascularLink::RightPulmonaryCapillariesToVeins)
};
- }
- else
- {
- // TODO Expansion Support
- }
-
- //Paths
- m_CarinaToLeftAnatomicDeadSpace = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::CarinaToLeftAnatomicDeadSpace);
- m_CarinaToRightAnatomicDeadSpace = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::CarinaToRightAnatomicDeadSpace);
- m_LeftAnatomicDeadSpaceToLeftAlveolarDeadSpace = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::LeftAnatomicDeadSpaceToLeftAlveolarDeadSpace);
- m_RightAnatomicDeadSpaceToRightAlveolarDeadSpace = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::RightAnatomicDeadSpaceToRightAlveolarDeadSpace);
- m_LeftAlveolarDeadSpaceToLeftAlveoli = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::LeftAlveolarDeadSpaceToLeftAlveoli);
- m_RightAlveolarDeadSpaceToRightAlveoli = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::RightAlveolarDeadSpaceToRightAlveoli);
- m_RightPleuralToRespiratoryMuscle = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::RightPleuralToRespiratoryMuscle);
- m_LeftPleuralToRespiratoryMuscle = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::LeftPleuralToRespiratoryMuscle);
- m_DriverPressurePath = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::EnvironmentToRespiratoryMuscle);
- m_AirwayToPharynx = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::AirwayToPharynx);
- m_PharynxToCarina = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::PharynxToCarina);
- m_PharynxToEnvironment = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::PharynxToEnvironment);
- m_AirwayToStomach = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::AirwayToStomach);
- m_EnvironmentToLeftChestLeak = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::EnvironmentToLeftChestLeak);
- m_EnvironmentToRightChestLeak = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::EnvironmentToRightChestLeak);
- m_LeftAlveoliLeakToLeftPleural = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::LeftAlveoliLeakToLeftPleural);
- m_RightAlveoliLeakToRightPleural = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::RightAlveoliLeakToRightPleural);
- m_LeftNeedleToLeftPleural = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::LeftNeedleToLeftPleural);
- m_RightNeedleToRightPleural = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::RightNeedleToRightPleural);
- m_RightAlveoliToRightPleuralConnection = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::RightAlveoliToRightPleuralConnection);
- m_LeftAlveoliToLeftPleuralConnection = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::LeftAlveoliToLeftPleuralConnection);
- m_ConnectionToAirway = m_data.GetCircuits().GetRespiratoryAndMechanicalVentilationCircuit().GetPath(pulse::MechanicalVentilationPath::ConnectionToAirway);
- m_GroundToConnection = m_data.GetCircuits().GetRespiratoryAndMechanicalVentilationCircuit().GetPath(pulse::MechanicalVentilationPath::GroundToConnection);
- m_LeftRespirtoryLeak = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::EnvironmentToLeftPleural);
- m_RightRespirtoryLeak = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::EnvironmentToRightPleural);
- m_LeftCardiovascularLeak = m_data.GetCircuits().GetActiveCardiovascularCircuit().GetPath(pulse::CardiovascularPath::LeftPulmonaryVeinsLeak1ToGround);
- m_RightCardiovascularLeak = m_data.GetCircuits().GetActiveCardiovascularCircuit().GetPath(pulse::CardiovascularPath::RightPulmonaryVeinsLeak1ToGround);
-
- //Mechanical Ventilation Compartments
- m_MechanicalVentilationConnection = m_data.GetCompartments().GetGasCompartment(pulse::MechanicalVentilationCompartment::Connection);
- m_MechanicalVentilationAerosolConnection = m_data.GetCompartments().GetLiquidCompartment(pulse::MechanicalVentilationCompartment::Connection);
-
- if (m_data.HasCardiovascular())
- {
- /// \todo figure out how to modify these resistances without getting the cv circuit - maybe add a parameter, like baroreceptors does
- //Venous Return
- m_RightPulmonaryCapillary = m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::CardiovascularPath::RightPulmonaryCapillaries1ToRightPulmonaryVeins1);
- m_LeftPulmonaryCapillary = m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::CardiovascularPath::LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1);
- //Pulmonary Shunt
-
- m_LeftPulmonaryCapillaries = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryCapillaries);
- m_RightPulmonaryCapillaries = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::RightPulmonaryCapillaries);
- SELiquidCompartment* Aorta = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::Aorta);
- m_AortaO2 = Aorta->GetSubstanceQuantity(m_data.GetSubstances().GetO2());
- m_AortaCO2 = Aorta->GetSubstanceQuantity(m_data.GetSubstances().GetCO2());
+ // Paths specific to this lung configuration
+ m_CarinaToLeftLung = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::CarinaToLeftAnatomicDeadSpace);
+ m_CarinaToRightLung = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::CarinaToRightAnatomicDeadSpace);
+
+ m_CarinaToLeftAnatomicDeadSpace = m_CarinaToLeftLung;
+ m_CarinaToRightAnatomicDeadSpace = m_CarinaToRightLung;
+ m_LeftAnatomicDeadSpaceToLeftAlveolarDeadSpace = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::LeftAnatomicDeadSpaceToLeftAlveolarDeadSpace);
+ m_RightAnatomicDeadSpaceToRightAlveolarDeadSpace = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::RightAnatomicDeadSpaceToRightAlveolarDeadSpace);
+ m_LeftAlveolarDeadSpaceToLeftAlveoli = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::LeftAlveolarDeadSpaceToLeftAlveoli);
+ m_RightAlveolarDeadSpaceToRightAlveoli = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::RightAlveolarDeadSpaceToRightAlveoli);
+
+ m_LeftNeedleToLeftPleural = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::LeftNeedleToLeftPleural);
+ m_RightNeedleToRightPleural = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::RightNeedleToRightPleural);
+ m_RightAlveoliToRightPleuralConnection = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::RightAlveoliToRightPleuralConnection);
+ m_LeftAlveoliToLeftPleuralConnection = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::LeftAlveoliToLeftPleuralConnection);
+
+ m_EnvironmentToLeftChestLeak = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::EnvironmentToLeftChestLeak);
+ m_EnvironmentToRightChestLeak = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::EnvironmentToRightChestLeak);
+ m_LeftAlveoliLeakToLeftPleural = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::LeftAlveoliLeakToLeftPleural);
+ m_RightAlveoliLeakToRightPleural = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::RightAlveoliLeakToRightPleural);
+ m_LeftRespirtoryLeak = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::EnvironmentToLeftPleural);
+ m_RightRespirtoryLeak = m_RespiratoryCircuit->GetPath(pulse::RespiratoryPath::EnvironmentToRightPleural);
+ m_LeftCardiovascularLeak = m_data.GetCircuits().GetActiveCardiovascularCircuit().GetPath(pulse::CardiovascularPath::LeftPulmonaryVeinsLeak1ToGround);
+ m_RightCardiovascularLeak = m_data.GetCircuits().GetActiveCardiovascularCircuit().GetPath(pulse::CardiovascularPath::RightPulmonaryVeinsLeak1ToGround);
+
+ // Grab compartments for aerosol effects
+ m_AerosolAirway = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::Airway);
+ m_AerosolCarina = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::Carina);
+ m_AerosolLeftAnatomicDeadSpace = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::LeftAnatomicDeadSpace);
+ m_AerosolLeftAlveolarDeadSpace = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::LeftAlveolarDeadSpace);
+ m_AerosolLeftAlveoli = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::LeftAlveoli);
+ m_AerosolRightAnatomicDeadSpace = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::RightAnatomicDeadSpace);
+ m_AerosolRightAlveolarDeadSpace = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::RightAlveolarDeadSpace);
+ m_AerosolRightAlveoli = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::RightAlveoli);
+ m_AerosolEffects.clear();
+ m_AerosolEffects.push_back(m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::Carina));
+ m_AerosolEffects.push_back(m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::LeftAlveoli));
+ m_AerosolEffects.push_back(m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::LeftAnatomicDeadSpace));
+ m_AerosolEffects.push_back(m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::LeftAlveolarDeadSpace));
+ m_AerosolEffects.push_back(m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::RightAlveoli));
+ m_AerosolEffects.push_back(m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::RightAnatomicDeadSpace));
+ m_AerosolEffects.push_back(m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::RightAlveolarDeadSpace));
+ m_LeftLungExtravascular = m_data.GetCompartments().GetLiquidCompartment(pulse::ExtravascularCompartment::LeftLungIntracellular);
+ m_RightLungExtravascular = m_data.GetCompartments().GetLiquidCompartment(pulse::ExtravascularCompartment::RightLungIntracellular);
+ }
+ else // Expanded Lungs Components
+ {
+ // Paths specific to this lung configuration
+ m_CarinaToLeftLung = m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::CarinaToLeftMainBronchus);
+ m_CarinaToRightLung = m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::CarinaToRightMainBronchus);
+
+ // Grab compartments for aerosol effects
+ m_AerosolAirway = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::Airway);
+ m_AerosolCarina = m_data.GetCompartments().GetLiquidCompartment(pulse::PulmonaryCompartment::Carina);
+ m_AerosolEffects.clear();
+ m_AerosolEffects.push_back(m_AerosolCarina);
+
+ m_LungComponents[eLungCompartment::RightSuperiorLobeApical] =
+ {
+ eSide::Right,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorLobeApicalAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorLobeApicalAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightSuperiorApicoposteriorBronchusToRightSuperiorLobeApicalBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightSuperiorLobeApicalAlveoliToRightPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeApicalShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightSuperiorLobeApicalPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeApicalPulmonaryCapillariesToRightPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightSuperiorLobeApicalAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightSuperiorLobeApicalPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightSuperiorLobeApicalShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightSuperiorLobeApicalPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightSuperiorLobeApicalPulmonaryCapillariesToRightPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::RightSuperiorLobePosterior] =
+ {
+ eSide::Right,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorLobePosteriorAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorLobePosteriorAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightSuperiorApicoposteriorBronchusToRightSuperiorLobePosteriorBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightSuperiorLobePosteriorAlveoliToRightPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobePosteriorShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightSuperiorLobePosteriorPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobePosteriorPulmonaryCapillariesToRightPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightSuperiorLobePosteriorAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightSuperiorLobePosteriorPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightSuperiorLobePosteriorShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightSuperiorLobePosteriorPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightSuperiorLobePosteriorPulmonaryCapillariesToRightPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::RightSuperiorLobeAnterior] =
+ {
+ eSide::Right,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorLobeAnteriorAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightSuperiorLobeAnteriorAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightSuperiorLobarBronchusToRightSuperiorLobeAnteriorBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightSuperiorLobeAnteriorAlveoliToRightPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeAnteriorShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightSuperiorLobeAnteriorPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightSuperiorLobeAnteriorPulmonaryCapillariesToRightPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightSuperiorLobeAnteriorAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightSuperiorLobeAnteriorPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightSuperiorLobeAnteriorShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightSuperiorLobeAnteriorPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightSuperiorLobeAnteriorPulmonaryCapillariesToRightPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::RightMiddleLobeLateral] =
+ {
+ eSide::Right,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightMiddleLobeLateralAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightMiddleLobeLateralAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightMiddleLobarBronchusToRightMiddleLobeLateralBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightMiddleLobeLateralAlveoliToRightPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeLateralShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightMiddleLobeLateralPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeLateralPulmonaryCapillariesToRightPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightMiddleLobeLateralAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightMiddleLobeLateralPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightMiddleLobeLateralShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightMiddleLobeLateralPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightMiddleLobeLateralPulmonaryCapillariesToRightPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::RightMiddleLobeMedial] =
+ {
+ eSide::Right,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightMiddleLobeMedialAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightMiddleLobeMedialAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightMiddleLobarBronchusToRightMiddleLobeMedialBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightMiddleLobeMedialAlveoliToRightPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeMedialShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightMiddleLobeMedialPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightMiddleLobeMedialPulmonaryCapillariesToRightPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightMiddleLobeMedialAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightMiddleLobeMedialPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightMiddleLobeMedialShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightMiddleLobeMedialPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightMiddleLobeMedialPulmonaryCapillariesToRightPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::RightInferiorLobeSuperior] =
+ {
+ eSide::Right,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeSuperiorAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeSuperiorAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightInferiorLobarBronchus1ToRightInferiorLobeSuperiorBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightInferiorLobeSuperiorAlveoliToRightPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeSuperiorShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobeSuperiorPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeSuperiorPulmonaryCapillariesToRightPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobeSuperiorAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightInferiorLobeSuperiorPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightInferiorLobeSuperiorShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightInferiorLobeSuperiorPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightInferiorLobeSuperiorPulmonaryCapillariesToRightPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::RightInferiorLobeMedialBasal] =
+ {
+ eSide::Right,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeMedialBasalAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeMedialBasalAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightInferiorLobarBronchus2ToRightInferiorLobeMedialBasalBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightInferiorLobeMedialBasalAlveoliToRightPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeMedialBasalShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobeMedialBasalPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeMedialBasalPulmonaryCapillariesToRightPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobeMedialBasalAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightInferiorLobeMedialBasalPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightInferiorLobeMedialBasalShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightInferiorLobeMedialBasalPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightInferiorLobeMedialBasalPulmonaryCapillariesToRightPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::RightInferiorLobeAnteriorBasal] =
+ {
+ eSide::Right,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeAnteriorBasalAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeAnteriorBasalAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightInferiorLobarBronchus3ToRightInferiorLobeAnteriorBasalBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightInferiorLobeAnteriorBasalAlveoliToRightPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeAnteriorBasalShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobeAnteriorBasalPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeAnteriorBasalPulmonaryCapillariesToRightPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobeAnteriorBasalAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightInferiorLobeAnteriorBasalPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightInferiorLobeAnteriorBasalShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightInferiorLobeAnteriorBasalPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightInferiorLobeAnteriorBasalPulmonaryCapillariesToRightPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::RightInferiorLobeLateralBasal] =
+ {
+ eSide::Right,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeLateralBasalAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobeLateralBasalAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightInferiorLobarBronchus4ToRightInferiorLobeLateralBasalBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightInferiorLobeLateralBasalAlveoliToRightPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeLateralBasalShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobeLateralBasalPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobeLateralBasalPulmonaryCapillariesToRightPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobeLateralBasalAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightInferiorLobeLateralBasalPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightInferiorLobeLateralBasalShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightInferiorLobeLateralBasalPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightInferiorLobeLateralBasalPulmonaryCapillariesToRightPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::RightInferiorLobePosteriorBasal] =
+ {
+ eSide::Right,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobePosteriorBasalAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::RightInferiorLobePosteriorBasalAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightInferiorLobarBronchus4ToRightInferiorLobePosteriorBasalBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::RightInferiorLobePosteriorBasalAlveoliToRightPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobePosteriorBasalShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightPulmonaryArteries1ToRightInferiorLobePosteriorBasalPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::RightInferiorLobePosteriorBasalPulmonaryCapillariesToRightPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobePosteriorBasalAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::RightInferiorLobePosteriorBasalPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightInferiorLobePosteriorBasalShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightPulmonaryArteriesToRightInferiorLobePosteriorBasalPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::RightInferiorLobePosteriorBasalPulmonaryCapillariesToRightPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::LeftInferiorLobePosteriorBasal] =
+ {
+ eSide::Left,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobePosteriorBasalAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobePosteriorBasalAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobarBronchus3ToLeftInferiorLobeLateralBasalBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobePosteriorBasalAlveoliToLeftPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobePosteriorBasalShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftInferiorLobePosteriorBasalPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobePosteriorBasalPulmonaryCapillariesToLeftPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobePosteriorBasalAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::LeftInferiorLobePosteriorBasalPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftInferiorLobePosteriorBasalShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftPulmonaryArteriesToLeftInferiorLobePosteriorBasalPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftInferiorLobePosteriorBasalPulmonaryCapillariesToLeftPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::LeftInferiorLobeLateralBasal] =
+ {
+ eSide::Left,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobeLateralBasalAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobeLateralBasalAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobarBronchus3ToLeftInferiorLobePosteriorBasalBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobeLateralBasalAlveoliToLeftPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeLateralBasalShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftInferiorLobeLateralBasalPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeLateralBasalPulmonaryCapillariesToLeftPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobeLateralBasalAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::LeftInferiorLobeLateralBasalPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftInferiorLobeLateralBasalShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftPulmonaryArteriesToLeftInferiorLobeLateralBasalPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftInferiorLobeLateralBasalPulmonaryCapillariesToLeftPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::LeftInferiorLobeAnteromedialBasal] =
+ {
+ eSide::Left,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobeAnteromedialBasalAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobeAnteromedialBasalAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobarBronchus2ToLeftInferiorLobeAnteromedialBasalBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobeAnteromedialBasalAlveoliToLeftPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeAnteromedialBasalShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToLeftPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobeAnteromedialBasalAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::LeftInferiorLobeAnteromedialBasalPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftInferiorLobeAnteromedialBasalShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftPulmonaryArteriesToLeftInferiorLobeAnteromedialBasalPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftInferiorLobeAnteromedialBasalPulmonaryCapillariesToLeftPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::LeftInferiorLobeSuperior] =
+ {
+ eSide::Left,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobeSuperiorAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::LeftInferiorLobeSuperiorAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobarBronchus1ToLeftInferiorLobeSuperiorBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::LeftInferiorLobeSuperiorAlveoliToLeftPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeSuperiorShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftInferiorLobeSuperiorPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftInferiorLobeSuperiorPulmonaryCapillariesToLeftPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobeSuperiorAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::LeftInferiorLobeSuperiorPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftInferiorLobeSuperiorShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftPulmonaryArteriesToLeftInferiorLobeSuperiorPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftInferiorLobeSuperiorPulmonaryCapillariesToLeftPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::LeftSuperiorLobeInferiorLingula] =
+ {
+ eSide::Left,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeInferiorLingulaAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeInferiorLingulaAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::LeftLingularBonchusToLeftSuperiorLobeInferiorLingulaBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobeInferiorLingulaAlveoliToLeftPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeInferiorLingulaShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobeInferiorLingulaAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::LeftSuperiorLobeInferiorLingulaPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftSuperiorLobeInferiorLingulaShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftPulmonaryArteriesToLeftSuperiorLobeInferiorLingulaPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftSuperiorLobeInferiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::LeftSuperiorLobeSuperiorLingula] =
+ {
+ eSide::Left,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeSuperiorLingulaAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeSuperiorLingulaAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::LeftLingularBonchusToLeftSuperiorLobeSuperiorLingulaBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobeSuperiorLingulaAlveoliToLeftPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeSuperiorLingulaShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobeSuperiorLingulaAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::LeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftSuperiorLobeSuperiorLingulaShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftPulmonaryArteriesToLeftSuperiorLobeSuperiorLingulaPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftSuperiorLobeSuperiorLingulaPulmonaryCapillariesToLeftPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::LeftSuperiorLobeAnterior] =
+ {
+ eSide::Left,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeAnteriorAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeAnteriorAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeAnteriorBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobeAnteriorAlveoliToLeftPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeAnteriorShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftSuperiorLobeAnteriorPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeAnteriorPulmonaryCapillariesToLeftPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobeAnteriorAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::LeftSuperiorLobeAnteriorPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftSuperiorLobeAnteriorShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftPulmonaryArteriesToLeftSuperiorLobeAnteriorPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftSuperiorLobeAnteriorPulmonaryCapillariesToLeftPulmonaryVeins)
+ };
+ m_LungComponents[eLungCompartment::LeftSuperiorLobeApicoposterior] =
+ {
+ eSide::Left,
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeApicoposteriorAlveoli),
+ m_RespiratoryCircuit->GetNode(pulse::ExpandedLungsRespiratoryNode::LeftSuperiorLobeApicoposteriorAlveolarDeadSpace),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::LeftSuperiorApicoposteriorBronchusToLeftSuperiorLobeApicoposteriorBronchiole),
+ m_RespiratoryCircuit->GetPath(pulse::ExpandedLungsRespiratoryPath::LeftSuperiorLobeApicoposteriorAlveoliToLeftPleuralConnection),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeApicoposteriorShunt),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftPulmonaryArteries1ToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries),
+ m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::ExpandedLungsCardiovascularPath::LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToLeftPulmonaryVeins1),
+ m_data.GetCompartments().GetGasCompartment(pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobeApicoposteriorAlveoli),
+ m_data.GetCompartments().GetLiquidCompartment(pulse::ExpandedLungsVascularCompartment::LeftSuperiorLobeApicoposteriorPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftSuperiorLobeApicoposteriorShunt),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftPulmonaryArteriesToLeftSuperiorLobeApicoposteriorPulmonaryCapillaries),
+ m_data.GetCompartments().GetLiquidLink(pulse::ExpandedLungsVascularLink::LeftSuperiorLobeApicoposteriorPulmonaryCapillariesToLeftPulmonaryVeins)
+ };
}
-
- //Substance - Overdose
- m_Oversedation = m_data.GetSubstances().GetSubstance("Oversedation");
}
//--------------------------------------------------------------------------------------------------
@@ -688,7 +984,11 @@ namespace pulse
UpdateChestWallCompliances();
UpdateAlveolarCompliances();
UpdateVolumes();
- UpdateResistances();
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::Off)
+ {
+ //jbw - Fix
+ UpdateResistances();
+ }
UpdateInspiratoryExpiratoryRatio();
UpdateDiffusion();
if (m_data.HasCardiovascular())
@@ -750,36 +1050,43 @@ namespace pulse
}
//Update system data
CalculateVitalSigns();
-
ComputeExposedModelParameters();
}
void RespiratoryModel::ComputeExposedModelParameters()
{
- double leftChestWallCompliance_L_Per_cmH2O = m_LeftPleuralToRespiratoryMuscle->GetNextCompliance(VolumePerPressureUnit::L_Per_cmH2O);
- double rightChestWallCompliance_L_Per_cmH2O = m_RightPleuralToRespiratoryMuscle->GetNextCompliance(VolumePerPressureUnit::L_Per_cmH2O);
- double leftLungCompliance_L_Per_cmH2O = m_LeftAlveoliToLeftPleuralConnection->GetNextCompliance(VolumePerPressureUnit::L_Per_cmH2O);
- double rightLungCompliance_L_Per_cmH2O = m_RightAlveoliToRightPleuralConnection->GetNextCompliance(VolumePerPressureUnit::L_Per_cmH2O);
- double leftSideCompliance_L_Per_cmH2O = 1.0 / (1.0 / leftChestWallCompliance_L_Per_cmH2O + 1.0 / leftLungCompliance_L_Per_cmH2O);
- double rightSideCompliance_L_Per_cmH2O = 1.0 / (1.0 / rightChestWallCompliance_L_Per_cmH2O + 1.0 / rightLungCompliance_L_Per_cmH2O);
- double totalCompliance_L_Per_cmH2O = leftSideCompliance_L_Per_cmH2O + rightSideCompliance_L_Per_cmH2O;
- GetTotalRespiratoryModelCompliance().SetValue(totalCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
-
- double airwayResistance_cmH2O_s_Per_L = m_PharynxToCarina->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
- double leftBronchiResistance_cmH2O_s_Per_L = m_CarinaToLeftAnatomicDeadSpace->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
- double rightBronchiResistance_cmH2O_s_Per_L = m_CarinaToRightAnatomicDeadSpace->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
- double leftAlveoliDuctResistance_cmH2O_s_Per_L = m_LeftAnatomicDeadSpaceToLeftAlveolarDeadSpace->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
- double rightAlveoliDuctResistance_cmH2O_s_Per_L = m_RightAnatomicDeadSpaceToRightAlveolarDeadSpace->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
- double leftSideResistance_cmH2O_s_Per_L = leftBronchiResistance_cmH2O_s_Per_L + leftAlveoliDuctResistance_cmH2O_s_Per_L;
- double rightSideResistance_cmH2O_s_Per_L = rightBronchiResistance_cmH2O_s_Per_L + rightAlveoliDuctResistance_cmH2O_s_Per_L;
- double totalDownstreamResistance_cmH2O_s_Per_L = 1.0 / (1.0 / leftSideResistance_cmH2O_s_Per_L + 1.0 / rightSideResistance_cmH2O_s_Per_L);
- double totalResistance_cmH2O_s_Per_L = airwayResistance_cmH2O_s_Per_L + totalDownstreamResistance_cmH2O_s_Per_L;
- if (m_PharynxToCarina->GetFlow(VolumePerTimeUnit::L_Per_s) > 0.0)
- {
- GetTotalRespiratoryModelInspiratoryResistance().SetValue(totalResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::Off)
+ {
+ double leftChestWallCompliance_L_Per_cmH2O = m_LeftPleuralToRespiratoryMuscle->GetNextCompliance(VolumePerPressureUnit::L_Per_cmH2O);
+ double rightChestWallCompliance_L_Per_cmH2O = m_RightPleuralToRespiratoryMuscle->GetNextCompliance(VolumePerPressureUnit::L_Per_cmH2O);
+ double leftLungCompliance_L_Per_cmH2O = m_LeftAlveoliToLeftPleuralConnection->GetNextCompliance(VolumePerPressureUnit::L_Per_cmH2O);
+ double rightLungCompliance_L_Per_cmH2O = m_RightAlveoliToRightPleuralConnection->GetNextCompliance(VolumePerPressureUnit::L_Per_cmH2O);
+ double leftSideCompliance_L_Per_cmH2O = 1.0 / (1.0 / leftChestWallCompliance_L_Per_cmH2O + 1.0 / leftLungCompliance_L_Per_cmH2O);
+ double rightSideCompliance_L_Per_cmH2O = 1.0 / (1.0 / rightChestWallCompliance_L_Per_cmH2O + 1.0 / rightLungCompliance_L_Per_cmH2O);
+ double totalCompliance_L_Per_cmH2O = leftSideCompliance_L_Per_cmH2O + rightSideCompliance_L_Per_cmH2O;
+ GetTotalRespiratoryModelCompliance().SetValue(totalCompliance_L_Per_cmH2O, VolumePerPressureUnit::L_Per_cmH2O);
+
+ double airwayResistance_cmH2O_s_Per_L = m_PharynxToCarina->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ double leftBronchiResistance_cmH2O_s_Per_L = m_CarinaToLeftAnatomicDeadSpace->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ double rightBronchiResistance_cmH2O_s_Per_L = m_CarinaToRightAnatomicDeadSpace->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ double leftAlveoliDuctResistance_cmH2O_s_Per_L = m_LeftAnatomicDeadSpaceToLeftAlveolarDeadSpace->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ double rightAlveoliDuctResistance_cmH2O_s_Per_L = m_RightAnatomicDeadSpaceToRightAlveolarDeadSpace->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ double leftSideResistance_cmH2O_s_Per_L = leftBronchiResistance_cmH2O_s_Per_L + leftAlveoliDuctResistance_cmH2O_s_Per_L;
+ double rightSideResistance_cmH2O_s_Per_L = rightBronchiResistance_cmH2O_s_Per_L + rightAlveoliDuctResistance_cmH2O_s_Per_L;
+ double totalDownstreamResistance_cmH2O_s_Per_L = 1.0 / (1.0 / leftSideResistance_cmH2O_s_Per_L + 1.0 / rightSideResistance_cmH2O_s_Per_L);
+ double totalResistance_cmH2O_s_Per_L = airwayResistance_cmH2O_s_Per_L + totalDownstreamResistance_cmH2O_s_Per_L;
+ if (m_PharynxToCarina->GetFlow(VolumePerTimeUnit::L_Per_s) > 0.0)
+ {
+ GetTotalRespiratoryModelInspiratoryResistance().SetValue(totalResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ }
+ else
+ {
+ GetTotalRespiratoryModelExpiratoryResistance().SetValue(totalResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ }
}
else
{
- GetTotalRespiratoryModelExpiratoryResistance().SetValue(totalResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ // TODO Compute TotalRespiratoryModelCompliance on the expanded lungs
+ // TODO Compute TotalRespiratoryModelResistance on the expanded lungs
}
}
@@ -2341,8 +2648,8 @@ namespace pulse
// Resistance based on simulated values
if (abs(tracheaFlow_L_Per_s) > 0.1)
{
- double rightFlow_L_Per_s = m_CarinaToRightAnatomicDeadSpace->GetNextFlow(VolumePerTimeUnit::L_Per_s);
- double leftFlow_L_Per_s = m_CarinaToLeftAnatomicDeadSpace->GetNextFlow(VolumePerTimeUnit::L_Per_s);
+ double rightFlow_L_Per_s = m_CarinaToRightLung->GetNextFlow(VolumePerTimeUnit::L_Per_s);
+ double leftFlow_L_Per_s = m_CarinaToLeftLung->GetNextFlow(VolumePerTimeUnit::L_Per_s);
double rightAlveoliPressure_cmH2O = m_RightAlveoli->GetPressure(PressureUnit::cmH2O);
double leftAlveoliPressure_cmH2O = m_LeftAlveoli->GetPressure(PressureUnit::cmH2O);
@@ -2828,8 +3135,14 @@ namespace pulse
double RespiratoryModel::VolumeToDriverPressure(double TargetVolume_L)
{
//Calculate as if constant compliances
- double leftHealthyLungCompliance_L_Per_cmH2O = m_LeftAlveoliToLeftPleuralConnection->GetComplianceBaseline(VolumePerPressureUnit::L_Per_cmH2O);
- double rightHealthyLungCompliance_L_Per_cmH2O = m_RightAlveoliToRightPleuralConnection->GetComplianceBaseline(VolumePerPressureUnit::L_Per_cmH2O);
+ //TODO: Make this work for the expanded model
+ double leftHealthyLungCompliance_L_Per_cmH2O = 0.1;
+ double rightHealthyLungCompliance_L_Per_cmH2O = 0.1;
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::Off)
+ {
+ leftHealthyLungCompliance_L_Per_cmH2O = m_LeftAlveoliToLeftPleuralConnection->GetComplianceBaseline(VolumePerPressureUnit::L_Per_cmH2O);
+ rightHealthyLungCompliance_L_Per_cmH2O = m_RightAlveoliToRightPleuralConnection->GetComplianceBaseline(VolumePerPressureUnit::L_Per_cmH2O);
+ }
double leftHealthyChestWallCompliance_L_Per_cmH2O = m_LeftPleuralToRespiratoryMuscle->GetComplianceBaseline(VolumePerPressureUnit::L_Per_cmH2O);
double rightHealthyChestWallCompliance_L_Per_cmH2O = m_RightPleuralToRespiratoryMuscle->GetComplianceBaseline(VolumePerPressureUnit::L_Per_cmH2O);
@@ -2936,7 +3249,16 @@ namespace pulse
double functionalResidualCapacity_L = m_data.GetInitialPatient().GetFunctionalResidualCapacity(VolumeUnit::L) * lungRatio;
- healthyLungCompliance_L_Per_cmH2O = lungPath->GetComplianceBaseline(VolumePerPressureUnit::L_Per_cmH2O);
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::On)
+ {
+ //TODO: Make this work for the expanded model
+ healthyLungCompliance_L_Per_cmH2O = 0.1;
+ }
+ else
+ {
+ healthyLungCompliance_L_Per_cmH2O = lungPath->GetComplianceBaseline(VolumePerPressureUnit::L_Per_cmH2O);
+ }
+
double baselineCompliance_L_Per_cmH2O = 0.0;
double lowerCorner_cmH2O = 0.0;
double upperCorner_cmH2O = 0.0;
@@ -3187,6 +3509,15 @@ namespace pulse
restrictiveSeverity = MAX(restrictiveSeverity, severity);
}
+ //PBLI
+ //Same as ARDS
+ if (m_PatientActions->HasPrimaryBlastLungInjury())
+ {
+ double severity = m_PatientActions->GetPrimaryBlastLungInjury().GetSeverity(cmpt).GetValue();
+
+ restrictiveSeverity = MAX(restrictiveSeverity, severity);
+ }
+
std::vector> interpolatorPoints =
{
{0.0, 0.0}, //None
@@ -3408,13 +3739,27 @@ namespace pulse
//--------------------------------------------------------------------------------------------------
void RespiratoryModel::UpdateResistances()
{
+ double tracheaResistance_cmH2O_s_Per_L = 0.0;
double pharynxResistance_cmH2O_s_Per_L = 0.0;
- double tracheaResistance_cmH2O_s_Per_L = m_PharynxToCarina->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
- double rightBronchiResistance_cmH2O_s_Per_L = m_CarinaToRightAnatomicDeadSpace->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
- double leftBronchiResistance_cmH2O_s_Per_L = m_CarinaToLeftAnatomicDeadSpace->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
- double rightAlveoliResistance_cmH2O_s_Per_L = m_RightAnatomicDeadSpaceToRightAlveolarDeadSpace->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
- double leftAlveoliResistance_cmH2O_s_Per_L = m_LeftAnatomicDeadSpaceToLeftAlveolarDeadSpace->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
- double esophagusResistance_cmH2O_s_Per_L = m_AirwayToStomach->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ double rightBronchiResistance_cmH2O_s_Per_L = 0.0;
+ double leftBronchiResistance_cmH2O_s_Per_L = 0.0;
+ double rightAlveoliResistance_cmH2O_s_Per_L = 0.0;
+ double leftAlveoliResistance_cmH2O_s_Per_L = 0.0;
+ double esophagusResistance_cmH2O_s_Per_L = 0.0;
+
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::Off)
+ {
+ tracheaResistance_cmH2O_s_Per_L = m_PharynxToCarina->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ rightBronchiResistance_cmH2O_s_Per_L = m_CarinaToRightAnatomicDeadSpace->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ leftBronchiResistance_cmH2O_s_Per_L = m_CarinaToLeftAnatomicDeadSpace->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ rightAlveoliResistance_cmH2O_s_Per_L = m_RightAnatomicDeadSpaceToRightAlveolarDeadSpace->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ leftAlveoliResistance_cmH2O_s_Per_L = m_LeftAnatomicDeadSpaceToLeftAlveolarDeadSpace->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ esophagusResistance_cmH2O_s_Per_L = m_AirwayToStomach->GetNextResistance(PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ }
+ else
+ {
+ //TODO: Make this work for the expanded model
+ }
bool inhaling = false;
if (m_PharynxToCarina->GetNextFlow(VolumePerTimeUnit::L_Per_s) > 0.0)
@@ -3501,6 +3846,12 @@ namespace pulse
{
//Tuned based on mechanical ventilator validation data
tracheaResistance_cmH2O_s_Per_L *= intubationTracheatracheaResistanceMultiplier_cmH2O_s_Per_L;
+
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::On)
+ {
+ //Trachea resistance was tuned from 1.125 to 0.8 cmH2O-s/L in the circuit setup
+ tracheaResistance_cmH2O_s_Per_L *= 1.125 / 0.8;
+ }
}
break;
@@ -3860,12 +4211,16 @@ namespace pulse
BLIM(leftAlveoliResistance_cmH2O_s_Per_L, m_DefaultClosedResistance_cmH2O_s_Per_L, m_DefaultOpenResistance_cmH2O_s_Per_L);
//Set new values
- m_PharynxToCarina->GetNextResistance().SetValue(tracheaResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
- m_CarinaToRightAnatomicDeadSpace->GetNextResistance().SetValue(rightBronchiResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
- m_CarinaToLeftAnatomicDeadSpace->GetNextResistance().SetValue(leftBronchiResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
- m_RightAnatomicDeadSpaceToRightAlveolarDeadSpace->GetNextResistance().SetValue(rightAlveoliResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
- m_LeftAnatomicDeadSpaceToLeftAlveolarDeadSpace->GetNextResistance().SetValue(leftAlveoliResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
- m_AirwayToStomach->GetNextResistance().SetValue(esophagusResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::Off)
+ {
+ //TODO: Make this work for the expanded model
+ m_PharynxToCarina->GetNextResistance().SetValue(tracheaResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ m_CarinaToRightAnatomicDeadSpace->GetNextResistance().SetValue(rightBronchiResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ m_CarinaToLeftAnatomicDeadSpace->GetNextResistance().SetValue(leftBronchiResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ m_RightAnatomicDeadSpaceToRightAlveolarDeadSpace->GetNextResistance().SetValue(rightAlveoliResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ m_LeftAnatomicDeadSpaceToLeftAlveolarDeadSpace->GetNextResistance().SetValue(leftAlveoliResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ m_AirwayToStomach->GetNextResistance().SetValue(esophagusResistance_cmH2O_s_Per_L, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
+ }
//------------------------------------------------------------------------------------------------------
//Restrictive
@@ -3922,6 +4277,16 @@ namespace pulse
restrictiveSeverity = MAX(restrictiveSeverity, severity);
}
+ //------------------------------------------------------------------------------------------------------
+ //PBLI
+ //Same as ARDS
+ if (m_PatientActions->HasPrimaryBlastLungInjury())
+ {
+ double severity = m_PatientActions->GetPrimaryBlastLungInjury().GetSeverity(cmpt).GetValue();
+ restrictiveSeverity = MAX(restrictiveSeverity, severity);
+ }
+
+
std::vector> interpolatorPoints =
{
{0.0, 1.0}, //None
@@ -4097,6 +4462,15 @@ namespace pulse
restrictiveSeverity = MAX(restrictiveSeverity, severity);
}
+ //------------------------------------------------------------------------------------------------------
+ //PBLI
+ //Same as ARDS
+ if (m_PatientActions->HasPrimaryBlastLungInjury())
+ {
+ double severity = m_PatientActions->GetPrimaryBlastLungInjury().GetSeverity(cmpt).GetValue();
+ restrictiveSeverity = MAX(restrictiveSeverity, severity);
+ }
+
double restrictiveComplianceScalingFactor = GeneralMath::PiecewiseLinearInterpolator(restrictiveInterpolatorPoints, restrictiveSeverity);
//------------------------------------------------------------------------------------------------------
@@ -4295,6 +4669,16 @@ namespace pulse
restrictiveSeverity = MAX(restrictiveSeverity, severity);
}
+ //------------------------------------------------------------------------------------------------------
+ //PBLI
+ //Same as ARDS
+ if (m_PatientActions->HasPrimaryBlastLungInjury())
+ {
+ double severity = m_PatientActions->GetPrimaryBlastLungInjury().GetSeverity(cmpt).GetValue();
+
+ restrictiveSeverity = MAX(restrictiveSeverity, severity);
+ }
+
combinedObstructiveSeverity += obstructiveSeverity * alveoliVolumeRatio;
combinedRestrictiveSeverity += restrictiveSeverity * alveoliVolumeRatio;
}
@@ -4493,6 +4877,19 @@ namespace pulse
combinedSeverity = MAX(combinedSeverity, severity);
}
+ //------------------------------------------------------------------------------------------------------
+ //PBLI
+ //Same as ARDS with a multiplier
+ double PBLIMultiplier = 1.0;
+ if (m_PatientActions->HasPrimaryBlastLungInjury())
+ {
+ double severity = m_PatientActions->GetPrimaryBlastLungInjury().GetSeverity(cmpt).GetValue();
+
+ PBLIMultiplier = GeneralMath::LinearInterpolator(0.0, 1.0, 1.0, 0.75, severity);
+
+ combinedSeverity = MAX(combinedSeverity, severity);
+ }
+
std::vector> interpolatorPoints =
{
{0.0, 1.000}, //None
@@ -4502,7 +4899,7 @@ namespace pulse
{1.0, 0.050} //Max
};
- damageScalingFactor = GeneralMath::PiecewiseLinearInterpolator(interpolatorPoints, combinedSeverity);
+ damageScalingFactor = GeneralMath::PiecewiseLinearInterpolator(interpolatorPoints, combinedSeverity) * PBLIMultiplier;
//------------------------------------------------------------------------------------------------------
//Combine effects
@@ -4718,6 +5115,19 @@ namespace pulse
combinedSeverity = MAX(combinedSeverity, severity);
}
+ //------------------------------------------------------------------------------------------------------
+ //PBLI
+ //Use a multiplier on ARDS equation
+ double PBLIMultiplier = 1.0;
+ if (m_PatientActions->HasPrimaryBlastLungInjury())
+ {
+ double severity = m_PatientActions->GetPrimaryBlastLungInjury().GetSeverity(cmpt).GetValue();
+
+ PBLIMultiplier = GeneralMath::LinearInterpolator(0.0, 1.0, 1.0, 0.5, severity);
+
+ combinedSeverity = MAX(combinedSeverity, severity);
+ }
+
//------------------------------------------------------------------------------------------------------
//Combine effects
//Damage factor acts as floor if fully recruited
@@ -4729,7 +5139,7 @@ namespace pulse
{0.9, 0.5}, //Severe
{1.0, 1.0} //Max
};
- damageScalingFactor = GeneralMath::PiecewiseLinearInterpolator(interpolatorPoints, combinedSeverity);
+ damageScalingFactor = GeneralMath::PiecewiseLinearInterpolator(interpolatorPoints, combinedSeverity) * PBLIMultiplier;
interpolatorPoints =
{
@@ -4751,6 +5161,8 @@ namespace pulse
recruitmentScalingFactor = GeneralMath::Damper(recruitmentScalingFactor, m_PreviousShuntScalingFactor[iter], dampenFraction_perSec, m_data.GetTimeStep_s());
m_PreviousShuntScalingFactor[iter] = recruitmentScalingFactor;
+ totalScalingFactor = MIN(recruitmentScalingFactor, damageScalingFactor) * PBLIMultiplier;
+
//------------------------------------------------------------------------------------------------------
//COPD
//Exacerbation will overwrite the condition, even if it means improvement
@@ -4966,6 +5378,16 @@ namespace pulse
restrictiveSeverity = MAX(restrictiveSeverity, severity);
}
+ //------------------------------------------------------------------------------------------------------
+ //PBLI
+ //Same as ARDS
+ if (m_PatientActions->HasPrimaryBlastLungInjury())
+ {
+ double severity = m_PatientActions->GetPrimaryBlastLungInjury().GetSeverity(cmpt).GetValue();
+
+ restrictiveSeverity = MAX(restrictiveSeverity, severity);
+ }
+
double restrictiveModifier = GeneralMath::LinearInterpolator(0.0, 1.0, 0.0, 0.8, restrictiveSeverity);
//------------------------------------------------------------------------------------------------------
@@ -5311,15 +5733,15 @@ namespace pulse
return pulse::PulmonaryCompartment::RightLung;
//case eLungCompartment::LeftInferiorLobe:
- // return pulse::ExpandedPulmonaryCompartment::LeftInferiorLobeLung;
+ // return pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobeLung;
//case eLungCompartment::LeftSuperiorLobe:
- // return pulse::ExpandedPulmonaryCompartment::LeftSuperiorLobe;
+ // return pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobe;
//case eLungCompartment::RightInferiorLobe:
- // return pulse::ExpandedPulmonaryCompartment::RightInferiorLobe;
+ // return pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobe;
//case eLungCompartment::RightMiddleLobe:
- // return pulse::ExpandedPulmonaryCompartment::RightMiddleLobe;
+ // return pulse::ExpandedLungsPulmonaryCompartment::RightMiddleLobe;
//case eLungCompartment::RightSuperiorLobe:
- // return pulse::ExpandedPulmonaryCompartment::RightSuperiorLobe;
+ // return pulse::ExpandedLungsPulmonaryCompartment::RightSuperiorLobe;
default:
Warning("Unsupported eLungCompartment");
@@ -5334,15 +5756,15 @@ namespace pulse
if (cmpt == pulse::PulmonaryCompartment::RightLung)
return eLungCompartment::RightLung;
- //if (cmpt == pulse::ExpandedPulmonaryCompartment::LeftInferiorLobe)
+ //if (cmpt == pulse::ExpandedLungsPulmonaryCompartment::LeftInferiorLobe)
// return eLungCompartment::LeftInferiorLobe;
- //if (cmpt == pulse::ExpandedPulmonaryCompartment::LeftSuperiorLobe)
+ //if (cmpt == pulse::ExpandedLungsPulmonaryCompartment::LeftSuperiorLobe)
// return eLungCompartment::LeftSuperiorLobe;
- //if (cmpt == pulse::ExpandedPulmonaryCompartment::RightInferiorLobe)
+ //if (cmpt == pulse::ExpandedLungsPulmonaryCompartment::RightInferiorLobe)
// return eLungCompartment::RightInferiorLobe;
- //if (cmpt == pulse::ExpandedPulmonaryCompartment::RightMiddleLobe)
+ //if (cmpt == pulse::ExpandedLungsPulmonaryCompartment::RightMiddleLobe)
// return eLungCompartment::RightMiddleLobe;
- //if (cmpt == pulse::ExpandedPulmonaryCompartment::RightSuperiorLobe)
+ //if (cmpt == pulse::ExpandedLungsPulmonaryCompartment::RightSuperiorLobe)
// return eLungCompartment::RightSuperiorLobe;
return (eLungCompartment)-1;
@@ -5428,8 +5850,11 @@ namespace pulse
double diffusionSurfaceArea_m2 = m_data.GetCurrentPatient().GetAlveoliSurfaceArea(AreaUnit::m2);
m_data.GetDataTrack().Probe("diffusionSurfaceArea_m2", diffusionSurfaceArea_m2);
- double rightPulmonaryCapillaryResistance_mmHg_s_Per_mL = m_RightPulmonaryCapillary->GetNextResistance(PressureTimePerVolumeUnit::mmHg_s_Per_mL);
- double leftPulmonaryCapillaryResistance_mmHg_s_Per_mL = m_LeftPulmonaryCapillary->GetNextResistance(PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ /// \todo figure out how to modify these resistances without getting the cv circuit - maybe add a parameter, like baroreceptors does
+ SEFluidCircuitPath* RightPulmonaryCapillary = m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::CardiovascularPath::RightPulmonaryCapillaries1ToRightPulmonaryVeins1);
+ SEFluidCircuitPath* LeftPulmonaryCapillary = m_data.GetCircuits().GetCardiovascularCircuit().GetPath(pulse::CardiovascularPath::LeftPulmonaryCapillaries1ToLeftPulmonaryVeins1);
+ double rightPulmonaryCapillaryResistance_mmHg_s_Per_mL = RightPulmonaryCapillary->GetNextResistance(PressureTimePerVolumeUnit::mmHg_s_Per_mL);
+ double leftPulmonaryCapillaryResistance_mmHg_s_Per_mL = LeftPulmonaryCapillary->GetNextResistance(PressureTimePerVolumeUnit::mmHg_s_Per_mL);
double averagePulmonaryCapillaryResistance_mmHg_s_Per_mL = (rightPulmonaryCapillaryResistance_mmHg_s_Per_mL + leftPulmonaryCapillaryResistance_mmHg_s_Per_mL) / 2.0;
m_data.GetDataTrack().Probe("averagePulmonaryCapillaryResistance_mmHg_s_Per_mL", averagePulmonaryCapillaryResistance_mmHg_s_Per_mL);
}
diff --git a/src/cpp/engine/common/system/physiology/RespiratoryModel.h b/src/cpp/engine/common/system/physiology/RespiratoryModel.h
index c19c8d9b111216f1f8f7dfaa61431e2b7783eff6..7e84ec4bdedf994cfb875a4724b3f01aad270c11 100644
--- a/src/cpp/engine/common/system/physiology/RespiratoryModel.h
+++ b/src/cpp/engine/common/system/physiology/RespiratoryModel.h
@@ -57,7 +57,7 @@ namespace pulse
virtual void PostProcess(bool solve_and_transport=true) override;
protected:
- void ComputeExposedModelParameters() override;
+ void ComputeExposedModelParameters() override;/*TODO ExpandedLungs*/
eLungCompartment GetLungCompartment(const std::string& cmpt);
std::string GetCompartmentName(eLungCompartment m);
@@ -67,20 +67,19 @@ namespace pulse
//PreProcess
void CalculateWork();
void CalculateFatigue();
- void UpdateChestWallCompliances();
- void UpdateVolumes();
- void UpdateResistances();
+ void UpdateChestWallCompliances();/*TODO ExpandedLungs*/
+ /**/SESegment* GetSegement(const std::vector& segments, double volume_L);
void UpdateAlveolarCompliances();
- double CalculateSuctioningPattern(double baseResistance_cmH2O_s_Per_L, double flow_L_Per_s);
+ void UpdateVolumes();
+ void UpdateResistances();/*TODO ExpandedLungs*/
+ /**/double CalculateSuctioningPattern(double baseResistance_cmH2O_s_Per_L, double flow_L_Per_s);
void UpdateInspiratoryExpiratoryRatio();
void UpdateDiffusion();
- void UpdatePulmonaryCapillary();
- void UpdatePulmonaryShunt();
- SESegment* GetSegement(const std::vector& segments, double volume_L);
- //Overrides
- void SetRespiratoryResistance();
- void SetRespiratoryCompliance();
-
+ // If Cardiovascular
+ /**/void UpdatePulmonaryCapillary();
+ /**/void UpdatePulmonaryShunt();
+ // Aerosol Deposition and various Effects
+ void ProcessAerosolSubstances();
//Actions
void Pneumothorax();
void Hemothorax();
@@ -91,13 +90,14 @@ namespace pulse
void ApplyDriver();
/**/void SetBreathCycleFractions();
/**/void ConsciousRespiration();
- /**/double VolumeToDriverPressure(double TargetVolume);
+ /**/double VolumeToDriverPressure(double TargetVolume);/*TODO ExpandedLungs*/
/**/void UpdateDriverPressure();
/****/void CalculateMechanoreceptors();
/**/void UpdateDriverPeriod();
/**/double UpdateTargetVentilation(double targetAlveolarVentilation_L_Per_min);
- // Aerosol Deposition and various Effects
- void ProcessAerosolSubstances();
+ //Overrides
+ void SetRespiratoryResistance();
+ void SetRespiratoryCompliance();
//Process
void CalculateVitalSigns();
@@ -201,50 +201,61 @@ namespace pulse
// Patient
SEPatientActionCollection* m_PatientActions;
+ // Variables independent of how the lungs are modelled
+ SEFluidCircuit* m_RespiratoryCircuit;
+ SEFluidCircuitCalculator* m_Calculator;
+ SEGasTransporter* m_GasTransporter;
+ SELiquidTransporter* m_AerosolTransporter;
+ // Nodes
+ SEFluidCircuitNode* m_AirwayNode;
+ SEFluidCircuitNode* m_RespiratoryMuscleNode;
+ SEFluidCircuitNode* m_LeftPleuralNode;
+ SEFluidCircuitNode* m_RightPleuralNode;
+ SEFluidCircuitNode* m_AmbientNode;
+ SEFluidCircuitNode* m_StomachNode;
+ // Paths
+ SEFluidCircuitPath* m_LeftPleuralToRespiratoryMuscle;
+ SEFluidCircuitPath* m_RightPleuralToRespiratoryMuscle;
+ SEFluidCircuitPath* m_DriverPressurePath;
+ SEFluidCircuitPath* m_AirwayToPharynx;
+ SEFluidCircuitPath* m_PharynxToEnvironment;
+ SEFluidCircuitPath* m_PharynxToCarina;
+ SEFluidCircuitPath* m_AirwayToStomach;
+ SEFluidCircuitPath* m_ConnectionToAirway;
+ SEFluidCircuitPath* m_GroundToConnection;
// Compartments
SEGasCompartment* m_Environment;
+ SEGasCompartment* m_Carina;
+ SEGasSubstanceQuantity* m_CarinaO2;
SEGasCompartment* m_Lungs;
- SEGasCompartment* m_LeftAlveoli;
- SEGasCompartment* m_RightAlveoli;
+ SEGasCompartment* m_LeftLung;
+ SEGasCompartment* m_RightLung;
SEGasCompartment* m_PleuralCavity;
SEGasCompartment* m_LeftPleuralCavity;
SEGasCompartment* m_RightPleuralCavity;
- SEGasCompartment* m_Carina;
- SEGasCompartment* m_LeftLung;
- SEGasCompartment* m_RightLung;
SEGasCompartment* m_AnatomicDeadSpace;
SEGasCompartment* m_AlveolarDeadSpace;
SEGasCompartment* m_RightAlveolarDeadSpace;
SEGasCompartment* m_LeftAlveolarDeadSpace;
SEGasCompartment* m_Alveoli;
- SEGasSubstanceQuantity* m_CarinaO2;
+ SEGasCompartment* m_LeftAlveoli;
+ SEGasCompartment* m_RightAlveoli;
SEGasSubstanceQuantity* m_LeftAlveoliO2;
SEGasSubstanceQuantity* m_RightAlveoliO2;
// Mechanical Ventilation
SEGasCompartment* m_MechanicalVentilationConnection;
SELiquidCompartment* m_MechanicalVentilationAerosolConnection;
- // Aerosol
- SELiquidCompartment* m_AerosolAirway;
- SELiquidCompartment* m_AerosolCarina;
- SELiquidCompartment* m_AerosolLeftAnatomicDeadSpace;
- SELiquidCompartment* m_AerosolLeftAlveolarDeadSpace;
- SELiquidCompartment* m_AerosolLeftAlveoli;
- SELiquidCompartment* m_AerosolRightAnatomicDeadSpace;
- SELiquidCompartment* m_AerosolRightAlveolarDeadSpace;
- SELiquidCompartment* m_AerosolRightAlveoli;
- std::vector m_AerosolEffects;
- SELiquidCompartment* m_LeftLungExtravascular;
- SELiquidCompartment* m_RightLungExtravascular;
// Cardiovascular
- SELiquidCompartment* m_LeftPulmonaryCapillaries;
- SELiquidCompartment* m_RightPulmonaryCapillaries;
SELiquidSubstanceQuantity* m_AortaO2;
SELiquidSubstanceQuantity* m_AortaCO2;
+ // Substance
+ SESubstance* m_Oversedation;
- // Circuits
- SEFluidCircuit* m_RespiratoryCircuit;
+ ///////////////////////////////////////////
+ // Lung Configuration Specific Variables //
+ ///////////////////////////////////////////
- // These are the components we will iterate on for actions
+ // These are the lung components we will iterate on for actions
struct LungComponent
{
eSide Side;
@@ -252,48 +263,50 @@ namespace pulse
SEFluidCircuitNode* DeadSpaceNode;
SEFluidCircuitPath* ResistancePath;
SEFluidCircuitPath* CompliancePath;
- SELiquidCompartmentLink* ShuntLink;
- SELiquidCompartmentLink* ArteriesLink;
- SELiquidCompartmentLink* VeinsLink;
SEFluidCircuitPath* ShuntPath;
SEFluidCircuitPath* ArteriesPath;
SEFluidCircuitPath* VeinsPath;
SEGasCompartment* AlveoliCompartment;
SELiquidCompartment* CapillaryCompartment;
+ SELiquidCompartmentLink* ShuntLink;
+ SELiquidCompartmentLink* ArteriesLink;
+ SELiquidCompartmentLink* VeinsLink;
};
std::map m_LungComponents;
- // Nodes
- SEFluidCircuitNode* m_AirwayNode;
- SEFluidCircuitNode* m_LeftPleuralNode;
- SEFluidCircuitNode* m_RespiratoryMuscleNode;
- SEFluidCircuitNode* m_RightPleuralNode;
- SEFluidCircuitNode* m_AmbientNode;
- SEFluidCircuitNode* m_StomachNode;
// Paths
- SEFluidCircuitPath* m_CarinaToLeftAnatomicDeadSpace; // base only
- SEFluidCircuitPath* m_CarinaToRightAnatomicDeadSpace; // base only
- SEFluidCircuitPath* m_LeftAnatomicDeadSpaceToLeftAlveolarDeadSpace; // base only
- SEFluidCircuitPath* m_RightAnatomicDeadSpaceToRightAlveolarDeadSpace; // base only
- SEFluidCircuitPath* m_LeftAlveolarDeadSpaceToLeftAlveoli; // base only
- SEFluidCircuitPath* m_RightAlveolarDeadSpaceToRightAlveoli; // base only
+ SEFluidCircuitPath* m_CarinaToRightLung;
+ SEFluidCircuitPath* m_CarinaToLeftLung;
+
+ ///////////////////////////////////////////////////
+ // Currently only for default lung configuration //
+ ///////////////////////////////////////////////////
+
+ // Aerosol
+ SELiquidCompartment* m_AerosolAirway;
+ SELiquidCompartment* m_AerosolCarina;
+ SELiquidCompartment* m_AerosolLeftAnatomicDeadSpace;
+ SELiquidCompartment* m_AerosolLeftAlveolarDeadSpace;
+ SELiquidCompartment* m_AerosolLeftAlveoli;
+ SELiquidCompartment* m_AerosolRightAnatomicDeadSpace;
+ SELiquidCompartment* m_AerosolRightAlveolarDeadSpace;
+ SELiquidCompartment* m_AerosolRightAlveoli;
+ std::vector m_AerosolEffects;
+ SELiquidCompartment* m_LeftLungExtravascular;
+ SELiquidCompartment* m_RightLungExtravascular;
+
+ SEFluidCircuitPath* m_CarinaToLeftAnatomicDeadSpace;
+ SEFluidCircuitPath* m_CarinaToRightAnatomicDeadSpace;
+ SEFluidCircuitPath* m_LeftAnatomicDeadSpaceToLeftAlveolarDeadSpace;
+ SEFluidCircuitPath* m_RightAnatomicDeadSpaceToRightAlveolarDeadSpace;
+ SEFluidCircuitPath* m_LeftAlveolarDeadSpaceToLeftAlveoli;
+ SEFluidCircuitPath* m_RightAlveolarDeadSpaceToRightAlveoli;
- SEFluidCircuitPath* m_LeftPleuralToRespiratoryMuscle;
- SEFluidCircuitPath* m_RightPleuralToRespiratoryMuscle;
- SEFluidCircuitPath* m_DriverPressurePath;
- SEFluidCircuitPath* m_AirwayToPharynx;
- SEFluidCircuitPath* m_PharynxToEnvironment;
- SEFluidCircuitPath* m_PharynxToCarina;
- SEFluidCircuitPath* m_AirwayToStomach;
SEFluidCircuitPath* m_EnvironmentToLeftChestLeak;
SEFluidCircuitPath* m_EnvironmentToRightChestLeak;
SEFluidCircuitPath* m_LeftAlveoliLeakToLeftPleural;
SEFluidCircuitPath* m_RightAlveoliLeakToRightPleural;
SEFluidCircuitPath* m_LeftNeedleToLeftPleural;
SEFluidCircuitPath* m_RightNeedleToRightPleural;
- SEFluidCircuitPath* m_LeftPulmonaryCapillary;
- SEFluidCircuitPath* m_RightPulmonaryCapillary;
- SEFluidCircuitPath* m_ConnectionToAirway;
- SEFluidCircuitPath* m_GroundToConnection;
SEFluidCircuitPath* m_LeftCardiovascularLeak;
SEFluidCircuitPath* m_RightCardiovascularLeak;
@@ -302,12 +315,5 @@ namespace pulse
SEFluidCircuitPath* m_LeftAlveoliToLeftPleuralConnection;
SEFluidCircuitPath* m_RightAlveoliToRightPleuralConnection;
-
- SEFluidCircuitCalculator* m_Calculator;
- SEGasTransporter* m_GasTransporter;
- SELiquidTransporter* m_AerosolTransporter;
-
- // Substance
- SESubstance* m_Oversedation;
};
END_NAMESPACE
diff --git a/src/cpp/engine/common/system/physiology/TissueModel.cpp b/src/cpp/engine/common/system/physiology/TissueModel.cpp
index b8b61598433122a76857b50b6223de5f0b9f851e..c3817c7435cf8915defac3ead71be6adc44327fd 100644
--- a/src/cpp/engine/common/system/physiology/TissueModel.cpp
+++ b/src/cpp/engine/common/system/physiology/TissueModel.cpp
@@ -216,7 +216,7 @@ namespace pulse
m_LeftPulmonaryCapillaries = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::LeftPulmonaryCapillaries);
m_RightPulmonaryCapillaries = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::RightPulmonaryCapillaries);
- std::string BrainCmpt = m_data.GetConfiguration().UseExpandedVasculature() == eSwitch::On ? pulse::ExpandedVascularCompartment::Intracranial : pulse::VascularCompartment::Brain;
+ std::string BrainCmpt = m_data.GetConfiguration().UseComputationalLifeExpansion() == eSwitch::On ? pulse::ComputationalLifeVascularCompartment::Intracranial : pulse::VascularCompartment::Brain;
//Store tissue-blood pairs
m_TissueToVascular.clear();
m_TissueToVascular[m_data.GetCompartments().GetTissueCompartment(pulse::TissueCompartment::Fat)] = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::Fat);
@@ -226,8 +226,12 @@ namespace pulse
m_TissueToVascular[m_data.GetCompartments().GetTissueCompartment(pulse::TissueCompartment::LeftKidney)] = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::LeftKidney);
m_TissueToVascular[m_data.GetCompartments().GetTissueCompartment(pulse::TissueCompartment::RightKidney)] = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::RightKidney);
m_TissueToVascular[m_data.GetCompartments().GetTissueCompartment(pulse::TissueCompartment::Liver)] = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::Liver);
- m_TissueToVascular[m_data.GetCompartments().GetTissueCompartment(pulse::TissueCompartment::LeftLung)] = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::LeftLung);
- m_TissueToVascular[m_data.GetCompartments().GetTissueCompartment(pulse::TissueCompartment::RightLung)] = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::RightLung);
+ //TODO: Make this work for the expanded model
+ if (m_data.GetConfiguration().UseExpandedLungs() == eSwitch::Off)
+ {
+ m_TissueToVascular[m_data.GetCompartments().GetTissueCompartment(pulse::TissueCompartment::LeftLung)] = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::LeftLung);
+ m_TissueToVascular[m_data.GetCompartments().GetTissueCompartment(pulse::TissueCompartment::RightLung)] = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::RightLung);
+ }
m_TissueToVascular[m_data.GetCompartments().GetTissueCompartment(pulse::TissueCompartment::Muscle)] = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::Muscle);
m_TissueToVascular[m_data.GetCompartments().GetTissueCompartment(pulse::TissueCompartment::Myocardium)] = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::Myocardium);
m_TissueToVascular[m_data.GetCompartments().GetTissueCompartment(pulse::TissueCompartment::Skin)] = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::Skin);
@@ -1890,7 +1894,7 @@ namespace pulse
{
//TODO: Why doesn't this work?
//quantity->GetMass().SetReadOnly(false);
- //quantity->GetMass().IncrementValue(-massLost_g, MassUnit::g);
+ //quantity->GetMass().Increment(-massLost_g, MassUnit::g);
//quantity->GetMass().SetReadOnly(true);
}
else
diff --git a/src/cpp/engine/files.cmake b/src/cpp/engine/files.cmake
index 7ff5d9d10b798126fc463189bd6759179cd1f5c1..1d04917fed01d00dad3471a8d88c5a4633556c70 100644
--- a/src/cpp/engine/files.cmake
+++ b/src/cpp/engine/files.cmake
@@ -91,8 +91,8 @@ set(ENGINE_CPP_FILES
engine/common/controller/CompartmentManager.cpp
engine/common/controller/Controller.cpp
engine/common/controller/SetupCircuitsAndCompartments.cpp
- engine/common/controller/SetupExpandedCardiovascular.cpp
- engine/common/controller/SetupExpandedRespiratory.cpp
+ engine/common/controller/SetupComputationalLifeExpansion.cpp
+ engine/common/controller/SetupExpandedLungs.cpp
engine/common/controller/SubstanceManager.cpp
engine/common/system/environment/EnvironmentModel.cpp
engine/common/system/equipment/AnesthesiaMachineModel.cpp
diff --git a/src/cpp/engine/human_adult/hemodynamics/controller/CompartmentManager.cpp b/src/cpp/engine/human_adult/hemodynamics/controller/CompartmentManager.cpp
index 762c71587b41ad94f50237d3eeeb4b3903c43391..9898b5cc34eeb8933fe72e0bfcebf02d553b74c7 100644
--- a/src/cpp/engine/human_adult/hemodynamics/controller/CompartmentManager.cpp
+++ b/src/cpp/engine/human_adult/hemodynamics/controller/CompartmentManager.cpp
@@ -50,7 +50,7 @@ namespace pulse { namespace human_adult_hemodynamics
Warning("Could not find expected Extravascular compartment, " + name + " in compartment manager");
}
}
- if (m_data.GetConfiguration().IsRenalEnabled())
+ if (m_data.GetConfiguration().UseExpandedKidneys() == eSwitch::On)
{
SORT_CMPTS(Urine, Liquid);
}
diff --git a/src/cpp/engine/human_adult/hemodynamics/controller/SetupCircuitsAndCompartments.cpp b/src/cpp/engine/human_adult/hemodynamics/controller/SetupCircuitsAndCompartments.cpp
index 01d98fab80e1826622d33b208e1d9efe3f5a230d..8b6ad788fe4b20a8edcc2f4884627bab9eba71b9 100644
--- a/src/cpp/engine/human_adult/hemodynamics/controller/SetupCircuitsAndCompartments.cpp
+++ b/src/cpp/engine/human_adult/hemodynamics/controller/SetupCircuitsAndCompartments.cpp
@@ -29,7 +29,7 @@ namespace pulse { namespace human_adult_hemodynamics
m_Compartments->Setup();
SetupCardiovascular();
- if (m_Config->IsRenalEnabled())
+ if (m_Config->UseExpandedKidneys() == eSwitch::On)
SetupRenal();
if (m_Config->IsTissueEnabled())
SetupTissue();
diff --git a/src/cpp/engine/human_adult/whole_body/test/AerosolTest.cpp b/src/cpp/engine/human_adult/whole_body/test/AerosolTest.cpp
index 153ec0a4543fa411cdc6269196e93a628a9014c1..626f494705be930609442810bce98a75266d8480 100644
--- a/src/cpp/engine/human_adult/whole_body/test/AerosolTest.cpp
+++ b/src/cpp/engine/human_adult/whole_body/test/AerosolTest.cpp
@@ -272,7 +272,7 @@ namespace pulse { namespace human_adult_whole_body
pc.GetSubstances().LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &pc.GetSubstances());
- pc.m_Config->EnableRenal(eSwitch::Off);
+ pc.m_Config->UseExpandedKidneys(eSwitch::Off);
pc.m_Config->EnableTissue(eSwitch::Off);
pc.CreateCircuitsAndCompartments();
pc.GetSubstances().InitializeGasCompartments();
diff --git a/src/cpp/engine/human_adult/whole_body/test/AnesthesiaCircuit.cpp b/src/cpp/engine/human_adult/whole_body/test/AnesthesiaCircuit.cpp
index 465e61442c5e4f7dbc8592b686b4f2d278c63695..a503a58f4052ac3b56747b9155833f4d76126922 100644
--- a/src/cpp/engine/human_adult/whole_body/test/AnesthesiaCircuit.cpp
+++ b/src/cpp/engine/human_adult/whole_body/test/AnesthesiaCircuit.cpp
@@ -38,7 +38,7 @@ namespace pulse { namespace human_adult_whole_body
/// and variable values for the circuit elements.The outputs are the resultant flows and pressures
/// on the circuit nodes and paths. These are then stored in a file in sTestDirectory
//--------------------------------------------------------------------------------------------------
- void EngineTest::AnesthesiaMachineCircuitAndTransportTest(RespiratoryConfiguration config, const std::string& sTestDirectory)
+ void EngineTest::AnesthesiaMachineCircuitAndTransportTest(RespiratoryConfiguration config, bool expandedLungs, const std::string& sTestDirectory)
{
TimingProfile tmr;
tmr.Start("Test");
@@ -47,17 +47,19 @@ namespace pulse { namespace human_adult_whole_body
DataTrack outTrkGraph;
std::ofstream fileCircuit;
std::ofstream fileGraph;
+ std::string prefix = expandedLungs ? "ExpandedLungs" : "";
Engine pe;
Controller& pc = (Controller&)pe.GetController();
- pc.GetLogger()->SetLogFile(sTestDirectory + "/AnesthesiaMachineCircuitAndTransportTest.log");
+ pc.GetLogger()->SetLogFile(sTestDirectory + "/"+prefix+"AnesthesiaMachineCircuitAndTransportTest.log");
SEPatient patient(pc.GetLogger());
patient.SerializeFromFile("./patients/StandardMale.json");
pc.SetupPatient(patient);
pc.GetSubstances().LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &pc.GetSubstances());
- pc.m_Config->EnableRenal(eSwitch::Off);
+ pc.m_Config->UseExpandedKidneys(eSwitch::Off);
+ pc.m_Config->UseExpandedLungs(expandedLungs ? eSwitch::On : eSwitch::Off);
pc.m_Config->EnableTissue(eSwitch::Off);
pc.CreateCircuitsAndCompartments();
SEEnvironmentalConditions env(pc.GetLogger());
@@ -84,8 +86,8 @@ namespace pulse { namespace human_adult_whole_body
{
amCircuit = &pc.GetCircuits().GetAnesthesiaMachineCircuit();
amGraph = &pc.GetCompartments().GetAnesthesiaMachineGraph();
- sCircuitFileName = "/AnesthesiaMachineCircuitOutput.csv";
- sTransportFileName = "/AnesthesiaMachineTransportOutput.csv";
+ sCircuitFileName = "/"+prefix+"AnesthesiaMachineCircuitOutput.csv";
+ sTransportFileName = "/"+prefix+"AnesthesiaMachineTransportOutput.csv";
//Allow things to flow to ground, since the respiratory circuit isn't here
//This approximates the total respiratory system resistance
@@ -93,14 +95,14 @@ namespace pulse { namespace human_adult_whole_body
AnesthesiaConnectionToEnvironment->GetResistanceBaseline().SetValue(1.5, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
AnesthesiaConnectionToEnvironment->GetNextResistance().SetValue(1.5, PressureTimePerVolumeUnit::cmH2O_s_Per_L);
}
- else if (config == RespiratoryWithAnesthesiaMachine)
+ else if (config == RespiratoryWithAnesthesiaMachine || config == ExpandedLungsRespiratoryWithAnesthesiaMachine)
{
pc.GetSubstances().InitializeGasCompartments();
amCircuit = &pc.GetCircuits().GetRespiratoryAndAnesthesiaMachineCircuit();
amGraph = &pc.GetCompartments().GetRespiratoryAndAnesthesiaMachineGraph();
- sCircuitFileName = "/RespiratoryAndAnesthesiaMachineCircuitOutput.csv";
- sTransportFileName = "/RespiratoryAndAnesthesiaMachineTransportOutput.csv";
+ sCircuitFileName = "/"+prefix+"RespiratoryAndAnesthesiaMachineCircuitOutput.csv";
+ sTransportFileName = "/"+prefix+"RespiratoryAndAnesthesiaMachineTransportOutput.csv";
//Precharge the stomach to prevent negative volume
amCircuit->GetNode(pulse::RespiratoryNode::Stomach)->GetNextPressure().Set(env.GetAtmosphericPressure());
@@ -174,11 +176,16 @@ namespace pulse { namespace human_adult_whole_body
void EngineTest::AnesthesiaMachineCircuitAndTransportTest(const std::string& sTestDirectory)
{
- AnesthesiaMachineCircuitAndTransportTest(AnesthesiaMachineSolo, sTestDirectory);
+ AnesthesiaMachineCircuitAndTransportTest(AnesthesiaMachineSolo, false, sTestDirectory);
}
void EngineTest::RespiratoryWithAnesthesiaMachineCircuitAndTransportTest(const std::string& sTestDirectory)
{
- AnesthesiaMachineCircuitAndTransportTest(RespiratoryWithAnesthesiaMachine, sTestDirectory);
+ AnesthesiaMachineCircuitAndTransportTest(RespiratoryWithAnesthesiaMachine, false, sTestDirectory);
+ }
+
+ void EngineTest::ExpandedLungsRespiratoryWithAnesthesiaMachineCircuitAndTransportTest(const std::string& sTestDirectory)
+ {
+ AnesthesiaMachineCircuitAndTransportTest(ExpandedLungsRespiratoryWithAnesthesiaMachine, true, sTestDirectory);
}
END_NAMESPACE_EX
diff --git a/src/cpp/engine/human_adult/whole_body/test/CardiovascularCircuit.cpp b/src/cpp/engine/human_adult/whole_body/test/CardiovascularCircuit.cpp
index a3eb91c7361a7d3db88cffc5d15592fb96e779c2..bdd101920da64679eb6404895c1bc6df9871b9a5 100644
--- a/src/cpp/engine/human_adult/whole_body/test/CardiovascularCircuit.cpp
+++ b/src/cpp/engine/human_adult/whole_body/test/CardiovascularCircuit.cpp
@@ -44,32 +44,47 @@ namespace pulse { namespace human_adult_whole_body
// We use 1,1,1,0 to run our test without any scaling of the circuit and using the HeartRate Baseline in the standard patient file
void EngineTest::CardiovascularCircuitAndTransportTest(const std::string& sTestDirectory)
{
- CardiovascularCircuitAndTransportTest(Heart, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, false, false, false, false, sTestDirectory, "Cardiovascular", false);
+ CardiovascularCircuitAndTransportTest(Heart, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, false, false, false, false, false, sTestDirectory, "Cardiovascular", false);
}
void EngineTest::CardiovascularAndRenalCircuitAndTransportTest(const std::string& sTestDirectory)
{
- CardiovascularCircuitAndTransportTest(Heart, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, false, true, false, false, sTestDirectory, "CardiovascularAndRenal", false);
+ CardiovascularCircuitAndTransportTest(Heart, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, false, false, false, true, false, sTestDirectory, "CardiovascularAndRenal", false);
}
void EngineTest::CardiovascularAndTissueCircuitAndTransportTest(const std::string& sTestDirectory)
{
- CardiovascularCircuitAndTransportTest(Heart, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, true, false, false, false, sTestDirectory, "CardiovascularAndTissue", false);
+ CardiovascularCircuitAndTransportTest(Heart, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, false, false, true, false, false, sTestDirectory, "CardiovascularAndTissue", false);
}
void EngineTest::CardiovascularAndCerebrospinalFluidCircuitAndTransportTest(const std::string& sTestDirectory)
{
- CardiovascularCircuitAndTransportTest(Heart, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, false, false, true, false, sTestDirectory, "CardiovascularAndCerebrospinalFluid", false);
+ CardiovascularCircuitAndTransportTest(Heart, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, false, true, false, false, false, sTestDirectory, "CardiovascularAndCerebrospinalFluid", false);
+ }
+
+ void EngineTest::ExpandedLungsCardiovascularCircuitAndTransportTest(const std::string& sTestDirectory)
+ {
+ CardiovascularCircuitAndTransportTest(Heart, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, false, false, false, false, true, sTestDirectory, "ExpandedLungsCardiovascular", false);
}
void EngineTest::FullCardiovascularCircuitAndTransportTest(const std::string& sTestDirectory)
{// \todo enable csf when ready
- CardiovascularCircuitAndTransportTest(Heart, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, true, true, false, false, sTestDirectory, "FullCardiovascular", false);
+ CardiovascularCircuitAndTransportTest(Heart, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, false, false, true, true, false, sTestDirectory, "FullCardiovascular", false);
+ }
+
+ void EngineTest::ExpandedLungsFullCardiovascularCircuitAndTransportTest(const std::string& sTestDirectory)
+ {// \todo enable csf when ready
+ CardiovascularCircuitAndTransportTest(Heart, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, false, false, true, true, true, sTestDirectory, "ExpandedLungsFullCardiovascular", false);
}
void EngineTest::CardiovascularBloodGasesTest(const std::string& sTestDirectory)
{// \todo enable csf when ready
- CardiovascularCircuitAndTransportTest(Heart, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, true, true, false, true, sTestDirectory, "CardiovascularBloodGasesTest", false);
+ CardiovascularCircuitAndTransportTest(Heart, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, true, false, true, true, false, sTestDirectory, "CardiovascularBloodGasesTest", false);
+ }
+
+ void EngineTest::ExpandedLungsCardiovascularBloodGasesTest(const std::string& sTestDirectory)
+ {// \todo enable csf when ready
+ CardiovascularCircuitAndTransportTest(Heart, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, true, false, true, true, true, sTestDirectory, "ExpandedLungsCardiovascularBloodGasesTest", false);
}
void EngineTest::TuneCardiovascularCircuitTest(const std::string& sTestDirectory)
@@ -143,7 +158,7 @@ namespace pulse { namespace human_adult_whole_body
testSuite.GetLogger()->Info("Running " + sTestName);
pc.SetDataRoot("./");
pc.Initialize(patient);
- pc.m_Config->EnableRenal(eSwitch::On);
+ pc.m_Config->UseExpandedKidneys(eSwitch::On);
pc.m_Config->EnableTissue(eSwitch::On);
SETestCase& testCase = testSuite.CreateTestCase();
@@ -166,8 +181,8 @@ namespace pulse { namespace human_adult_whole_body
double complianceScale, double resistanceScale, double volumeScale, double heartRate_bpm,
double systemicResistanceScale, double systemicComplianceScale, double aortaResistanceScale,
double aortaComplianceScale, double rightHeartResistanceScale, double venaCavaComplianceScale,
- bool connectTissue, bool connectRenal, bool connectCSF, bool balanceBloodGases, const std::string& sTestDirectory,
- const std::string& sTestName, bool breakOutResults)
+ bool balanceBloodGases, bool connectCSF, bool connectTissue, bool expandedKidneys, bool expandedLungs,
+ const std::string& sTestDirectory, const std::string& sTestName, bool breakOutResults)
{
//breakOutResults True = seperate files for different types (i.e. volumes, flows, etc.); False = one file with everything
double testTime_s = 120;
@@ -221,9 +236,10 @@ namespace pulse { namespace human_adult_whole_body
pc.GetCurrentPatient().GetHeartRateBaseline().SetValue(heartRate_bpm, FrequencyUnit::Per_min);
}
- pc.m_Config->EnableRenal(connectRenal ? eSwitch::On : eSwitch::Off);
pc.m_Config->EnableTissue(connectTissue ? eSwitch::On : eSwitch::Off);
pc.m_Config->EnableCerebrospinalFluid(connectCSF ? eSwitch::On : eSwitch::Off);
+ pc.m_Config->UseExpandedLungs(expandedLungs ? eSwitch::On : eSwitch::Off);
+ pc.m_Config->UseExpandedKidneys(expandedKidneys ? eSwitch::On : eSwitch::Off);
pc.m_Config->TuneCardiovascularCircuit(eSwitch::On);// Run the circuit as constructed
//pc.m_Config->CardiovascularTuningFile("./test_results/unit_tests/Pulse/"+ sTestName+"Tuning.csv");
pc.CreateCircuitsAndCompartments();
@@ -257,7 +273,7 @@ namespace pulse { namespace human_adult_whole_body
SEScalarMassPerVolume N2_ug_per_mL;
N2_ug_per_mL.SetValue(0.5, MassPerVolumeUnit::ug_Per_mL);
subMgr.SetSubstanceConcentration(subMgr.GetN2(), pc.GetCompartments().GetVascularLeafCompartments(), N2_ug_per_mL);
- if (connectRenal)
+ if (expandedKidneys)
{
subMgr.SetSubstanceConcentration(subMgr.GetN2(), pc.GetCompartments().GetUrineLeafCompartments(), N2_ug_per_mL);
}
@@ -705,7 +721,7 @@ namespace pulse { namespace human_adult_whole_body
{
for (double vcFactor = 0.5; vcFactor < 1.51; vcFactor += 0.25)
{
- CardiovascularCircuitAndTransportTest(Heart, comp, res, vol, heartRate_bpm, srFactor, scFactor, arFactor, acFactor, vrFactor, vcFactor, false, false, false, false, sTestDirectory, "CVScale", true);
+ CardiovascularCircuitAndTransportTest(Heart, comp, res, vol, heartRate_bpm, srFactor, scFactor, arFactor, acFactor, vrFactor, vcFactor, false, false, false, false, false, sTestDirectory, "CVScale", true);
cvLastMeanPressureTrk.Track("SystemicResistanceScale", testNo, srFactor);
cvLastMeanPressureTrk.Track("SystemicComplianceScale", testNo, scFactor);
diff --git a/src/cpp/engine/human_adult/whole_body/test/EngineTest.cpp b/src/cpp/engine/human_adult/whole_body/test/EngineTest.cpp
index 9a80197917b095332c4f9d8856846aedec3a36e5..8b34d9d2ca744aa29de24a5031ea65357916883a 100644
--- a/src/cpp/engine/human_adult/whole_body/test/EngineTest.cpp
+++ b/src/cpp/engine/human_adult/whole_body/test/EngineTest.cpp
@@ -18,6 +18,7 @@ namespace pulse { namespace human_adult_whole_body
{
try
{
+ Info("Writing artifacts to: " + sOutputDirectory);
//If you find the test name, run it
if (testMap.find(testName) != testMap.end())
{
@@ -57,29 +58,22 @@ namespace pulse { namespace human_adult_whole_body
void EngineTest::FillFunctionMap()
{
- //A few functions have overloads, so we have to use the pointer clarify which one we want
- testFunction cardioCTTest = &EngineTest::CardiovascularCircuitAndTransportTest;
- testFunction cardioBGTest = &EngineTest::CardiovascularBloodGasesTest;
- testFunction cardioTuneCircuitTest = &EngineTest::TuneCardiovascularCircuitTest;
- testFunction respCTTest = &EngineTest::RespiratoryCircuitAndTransportTest;
- testFunction anesthCTTest = &EngineTest::AnesthesiaMachineCircuitAndTransportTest;
- testFunction ventCTTest = &EngineTest::MechanicalVentilatorCircuitAndTransportTest;
- testFunction setupPatientTest = &EngineTest::SetupPatientTest;
-
-
testMap.insert(std::make_pair("ReadScenarios", &EngineTest::ReadScenarios));
testMap.insert(std::make_pair("ReuseEngine", &EngineTest::ReuseEngine));
testMap.insert(std::make_pair("SerializationTest", &EngineTest::SerializationTest));
- testMap.insert(std::make_pair("SetupPatientTest", setupPatientTest));
+ testMap.insert(std::make_pair("SetupPatientTest", &EngineTest::SetupPatientTest));
//Fill a map that ties unit test names to their actual functions
- testMap.insert(std::make_pair("CardiovascularCircuitAndTransportTest", cardioCTTest));
+ testMap.insert(std::make_pair("CardiovascularCircuitAndTransportTest", (testFunction) &EngineTest::CardiovascularCircuitAndTransportTest));
testMap.insert(std::make_pair("CardiovascularAndRenalCircuitAndTransportTest", &EngineTest::CardiovascularAndRenalCircuitAndTransportTest));
testMap.insert(std::make_pair("CardiovascularAndTissueCircuitAndTransportTest", &EngineTest::CardiovascularAndTissueCircuitAndTransportTest));
testMap.insert(std::make_pair("CardiovascularAndCerebrospinalFluidCircuitAndTransportTest", &EngineTest::CardiovascularAndCerebrospinalFluidCircuitAndTransportTest));
+ testMap.insert(std::make_pair("ExpandedLungsCardiovascularCircuitAndTransportTest", &EngineTest::ExpandedLungsCardiovascularCircuitAndTransportTest));
testMap.insert(std::make_pair("FullCardiovascularCircuitAndTransportTest", &EngineTest::FullCardiovascularCircuitAndTransportTest));
- testMap.insert(std::make_pair("CardiovascularBloodGasesTest", cardioBGTest));
- testMap.insert(std::make_pair("TuneCardiovascularCircuitTest", cardioTuneCircuitTest));
+ testMap.insert(std::make_pair("ExpandedLungsFullCardiovascularCircuitAndTransportTest", &EngineTest::ExpandedLungsFullCardiovascularCircuitAndTransportTest));
+ testMap.insert(std::make_pair("CardiovascularBloodGasesTest", &EngineTest::CardiovascularBloodGasesTest));
+ testMap.insert(std::make_pair("ExpandedLungsCardiovascularBloodGasesTest", &EngineTest::ExpandedLungsCardiovascularBloodGasesTest));
+ testMap.insert(std::make_pair("TuneCardiovascularCircuitTest", (testFunction) & EngineTest::TuneCardiovascularCircuitTest));
testMap.insert(std::make_pair("CardiovascularCircuitScaleTests", &EngineTest::CardiovascularCircuitScaleTests));
testMap.insert(std::make_pair("RenalCircuitAndTransportTest", &EngineTest::RenalCircuitAndTransportTest));
@@ -88,18 +82,23 @@ namespace pulse { namespace human_adult_whole_body
testMap.insert(std::make_pair("RenalSecretionTest", &EngineTest::RenalSecretionTest));
testMap.insert(std::make_pair("RenalUrinateTest", &EngineTest::RenalUrinateTest));
- testMap.insert(std::make_pair("RespiratoryCircuitAndTransportTest", respCTTest));
+ testMap.insert(std::make_pair("RespiratoryCircuitAndTransportTest", (testFunction) & EngineTest::RespiratoryCircuitAndTransportTest));
+ testMap.insert(std::make_pair("ExpandedLungsRespiratoryCircuitAndTransportTest", &EngineTest::ExpandedLungsRespiratoryCircuitAndTransportTest));
testMap.insert(std::make_pair("RespiratoryDriverTest", &EngineTest::RespiratoryDriverTest));
- testMap.insert(std::make_pair("AnesthesiaMachineCircuitAndTransportTest", anesthCTTest));
+ testMap.insert(std::make_pair("AnesthesiaMachineCircuitAndTransportTest", (testFunction) & EngineTest::AnesthesiaMachineCircuitAndTransportTest));
testMap.insert(std::make_pair("RespiratoryWithAnesthesiaMachineCircuitAndTransportTest", &EngineTest::RespiratoryWithAnesthesiaMachineCircuitAndTransportTest));
+ testMap.insert(std::make_pair("ExpandedLungsRespiratoryWithAnesthesiaMachineCircuitAndTransportTest", &EngineTest::ExpandedLungsRespiratoryWithAnesthesiaMachineCircuitAndTransportTest));
- testMap.insert(std::make_pair("MechanicalVentilatorCircuitAndTransportTest", ventCTTest));
+ testMap.insert(std::make_pair("MechanicalVentilatorCircuitAndTransportTest", (testFunction) & EngineTest::MechanicalVentilatorCircuitAndTransportTest));
testMap.insert(std::make_pair("RespiratoryWithMechanicalVentilatorCircuitAndTransportTest", &EngineTest::RespiratoryWithMechanicalVentilatorCircuitAndTransportTest));
+ testMap.insert(std::make_pair("ExpandedLungsRespiratoryWithMechanicalVentilatorCircuitAndTransportTest", &EngineTest::ExpandedLungsRespiratoryWithMechanicalVentilatorCircuitAndTransportTest));
testMap.insert(std::make_pair("RespiratoryWithInhalerCircuitAndTransportTest", &EngineTest::RespiratoryWithInhalerCircuitAndTransportTest));
+ testMap.insert(std::make_pair("ExpandedLungsRespiratoryWithInhalerCircuitAndTransportTest", &EngineTest::ExpandedLungsRespiratoryWithInhalerCircuitAndTransportTest));
testMap.insert(std::make_pair("RespiratoryWithMechanicalVentilationCircuitAndTransportTest", &EngineTest::RespiratoryWithMechanicalVentilationCircuitAndTransportTest));
+ testMap.insert(std::make_pair("ExpandedLungsRespiratoryWithMechanicalVentilationCircuitAndTransportTest", &EngineTest::ExpandedLungsRespiratoryWithMechanicalVentilationCircuitAndTransportTest));
testMap.insert(std::make_pair("InternalTemperatureVariableBMRCircuitTest", &EngineTest::InternalTemperatureVariableBMRCircuitTest));
testMap.insert(std::make_pair("InternalTemperatureVariableSkinCircuitTest", &EngineTest::InternalTemperatureVariableSkinCircuitTest));
diff --git a/src/cpp/engine/human_adult/whole_body/test/EngineTest.h b/src/cpp/engine/human_adult/whole_body/test/EngineTest.h
index 9534ac5aab7968bc43f3d6c7c5de07514f23e176..d62c4e7177310515eb26dd50a69f72639838bc7d 100644
--- a/src/cpp/engine/human_adult/whole_body/test/EngineTest.h
+++ b/src/cpp/engine/human_adult/whole_body/test/EngineTest.h
@@ -38,17 +38,23 @@ namespace pulse { namespace human_adult_whole_body
void CardiovascularAndRenalCircuitAndTransportTest(const std::string& sTestDirectory);
void CardiovascularAndTissueCircuitAndTransportTest(const std::string& sTestDirectory);
void CardiovascularAndCerebrospinalFluidCircuitAndTransportTest(const std::string& sTestDirectory);
+ void ExpandedLungsCardiovascularCircuitAndTransportTest(const std::string& sTestDirectory);
void FullCardiovascularCircuitAndTransportTest(const std::string& sTestDirectory);
- void CardiovascularBloodGasesTest(const std::string& sTestDirectory);// Characterize the cv circuit
- void TuneCardiovascularCircuitTest(const std::string& sTestDirectory);
+ void ExpandedLungsFullCardiovascularCircuitAndTransportTest(const std::string& sTestDirectory);
+ void CardiovascularBloodGasesTest(const std::string& sTestDirectory);// Everything with Saturation
+ void ExpandedLungsCardiovascularBloodGasesTest(const std::string& sTestDirectory);// Everything with Saturation
// Cardiovascular Utilities //
+ void TuneCardiovascularCircuitTest(const std::string& sTestDirectory);
void CardiovascularCircuitScaleTests(const std::string& sTestDirectory);
protected:
enum CardiovascularDriver { Sinusoid = 0, Heart };
+ enum Expanded { None=0, Vasculature, Respiratory }; // Vasculature expansion defined by ComputationalLife
void SinusoidHeartDriver(double time_s, double heartRate_s, double& lHeartElastance, double& rHeartElastance);
- void CardiovascularCircuitAndTransportTest(CardiovascularDriver driverType, double complianceScale, double resistanceScale, double volumeScale, double heartRate_bpm,
- double sysRes, double sysComp, double aortaRes, double aortaComp, double rightHeartRes, double venaCavaComp, bool connectTissue, bool connectRenal, bool connectCSF,
- bool balanceBloodgases, const std::string& sTestDirectory, const std::string& sTestName, bool breakOutResults);
+ void CardiovascularCircuitAndTransportTest(CardiovascularDriver driverType,
+ double complianceScale, double resistanceScale, double volumeScale, double heartRate_bpm,
+ double sysRes, double sysComp, double aortaRes, double aortaComp, double rightHeartRes, double venaCavaComp,
+ bool balanceBloodGases, bool connectCSF, bool connectTissue, bool expandedKidneys, bool expandedLungs,
+ const std::string& sTestDirectory, const std::string& sTestName, bool breakOutResults);
void TuneCardiovascularCircuitTest(SETestSuite& testSuite, const std::string& sTestDirectory, const std::string& sTestName, SEPatient& patient);
double m_MeanAortaPressure;
@@ -78,11 +84,23 @@ namespace pulse { namespace human_adult_whole_body
// Respiratory //
/////////////////
void RespiratoryCircuitAndTransportTest(const std::string& sTestDirectory);
+ void ExpandedLungsRespiratoryCircuitAndTransportTest(const std::string& sTestDirectory);
void RespiratoryDriverTest(const std::string& sTestDirectory);
protected:
- enum RespiratoryConfiguration { RespiratorySolo, AnesthesiaMachineSolo, RespiratoryWithAnesthesiaMachine, RespiratoryWithInhaler, RespiratoryWithMechanicalVentilation, MechanicalVentilatorSolo, RespiratoryWithMechanicalVentilator
+ enum RespiratoryConfiguration { RespiratorySolo,
+ ExpandedLungsRespiratorySolo,
+ AnesthesiaMachineSolo,
+ RespiratoryWithAnesthesiaMachine,
+ ExpandedLungsRespiratoryWithAnesthesiaMachine,
+ RespiratoryWithInhaler,
+ ExpandedLungsRespiratoryWithInhaler,
+ RespiratoryWithMechanicalVentilation,
+ ExpandedLungsRespiratoryWithMechanicalVentilation,
+ MechanicalVentilatorSolo,
+ RespiratoryWithMechanicalVentilator,
+ ExpandedLungsRespiratoryWithMechanicalVentilator
};
- void RespiratoryCircuitAndTransportTest(RespiratoryConfiguration config, const std::string& sTestDirectory);
+ void RespiratoryCircuitAndTransportTest(RespiratoryConfiguration config, bool expandedLungs, const std::string& sTestDirectory);
public:
////////////////////////
@@ -90,8 +108,17 @@ namespace pulse { namespace human_adult_whole_body
////////////////////////
void AnesthesiaMachineCircuitAndTransportTest(const std::string& sTestDirectory);
void RespiratoryWithAnesthesiaMachineCircuitAndTransportTest(const std::string& sTestDirectory);
+ void ExpandedLungsRespiratoryWithAnesthesiaMachineCircuitAndTransportTest(const std::string& sTestDirectory);
+ protected:
+ void AnesthesiaMachineCircuitAndTransportTest(RespiratoryConfiguration config, bool expandedLungs, const std::string& sTestDirectory);
+
+ public:
+ /////////////
+ // Inhaler //
+ /////////////
+ void RespiratoryWithInhalerCircuitAndTransportTest(const std::string& sTestDirectory);
+ void ExpandedLungsRespiratoryWithInhalerCircuitAndTransportTest(const std::string& sTestDirectory);
protected:
- void AnesthesiaMachineCircuitAndTransportTest(RespiratoryConfiguration config, const std::string& sTestDirectory);
public:
///////////////////////////
@@ -99,21 +126,16 @@ namespace pulse { namespace human_adult_whole_body
///////////////////////////
void MechanicalVentilatorCircuitAndTransportTest(const std::string& sTestDirectory);
void RespiratoryWithMechanicalVentilatorCircuitAndTransportTest(const std::string& sTestDirectory);
+ void ExpandedLungsRespiratoryWithMechanicalVentilatorCircuitAndTransportTest(const std::string& sTestDirectory);
protected:
- void MechanicalVentilatorCircuitAndTransportTest(RespiratoryConfiguration config, const std::string& sTestDirectory);
-
- public:
- /////////////
- // Inhaler //
- /////////////
- void RespiratoryWithInhalerCircuitAndTransportTest(const std::string& sTestDirectory);
- protected:
+ void MechanicalVentilatorCircuitAndTransportTest(RespiratoryConfiguration config, bool expandedLungs, const std::string& sTestDirectory);
public:
////////////////////////////
// Mechanical Ventilation //
////////////////////////////
void RespiratoryWithMechanicalVentilationCircuitAndTransportTest(const std::string& sTestDirectory);
+ void ExpandedLungsRespiratoryWithMechanicalVentilationCircuitAndTransportTest(const std::string& sTestDirectory);
protected:
public:
diff --git a/src/cpp/engine/human_adult/whole_body/test/FourCompartmentTest.cpp b/src/cpp/engine/human_adult/whole_body/test/FourCompartmentTest.cpp
index aa60dfa9cd071e2effae54bfa4d9ad0a4436fad1..c483e6c5d711ef7e5fd725789954e4baa6b36357 100644
--- a/src/cpp/engine/human_adult/whole_body/test/FourCompartmentTest.cpp
+++ b/src/cpp/engine/human_adult/whole_body/test/FourCompartmentTest.cpp
@@ -95,7 +95,7 @@ namespace pulse { namespace human_adult_whole_body
subMgr.LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &subMgr);
- pc.m_Config->EnableRenal(eSwitch::Off);
+ pc.m_Config->UseExpandedKidneys(eSwitch::Off);
pc.m_Config->EnableTissue(eSwitch::Off);
pc.CreateCircuitsAndCompartments();
subMgr.InitializeGasCompartments();
diff --git a/src/cpp/engine/human_adult/whole_body/test/MechanicalVentilatorCircuit.cpp b/src/cpp/engine/human_adult/whole_body/test/MechanicalVentilatorCircuit.cpp
index 614efa4805d31273e9aa6714a4d2681701986387..eb359b898920967adf66902cefa7f58c77907406 100644
--- a/src/cpp/engine/human_adult/whole_body/test/MechanicalVentilatorCircuit.cpp
+++ b/src/cpp/engine/human_adult/whole_body/test/MechanicalVentilatorCircuit.cpp
@@ -38,7 +38,7 @@ namespace pulse { namespace human_adult_whole_body
/// and variable values for the circuit elements.The outputs are the resultant flows and pressures
/// on the circuit nodes and paths. These are then stored in a file in sTestDirectory
//--------------------------------------------------------------------------------------------------
- void EngineTest::MechanicalVentilatorCircuitAndTransportTest(RespiratoryConfiguration config, const std::string& sTestDirectory)
+ void EngineTest::MechanicalVentilatorCircuitAndTransportTest(RespiratoryConfiguration config, bool expandedLungs, const std::string& sTestDirectory)
{
TimingProfile tmr;
tmr.Start("Test");
@@ -47,17 +47,19 @@ namespace pulse { namespace human_adult_whole_body
DataTrack outTrkGraph;
std::ofstream fileCircuit;
std::ofstream fileGraph;
+ std::string prefix = expandedLungs ? "ExpandedLungs" : "";
Engine pe;
Controller& pc = (Controller&)pe.GetController();
- pc.GetLogger()->SetLogFile(sTestDirectory + "/MechanicalVentilatorCircuitAndTransportTest.log");
+ pc.GetLogger()->SetLogFile(sTestDirectory + "/"+prefix+"MechanicalVentilatorCircuitAndTransportTest.log");
SEPatient patient(pc.GetLogger());
patient.SerializeFromFile("./patients/StandardMale.json");
pc.SetupPatient(patient);
pc.GetSubstances().LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &pc.GetSubstances());
- pc.m_Config->EnableRenal(eSwitch::Off);
+ pc.m_Config->UseExpandedLungs(expandedLungs ? eSwitch::On : eSwitch::Off);
+ pc.m_Config->UseExpandedKidneys(eSwitch::Off);
pc.m_Config->EnableTissue(eSwitch::Off);
pc.CreateCircuitsAndCompartments();
SEEnvironmentalConditions env(pc.GetLogger());
@@ -84,8 +86,8 @@ namespace pulse { namespace human_adult_whole_body
{
mvCircuit = &pc.GetCircuits().GetMechanicalVentilatorCircuit();
mvGraph = &pc.GetCompartments().GetMechanicalVentilatorGraph();
- sCircuitFileName = "/MechanicalVentilatorCircuitOutput.csv";
- sTransportFileName = "/MechanicalVentilatorTransportOutput.csv";
+ sCircuitFileName = "/"+prefix+"MechanicalVentilatorCircuitOutput.csv";
+ sTransportFileName = "/"+prefix+"MechanicalVentilatorTransportOutput.csv";
//Allow things to flow to ground, since the respiratory circuit isn't here
//This approximates the total respiratory system resistance
@@ -94,14 +96,14 @@ namespace pulse { namespace human_adult_whole_body
MechanicalVentilatorConnectionToEnvironment->GetPressureSourceBaseline().SetValue(0.1, PressureUnit::cmH2O);
MechanicalVentilatorConnectionToEnvironment->GetNextPressureSource().SetValue(0.1, PressureUnit::cmH2O);
}
- else if (config == RespiratoryWithMechanicalVentilator)
+ else if (config == RespiratoryWithMechanicalVentilator || config == ExpandedLungsRespiratoryWithMechanicalVentilator)
{
pc.GetSubstances().InitializeGasCompartments();
mvCircuit = &pc.GetCircuits().GetRespiratoryAndMechanicalVentilatorCircuit();
mvGraph = &pc.GetCompartments().GetRespiratoryAndMechanicalVentilatorGraph();
- sCircuitFileName = "/RespiratoryAndMechanicalVentilatorCircuitOutput.csv";
- sTransportFileName = "/RespiratoryAndMechanicalVentilatorTransportOutput.csv";
+ sCircuitFileName = "/"+prefix+"RespiratoryAndMechanicalVentilatorCircuitOutput.csv";
+ sTransportFileName = "/"+prefix+"RespiratoryAndMechanicalVentilatorTransportOutput.csv";
//Precharge the stomach to prevent negative volume
mvCircuit->GetNode(pulse::RespiratoryNode::Stomach)->GetNextPressure().Set(env.GetAtmosphericPressure());
@@ -169,11 +171,16 @@ namespace pulse { namespace human_adult_whole_body
void EngineTest::MechanicalVentilatorCircuitAndTransportTest(const std::string& sTestDirectory)
{
- MechanicalVentilatorCircuitAndTransportTest(MechanicalVentilatorSolo, sTestDirectory);
+ MechanicalVentilatorCircuitAndTransportTest(MechanicalVentilatorSolo, false, sTestDirectory);
}
void EngineTest::RespiratoryWithMechanicalVentilatorCircuitAndTransportTest(const std::string& sTestDirectory)
{
- MechanicalVentilatorCircuitAndTransportTest(RespiratoryWithMechanicalVentilator, sTestDirectory);
+ MechanicalVentilatorCircuitAndTransportTest(RespiratoryWithMechanicalVentilator, false, sTestDirectory);
+ }
+
+ void EngineTest::ExpandedLungsRespiratoryWithMechanicalVentilatorCircuitAndTransportTest(const std::string& sTestDirectory)
+ {
+ MechanicalVentilatorCircuitAndTransportTest(ExpandedLungsRespiratoryWithMechanicalVentilator, true, sTestDirectory);
}
END_NAMESPACE_EX
diff --git a/src/cpp/engine/human_adult/whole_body/test/NervousTests.cpp b/src/cpp/engine/human_adult/whole_body/test/NervousTests.cpp
index 9fca6316b57e2cc1b962aca06046dd297b3d4c34..6b051dbf7383e1e0ea1c2a080f67fa1dee1446bd 100644
--- a/src/cpp/engine/human_adult/whole_body/test/NervousTests.cpp
+++ b/src/cpp/engine/human_adult/whole_body/test/NervousTests.cpp
@@ -79,7 +79,7 @@ namespace pulse { namespace human_adult_whole_body
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &pc.GetSubstances());
//Renal and Tissue are on
- pc.m_Config->EnableRenal(eSwitch::On);
+ pc.m_Config->UseExpandedKidneys(eSwitch::On);
pc.m_Config->EnableTissue(eSwitch::On);
pc.CreateCircuitsAndCompartments();
diff --git a/src/cpp/engine/human_adult/whole_body/test/RenalCircuit.cpp b/src/cpp/engine/human_adult/whole_body/test/RenalCircuit.cpp
index 4cb625a7757503d37404579106650df939846de5..6edd836c217747c595bf26cbc065b032b5ea540d 100644
--- a/src/cpp/engine/human_adult/whole_body/test/RenalCircuit.cpp
+++ b/src/cpp/engine/human_adult/whole_body/test/RenalCircuit.cpp
@@ -56,7 +56,7 @@ namespace pulse { namespace human_adult_whole_body
subMgr.LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &subMgr);
- pc.m_Config->EnableRenal(eSwitch::On);
+ pc.m_Config->UseExpandedKidneys(eSwitch::On);
pc.m_Config->EnableTissue(eSwitch::Off);
pc.CreateCircuitsAndCompartments();
// Renal needs these tissue compartments
@@ -189,7 +189,7 @@ namespace pulse { namespace human_adult_whole_body
subMgr.LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &subMgr);
- pc.m_Config->EnableRenal(eSwitch::On);
+ pc.m_Config->UseExpandedKidneys(eSwitch::On);
pc.m_Config->EnableTissue(eSwitch::Off);
pc.CreateCircuitsAndCompartments();
// Renal needs these tissue compartments
@@ -505,7 +505,7 @@ namespace pulse { namespace human_adult_whole_body
subMgr.LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &subMgr);
- pc.m_Config->EnableRenal(eSwitch::On);
+ pc.m_Config->UseExpandedKidneys(eSwitch::On);
pc.m_Config->EnableTissue(eSwitch::Off);
pc.CreateCircuitsAndCompartments();
// Renal needs these tissue compartments
diff --git a/src/cpp/engine/human_adult/whole_body/test/RespiratoryCircuit.cpp b/src/cpp/engine/human_adult/whole_body/test/RespiratoryCircuit.cpp
index 826459c8d94b659377b8d697451e7c8525187c47..dcc8a67bab736c8bb45e82edbe665f58c51ec13c 100644
--- a/src/cpp/engine/human_adult/whole_body/test/RespiratoryCircuit.cpp
+++ b/src/cpp/engine/human_adult/whole_body/test/RespiratoryCircuit.cpp
@@ -32,7 +32,7 @@
namespace pulse { namespace human_adult_whole_body
{
- void EngineTest::RespiratoryCircuitAndTransportTest(RespiratoryConfiguration config, const std::string & sTestDirectory)
+ void EngineTest::RespiratoryCircuitAndTransportTest(RespiratoryConfiguration config, bool expandedLungs, const std::string & sTestDirectory)
{
TimingProfile tmr;
tmr.Start("Test");
@@ -43,18 +43,20 @@ namespace pulse { namespace human_adult_whole_body
std::ofstream fileCircuit;
std::ofstream fileGraph;
std::ofstream fAerosolGraph;
+ std::string prefix = expandedLungs ? "ExpandedLungs" :"";
Engine pe;
Controller& pc = (Controller&)pe.GetController();
- pc.GetLogger()->SetLogFile(sTestDirectory + "/RespiratoryCircuitAndTransportTest.log");
+ pc.GetLogger()->SetLogFile(sTestDirectory + "/"+prefix+"RespiratoryCircuitAndTransportTest.log");
SEPatient patient(pc.GetLogger());
patient.SerializeFromFile("./patients/StandardMale.json");
pc.SetupPatient(patient);
pc.GetSubstances().LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &pc.GetSubstances());
- pc.m_Config->EnableRenal(eSwitch::Off);
pc.m_Config->EnableTissue(eSwitch::Off);
+ pc.m_Config->UseExpandedKidneys(eSwitch::Off);
+ pc.m_Config->UseExpandedLungs(expandedLungs ? eSwitch::On : eSwitch::Off);
pc.CreateCircuitsAndCompartments();
pc.GetSubstances().InitializeGasCompartments();
SEEnvironmentalConditions& env = pc.GetEnvironment().GetEnvironmentalConditions();
@@ -65,23 +67,23 @@ namespace pulse { namespace human_adult_whole_body
std::string sCircuitFileName;
std::string sTransportFileName;
std::string sAerosolTxptFileName;
- if (config == RespiratorySolo)
+ if (config == RespiratorySolo || config == ExpandedLungsRespiratorySolo)
{
rCircuit = &pc.GetCircuits().GetRespiratoryCircuit();
rGraph = &pc.GetCompartments().GetRespiratoryGraph();
aGraph = nullptr;
- sCircuitFileName = "/RespiratoryCircuitOutput.csv";
- sTransportFileName = "/RespiratoryTransportOutput.csv";
+ sCircuitFileName = "/"+prefix+"RespiratoryCircuitOutput.csv";
+ sTransportFileName = "/" + prefix + "RespiratoryTransportOutput.csv";
sAerosolTxptFileName = "";
}
- else if (config == RespiratoryWithInhaler)
+ else if (config == RespiratoryWithInhaler || config == ExpandedLungsRespiratoryWithInhaler)
{
rCircuit = &pc.GetCircuits().GetRespiratoryAndInhalerCircuit();
rGraph = &pc.GetCompartments().GetRespiratoryAndInhalerGraph();
aGraph = &pc.GetCompartments().GetAerosolAndInhalerGraph();
- sCircuitFileName = "/RespiratoryAndInhalerCircuitOutput.csv";
- sTransportFileName = "/RespiratoryAndInhalerTransportOutput.csv";
- sAerosolTxptFileName = "/AerosolInhalerTransportOutput.csv";
+ sCircuitFileName = "/"+prefix+"RespiratoryAndInhalerCircuitOutput.csv";
+ sTransportFileName = "/"+prefix+"RespiratoryAndInhalerTransportOutput.csv";
+ sAerosolTxptFileName = "/"+prefix+"AerosolInhalerTransportOutput.csv";
// Get an aerosolized substance
SESubstance* albuterol = pc.GetSubstances().GetSubstance("Albuterol");
@@ -97,14 +99,14 @@ namespace pulse { namespace human_adult_whole_body
mouthpiece->Balance(BalanceLiquidBy::Mass);
}
}
- else if (config == RespiratoryWithMechanicalVentilation)
+ else if (config == RespiratoryWithMechanicalVentilation || config == ExpandedLungsRespiratoryWithMechanicalVentilation)
{
rCircuit = &pc.GetCircuits().GetRespiratoryAndMechanicalVentilationCircuit();
rGraph = &pc.GetCompartments().GetRespiratoryAndMechanicalVentilationGraph();
aGraph = &pc.GetCompartments().GetAerosolAndMechanicalVentilationGraph();
- sCircuitFileName = "/RespiratoryAndMechanicalVentilationCircuitOutput.csv";
- sTransportFileName = "/RespiratoryAndMechanicalVentilationTransportOutput.csv";
- sAerosolTxptFileName = "/AerosolMechanicalVentilationTransportOutput.csv";
+ sCircuitFileName = "/"+prefix+"RespiratoryAndMechanicalVentilationCircuitOutput.csv";
+ sTransportFileName = "/"+prefix+"RespiratoryAndMechanicalVentilationTransportOutput.csv";
+ sAerosolTxptFileName = "/"+prefix+"AerosolMechanicalVentilationTransportOutput.csv";
// Get an aerosolized substance
SESubstance* albuterol = pc.GetSubstances().GetSubstance("Albuterol");
@@ -194,17 +196,32 @@ namespace pulse { namespace human_adult_whole_body
void EngineTest::RespiratoryCircuitAndTransportTest(const std::string & sTestDirectory)
{
- RespiratoryCircuitAndTransportTest(RespiratorySolo, sTestDirectory);
+ RespiratoryCircuitAndTransportTest(RespiratorySolo, false, sTestDirectory);
+ }
+
+ void EngineTest::ExpandedLungsRespiratoryCircuitAndTransportTest(const std::string& sTestDirectory)
+ {
+ RespiratoryCircuitAndTransportTest(ExpandedLungsRespiratorySolo, true, sTestDirectory);
}
void EngineTest::RespiratoryWithInhalerCircuitAndTransportTest(const std::string & sTestDirectory)
{
- RespiratoryCircuitAndTransportTest(RespiratoryWithInhaler, sTestDirectory);
+ RespiratoryCircuitAndTransportTest(RespiratoryWithInhaler, false, sTestDirectory);
+ }
+
+ void EngineTest::ExpandedLungsRespiratoryWithInhalerCircuitAndTransportTest(const std::string& sTestDirectory)
+ {
+ RespiratoryCircuitAndTransportTest(ExpandedLungsRespiratoryWithInhaler, true, sTestDirectory);
}
void EngineTest::RespiratoryWithMechanicalVentilationCircuitAndTransportTest(const std::string & sTestDirectory)
{
- RespiratoryCircuitAndTransportTest(RespiratoryWithMechanicalVentilation, sTestDirectory);
+ RespiratoryCircuitAndTransportTest(RespiratoryWithMechanicalVentilation, false, sTestDirectory);
+ }
+
+ void EngineTest::ExpandedLungsRespiratoryWithMechanicalVentilationCircuitAndTransportTest(const std::string& sTestDirectory)
+ {
+ RespiratoryCircuitAndTransportTest(ExpandedLungsRespiratoryWithMechanicalVentilation, true, sTestDirectory);
}
void EngineTest::RespiratoryDriverTest(const std::string & sTestDirectory)
@@ -220,7 +237,7 @@ namespace pulse { namespace human_adult_whole_body
pc.GetSubstances().LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &pc.GetSubstances());
- pc.m_Config->EnableRenal(eSwitch::Off);
+ pc.m_Config->UseExpandedKidneys(eSwitch::Off);
pc.m_Config->EnableTissue(eSwitch::Off);
pc.CreateCircuitsAndCompartments();
SEEnvironmentalConditions env(pc.GetLogger());
diff --git a/src/cpp/engine/human_adult/whole_body/test/SolverTests.cpp b/src/cpp/engine/human_adult/whole_body/test/SolverTests.cpp
index c855486d69f2e67e4be9d8ba19f1f64e350b006f..c60ec05126a185bd9e8857f8095909bb75fcced7 100644
--- a/src/cpp/engine/human_adult/whole_body/test/SolverTests.cpp
+++ b/src/cpp/engine/human_adult/whole_body/test/SolverTests.cpp
@@ -56,7 +56,7 @@ namespace pulse { namespace human_adult_whole_body
pc.GetSubstances().LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &pc.GetSubstances());
- pc.m_Config->EnableRenal(eSwitch::On);
+ pc.m_Config->UseExpandedKidneys(eSwitch::On);
pc.m_Config->EnableTissue(eSwitch::On);
pc.CreateCircuitsAndCompartments();
diff --git a/src/cpp/engine/human_adult/whole_body/test/TemperatureCircuit.cpp b/src/cpp/engine/human_adult/whole_body/test/TemperatureCircuit.cpp
index f307473a5d3d9cf2e79b77c848630e47b5ece123..41b6400b6306a5084642ca453f5d3bb8eb95f05d 100644
--- a/src/cpp/engine/human_adult/whole_body/test/TemperatureCircuit.cpp
+++ b/src/cpp/engine/human_adult/whole_body/test/TemperatureCircuit.cpp
@@ -50,7 +50,7 @@ namespace pulse { namespace human_adult_whole_body
pc.GetSubstances().LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &pc.GetSubstances());
- pc.m_Config->EnableRenal(eSwitch::Off);
+ pc.m_Config->UseExpandedKidneys(eSwitch::Off);
pc.m_Config->EnableTissue(eSwitch::Off);
pc.CreateCircuitsAndCompartments();
@@ -130,7 +130,7 @@ namespace pulse { namespace human_adult_whole_body
pc.GetSubstances().LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &pc.GetSubstances());
- pc.m_Config->EnableRenal(eSwitch::Off);
+ pc.m_Config->UseExpandedKidneys(eSwitch::Off);
pc.m_Config->EnableTissue(eSwitch::Off);
pc.CreateCircuitsAndCompartments();
@@ -233,7 +233,7 @@ namespace pulse { namespace human_adult_whole_body
pc.GetSubstances().LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &pc.GetSubstances());
- pc.m_Config->EnableRenal(eSwitch::Off);
+ pc.m_Config->UseExpandedKidneys(eSwitch::Off);
pc.m_Config->EnableTissue(eSwitch::Off);
pc.CreateCircuitsAndCompartments();
@@ -335,7 +335,7 @@ namespace pulse { namespace human_adult_whole_body
pc.GetSubstances().LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &pc.GetSubstances());
- pc.m_Config->EnableRenal(eSwitch::Off);
+ pc.m_Config->UseExpandedKidneys(eSwitch::Off);
pc.m_Config->EnableTissue(eSwitch::Off);
pc.CreateCircuitsAndCompartments();
@@ -465,7 +465,7 @@ namespace pulse { namespace human_adult_whole_body
pc.GetSubstances().LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &pc.GetSubstances());
- pc.m_Config->EnableRenal(eSwitch::Off);
+ pc.m_Config->UseExpandedKidneys(eSwitch::Off);
pc.m_Config->EnableTissue(eSwitch::Off);
pc.CreateCircuitsAndCompartments();
@@ -625,7 +625,7 @@ namespace pulse { namespace human_adult_whole_body
pc.GetSubstances().LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &pc.GetSubstances());
- pc.m_Config->EnableRenal(eSwitch::Off);
+ pc.m_Config->UseExpandedKidneys(eSwitch::Off);
pc.m_Config->EnableTissue(eSwitch::Off);
pc.CreateCircuitsAndCompartments();
@@ -725,7 +725,7 @@ namespace pulse { namespace human_adult_whole_body
pc.GetSubstances().LoadSubstanceDirectory("./");
pc.GetSaturationCalculator().Setup();
pc.m_Config->Initialize("./", &pc.GetSubstances());
- pc.m_Config->EnableRenal(eSwitch::Off);
+ pc.m_Config->UseExpandedKidneys(eSwitch::Off);
pc.m_Config->EnableTissue(eSwitch::Off);
pc.CreateCircuitsAndCompartments();
EnvironmentModel& env = (EnvironmentModel&)pc.GetEnvironment();
diff --git a/src/cpp/engine/io/protobuf/PBConfiguration.cpp b/src/cpp/engine/io/protobuf/PBConfiguration.cpp
index 78801e1791e39ef333864badcac2d6a36661d9a4..d4f2e5fd94e7a687eb7122f0d7a22cb767f7fa3a 100644
--- a/src/cpp/engine/io/protobuf/PBConfiguration.cpp
+++ b/src/cpp/engine/io/protobuf/PBConfiguration.cpp
@@ -78,6 +78,8 @@ namespace pulse
if (src.has_cardiovascularconfiguration())
{
const PULSE_BIND::ConfigurationData_CardiovascularConfigurationData& config = src.cardiovascularconfiguration();
+ if (config.computationallifeexpansion() != CDM_BIND::eSwitch::NullSwitch)
+ dst.UseComputationalLifeExpansion((eSwitch)config.computationallifeexpansion());
if (config.has_leftheartelastancemaximum())
PBProperty::Load(config.leftheartelastancemaximum(), dst.GetLeftHeartElastanceMaximum());
if (config.has_leftheartelastanceminimum())
@@ -90,8 +92,6 @@ namespace pulse
PBProperty::Load(config.rightheartelastanceminimum(), dst.GetRightHeartElastanceMinimum());
if (config.has_standardpulmonarycapillarycoverage())
PBProperty::Load(config.standardpulmonarycapillarycoverage(), dst.GetStandardPulmonaryCapillaryCoverage());
- if (config.useexpandedvasculature() != CDM_BIND::eSwitch::NullSwitch)
- dst.UseExpandedVasculature((eSwitch)config.useexpandedvasculature());
if (config.tunecardiovascularcircuit() != CDM_BIND::eSwitch::NullSwitch)
dst.TuneCardiovascularCircuit((eSwitch)config.tunecardiovascularcircuit());
dst.CardiovascularTuningFile(config.cardiovasculartuningfile());
@@ -288,8 +288,8 @@ namespace pulse
{
const PULSE_BIND::ConfigurationData_RenalConfigurationData& config = src.renalconfiguration();
- if (config.enablerenal() != CDM_BIND::eSwitch::NullSwitch)
- dst.EnableRenal((eSwitch)config.enablerenal());
+ if (config.expandedkidneys() != CDM_BIND::eSwitch::NullSwitch)
+ dst.UseExpandedKidneys((eSwitch)config.expandedkidneys());
if (config.has_plasmasodiumconcentrationsetpoint())
PBProperty::Load(config.plasmasodiumconcentrationsetpoint(), dst.GetPlasmaSodiumConcentrationSetPoint());
@@ -327,6 +327,8 @@ namespace pulse
if (src.has_respiratoryconfiguration())
{
const PULSE_BIND::ConfigurationData_RespiratoryConfigurationData& config = src.respiratoryconfiguration();
+ if (config.expandedlungs() != CDM_BIND::eSwitch::NullSwitch)
+ dst.UseExpandedLungs((eSwitch)config.expandedlungs());
if (config.has_centralcontrollerco2pressuresetpoint())
PBProperty::Load(config.centralcontrollerco2pressuresetpoint(), dst.GetCentralControllerCO2PressureSetPoint());
if (config.has_centralventilatorycontrollergain())
@@ -345,8 +347,6 @@ namespace pulse
PBProperty::Load(config.ventilationtidalvolumeintercept(), dst.GetVentilationTidalVolumeIntercept());
if (config.has_ventilatoryocclusionpressure())
PBProperty::Load(config.ventilatoryocclusionpressure(), dst.GetVentilatoryOcclusionPressure());
- if (config.useexpandedrespiratory() != CDM_BIND::eSwitch::NullSwitch)
- dst.UseExpandedRespiratory((eSwitch)config.useexpandedrespiratory());
}
// Tissue
@@ -402,6 +402,7 @@ namespace pulse
// Cardiovascular
PULSE_BIND::ConfigurationData_CardiovascularConfigurationData* cv = dst.mutable_cardiovascularconfiguration();
+ cv->set_computationallifeexpansion((CDM_BIND::eSwitch)src.m_UseComputationalLifeExpansion);
if (src.HasLeftHeartElastanceMaximum())
cv->set_allocated_leftheartelastancemaximum(PBProperty::Unload(*src.m_LeftHeartElastanceMaximum));
if (src.HasLeftHeartElastanceMinimum())
@@ -414,7 +415,6 @@ namespace pulse
cv->set_allocated_rightheartelastanceminimum(PBProperty::Unload(*src.m_RightHeartElastanceMinimum));
if (src.HasStandardPulmonaryCapillaryCoverage())
cv->set_allocated_standardpulmonarycapillarycoverage(PBProperty::Unload(*src.m_StandardPulmonaryCapillaryCoverage));
- cv->set_useexpandedvasculature((CDM_BIND::eSwitch)src.m_UseExpandedVasculature);
cv->set_tunecardiovascularcircuit((CDM_BIND::eSwitch)src.m_TuneCardiovascularCircuit);
cv->set_cardiovasculartuningfile(src.m_CardiovascularTuningFile);
@@ -554,7 +554,7 @@ namespace pulse
// Renal
PULSE_BIND::ConfigurationData_RenalConfigurationData* renal = dst.mutable_renalconfiguration();
- renal->set_enablerenal((CDM_BIND::eSwitch)src.m_RenalEnabled);
+ renal->set_expandedkidneys((CDM_BIND::eSwitch)src.m_UseExpandedKidneys);
if (src.HasPlasmaSodiumConcentrationSetPoint())
renal->set_allocated_plasmasodiumconcentrationsetpoint(PBProperty::Unload(*src.m_PlasmaSodiumConcentrationSetPoint));
if (src.HasPeritubularPotassiumConcentrationSetPoint())
@@ -585,6 +585,7 @@ namespace pulse
// Respiratory
PULSE_BIND::ConfigurationData_RespiratoryConfigurationData* resp = dst.mutable_respiratoryconfiguration();
+ resp->set_expandedlungs((CDM_BIND::eSwitch)src.m_UseExpandedLungs);
if (src.HasCentralControllerCO2PressureSetPoint())
resp->set_allocated_centralcontrollerco2pressuresetpoint(PBProperty::Unload(*src.m_CentralControllerCO2PressureSetPoint));
if (src.HasCentralVentilatoryControllerGain())
@@ -603,7 +604,6 @@ namespace pulse
resp->set_allocated_ventilationtidalvolumeintercept(PBProperty::Unload(*src.m_VentilationTidalVolumeIntercept));
if (src.HasVentilatoryOcclusionPressure())
resp->set_allocated_ventilatoryocclusionpressure(PBProperty::Unload(*src.m_VentilatoryOcclusionPressure));
- resp->set_useexpandedrespiratory((CDM_BIND::eSwitch)src.m_UseExpandedRespiratory);
// Tissue
PULSE_BIND::ConfigurationData_TissueConfigurationData* tissue = dst.mutable_tissueconfiguration();
diff --git a/src/cpp/howto/CMakeLists.txt b/src/cpp/howto/CMakeLists.txt
index e351de87f131783e354178984a4cf573ff54b8af..8227de264f307f52d340e88d8810504fed9ff395 100644
--- a/src/cpp/howto/CMakeLists.txt
+++ b/src/cpp/howto/CMakeLists.txt
@@ -21,6 +21,7 @@ add_executable_ex(HowToDriver
HowTo-EngineUse.cpp
HowTo-EnvironmentChange.cpp
HowTo-Exercise.cpp
+ HowTo-ExpandedRespiratory.cpp
HowTo-ExpandedVasculature.cpp
HowTo-Hemorrhage.cpp
HowTo-Hemothorax.cpp
diff --git a/src/cpp/howto/EngineHowTo.cpp b/src/cpp/howto/EngineHowTo.cpp
index 51ecab8e3f84f28c6b720c82aa1e6368ef8de1cc..ced75a9437cedf38c9f641a910d9ef731304eed6 100644
--- a/src/cpp/howto/EngineHowTo.cpp
+++ b/src/cpp/howto/EngineHowTo.cpp
@@ -14,7 +14,7 @@ int main()
//HowToSandbox();
- //HowToEngineUse();
+ HowToEngineUse();
//HowToCreateAPatient();
//HowToSerialize();
//HowToPulseEnginePool();
@@ -39,6 +39,8 @@ int main()
//HowToExercise();
//HowToHemorrhage();
//HowToIsoShuntAnalysis();
+ //HowToExpandedRespiratory();
+ //HowToExpandedRespiratoryAnalysis();
//HowToExpandedVasculature();
//HowToHemorrhage();
//HowToHemothorax();
diff --git a/src/cpp/howto/EngineHowTo.h b/src/cpp/howto/EngineHowTo.h
index 35bd85fcede86f4849f52a9f94c7526f0909f1f0..a3a91f2bcec02902d82937937acd87b937fb07e0 100644
--- a/src/cpp/howto/EngineHowTo.h
+++ b/src/cpp/howto/EngineHowTo.h
@@ -31,6 +31,8 @@ void HowToECMO();
void HowToDehydration();
void HowToEnvironmentChange();
void HowToExercise();
+void HowToExpandedRespiratory();
+void HowToExpandedRespiratoryAnalysis();
void HowToExpandedVasculature();
void HowToHemorrhage();
void HowToIsoShuntAnalysis();
diff --git a/src/cpp/howto/HowTo-ExpandedRespiratory.cpp b/src/cpp/howto/HowTo-ExpandedRespiratory.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a3a5badd8b57fc65a7eb9bde603de86ab71ab3d4
--- /dev/null
+++ b/src/cpp/howto/HowTo-ExpandedRespiratory.cpp
@@ -0,0 +1,708 @@
+/* Distributed under the Apache License, Version 2.0.
+ See accompanying NOTICE file for details.*/
+
+#include "EngineHowTo.h"
+#include "PulseEngine.h"
+#include "PulseConfiguration.h"
+#include "cdm/engine/SEPatientConfiguration.h"
+#include "cdm/engine/SEDataRequestManager.h"
+#include "cdm/engine/SEEngineTracker.h"
+#include "cdm/system/physiology/SEBloodChemistrySystem.h"
+#include "cdm/system/physiology/SECardiovascularSystem.h"
+#include "cdm/system/physiology/SERespiratorySystem.h"
+#include "cdm/patient/actions/SEPrimaryBlastLungInjury.h"
+#include "cdm/properties/SEScalar0To1.h"
+#include "cdm/properties/SEScalarFrequency.h"
+#include "cdm/properties/SEScalarMassPerVolume.h"
+#include "cdm/properties/SEScalarPressure.h"
+#include "cdm/properties/SEScalarTemperature.h"
+#include "cdm/properties/SEScalarTime.h"
+#include "cdm/properties/SEScalarVolume.h"
+#include "cdm/properties/SEScalarVolumePerTime.h"
+#include "cdm/properties/SEScalar0To1.h"
+#include "cdm/system/equipment/mechanical_ventilator/actions/SEMechanicalVentilatorPressureControl.h"
+#include "cdm/patient/actions/SEIntubation.h"
+#include "cdm/patient/actions/SEDyspnea.h"
+#include "cdm/engine/SEAdvanceUntilStable.h"
+#include "cdm/compartment/SECompartmentManager.h"
+#include "cdm/compartment/fluid/SEGasCompartment.h"
+#include "cdm/compartment/fluid/SELiquidCompartment.h"
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+
+void HowToExpandedRespiratory()
+{
+ std::unique_ptr pe = CreatePulseEngine();
+ pe->GetLogger()->LogToConsole(true);
+ pe->GetLogger()->SetLogFile("./test_results/howto/HowTo_ExpandedRespiratory.log");
+
+ PulseConfiguration config;
+ config.UseExpandedLungs(eSwitch::On);
+ pe->SetConfigurationOverride(&config);
+
+ pe->GetEngineTracker()->GetDataRequestManager().CreatePhysiologyDataRequest("HeartRate", FrequencyUnit::Per_min);
+ pe->GetEngineTracker()->GetDataRequestManager().CreatePhysiologyDataRequest("SystolicArterialPressure", PressureUnit::mmHg);
+ pe->GetEngineTracker()->GetDataRequestManager().CreatePhysiologyDataRequest("DiastolicArterialPressure", PressureUnit::mmHg);
+ pe->GetEngineTracker()->GetDataRequestManager().CreatePhysiologyDataRequest("MeanArterialPressure", PressureUnit::mmHg);
+ pe->GetEngineTracker()->GetDataRequestManager().CreatePhysiologyDataRequest("EndTidalCarbonDioxidePressure", PressureUnit::mmHg);
+ pe->GetEngineTracker()->GetDataRequestManager().CreatePhysiologyDataRequest("HorowitzIndex", PressureUnit::mmHg);
+ pe->GetEngineTracker()->GetDataRequestManager().CreatePhysiologyDataRequest("OxygenSaturation");
+ pe->GetEngineTracker()->GetDataRequestManager().CreatePhysiologyDataRequest("RespirationRate", FrequencyUnit::Per_min);
+ pe->GetEngineTracker()->GetDataRequestManager().CreatePhysiologyDataRequest("TidalVolume", VolumeUnit::mL);
+ pe->GetEngineTracker()->GetDataRequestManager().CreatePhysiologyDataRequest("TotalLungVolume", VolumeUnit::mL);
+ pe->GetEngineTracker()->GetDataRequestManager().CreatePhysiologyDataRequest("ArterialOxygenPressure", PressureUnit::mmHg);
+ pe->GetEngineTracker()->GetDataRequestManager().CreatePhysiologyDataRequest("ArterialCarbonDioxidePressure", PressureUnit::mmHg);
+ pe->GetEngineTracker()->GetDataRequestManager().CreateGasCompartmentDataRequest("LeftLungPulmonary", "Volume", VolumeUnit::mL);
+ pe->GetEngineTracker()->GetDataRequestManager().CreateGasCompartmentDataRequest("RightLungPulmonary", "Volume", VolumeUnit::L);
+ pe->GetEngineTracker()->GetDataRequestManager().SetResultsFilename("./test_results/howto/HowTo_ExpandedRespiratory.csv");
+
+ SEPatientConfiguration pc;
+ pc.SetPatientFile("./patients/StandardMale.json");
+
+ pe->InitializeEngine(pc);
+
+ // Get default data at time 0s from the engine
+ pe->AdvanceModelTime(0, TimeUnit::s);
+ pe->GetLogger()->Info("Default data retrieved");
+
+ pe->GetLogger()->Info("Initial data");
+ pe->GetLogger()->Info(std::stringstream() << "Tidal Volume : " << pe->GetRespiratorySystem()->GetTidalVolume(VolumeUnit::mL) << VolumeUnit::mL);
+ pe->GetLogger()->Info(std::stringstream() << "Heart Rate : " << pe->GetCardiovascularSystem()->GetHeartRate(FrequencyUnit::Per_min) << "bpm");
+ pe->GetLogger()->Info(std::stringstream() << "Respiration Rate : " << pe->GetRespiratorySystem()->GetRespirationRate(FrequencyUnit::Per_min) << "bpm");
+ pe->GetLogger()->Info(std::stringstream() << "Oxygen Saturation : " << pe->GetBloodChemistrySystem()->GetOxygenSaturation());
+ pe->GetLogger()->Info(std::stringstream() << "Mean Arterial Pressure : " << pe->GetCardiovascularSystem()->GetMeanArterialPressure(PressureUnit::mmHg) << PressureUnit::mmHg);
+ pe->GetLogger()->Info(std::stringstream() << "Horowitz Index : " << pe->GetRespiratorySystem()->GetHorowitzIndex(PressureUnit::mmHg) << PressureUnit::mmHg);
+ pe->GetLogger()->Info(std::stringstream() << "Total Lung Volume : " << pe->GetRespiratorySystem()->GetTotalLungVolume(VolumeUnit::mL) << VolumeUnit::mL);
+ pe->GetLogger()->Info(std::stringstream() << "Arterial Oxygen Pressure : " << pe->GetBloodChemistrySystem()->GetArterialOxygenPressure(PressureUnit::mmHg) << PressureUnit::mmHg);
+ pe->GetLogger()->Info(std::stringstream() << "Arterial Carbon Dioxide Pressure : " << pe->GetBloodChemistrySystem()->GetArterialCarbonDioxidePressure(PressureUnit::mmHg) << PressureUnit::mmHg);
+
+ // Apply the standalone UNDEX equation
+ pe->GetLogger()->Info("Charge information");
+ double chargeMass_lbs = 1000;
+ double chargeDistance_ft = 100; //635 ~= 0.1; 211 ~= 0.3; 70 ~= 0.9
+ double peakPressure = 13000 * pow(chargeMass_lbs, 0.33) / chargeDistance_ft;
+ double severity = 0.0005 * peakPressure;
+ severity = std::max(std::min(severity, 1.0), 0.0);
+
+ pe->GetLogger()->Info(std::stringstream() << "Charge Mass: " << chargeMass_lbs << " lbs");
+ pe->GetLogger()->Info(std::stringstream() << "Charge Distance: " << chargeDistance_ft << " ft");
+ pe->GetLogger()->Info(std::stringstream() << "Peak Pressure: " << peakPressure << " mmHg");
+ pe->GetLogger()->Info(std::stringstream() << "Severity: " << severity);
+
+ pe->AdvanceModelTime(30, TimeUnit::s);
+ pe->GetLogger()->Info("Data after 30s");
+
+ SEPrimaryBlastLungInjury pbli;
+ pbli.GetSeverity(eLungCompartment::RightSuperiorLobeApical).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::RightSuperiorLobePosterior).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::RightSuperiorLobeAnterior).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::RightMiddleLobeLateral).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::RightMiddleLobeMedial).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::RightInferiorLobeSuperior).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::RightInferiorLobeMedialBasal).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::RightInferiorLobeAnteriorBasal).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::RightInferiorLobeLateralBasal).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::RightInferiorLobePosteriorBasal).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::LeftInferiorLobePosteriorBasal).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::LeftInferiorLobeLateralBasal).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::LeftInferiorLobeAnteromedialBasal).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::LeftInferiorLobeSuperior).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::LeftSuperiorLobeInferiorLingula).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::LeftSuperiorLobeSuperiorLingula).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::LeftSuperiorLobeAnterior).SetValue(severity);
+ pbli.GetSeverity(eLungCompartment::LeftSuperiorLobeApicoposterior).SetValue(severity);
+ pe->ProcessAction(pbli);
+
+ pe->AdvanceModelTime(15, TimeUnit::min);
+
+ pe->GetLogger()->Info("Data after 15 min");
+ pe->GetLogger()->Info(std::stringstream() << "Tidal Volume : " << pe->GetRespiratorySystem()->GetTidalVolume(VolumeUnit::mL) << VolumeUnit::mL);
+ pe->GetLogger()->Info(std::stringstream() << "Heart Rate : " << pe->GetCardiovascularSystem()->GetHeartRate(FrequencyUnit::Per_min) << "bpm");
+ pe->GetLogger()->Info(std::stringstream() << "Respiration Rate : " << pe->GetRespiratorySystem()->GetRespirationRate(FrequencyUnit::Per_min) << "bpm");
+ pe->GetLogger()->Info(std::stringstream() << "Oxygen Saturation : " << pe->GetBloodChemistrySystem()->GetOxygenSaturation());
+ pe->GetLogger()->Info(std::stringstream() << "Mean Arterial Pressure : " << pe->GetCardiovascularSystem()->GetMeanArterialPressure(PressureUnit::mmHg) << PressureUnit::mmHg);
+ pe->GetLogger()->Info(std::stringstream() << "Horowitz Index : " << pe->GetRespiratorySystem()->GetHorowitzIndex(PressureUnit::mmHg) << PressureUnit::mmHg);
+ pe->GetLogger()->Info(std::stringstream() << "Total Lung Volume : " << pe->GetRespiratorySystem()->GetTotalLungVolume(VolumeUnit::mL) << VolumeUnit::mL);
+ pe->GetLogger()->Info(std::stringstream() << "Arterial Oxygen Pressure : " << pe->GetBloodChemistrySystem()->GetArterialOxygenPressure(PressureUnit::mmHg) << PressureUnit::mmHg);
+ pe->GetLogger()->Info(std::stringstream() << "Arterial Carbon Dioxide Pressure : " << pe->GetBloodChemistrySystem()->GetArterialCarbonDioxidePressure(PressureUnit::mmHg) << PressureUnit::mmHg);
+}
+
+void HowToExpandedRespiratoryAnalysisInitialState()
+{
+ std::unique_ptr pe = CreatePulseEngine();
+ pe->GetLogger()->LogToConsole(true);
+ pe->GetLogger()->SetLogFile("./test_results/howto/HowTo_ExpandedRespiratoryAnalysisInitialState.log");
+
+ PulseConfiguration config;
+ config.UseExpandedLungs(eSwitch::On);
+ pe->SetConfigurationOverride(&config);
+
+ SEPatientConfiguration pc;
+ pc.SetPatientFile("./patients/StandardMale.json");
+ pe->InitializeEngine(pc);
+
+ //Add a ventilator for proper PaO2/FiO2 analysis
+ SEIntubation intubate;
+ intubate.SetType(eIntubation_Type::Tracheal);
+ pe->ProcessAction(intubate);
+
+ SEMechanicalVentilatorPressureControl pc_cmv;
+ pc_cmv.SetConnection(eSwitch::On);
+ pc_cmv.SetMode(eMechanicalVentilator_PressureControlMode::ContinuousMandatoryVentilation);
+ pc_cmv.SetInspirationWaveform(eDriverWaveform::Square);
+ pc_cmv.GetFractionInspiredOxygen().SetValue(0.21);
+ pc_cmv.GetInspiratoryPeriod().SetValue(1.7, TimeUnit::s);
+ pc_cmv.GetInspiratoryPressure().SetValue(15.5, PressureUnit::cmH2O);
+ pc_cmv.GetPositiveEndExpiratoryPressure().SetValue(5.0, PressureUnit::cmH2O);
+ pc_cmv.GetRespirationRate().SetValue(12.0, FrequencyUnit::Per_min);
+ pe->ProcessAction(pc_cmv);
+
+ //Apneic
+ SEDyspnea Dyspnea;
+ Dyspnea.GetTidalVolumeSeverity().SetValue(1.0);
+ Dyspnea.GetRespirationRateSeverity().SetValue(1.0);
+ pe->ProcessAction(Dyspnea);
+
+ //Run to homestasis
+ SEAdvanceUntilStable RunToStable;
+ pe->ProcessAction(RunToStable);
+
+ pe->GetLogger()->Info(std::stringstream() << "Resulting Tidal Volume: " << pe->GetRespiratorySystem()->GetTidalVolume(VolumeUnit::mL) << VolumeUnit::mL);
+
+ //Serialize to use later
+ pe->SerializeToFile("ExpandedRespiratoryAnalysis.json");
+}
+
+void HowToExpandedRespiratoryAnalysisOriginal()
+{
+ // Settings
+ //std::vector severityList = { 0.0, 0.9 };
+ std::vector severityList = { 0.0 };
+ size_t totalRuns = std::pow(severityList.size(), 6);
+
+ // Generate the initial state once to use throughout
+ HowToExpandedRespiratoryAnalysisInitialState();
+
+ // Setup everything
+ std::unique_ptr pe = CreatePulseEngine();
+ pe->GetLogger()->LogToConsole(true);
+ pe->GetLogger()->SetLogFile("./test_results/howto/HowTo_ExpandedRespiratoryAnalysisOriginal.log");
+
+ PulseConfiguration config;
+ config.UseExpandedLungs(eSwitch::On);
+ pe->SetConfigurationOverride(&config);
+
+ // Create an ofstream object for output file
+ std::ofstream outFile("./test_results/howto/ExpandedRespiratoryAnalysisOriginalTable.csv");
+ std::stringstream results;
+
+ // Header for the table
+ results << "Right Superior Lobe Apical Severity,"
+ << "Right Superior Lobe Posterior Severity,"
+ << "Right Superior Lobe Anterior Severity,"
+ << "Right Middle Lobe Lateral Severity,"
+ << "Right Middle Lobe Medial Severity,"
+ << "Right Inferior Lobe Superior Severity,"
+ << "Right Inferior Lobe Medial Basal Severity,"
+ << "Right Inferior Lobe Anterior Basal Severity,"
+ << "Right Inferior Lobe Lateral Basal Severity,"
+ << "Right Inferior Lobe Posterior Basal Severity,"
+ << "Left Inferior Lobe Posterior Basal Severity,"
+ << "Left Inferior Lobe Lateral Basal Severity,"
+ << "Left Inferior Lobe Anteromedial Basal Severity,"
+ << "Left Inferior Lobe Superior Severity,"
+ << "Left Superior Lobe Inferior Lingula Severity,"
+ << "Left Superior Lobe Superior Lingula Severity,"
+ << "Left Superior Lobe Anterior Severity,"
+ << "Left Superior Lobe Apicoposterior Severity,"
+ << "Total Pulmonary Ventilation (L/min),"
+ << "Total Pulmonary Perfusion (L/min),"
+ << "Ventilation Perfusion Ratio,"
+ << "PaO2 / FiO2 (mmHg),"
+ << "Capillaries PO2 (mmHg),"
+ << "Capillaries CO2 (mmHg),";
+
+ // Add headers for ventilation and perfusion for all compartments
+ std::vector compartments = {
+ "RightSuperiorLobeApical", "RightSuperiorLobePosterior", "RightSuperiorLobeAnterior",
+ "RightMiddleLobeLateral", "RightMiddleLobeMedial", "RightInferiorLobeSuperior",
+ "RightInferiorLobeMedialBasal", "RightInferiorLobeAnteriorBasal", "RightInferiorLobeLateralBasal",
+ "RightInferiorLobePosteriorBasal", "LeftInferiorLobePosteriorBasal", "LeftInferiorLobeLateralBasal",
+ "LeftInferiorLobeAnteromedialBasal", "LeftInferiorLobeSuperior", "LeftSuperiorLobeInferiorLingula",
+ "LeftSuperiorLobeSuperiorLingula", "LeftSuperiorLobeAnterior", "LeftSuperiorLobeApicoposterior"
+ };
+
+ for (const auto& compartment : compartments) {
+ results << compartment << " Ventilation (L/min),"
+ << compartment << " Perfusion (L/min),"
+ << compartment << " O2 (mmHg),"
+ << compartment << " CO2 (mmHg),";
+ }
+
+ results << "\n";
+
+ unsigned int currentRun = 0;
+
+ // Loop through all combinations
+ for (double RightSuperiorLobeApicalSeverity : severityList) {
+ for (double RightSuperiorLobePosteriorSeverity : severityList) {
+ for (double RightSuperiorLobeAnteriorSeverity : severityList) {
+ for (double RightMiddleLobeLateralSeverity : severityList) {
+ for (double RightMiddleLobeMedialSeverity : severityList) {
+ for (double RightInferiorLobeSuperiorSeverity : severityList) {
+ for (double RightInferiorLobeMedialBasalSeverity : severityList) {
+ for (double RightInferiorLobeAnteriorBasalSeverity : severityList) {
+ for (double RightInferiorLobeLateralBasalSeverity : severityList) {
+ for (double RightInferiorLobePosteriorBasalSeverity : severityList) {
+ for (double LeftInferiorLobePosteriorBasalSeverity : severityList) {
+ for (double LeftInferiorLobeLateralBasalSeverity : severityList) {
+ for (double LeftInferiorLobeAnteromedialBasalSeverity : severityList) {
+ for (double LeftInferiorLobeSuperiorSeverity : severityList) {
+ for (double LeftSuperiorLobeInferiorLingulaSeverity : severityList) {
+ for (double LeftSuperiorLobeSuperiorLingulaSeverity : severityList) {
+ for (double LeftSuperiorLobeAnteriorSeverity : severityList) {
+ for (double LeftSuperiorLobeApicoposteriorSeverity : severityList) {
+
+ double percentCompleted = static_cast(currentRun) / totalRuns * 100.0;
+ pe->GetLogger()->Info(std::stringstream() << "Starting Run " << currentRun << " of " << totalRuns << " total (" << percentCompleted << "% complete)");
+
+ // Load the state to start fresh each run
+ if (!pe->SerializeFromFile("ExpandedRespiratoryAnalysis.json")) {
+ pe->GetLogger()->Error("Could not load state.");
+ continue;
+ }
+
+ SEPrimaryBlastLungInjury pbli;
+ pbli.GetSeverity(eLungCompartment::RightSuperiorLobeApical).SetValue(RightSuperiorLobeApicalSeverity);
+ pbli.GetSeverity(eLungCompartment::RightSuperiorLobePosterior).SetValue(RightSuperiorLobePosteriorSeverity);
+ pbli.GetSeverity(eLungCompartment::RightSuperiorLobeAnterior).SetValue(RightSuperiorLobeAnteriorSeverity);
+ pbli.GetSeverity(eLungCompartment::RightMiddleLobeLateral).SetValue(RightMiddleLobeLateralSeverity);
+ pbli.GetSeverity(eLungCompartment::RightMiddleLobeMedial).SetValue(RightMiddleLobeMedialSeverity);
+ pbli.GetSeverity(eLungCompartment::RightInferiorLobeSuperior).SetValue(RightInferiorLobeSuperiorSeverity);
+ pbli.GetSeverity(eLungCompartment::RightInferiorLobeMedialBasal).SetValue(RightInferiorLobeMedialBasalSeverity);
+ pbli.GetSeverity(eLungCompartment::RightInferiorLobeAnteriorBasal).SetValue(RightInferiorLobeAnteriorBasalSeverity);
+ pbli.GetSeverity(eLungCompartment::RightInferiorLobeLateralBasal).SetValue(RightInferiorLobeLateralBasalSeverity);
+ pbli.GetSeverity(eLungCompartment::RightInferiorLobePosteriorBasal).SetValue(RightInferiorLobePosteriorBasalSeverity);
+ pbli.GetSeverity(eLungCompartment::LeftInferiorLobePosteriorBasal).SetValue(LeftInferiorLobePosteriorBasalSeverity);
+ pbli.GetSeverity(eLungCompartment::LeftInferiorLobeLateralBasal).SetValue(LeftInferiorLobeLateralBasalSeverity);
+ pbli.GetSeverity(eLungCompartment::LeftInferiorLobeAnteromedialBasal).SetValue(LeftInferiorLobeAnteromedialBasalSeverity);
+ pbli.GetSeverity(eLungCompartment::LeftInferiorLobeSuperior).SetValue(LeftInferiorLobeSuperiorSeverity);
+ pbli.GetSeverity(eLungCompartment::LeftSuperiorLobeInferiorLingula).SetValue(LeftSuperiorLobeInferiorLingulaSeverity);
+ pbli.GetSeverity(eLungCompartment::LeftSuperiorLobeSuperiorLingula).SetValue(LeftSuperiorLobeSuperiorLingulaSeverity);
+ pbli.GetSeverity(eLungCompartment::LeftSuperiorLobeAnterior).SetValue(LeftSuperiorLobeAnteriorSeverity);
+ pbli.GetSeverity(eLungCompartment::LeftSuperiorLobeApicoposterior).SetValue(LeftSuperiorLobeApicoposteriorSeverity);
+ pe->ProcessAction(pbli);
+
+ // Run to homestasis
+ SEAdvanceUntilStable RunToStable;
+ RunToStable.SetCriteria("AnalysisAdvanceUntilStable");
+ pe->ProcessAction(RunToStable);
+
+ // Log the combination
+ const SELiquidCompartment* PulmonaryCapillaries = pe->GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::PulmonaryCapillaries);
+ const SESubstance* O2 = pe->GetSubstanceManager().GetSubstance("Oxygen");
+ const SESubstance* CO2 = pe->GetSubstanceManager().GetSubstance("CarbonDioxide");
+
+ results << RightSuperiorLobeApicalSeverity << ","
+ << RightSuperiorLobePosteriorSeverity << ","
+ << RightSuperiorLobeAnteriorSeverity << ","
+ << RightMiddleLobeLateralSeverity << ","
+ << RightMiddleLobeMedialSeverity << ","
+ << RightInferiorLobeSuperiorSeverity << ","
+ << RightInferiorLobeMedialBasalSeverity << ","
+ << RightInferiorLobeAnteriorBasalSeverity << ","
+ << RightInferiorLobeLateralBasalSeverity << ","
+ << RightInferiorLobePosteriorBasalSeverity << ","
+ << LeftInferiorLobePosteriorBasalSeverity << ","
+ << LeftInferiorLobeLateralBasalSeverity << ","
+ << LeftInferiorLobeAnteromedialBasalSeverity << ","
+ << LeftInferiorLobeSuperiorSeverity << ","
+ << LeftSuperiorLobeInferiorLingulaSeverity << ","
+ << LeftSuperiorLobeSuperiorLingulaSeverity << ","
+ << LeftSuperiorLobeAnteriorSeverity << ","
+ << LeftSuperiorLobeApicoposteriorSeverity << ","
+ << pe->GetRespiratorySystem()->GetTotalPulmonaryVentilation(VolumePerTimeUnit::L_Per_min) << ","
+ << pe->GetCardiovascularSystem()->GetTotalPulmonaryPerfusion(VolumePerTimeUnit::L_Per_min) << ","
+ << pe->GetRespiratorySystem()->GetVentilationPerfusionRatio() << ","
+ << pe->GetRespiratorySystem()->GetHorowitzIndex(PressureUnit::mmHg) << ","
+ << PulmonaryCapillaries->GetSubstanceQuantity(*O2)->GetPartialPressure(PressureUnit::mmHg) << ","
+ << PulmonaryCapillaries->GetSubstanceQuantity(*CO2)->GetPartialPressure(PressureUnit::mmHg) << ",";
+
+ // Add ventilation and perfusion values for each compartment
+ for (const auto& compartment : compartments) {
+ const SEGasCompartment* alveoli = pe->GetCompartments().GetGasCompartment(compartment + "Alveoli");
+ const SELiquidCompartment* pulmonaryCapillaries = pe->GetCompartments().GetLiquidCompartment(compartment + "PulmonaryCapillaries");
+
+ results << alveoli->GetVentilation(VolumePerTimeUnit::L_Per_min) << ","
+ << pulmonaryCapillaries->GetPerfusion(VolumePerTimeUnit::L_Per_min) << ","
+ << pulmonaryCapillaries->GetSubstanceQuantity(*O2)->GetPartialPressure(PressureUnit::mmHg) << ","
+ << pulmonaryCapillaries->GetSubstanceQuantity(*CO2)->GetPartialPressure(PressureUnit::mmHg) << ",";
+ }
+
+ results << "\n";
+
+ // Output the results
+ outFile << results.str(); // Output to file
+ outFile.flush(); // Flush after each write
+ results.str(""); // Clear the stringstream for the next iteration
+
+ currentRun++;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // Close the file stream
+ outFile.close();
+}
+
+
+class SilentLogger : public LoggerForward
+{
+public:
+ SilentLogger(std::atomic& successfulRuns, std::atomic& unsuccessfulRuns)
+ : successfulRuns(successfulRuns), unsuccessfulRuns(unsuccessfulRuns) {}
+
+ void ForwardDebug(const std::string& msg) override {}
+ void ForwardInfo(const std::string& msg) override {}
+ void ForwardWarning(const std::string& msg) override {}
+ void ForwardError(const std::string& msg) override {}
+ void ForwardFatal(const std::string& msg) override {
+ // Increment the unsuccessful runs counter silently
+ unsuccessfulRuns++;
+ }
+
+private:
+ std::atomic& successfulRuns;
+ std::atomic& unsuccessfulRuns;
+};
+
+// Function to print a status bar with additional information
+void printStatusBar(unsigned int completed, unsigned int total, unsigned int successful, unsigned int unsuccessful)
+{
+ const int barWidth = 50;
+ float progress = (float)completed / total;
+ int pos = barWidth * progress;
+
+ std::cout << "[";
+ for (int i = 0; i < barWidth; ++i) {
+ if (i < pos) std::cout << "=";
+ else if (i == pos) std::cout << ">";
+ else std::cout << " ";
+ }
+ std::cout << "] " << int(progress * 100.0) << " % "
+ << "Completed: " << completed << "/" << total
+ << " | Successful: " << successful
+ << " | Unsuccessful: " << unsuccessful << "\r";
+ std::cout.flush();
+}
+
+// Thread pool class to manage a fixed number of threads
+class ThreadPool
+{
+public:
+ ThreadPool(size_t numThreads)
+ : stop(false)
+ {
+ for (size_t i = 0; i < numThreads; ++i)
+ workers.emplace_back(
+ [this]
+ {
+ for (;;)
+ {
+ std::function task;
+ {
+ std::unique_lock lock(this->queueMutex);
+ this->condition.wait(lock,
+ [this] { return this->stop || !this->tasks.empty(); });
+ if (this->stop && this->tasks.empty())
+ return;
+ task = std::move(this->tasks.front());
+ this->tasks.pop();
+ }
+ task();
+ }
+ }
+ );
+ }
+
+ template
+ auto enqueue(F&& f, Args&&... args)
+ -> std::future::type>
+ {
+ using return_type = typename std::result_of::type;
+
+ auto task = std::make_shared>(
+ std::bind(std::forward(f), std::forward(args)...)
+ );
+
+ std::future res = task->get_future();
+ {
+ std::unique_lock lock(queueMutex);
+
+ // Don't allow enqueueing after stopping the pool
+ if (stop)
+ throw std::runtime_error("enqueue on stopped ThreadPool");
+
+ tasks.emplace([task]() { (*task)(); });
+ }
+ condition.notify_one();
+ return res;
+ }
+
+ ~ThreadPool()
+ {
+ {
+ std::unique_lock lock(queueMutex);
+ stop = true;
+ }
+ condition.notify_all();
+ for (std::thread& worker : workers)
+ worker.join();
+ }
+
+private:
+ std::vector workers;
+ std::queue> tasks;
+
+ std::mutex queueMutex;
+ std::condition_variable condition;
+ bool stop;
+};
+
+// Function to generate Latin Hypercube Samples
+std::vector> generateLHSamples(int numSamples, int numParameters) {
+ std::vector> samples(numSamples, std::vector(numParameters));
+ std::random_device rd;
+ std::mt19937 gen(rd());
+ std::uniform_real_distribution<> dis(0.0, 1.0);
+
+ for (int i = 0; i < numParameters; ++i) {
+ std::vector perm(numSamples);
+ std::iota(perm.begin(), perm.end(), 0);
+ std::shuffle(perm.begin(), perm.end(), gen);
+ for (int j = 0; j < numSamples; ++j) {
+ samples[j][i] = (perm[j] + dis(gen)) / numSamples;
+ }
+ }
+
+ return samples;
+}
+
+void HowToExpandedRespiratoryAnalysis()
+{
+ int numSamples = 1000; // Adjust the number of samples for LHS
+ int numParameters = 18; // Number of compartments
+ auto lhsSamples = generateLHSamples(numSamples, numParameters);
+ unsigned int totalRuns = lhsSamples.size();
+
+ // Generate the initial state once to use throughout
+ HowToExpandedRespiratoryAnalysisInitialState();
+
+ // Store the healthy values
+ HowToExpandedRespiratoryAnalysisOriginal();
+
+ // Create an ofstream object for output file
+ std::ofstream outFile("./test_results/howto/ExpandedRespiratoryAnalysisTable.csv");
+
+ // Header for the table
+ std::stringstream results;
+ results << "Right Superior Lobe Apical Severity,"
+ << "Right Superior Lobe Posterior Severity,"
+ << "Right Superior Lobe Anterior Severity,"
+ << "Right Middle Lobe Lateral Severity,"
+ << "Right Middle Lobe Medial Severity,"
+ << "Right Inferior Lobe Superior Severity,"
+ << "Right Inferior Lobe Medial Basal Severity,"
+ << "Right Inferior Lobe Anterior Basal Severity,"
+ << "Right Inferior Lobe Lateral Basal Severity,"
+ << "Right Inferior Lobe Posterior Basal Severity,"
+ << "Left Inferior Lobe Posterior Basal Severity,"
+ << "Left Inferior Lobe Lateral Basal Severity,"
+ << "Left Inferior Lobe Anteromedial Basal Severity,"
+ << "Left Inferior Lobe Superior Severity,"
+ << "Left Superior Lobe Inferior Lingula Severity,"
+ << "Left Superior Lobe Superior Lingula Severity,"
+ << "Left Superior Lobe Anterior Severity,"
+ << "Left Superior Lobe Apicoposterior Severity,"
+ << "Total Pulmonary Ventilation (L/min),"
+ << "Total Pulmonary Perfusion (L/min),"
+ << "Ventilation Perfusion Ratio,"
+ << "PaO2 / FiO2 (mmHg),"
+ << "Capillaries PO2 (mmHg),"
+ << "Capillaries CO2 (mmHg),";
+
+ // Add headers for ventilation and perfusion for all compartments
+ std::vector compartments = {
+ "RightSuperiorLobeApical", "RightSuperiorLobePosterior", "RightSuperiorLobeAnterior",
+ "RightMiddleLobeLateral", "RightMiddleLobeMedial", "RightInferiorLobeSuperior",
+ "RightInferiorLobeMedialBasal", "RightInferiorLobeAnteriorBasal", "RightInferiorLobeLateralBasal",
+ "RightInferiorLobePosteriorBasal", "LeftInferiorLobePosteriorBasal", "LeftInferiorLobeLateralBasal",
+ "LeftInferiorLobeAnteromedialBasal", "LeftInferiorLobeSuperior", "LeftSuperiorLobeInferiorLingula",
+ "LeftSuperiorLobeSuperiorLingula", "LeftSuperiorLobeAnterior", "LeftSuperiorLobeApicoposterior"
+ };
+
+ for (const auto& compartment : compartments) {
+ results << compartment << " Ventilation (L/min),"
+ << compartment << " Perfusion (L/min),";
+ }
+
+ results << "\n";
+ outFile << results.str();
+ results.str(""); // Clear the stringstream for the next iteration
+
+ // Helper function to run a single simulation
+ auto run_simulation = [&](const std::vector& severities, std::atomic& successfulRuns, std::atomic& unsuccessfulRuns) -> std::string {
+ try {
+ std::unique_ptr pe = CreatePulseEngine();
+ pe->GetLogger()->LogToConsole(false);
+ pe->GetLogger()->SetLogFile("");
+
+ SilentLogger myLogger(successfulRuns, unsuccessfulRuns);
+ pe->GetLogger()->AddForward(&myLogger);
+
+ PulseConfiguration config;
+ config.UseExpandedLungs(eSwitch::On);
+ pe->SetConfigurationOverride(&config);
+
+ // Load the state to start fresh each run
+ if (!pe->SerializeFromFile("ExpandedRespiratoryAnalysis.json")) {
+ unsuccessfulRuns++;
+ return "";
+ }
+
+ SEPrimaryBlastLungInjury pbli;
+ pbli.GetSeverity(eLungCompartment::RightSuperiorLobeApical).SetValue(severities[0]);
+ pbli.GetSeverity(eLungCompartment::RightSuperiorLobePosterior).SetValue(severities[1]);
+ pbli.GetSeverity(eLungCompartment::RightSuperiorLobeAnterior).SetValue(severities[2]);
+ pbli.GetSeverity(eLungCompartment::RightMiddleLobeLateral).SetValue(severities[3]);
+ pbli.GetSeverity(eLungCompartment::RightMiddleLobeMedial).SetValue(severities[4]);
+ pbli.GetSeverity(eLungCompartment::RightInferiorLobeSuperior).SetValue(severities[5]);
+ pbli.GetSeverity(eLungCompartment::RightInferiorLobeMedialBasal).SetValue(severities[6]);
+ pbli.GetSeverity(eLungCompartment::RightInferiorLobeAnteriorBasal).SetValue(severities[7]);
+ pbli.GetSeverity(eLungCompartment::RightInferiorLobeLateralBasal).SetValue(severities[8]);
+ pbli.GetSeverity(eLungCompartment::RightInferiorLobePosteriorBasal).SetValue(severities[9]);
+ pbli.GetSeverity(eLungCompartment::LeftInferiorLobePosteriorBasal).SetValue(severities[10]);
+ pbli.GetSeverity(eLungCompartment::LeftInferiorLobeLateralBasal).SetValue(severities[11]);
+ pbli.GetSeverity(eLungCompartment::LeftInferiorLobeAnteromedialBasal).SetValue(severities[12]);
+ pbli.GetSeverity(eLungCompartment::LeftInferiorLobeSuperior).SetValue(severities[13]);
+ pbli.GetSeverity(eLungCompartment::LeftSuperiorLobeInferiorLingula).SetValue(severities[14]);
+ pbli.GetSeverity(eLungCompartment::LeftSuperiorLobeSuperiorLingula).SetValue(severities[15]);
+ pbli.GetSeverity(eLungCompartment::LeftSuperiorLobeAnterior).SetValue(severities[16]);
+ pbli.GetSeverity(eLungCompartment::LeftSuperiorLobeApicoposterior).SetValue(severities[17]);
+ pe->ProcessAction(pbli);
+
+ // Run to homestasis
+ SEAdvanceUntilStable RunToStable;
+ RunToStable.SetCriteria("AnalysisAdvanceUntilStable");
+ pe->ProcessAction(RunToStable);
+
+ // Log the combination
+ const SELiquidCompartment* PulmonaryCapillaries = pe->GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::PulmonaryCapillaries);
+ const SESubstance* O2 = pe->GetSubstanceManager().GetSubstance("Oxygen");
+ const SESubstance* CO2 = pe->GetSubstanceManager().GetSubstance("CarbonDioxide");
+
+ std::stringstream result;
+ for (const auto& severity : severities) {
+ result << severity << ",";
+ }
+ result << pe->GetRespiratorySystem()->GetTotalPulmonaryVentilation(VolumePerTimeUnit::L_Per_min) << ","
+ << pe->GetCardiovascularSystem()->GetTotalPulmonaryPerfusion(VolumePerTimeUnit::L_Per_min) << ","
+ << pe->GetRespiratorySystem()->GetVentilationPerfusionRatio() << ","
+ << pe->GetRespiratorySystem()->GetHorowitzIndex(PressureUnit::mmHg) << ","
+ << PulmonaryCapillaries->GetSubstanceQuantity(*O2)->GetPartialPressure(PressureUnit::mmHg) << ","
+ << PulmonaryCapillaries->GetSubstanceQuantity(*CO2)->GetPartialPressure(PressureUnit::mmHg) << ",";
+
+ // Add ventilation and perfusion values for each compartment
+ for (const auto& compartment : compartments) {
+ const SEGasCompartment* alveoli = pe->GetCompartments().GetGasCompartment(compartment + "Alveoli");
+ const SELiquidCompartment* pulmonaryCapillaries = pe->GetCompartments().GetLiquidCompartment(compartment + "PulmonaryCapillaries");
+
+ result << alveoli->GetVentilation(VolumePerTimeUnit::L_Per_min) << ","
+ << pulmonaryCapillaries->GetPerfusion(VolumePerTimeUnit::L_Per_min) << ",";
+ }
+
+ result << "\n";
+ successfulRuns++;
+ return result.str();
+ }
+ catch (...) {
+ unsuccessfulRuns++;
+ return "";
+ }
+ };
+
+ // Vector to hold futures
+ std::vector> futures;
+ std::atomic completedRuns(0);
+ std::atomic successfulRuns(0);
+ std::atomic unsuccessfulRuns(0);
+
+ // Create a thread pool with 10 threads
+ ThreadPool pool(10);
+
+ // Launch tasks in the thread pool
+ for (const auto& sample : lhsSamples) {
+ futures.push_back(pool.enqueue([&] {
+ auto result = run_simulation(sample, successfulRuns, unsuccessfulRuns);
+ completedRuns++;
+ return result;
+ }));
+ }
+
+ // Create a thread to update the status bar
+ std::thread statusThread([&] {
+ while (completedRuns < totalRuns) {
+ printStatusBar(completedRuns, totalRuns, successfulRuns, unsuccessfulRuns);
+ std::this_thread::sleep_for(std::chrono::milliseconds(100));
+ }
+ printStatusBar(completedRuns, totalRuns, successfulRuns, unsuccessfulRuns);
+ std::cout << std::endl; // Move to the next line after the progress bar is complete
+ });
+
+ // Collect results
+ for (auto& future : futures) {
+ auto result = future.get();
+ if (!result.empty()) {
+ outFile << result;
+ }
+ }
+
+ // Wait for the status thread to finish
+ statusThread.join();
+
+ // Close the file stream
+ outFile.close();
+}
diff --git a/src/cpp/howto/HowTo-ExpandedVasculature.cpp b/src/cpp/howto/HowTo-ExpandedVasculature.cpp
index 5a5c36b81c6c1e93d71f18af6e58f8d1c8bea558..5dfa7bdf94d007c78be7f030012ddf0382bcfe7e 100644
--- a/src/cpp/howto/HowTo-ExpandedVasculature.cpp
+++ b/src/cpp/howto/HowTo-ExpandedVasculature.cpp
@@ -18,7 +18,7 @@ void HowToExpandedVasculature()
pc.SetPatientFile("./patients/StandardMale.json");
PulseConfiguration config;
- config.UseExpandedVasculature(eSwitch::On);
+ config.UseComputationalLifeExpansion(eSwitch::On);
pe->SetConfigurationOverride(&config);
pe->InitializeEngine(pc);
diff --git a/src/cpp/test_driver/main.cpp b/src/cpp/test_driver/main.cpp
index f2cda2e58d5b35b77e75ade0d0d4a776173fd2f3..802246535a54738e651f36f8d047b3a89d24aed1 100644
--- a/src/cpp/test_driver/main.cpp
+++ b/src/cpp/test_driver/main.cpp
@@ -15,12 +15,12 @@ int main(int argc, char* argv[])
Logger cdmLogger(cdmDir + "/CDMUnitTests.log");
CommonDataModelTest cdmTest(&cdmLogger);
- std::string hawbDir = "./test_results/unit_tests/human_adult/whole_body";
+ std::string hawbDir = "./test_results/unit_tests/pulse"; // TODO when we have different engines, human_adult/whole_body";
Logger hawbLogger(hawbDir + "/PulseUnitTests.log");
pulse::human_adult_whole_body::EngineTest hawbTest(&hawbLogger);
- std::string havmDir = "./test_results/unit_tests/human_adult/ventilation_mechanics";
- Logger havmLogger(havmDir + "/RespiratoryEngineUnitTests.log");
+ std::string havmDir = "./test_results/unit_tests/pulse"; // TODO when we have different engines, human_adult / ventilation_mechanics";
+ Logger havmLogger(havmDir + "/PulseEngineUnitTests.log");
pulse::human_adult_ventilation_mechanics::EngineTest havmTest(&havmLogger);
if (argc == 1)
@@ -51,8 +51,11 @@ int main(int argc, char* argv[])
//hawbTest.CardiovascularAndRenalCircuitAndTransportTest(hawbDir);
//hawbTest.CardiovascularAndTissueCircuitAndTransportTest(hawbDir);
//hawbTest.CardiovascularAndCerebrospinalFluidCircuitAndTransportTest(hawbDir);
+// hawbTest.ExpandedLungsCardiovascularCircuitAndTransportTest(hawbDir);
//hawbTest.FullCardiovascularCircuitAndTransportTest(hawbDir);
+// hawbTest.ExpandedLungsFullCardiovascularCircuitAndTransportTest(hawbDir);
//hawbTest.CardiovascularBloodGasesTest(hawbDir);
+// hawbTest.ExpandedLungsCardiovascularBloodGasesTest(hawbDir);
//hawbTest.TuneCardiovascularCircuitTest(hawbDir);
//hawbTest.RenalCircuitAndTransportTest(hawbDir);
@@ -61,14 +64,19 @@ int main(int argc, char* argv[])
//hawbTest.RenalSecretionTest(hawbDir);
//hawbTest.RenalUrinateTest(hawbDir);
- //hawbTest.RespiratoryCircuitAndTransportTest(hawbDir);
//hawbTest.RespiratoryDriverTest(hawbDir);
+ //hawbTest.RespiratoryCircuitAndTransportTest(hawbDir);
+// hawbTest.ExpandedLungsRespiratoryCircuitAndTransportTest(hawbDir);
//hawbTest.AnesthesiaMachineCircuitAndTransportTest(hawbDir);
//hawbTest.RespiratoryWithAnesthesiaMachineCircuitAndTransportTest(hawbDir);
+// hawbTest.ExpandedLungsRespiratoryWithAnesthesiaMachineCircuitAndTransportTest(hawbDir);
//hawbTest.MechanicalVentilatorCircuitAndTransportTest(hawbDir);
//hawbTest.RespiratoryWithMechanicalVentilatorCircuitAndTransportTest(hawbDir);
+// hawbTest.ExpandedLungsRespiratoryWithMechanicalVentilatorCircuitAndTransportTest(hawbDir);
//hawbTest.RespiratoryWithInhalerCircuitAndTransportTest(hawbDir);
+ hawbTest.ExpandedLungsRespiratoryWithInhalerCircuitAndTransportTest(hawbDir);
//hawbTest.RespiratoryWithMechanicalVentilatorCircuitAndTransportTest(hawbDir);
+// hawbTest.ExpandedLungsRespiratoryWithMechanicalVentilatorCircuitAndTransportTest(hawbDir);
//hawbTest.InternalTemperatureVariableBMRCircuitTest(hawbDir);
//hawbTest.InternalTemperatureVariableSkinCircuitTest(hawbDir);
diff --git a/src/csharp/PulseFiles.cmake b/src/csharp/PulseFiles.cmake
index ce4cda183f93459c8704edc0e4920b32b87f4013..78882be93bb58dce4f606557f483ca21355d4460 100644
--- a/src/csharp/PulseFiles.cmake
+++ b/src/csharp/PulseFiles.cmake
@@ -143,6 +143,7 @@ set(PULSE_CSHARP_FILES
${CMAKE_CURRENT_SOURCE_DIR}/pulse/cdm/patient/actions/SEPatientAction.cs
${CMAKE_CURRENT_SOURCE_DIR}/pulse/cdm/patient/actions/SEPericardialEffusion.cs
${CMAKE_CURRENT_SOURCE_DIR}/pulse/cdm/patient/actions/SEPneumoniaExacerbation.cs
+ ${CMAKE_CURRENT_SOURCE_DIR}/pulse/cdm/patient/actions/SEPrimaryBlastLungInjury.cs
${CMAKE_CURRENT_SOURCE_DIR}/pulse/cdm/patient/actions/SEPulmonaryShuntExacerbation.cs
${CMAKE_CURRENT_SOURCE_DIR}/pulse/cdm/patient/actions/SERespiratoryFatigue.cs
${CMAKE_CURRENT_SOURCE_DIR}/pulse/cdm/patient/actions/SERespiratoryMechanicsConfiguration.cs
diff --git a/src/csharp/pulse/cdm/io/PBPatientActions.cs b/src/csharp/pulse/cdm/io/PBPatientActions.cs
index 09ee407b9941ee57f992aadcaa0b7cc91b5545e3..da2196e4f816dda5269a938a4eabf6bfdd67d3cc 100644
--- a/src/csharp/pulse/cdm/io/PBPatientActions.cs
+++ b/src/csharp/pulse/cdm/io/PBPatientActions.cs
@@ -143,6 +143,12 @@ namespace Pulse.CDM
Serialize(any.PneumoniaExacerbation, lp);
return lp;
}
+ if (any.PrimaryBlastLungInjury != null)
+ {
+ SEPrimaryBlastLungInjury pbli = new SEPrimaryBlastLungInjury();
+ Serialize(any.PrimaryBlastLungInjury, pbli);
+ return pbli;
+ }
if (any.MechanicalVentilation != null)
{
SEMechanicalVentilation mv = new SEMechanicalVentilation();
@@ -344,6 +350,11 @@ namespace Pulse.CDM
any.PneumoniaExacerbation = Unload((SEPneumoniaExacerbation)action);
return any;
}
+ if (action.GetType().IsAssignableFrom(typeof(SEPrimaryBlastLungInjury)))
+ {
+ any.PrimaryBlastLungInjury = Unload((SEPrimaryBlastLungInjury)action);
+ return any;
+ }
if (action.GetType().IsAssignableFrom(typeof(SEMechanicalVentilation)))
{
any.MechanicalVentilation = Unload((SEMechanicalVentilation)action);
@@ -1373,6 +1384,38 @@ namespace Pulse.CDM
}
#endregion
+ #region SEPrimaryBlastLungInjury
+ public static void Load(pulse.cdm.bind.PrimaryBlastLungInjuryData src, SEPrimaryBlastLungInjury dst)
+ {
+ Serialize(src, dst);
+ }
+ public static void Serialize(pulse.cdm.bind.PrimaryBlastLungInjuryData src, SEPrimaryBlastLungInjury dst)
+ {
+ if (src.PatientAction != null)
+ Serialize(src.PatientAction, dst);
+ foreach (var s in src.Severity)
+ PBProperty.Load(s.Severity, dst.GetSeverity((eLungCompartment)s.Compartment));
+ }
+ public static pulse.cdm.bind.PrimaryBlastLungInjuryData Unload(SEPrimaryBlastLungInjury src)
+ {
+ pulse.cdm.bind.PrimaryBlastLungInjuryData dst = new pulse.cdm.bind.PrimaryBlastLungInjuryData();
+ Serialize(src, dst);
+ return dst;
+ }
+ public static void Serialize(SEPrimaryBlastLungInjury src, pulse.cdm.bind.PrimaryBlastLungInjuryData dst)
+ {
+ dst.PatientAction = new pulse.cdm.bind.PatientActionData();
+ Serialize(src, dst.PatientAction);
+ foreach (var s in src.GetSeverities())
+ {
+ LungImpairmentData d = new LungImpairmentData();
+ d.Compartment = (pulse.cdm.bind.eLungCompartment)s.Key;
+ d.Severity = PBProperty.Unload(s.Value);
+ dst.Severity.Add(d);
+ }
+ }
+ #endregion
+
#region SEPulmonaryShuntExacerbation
public static void Load(pulse.cdm.bind.PulmonaryShuntExacerbationData src, SEPulmonaryShuntExacerbation dst)
{
diff --git a/src/csharp/pulse/cdm/patient/actions/SEPrimaryBlastLungInjury.cs b/src/csharp/pulse/cdm/patient/actions/SEPrimaryBlastLungInjury.cs
new file mode 100644
index 0000000000000000000000000000000000000000..7c248dcf8030ca824c5df3e6938fbe0253b6f649
--- /dev/null
+++ b/src/csharp/pulse/cdm/patient/actions/SEPrimaryBlastLungInjury.cs
@@ -0,0 +1,59 @@
+/* Distributed under the Apache License, Version 2.0.
+ See accompanying NOTICE file for details.*/
+
+using System.Collections;
+using System.Collections.Generic;
+
+namespace Pulse.CDM
+{
+ using LungImpairmentMap = Dictionary;
+ public class SEPrimaryBlastLungInjury : SEPatientAction
+ {
+ protected LungImpairmentMap severities;
+
+ public SEPrimaryBlastLungInjury()
+ {
+ severities = new LungImpairmentMap();
+ }
+
+ public override void Clear()
+ {
+ base.Clear();
+ foreach (var itr in severities)
+ itr.Value.Invalidate();
+ }
+
+ public override bool IsValid()
+ {
+ return HasSeverity();
+ }
+
+ public bool HasSeverity()
+ {
+ foreach (var itr in severities)
+ if (itr.Value.IsValid())
+ return true;
+ return false;
+ }
+ public bool HasSeverity(eLungCompartment c)
+ {
+ if (!severities.ContainsKey(c))
+ return false;
+ return severities[c].IsValid();
+ }
+ public SEScalar0To1 GetSeverity(eLungCompartment c)
+ {
+ SEScalar0To1 s = severities[c];
+ if(s == null)
+ {
+ s = new SEScalar0To1();
+ severities[c] = s;
+ }
+ return s;
+ }
+ public LungImpairmentMap GetSeverities()
+ {
+ return severities;
+ }
+ }
+}
diff --git a/src/csharp/pulse/cdm/system/physiology/SERespiratorySystem.cs b/src/csharp/pulse/cdm/system/physiology/SERespiratorySystem.cs
index 0dcec48ec74588d2d196c0e0e9039f3891004bda..cbf489b761999199893bde90ca504cc22b863b9b 100644
--- a/src/csharp/pulse/cdm/system/physiology/SERespiratorySystem.cs
+++ b/src/csharp/pulse/cdm/system/physiology/SERespiratorySystem.cs
@@ -12,6 +12,25 @@ namespace Pulse.CDM
LeftInferiorLobe,
RightSuperiorLobe,
RightMiddleLobe,
- RightInferiorLobe
+ RightInferiorLobe,
+
+ RightSuperiorLobeApical,
+ RightSuperiorLobePosterior,
+ RightSuperiorLobeAnterior,
+ RightMiddleLobeLateral,
+ RightMiddleLobeMedial,
+ RightInferiorLobeSuperior,
+ RightInferiorLobeMedialBasal,
+ RightInferiorLobeAnteriorBasal,
+ RightInferiorLobeLateralBasal,
+ RightInferiorLobePosteriorBasal,
+ LeftInferiorLobePosteriorBasal,
+ LeftInferiorLobeLateralBasal,
+ LeftInferiorLobeAnteromedialBasal,
+ LeftInferiorLobeSuperior,
+ LeftSuperiorLobeInferiorLingula,
+ LeftSuperiorLobeSuperiorLingula,
+ LeftSuperiorLobeAnterior,
+ LeftSuperiorLobeApicoposterior
};
}
\ No newline at end of file
diff --git a/src/java/PulseFiles.cmake b/src/java/PulseFiles.cmake
index d5af2f24dc6baa0d7d6e1e3cce5f77e32ed3ecab..4095bbf066f92a0183bab8506e3adac3b6a69c87 100644
--- a/src/java/PulseFiles.cmake
+++ b/src/java/PulseFiles.cmake
@@ -108,6 +108,7 @@ set(PULSE_JAVA_FILES
${CMAKE_CURRENT_SOURCE_DIR}/com/kitware/pulse/cdm/patient/actions/SEPatientAssessmentRequest.java
${CMAKE_CURRENT_SOURCE_DIR}/com/kitware/pulse/cdm/patient/actions/SEPericardialEffusion.java
${CMAKE_CURRENT_SOURCE_DIR}/com/kitware/pulse/cdm/patient/actions/SEPneumoniaExacerbation.java
+ ${CMAKE_CURRENT_SOURCE_DIR}/com/kitware/pulse/cdm/patient/actions/SEPrimaryBlastLungInjury.java
${CMAKE_CURRENT_SOURCE_DIR}/com/kitware/pulse/cdm/patient/actions/SEPulmonaryShuntExacerbation.java
${CMAKE_CURRENT_SOURCE_DIR}/com/kitware/pulse/cdm/patient/actions/SERespiratoryFatigue.java
${CMAKE_CURRENT_SOURCE_DIR}/com/kitware/pulse/cdm/patient/actions/SERespiratoryMechanicsConfiguration.java
diff --git a/src/java/com/kitware/pulse/cdm/patient/actions/SEPatientAction.java b/src/java/com/kitware/pulse/cdm/patient/actions/SEPatientAction.java
index 32a5b47a25865b204b9f0bf45355f8cf19f7a6ef..da7a271ba4fa90d5bf1573ac5167ac7a83dc351d 100644
--- a/src/java/com/kitware/pulse/cdm/patient/actions/SEPatientAction.java
+++ b/src/java/com/kitware/pulse/cdm/patient/actions/SEPatientAction.java
@@ -197,6 +197,12 @@ public abstract class SEPatientAction extends SEAction
SEPneumoniaExacerbation.load(c.getPneumoniaExacerbation(), dst);
return dst;
}
+ case PRIMARYBLASTLUNGINJURY:
+ {
+ SEPrimaryBlastLungInjury dst = new SEPrimaryBlastLungInjury();
+ SEPrimaryBlastLungInjury.load(c.getPrimaryBlastLungInjury(), dst);
+ return dst;
+ }
case PULMONARYSHUNTEXACERBATION:
{
SEPulmonaryShuntExacerbation dst = new SEPulmonaryShuntExacerbation();
@@ -389,6 +395,11 @@ public abstract class SEPatientAction extends SEAction
dst.setPneumoniaExacerbation(SEPneumoniaExacerbation.unload((SEPneumoniaExacerbation)c));
return dst.build();
}
+ if(c instanceof SEPrimaryBlastLungInjury)
+ {
+ dst.setPrimaryBlastLungInjury(SEPrimaryBlastLungInjury.unload((SEPrimaryBlastLungInjury)c));
+ return dst.build();
+ }
if(c instanceof SEMechanicalVentilation)
{
dst.setMechanicalVentilation(SEMechanicalVentilation.unload((SEMechanicalVentilation)c));
diff --git a/src/java/com/kitware/pulse/cdm/patient/actions/SEPrimaryBlastLungInjury.java b/src/java/com/kitware/pulse/cdm/patient/actions/SEPrimaryBlastLungInjury.java
new file mode 100644
index 0000000000000000000000000000000000000000..683d2df4fff5d54dd7203db9a37939741b01c2bc
--- /dev/null
+++ b/src/java/com/kitware/pulse/cdm/patient/actions/SEPrimaryBlastLungInjury.java
@@ -0,0 +1,108 @@
+/* Distributed under the Apache License, Version 2.0.
+ See accompanying NOTICE file for details.*/
+
+package com.kitware.pulse.cdm.patient.actions;
+
+import java.util.*;
+
+import com.kitware.pulse.cdm.bind.PatientActions.PrimaryBlastLungInjuryData;
+import com.kitware.pulse.cdm.bind.Physiology.LungImpairmentData;
+import com.kitware.pulse.cdm.bind.Physiology.eLungCompartment;
+import com.kitware.pulse.cdm.properties.SEScalar0To1;
+
+public class SEPrimaryBlastLungInjury extends SEPatientAction
+{
+ private static final long serialVersionUID = 8405714651383110396L;
+
+ protected Map severities;
+
+ public SEPrimaryBlastLungInjury()
+ {
+ severities = new HashMap();
+ }
+
+ @Override
+ public void clear()
+ {
+ super.clear();
+ for(SEScalar0To1 s : severities.values())
+ s.invalidate();
+ }
+
+ public void copy(SEPrimaryBlastLungInjury other)
+ {
+ if(this==other)
+ return;
+ super.copy(other);
+ for (Map.Entry entry : other.severities.entrySet())
+ getSeverity(entry.getKey()).set(entry.getValue());
+ }
+
+ @Override
+ public boolean isValid()
+ {
+ return hasSeverity();
+ }
+
+ public static void load(PrimaryBlastLungInjuryData src, SEPrimaryBlastLungInjury dst)
+ {
+ SEPatientAction.load(src.getPatientAction(), dst);
+ for (LungImpairmentData d : src.getSeverityList())
+ SEScalar0To1.load(d.getSeverity(), dst.getSeverity(d.getCompartment()));
+ }
+
+ public static PrimaryBlastLungInjuryData unload(SEPrimaryBlastLungInjury src)
+ {
+ PrimaryBlastLungInjuryData.Builder dst = PrimaryBlastLungInjuryData.newBuilder();
+ unload(src,dst);
+ return dst.build();
+ }
+
+ protected static void unload(SEPrimaryBlastLungInjury src, PrimaryBlastLungInjuryData.Builder dst)
+ {
+ SEPatientAction.unload(src, dst.getPatientActionBuilder());
+ for (Map.Entry entry : src.severities.entrySet())
+ {
+ LungImpairmentData.Builder builder = LungImpairmentData.newBuilder();
+ builder.setCompartment(entry.getKey());
+ builder.setSeverity(SEScalar0To1.unload(entry.getValue()));
+ dst.addSeverity(builder);
+ }
+ }
+
+ public boolean hasSeverity()
+ {
+ for(SEScalar0To1 s : severities.values())
+ if(s.isValid())
+ return true;
+ return false;
+ }
+ public boolean hasSeverity(eLungCompartment c)
+ {
+ SEScalar0To1 s = severities.get(c);
+ if(s!=null)
+ return s.isValid();
+ return false;
+ }
+ public SEScalar0To1 getSeverity(eLungCompartment c)
+ {
+ SEScalar0To1 s = severities.get(c);
+ if(s==null)
+ {
+ s = new SEScalar0To1();
+ severities.put(c, s);
+ }
+ return s;
+ }
+
+ @Override
+ public String toString()
+ {
+ String out = "Primary BlastLung Injury";
+ for (Map.Entry entry : severities.entrySet())
+ out += "\n\t"+ entry.getKey().toString()+" Severity: " + getSeverity(entry.getKey());
+ return out;
+ }
+
+
+}
diff --git a/src/python/pulse/cdm/io/patient_actions.py b/src/python/pulse/cdm/io/patient_actions.py
index 8abb97264947e364a941657d4728ac6f68e7b900..0d1c6870390e28344ede018b6478771f6b195995 100644
--- a/src/python/pulse/cdm/io/patient_actions.py
+++ b/src/python/pulse/cdm/io/patient_actions.py
@@ -398,6 +398,19 @@ def serialize_pneumonia_exacerbation_from_bind(src:PneumoniaExacerbationData, ds
#################################################################
+def serialize_primary_blast_lung_injury_to_bind(src:SEPrimaryBlastLungInjury, dst: PrimaryBlastLungInjuryData):
+ serialize_patient_action_to_bind(src, dst.PatientAction)
+ for c,s in src._severities.items():
+ i = dst.Severity.add()
+ i.Compartment = c.value
+ serialize_scalar_0to1_to_bind(s, i.Severity)
+
+def serialize_primary_blast_lung_injury_from_bind(src:PrimaryBlastLungInjuryData, dst: SEPrimaryBlastLungInjury ):
+ serialize_patient_action_from_bind(src.PatientAction, dst)
+ raise Exception("serialize_patient_action_from_bind not implemented")
+
+#################################################################
+
def serialize_pulmonary_shunt_exacerbation_to_bind(src:SEPulmonaryShuntExacerbation, dst: PulmonaryShuntExacerbationData):
serialize_patient_action_to_bind(src, dst.PatientAction)
if src.has_severity():
diff --git a/src/python/pulse/cdm/patient_actions.py b/src/python/pulse/cdm/patient_actions.py
index 1692a5fcd9edc10c6f03b309c62e6ef6ab1fdbb1..6201afeaa8f417afd9532f8d4e1ec362dff80410 100644
--- a/src/python/pulse/cdm/patient_actions.py
+++ b/src/python/pulse/cdm/patient_actions.py
@@ -1162,6 +1162,42 @@ class SEPneumoniaExacerbation(SEPatientAction):
out += ("\t{} Severity: {}\n").format(c, s)
return out
+class SEPrimaryBlastLungInjury(SEPatientAction):
+ __slots__ = ["_severities"]
+
+ def __init__(self):
+ super().__init__()
+ self._severities = {}
+ def clear(self):
+ for s in self._severities.values():
+ if s is not None:
+ s.invalidate()
+ def is_valid(self):
+ return self.has_severity()
+ def has_severity(self):
+ return self._severity is not None
+
+ def has_severity(self, cmpt: eLungCompartment = None):
+ if cmpt is None:
+ for s in self._severities.values():
+ if s is not None and s.is_valid():
+ return True
+ return False
+ if cmpt not in self._severities:
+ return False
+ return self._severities.get(cmpt).is_valid()
+ def get_severity(self, cmpt: eLungCompartment):
+ s = self._severities.get(cmpt)
+ if s is None:
+ s = SEScalar0To1()
+ self._severities[cmpt] = s
+ return s
+ def __repr__(self):
+ out = "Primary Blast Lung Injury\n"
+ for c, s in self._severities.items():
+ out += ("\t{} Severity: {}\n").format(c, s)
+ return out
+
class SEPulmonaryShuntExacerbation(SEPatientAction):
__slots__ = ["severity"]
diff --git a/src/python/pulse/cdm/physiology.py b/src/python/pulse/cdm/physiology.py
index 75755fa124f66fc69329099bc50dc587700ad431..c46653507dca000db883f85dd6c2cccef8d86335 100644
--- a/src/python/pulse/cdm/physiology.py
+++ b/src/python/pulse/cdm/physiology.py
@@ -34,6 +34,26 @@ class eLungCompartment(int, Enum):
RightSuperiorLobe = 4
RightMiddleLobe = 5
RightInferiorLobe = 6
+ # Expanded Respiratory
+ RightSuperiorLobeApical = 7
+ RightSuperiorLobePosterior = 8
+ RightSuperiorLobeAnterior = 9
+ RightMiddleLobeLateral = 10
+ RightMiddleLobeMedial = 11
+ RightInferiorLobeSuperior = 12
+ RightInferiorLobeMedialBasal = 13
+ RightInferiorLobeAnteriorBasal = 14
+ RightInferiorLobeLateralBasal = 15
+ RightInferiorLobePosteriorBasal = 16
+ LeftInferiorLobePosteriorBasal = 17
+ LeftInferiorLobeLateralBasal = 18
+ LeftInferiorLobeAnteromedialBasal = 19
+ LeftInferiorLobeSuperior = 20
+ LeftSuperiorLobeInferiorLingula = 21
+ LeftSuperiorLobeSuperiorLingula = 22
+ LeftSuperiorLobeAnterior = 23
+ LeftSuperiorLobeApicoposterior = 24
+
class SECardiovascularMechanicsModifiers:
diff --git a/src/python/pulse/cdm/utils/plotter.py b/src/python/pulse/cdm/utils/plotter.py
index 3566085771357e0ac01125384c732cdc544e5db7..1b3fccf2d67ce3ce7bcc19dd704de277fe835958 100644
--- a/src/python/pulse/cdm/utils/plotter.py
+++ b/src/python/pulse/cdm/utils/plotter.py
@@ -808,7 +808,8 @@ def create_plot(plot_sources: [SEPlotSource],
max_y = 0.001
if min_y is not None and min_y >= 0:
min_y = -0.01
- if min_y is not None and not np.isnan(min_y):
+ if (min_y is not None and not np.isnan(min_y) and not np.isinf(min_y) and
+ max_y is not None and not np.isnan(max_y) and not np.isinf(max_y)):
ax.set_ylim(min_y-0.05*abs(min_y), max_y+0.15*abs(max_y))
# Ensure negative times aren't shown
diff --git a/src/python/pulse/engine/PulseConfiguration.py b/src/python/pulse/engine/PulseConfiguration.py
index 507163c3a1c6f5d8f7815687899a64f9ac65c2db..d5cdc70b30ac8ee3c51f63b54c8f7383e8809786 100644
--- a/src/python/pulse/engine/PulseConfiguration.py
+++ b/src/python/pulse/engine/PulseConfiguration.py
@@ -6,15 +6,18 @@ from pulse.cdm.scalars import SEScalarTime
class PulseConfiguration:
- __slots__ = ["_time_step", "_allow_dynamic_timestep"]
+ __slots__ = ["_time_step", "_allow_dynamic_timestep",
+ "_use_expanded_lungs"]
def __init__(self):
self._allow_dynamic_timestep = eSwitch.NullSwitch
self._time_step = None
+ self._use_expanded_lungs = eSwitch.NullSwitch
def clear(self):
self._allow_dynamic_timestep = eSwitch.NullSwitch
if self._time_step is not None: self._time_step.invalidate()
+ self._use_expanded_lungs = eSwitch.NullSwitch
def set_allow_dynamic_timestep(self, s: eSwitch):
self._allow_dynamic_timestep = s
@@ -28,3 +31,10 @@ class PulseConfiguration:
self._time_step = SEScalarTime()
return self._time_step
+ def set_expanded_lungs(self, s: eSwitch):
+ self._use_expanded_lungs = s
+ def use_expanded_lungs(self):
+ return self._use_expanded_lungs
+
+
+
diff --git a/src/python/pulse/engine/io/PulseConfiguration.py b/src/python/pulse/engine/io/PulseConfiguration.py
index b98dd200de1278c14aaf2220e9344f377828780f..35c365cc2c6034f21d4b30fe7fdecefddaa7d522 100644
--- a/src/python/pulse/engine/io/PulseConfiguration.py
+++ b/src/python/pulse/engine/io/PulseConfiguration.py
@@ -38,6 +38,8 @@ def serialize_pulse_configuration_to_bind(src: PulseConfiguration, dst: Configur
dst.AllowDynamicTimeStep = src.allow_dynamic_timestep().value
if src.has_time_step():
serialize_scalar_time_to_bind(src.get_time_step(), dst.TimeStep)
+ if src.use_expanded_lungs() is not eSwitch.NullSwitch:
+ dst.RespiratoryConfigurationData.UseExpandedLungs = src.use_expanded_lungs().value
def serialize_pulse_configuration_from_bind(src: ConfigurationData, dst: PulseConfiguration):
diff --git a/src/python/pulse/howto/HowTo_ExpandedRespiratory.py b/src/python/pulse/howto/HowTo_ExpandedRespiratory.py
new file mode 100644
index 0000000000000000000000000000000000000000..25648e6ab67875a36dc994331ef9b43df74329cf
--- /dev/null
+++ b/src/python/pulse/howto/HowTo_ExpandedRespiratory.py
@@ -0,0 +1,119 @@
+# Distributed under the Apache License, Version 2.0.
+# See accompanying NOTICE file for details.
+
+from pathlib import Path
+
+from pulse.cdm.engine import eSwitch, eSerializationFormat
+from pulse.cdm.engine import SEDataRequestManager, SEDataRequest
+from pulse.cdm.patient import SEPatientConfiguration
+from pulse.cdm.patient_actions import SEPrimaryBlastLungInjury
+from pulse.cdm.physiology import eLungCompartment
+from pulse.cdm.scalars import FrequencyUnit, LengthUnit, MassUnit, PressureUnit, \
+ TimeUnit, VolumeUnit
+
+from pulse.engine.PulseEngine import PulseEngine
+from pulse.engine.PulseConfiguration import PulseConfiguration
+
+
+def HowTo_ExpandedRespiratory():
+ pulse = PulseEngine()
+ pulse.set_log_filename("./test_results/howto/HowTo_ExpandedRespiratory.py.log")
+ pulse.log_to_console(True)
+
+ cfg = PulseConfiguration()
+ cfg.set_expanded_lungs(eSwitch.On)
+ pulse.set_configuration_override(cfg)
+
+ data_requests = [
+ SEDataRequest.create_physiology_request("HeartRate", unit=FrequencyUnit.Per_min),
+ SEDataRequest.create_physiology_request("SystolicArterialPressure", unit=PressureUnit.mmHg),
+ SEDataRequest.create_physiology_request("DiastolicArterialPressure", unit=PressureUnit.mmHg),
+ SEDataRequest.create_physiology_request("MeanArterialPressure", unit=PressureUnit.mmHg),
+ SEDataRequest.create_physiology_request("EndTidalCarbonDioxidePressure", unit=PressureUnit.mmHg),
+ SEDataRequest.create_physiology_request("HorowitzIndex", unit=PressureUnit.mmHg),
+ SEDataRequest.create_physiology_request("OxygenSaturation"),
+ SEDataRequest.create_physiology_request("RespirationRate", unit=FrequencyUnit.Per_min),
+ SEDataRequest.create_physiology_request("TidalVolume", unit=VolumeUnit.mL),
+ SEDataRequest.create_physiology_request("TotalLungVolume", unit=VolumeUnit.mL),
+ SEDataRequest.create_physiology_request("ArterialOxygenPressure", unit=PressureUnit.mmHg),
+ SEDataRequest.create_physiology_request("ArterialCarbonDioxidePressure", unit=PressureUnit.mmHg),
+ SEDataRequest.create_gas_compartment_request("LeftLungPulmonary", "Volume", unit=VolumeUnit.mL),
+ SEDataRequest.create_gas_compartment_request("RightLungPulmonary", "Volume", unit=VolumeUnit.L),
+ ]
+ data_req_mgr = SEDataRequestManager(data_requests)
+ # NOTE: If No data requests are being provided, Pulse will return the default vitals data
+ # In addition to getting this data back via this API
+ # You can have Pulse write the data you have requested to a CSV file
+ data_req_mgr.set_results_filename("./test_results/howto/HowTo_ExpandedRespiratory.py.csv")
+
+ state_filename = Path("./test_results/howto/Satish.json")
+ if state_filename.exists():
+ # If you have run the patient configuration code below and have a state file, you can load it like this
+ # If you want to stabilize again, just delete that file
+ pulse.serialize_from_file(str(state_filename), data_req_mgr)
+ else:
+ pc = SEPatientConfiguration()
+ p = pc.get_patient()
+ p.set_name("Satish")
+ p.get_age().set_value(22, TimeUnit.yr)
+ p.get_height().set_value(72, LengthUnit.inch)
+ p.get_weight().set_value(180, MassUnit.lb)
+ if not pulse.initialize_engine(pc, data_req_mgr):
+ print("Unable to load stabilize engine")
+ return
+ # Save out the initial stabilized state, we can use it later and start up quicker
+ pulse.serialize_to_file(str(state_filename))
+
+ # Get default data at time 0s from the engine
+ results = pulse.pull_data()
+ pulse.print_results()
+
+ # Apply the standalone UNDEX equation
+ # Inputs
+ chargeMass_lbs = 1000
+ chargeDistance_ft = 100 #635 ~= 0.1; 211 ~= 0.3; 70 ~= 0.9
+ # Pressure equation
+ peakPressure = 13000 * (chargeMass_lbs ** 0.33) / chargeDistance_ft
+ # PBLI severity mapping
+ severity = 0.0005 * peakPressure
+ # Bounding the severity between 0 and 1
+ severity = max(min(severity, 1.0), 0.0)
+
+ print(f"Charge Mass: {chargeMass_lbs} lbs")
+ print(f"Charge Distance: {chargeDistance_ft} ft")
+ print(f"Peak Pressure: {peakPressure} mmHg")
+ print(f"Severity: {severity}")
+
+ # Advance some time and print out the vitals
+ pulse.advance_time_s(30)
+ results = pulse.pull_data()
+ pulse.print_results()
+
+ pbli = SEPrimaryBlastLungInjury()
+ pbli.get_severity(eLungCompartment.RightSuperiorLobeApical).set_value(severity)
+ pbli.get_severity(eLungCompartment.RightSuperiorLobePosterior).set_value(severity)
+ pbli.get_severity(eLungCompartment.RightSuperiorLobeAnterior).set_value(severity)
+ pbli.get_severity(eLungCompartment.RightMiddleLobeLateral).set_value(severity)
+ pbli.get_severity(eLungCompartment.RightMiddleLobeMedial).set_value(severity)
+ pbli.get_severity(eLungCompartment.RightInferiorLobeSuperior).set_value(severity)
+ pbli.get_severity(eLungCompartment.RightInferiorLobeMedialBasal).set_value(severity)
+ pbli.get_severity(eLungCompartment.RightInferiorLobeAnteriorBasal).set_value(severity)
+ pbli.get_severity(eLungCompartment.RightInferiorLobeLateralBasal).set_value(severity)
+ pbli.get_severity(eLungCompartment.RightInferiorLobePosteriorBasal).set_value(severity)
+ pbli.get_severity(eLungCompartment.LeftInferiorLobePosteriorBasal).set_value(severity)
+ pbli.get_severity(eLungCompartment.LeftInferiorLobeLateralBasal).set_value(severity)
+ pbli.get_severity(eLungCompartment.LeftInferiorLobeAnteromedialBasal).set_value(severity)
+ pbli.get_severity(eLungCompartment.LeftInferiorLobeSuperior).set_value(severity)
+ pbli.get_severity(eLungCompartment.LeftSuperiorLobeInferiorLingula).set_value(severity)
+ pbli.get_severity(eLungCompartment.LeftSuperiorLobeSuperiorLingula).set_value(severity)
+ pbli.get_severity(eLungCompartment.LeftSuperiorLobeAnterior).set_value(severity)
+ pbli.get_severity(eLungCompartment.LeftSuperiorLobeApicoposterior).set_value(severity)
+ pulse.process_action(pbli)
+
+ # Advance some time and print out the vitals
+ pulse.advance_time_s(900)
+ results = pulse.pull_data()
+ pulse.print_results()
+
+HowTo_ExpandedRespiratory()
+
diff --git a/src/python/pulse/pipelines/dataset/timeseries_dataset_reader.py b/src/python/pulse/pipelines/dataset/timeseries_dataset_reader.py
index 3c65ad67fb668ff32f56f80c9d5eb81970131be2..a358a1a445afec5f20ef3461d8a4ccd42f97d18e 100644
--- a/src/python/pulse/pipelines/dataset/timeseries_dataset_reader.py
+++ b/src/python/pulse/pipelines/dataset/timeseries_dataset_reader.py
@@ -7,6 +7,7 @@ import logging
import numbers
import tempfile
import numpy as np
+from enum import Enum
from pathlib import Path
from pycel import ExcelCompiler
from dataclasses import dataclass
@@ -29,8 +30,15 @@ from pulse.pipelines.dataset.utils import generate_data_request
_pulse_logger = logging.getLogger('pulse')
+class EngineConfig(Enum):
+ Standard = 1
+ ExpandedLungs = 3
+ ComputationalLife = 2
+
+
def gen_patient_targets(
- log_file: Path
+ log_file: Path,
+ config: EngineConfig
) -> SEPatientTimeSeriesValidation:
"""
Generate patient validation timeseries validation targets.
@@ -39,6 +47,7 @@ def gen_patient_targets(
2. Validate that the stabilized patient meets the expected values cited from literature
:param log_file: Path to log file. Could alternatively be the relevant patient file.
+ :param config: Engine configuration identifies which sheets to use from our SystemValidation xls file
:return: validation targets, or None if was not successful.
"""
@@ -49,6 +58,8 @@ def gen_patient_targets(
# If no name, set to filename for potential table filenames
if not p.has_name() or not p.get_name():
p.set_name(log_file.stem)
+ elif config == EngineConfig.ExpandedLungs:
+ p.set_name(f"{p.get_name()}-{EngineConfig.ExpandedLungs.name}")
table_name = "Patient"
if table_name not in patient_validation.get_targets():
@@ -154,6 +165,7 @@ def gen_patient_targets(
xls_file = Path(get_validation_dir() + "/SystemValidationData.xlsx")
generate_validation_targets(
xls_file=xls_file,
+ config=config,
patient_validation=patient_validation
)
return patient_validation
@@ -184,6 +196,7 @@ def extract_patient(patient_file: Path) -> SEPatient:
def generate_validation_targets(
xls_file: Path,
+ config: EngineConfig,
patient_validation: SEPatientTimeSeriesValidation
) -> bool:
"""
@@ -211,7 +224,15 @@ def generate_validation_targets(
tmp_xls_path = Path('./tmp.xlsx')
# xlsx sheets to skip when generating targets and requests
- ignore_sheets = ["Patient", "CardiovascularExtended"]
+ ignore_sheets = ["Patient"]
+ if config == EngineConfig.Standard:
+ ignore_sheets.append("CardiovascularExpandedLungs")
+ ignore_sheets.append("RespiratoryExpandedLungs")
+ ignore_sheets.append("CardiovascularComputationalLife")
+ elif config == EngineConfig.ExpandedLungs:
+ ignore_sheets.append("CardiovascularComputationalLife")
+ else:
+ raise Exception("Unsupported engine configuration for validation")
try:
# Update patient sheet so formulas can be re-evaluated with correct parameters
@@ -464,23 +485,26 @@ def generate_sheet_targets(
vts = targets[vtb.tgt_dest]
# Evaluate cells if needed
- ref_val = vtb.ref_cell
- if isinstance(ref_val, str) and ref_val.startswith("="):
- if ref_val.startswith("="):
- cell_loc = f"{system}!{get_column_letter(VTB_REF_CELL + 1)}{row_num + 2}"
- ref_val = evaluator.evaluate(cell_loc)
- unit_str = vtb.units.strip()
- if unit_str.startswith("="):
- cell_loc = f"{system}!{get_column_letter(VTB_UNITS + 1)}{row_num + 2}"
- unit_str = evaluator.evaluate(cell_loc)
- ref_str = vtb.references
- if ref_str.startswith("="):
- cell_loc = f"{system}!{get_column_letter(VTB_REFS + 1)}{row_num + 2}"
- ref_str = evaluator.evaluate(cell_loc)
- algo = vtb.algorithm
- if algo.startswith("="):
- cell_loc = f"{system}!{get_column_letter(VTB_ALGO + 1)}{row_num + 2}"
- algo = evaluator.evaluate(cell_loc)
+ try:
+ ref_val = vtb.ref_cell
+ if isinstance(ref_val, str) and ref_val.startswith("="):
+ if ref_val.startswith("="):
+ cell_loc = f"{system}!{get_column_letter(VTB_REF_CELL + 1)}{row_num + 2}"
+ ref_val = evaluator.evaluate(cell_loc)
+ unit_str = vtb.units.strip()
+ if unit_str.startswith("="):
+ cell_loc = f"{system}!{get_column_letter(VTB_UNITS + 1)}{row_num + 2}"
+ unit_str = evaluator.evaluate(cell_loc)
+ ref_str = vtb.references
+ if ref_str.startswith("="):
+ cell_loc = f"{system}!{get_column_letter(VTB_REFS + 1)}{row_num + 2}"
+ ref_str = evaluator.evaluate(cell_loc)
+ algo = vtb.algorithm
+ if algo.startswith("="):
+ cell_loc = f"{system}!{get_column_letter(VTB_ALGO + 1)}{row_num + 2}"
+ algo = evaluator.evaluate(cell_loc)
+ except:
+ _pulse_logger.fatal(f"Cannot evaluate: {cell_loc}")
tgt = SETimeSeriesValidationTarget()
tgt.set_reference(ref_str)
diff --git a/src/python/pulse/pipelines/full_html_report.py b/src/python/pulse/pipelines/full_html_report.py
index f4d07df5cdb8e447b9102d96d6e68c7c5f13e1d1..f714effc76045cd8c504f8614a335194ef46cdf6 100644
--- a/src/python/pulse/pipelines/full_html_report.py
+++ b/src/python/pulse/pipelines/full_html_report.py
@@ -28,6 +28,9 @@ if __name__ == "__main__":
f.write("\n")
for report in reports:
f.writelines("
\n")
+ if not report.exists():
+ f.write(f"Missing Report: {str(report)}")
+ continue
with open(report) as file:
while line := file.readline():
line = line.replace("", "")
diff --git a/src/python/pulse/pipelines/patient_validation.py b/src/python/pulse/pipelines/patient_validation.py
index a70e6bec8c3d48487b2d3d8718a795247e240af5..354a756bba6efc927a8fbdd06c49a52ff164998d 100644
--- a/src/python/pulse/pipelines/patient_validation.py
+++ b/src/python/pulse/pipelines/patient_validation.py
@@ -12,7 +12,7 @@ from pulse.cdm.utils.math_utils import format_float
from pulse.cdm.enums import eEngineInitializationState
from pulse.cdm.scenario import eScenarioExecutionState, SEScenarioExecStatus
from pulse.cdm.validation import SEPatientTimeSeriesValidation
-from pulse.pipelines.dataset.timeseries_dataset_reader import gen_patient_targets
+from pulse.pipelines.dataset.timeseries_dataset_reader import gen_patient_targets, EngineConfig
from pulse.pipelines.validation.timeseries_validation import (
validate, generate_validation_tables,
gen_expected_str, gen_engine_val_str)
@@ -44,10 +44,14 @@ def timeseries_validation_pipeline(
:return: Evaluated targets
"""
- patient_validation = gen_patient_targets(log_file=log_file)
+ config = EngineConfig.Standard
+ if EngineConfig.ExpandedLungs.name in str(log_file):
+ config = EngineConfig.ExpandedLungs
+
+ patient_validation = gen_patient_targets(log_file=log_file, config=config)
if patient_validation is None:
_pulse_logger.error("Unable to generate patient targets")
- return False
+ return None
validate(patient_validation=patient_validation,
csv_filename=csv_file,
@@ -56,7 +60,7 @@ def timeseries_validation_pipeline(
# Generate Tables (Optional)
if table_dir is not None:
- generate_validation_tables(target_map=patient_validation, table_dir=table_dir)
+ generate_validation_tables(target_map=patient_validation, table_dir=table_dir, config=config)
# Write the evaluated validation out (Optional)
if out_file is not None:
@@ -170,7 +174,7 @@ def main():
parser.add_argument(
"-t", "--table-dir",
type=Path,
- default=None,
+ default=Path("./test_results/tables"),
help="If provided, generate tables and write them in this directory."
)
parser.add_argument(
@@ -183,8 +187,6 @@ def main():
filename_base_paths = []
out_file = opts.output_file
table_dir = opts.table_dir
- if table_dir is None:
- table_dir = Path("./test_results/tables")
serialize_per_file = opts.serialize_per_file
if 'verification' == opts.input or 'test_results' == opts.input:
mode = opts.input
@@ -268,18 +270,24 @@ def main():
# Only write a html file for test results
if opts.input != "verification" and ".json" not in opts.input:
if "test_results" == opts.input:
+ names = [tgt.get_patient().get_name() for tgt in all_validation]
# Push Standard patients to the front
- all_validation.insert(0, all_validation.pop(
- [idx for idx, tgt in enumerate(all_validation) if tgt.get_patient().get_name() == "StandardFemale"][0]))
- all_validation.insert(0, all_validation.pop(
- [idx for idx, tgt in enumerate(all_validation) if tgt.get_patient().get_name() == "StandardMale"][0]))
+ standards = ["StandardFemale-ExpandedLungs", "StandardFemale",
+ "StandardMale-ExpandedLungs", "StandardMale"]
+ for standard in standards:
+ if standard in names:
+ all_validation.insert(0, all_validation.pop(
+ [idx for idx, tgt in enumerate(all_validation) if tgt.get_patient().get_name() == standard][0]))
html_file = "./test_results/PatientValidation.html"
_pulse_logger.info(f"Writing {html_file}")
f = open(html_file, "w")
f.write("\n")
- f.writelines("\n")
- f.write("Patient Validation
\n")
+ f.write("\n")
+ f.write("\n")
+ f.write("Patient Validation
\n")
for validation in all_validation:
+ f.write("\n")
+ f.write(f"{validation.get_patient().get_name()}
\n")
f.write("
\n")
for type, tgts in validation.get_targets().items():
f.writelines("
\n")
@@ -305,6 +313,8 @@ def main():
f.write(f"| {format_float(tgt.get_error_value())}% | ")
f.write("" + tgt.get_notes() + " | \n")
f.write("
\n")
+ f.write("
\n") # End patient details
+ f.write("\n") # End header details
f.write("\n")
f.write("\n")
f.close()
diff --git a/src/python/pulse/pipelines/validation/timeseries_validation.py b/src/python/pulse/pipelines/validation/timeseries_validation.py
index 3f5f58f25c31aadb35c66c0d7c9f0dbe2082beda..fb312eb32e0dfbee5d09ef8fdc352b4d95125d51 100644
--- a/src/python/pulse/pipelines/validation/timeseries_validation.py
+++ b/src/python/pulse/pipelines/validation/timeseries_validation.py
@@ -18,7 +18,7 @@ from pulse.cdm.utils.markdown import table
from pulse.cdm.utils.math_utils import percent_tolerance
from pulse.cdm.validation import SETimeSeriesValidationTarget
from pulse.cdm.io.validation import serialize_patient_time_series_validation_to_file
-
+from pulse.pipelines.dataset.timeseries_dataset_reader import EngineConfig
_pulse_logger = logging.getLogger('pulse')
@@ -278,13 +278,15 @@ def gen_engine_val_str(tgt: SETimeSeriesValidationTarget) -> str:
def generate_validation_tables(
target_map: SEPatientTimeSeriesValidation,
- table_dir: Path
+ table_dir: Path,
+ config: EngineConfig
) -> None:
"""
Generates validation tables for given target map.
:param target_map: Validation targets.
:param table_dir: Tables will be saved to this directory.
+ :param config: Engine Configuration used for this patient
:raises ValueError: Unknown comparison type
:raises ValueError: Unknown patient (patient has no name so table file cannot be named)
@@ -295,6 +297,8 @@ def generate_validation_tables(
table_dir.mkdir(parents=True, exist_ok=True)
patient_name = target_map.get_patient().get_name()
+ if config == EngineConfig.ExpandedLungs:
+ patient_name = patient_name + EngineConfig.ExpandedLungs.name
if not patient_name:
# Shouldn't really happen as dataset reader sets to patient filename if one doesn't exist
raise ValueError("Unknown patient found, cannot write table as I don't know what to name it.")
diff --git a/src/schema/pulse/cdm/bind/PatientActions.proto b/src/schema/pulse/cdm/bind/PatientActions.proto
index a39349b36711f55321460fe26d9cb1942470ae00..66b4be98c47d48062bd5ab19a2e768f0912b9bf5 100644
--- a/src/schema/pulse/cdm/bind/PatientActions.proto
+++ b/src/schema/pulse/cdm/bind/PatientActions.proto
@@ -42,17 +42,18 @@ message AnyPatientActionData
NeedleDecompressionData NeedleDecompression = 24;
PericardialEffusionData PericardialEffusion = 25;
PneumoniaExacerbationData PneumoniaExacerbation = 26;
- PulmonaryShuntExacerbationData PulmonaryShuntExacerbation = 27;
- RespiratoryFatigueData RespiratoryFatigue = 28;
- RespiratoryMechanicsConfigurationData RespiratoryMechanicsConfiguration = 29;
- RespiratoryMechanicsModificationData RespiratoryMechanicsModification = 30;
- SubstanceBolusData SubstanceBolus = 31;
- SubstanceCompoundInfusionData SubstanceCompoundInfusion = 32;
- SubstanceInfusionData SubstanceInfusion = 33;
- SupplementalOxygenData SupplementalOxygen = 34;
- TensionPneumothoraxData TensionPneumothorax = 35;
- TubeThoracostomyData TubeThoracostomy = 36;
- UrinateData Urinate = 37;
+ PrimaryBlastLungInjuryData PrimaryBlastLungInjury = 27;
+ PulmonaryShuntExacerbationData PulmonaryShuntExacerbation = 28;
+ RespiratoryFatigueData RespiratoryFatigue = 29;
+ RespiratoryMechanicsConfigurationData RespiratoryMechanicsConfiguration = 30;
+ RespiratoryMechanicsModificationData RespiratoryMechanicsModification = 31;
+ SubstanceBolusData SubstanceBolus = 32;
+ SubstanceCompoundInfusionData SubstanceCompoundInfusion = 33;
+ SubstanceInfusionData SubstanceInfusion = 34;
+ SupplementalOxygenData SupplementalOxygen = 35;
+ TensionPneumothoraxData TensionPneumothorax = 36;
+ TubeThoracostomyData TubeThoracostomy = 37;
+ UrinateData Urinate = 38;
}
}
@@ -403,6 +404,12 @@ message PneumoniaExacerbationData
repeated LungImpairmentData Severity = 2;/**<< @brief A list of impairment severities for the lung compartments*/
}
+/** @brief Acute lung injury from blast over-pressure on the thorax. */
+message PrimaryBlastLungInjuryData
+{
+ PatientActionData PatientAction = 1;
+ repeated LungImpairmentData Severity = 2;/**<< @brief A list of impairment severities for the lung compartments*/
+}
/** @brief Pulmonary shunt is when the alveoli of the lungs are perfused with blood as normal, but ventilation (the supply of air) fails to supply the perfused region */
message PulmonaryShuntExacerbationData
diff --git a/src/schema/pulse/cdm/bind/Physiology.proto b/src/schema/pulse/cdm/bind/Physiology.proto
index ade3cc2b772b748e53b9a85e97bc6e8b2860879a..8e776d116ca2a3acd440fafbfe2d86fd8e91657b 100644
--- a/src/schema/pulse/cdm/bind/Physiology.proto
+++ b/src/schema/pulse/cdm/bind/Physiology.proto
@@ -335,14 +335,33 @@ message RespiratoryMechanicsModifiersData
enum eLungCompartment
{
- LeftLung = 0;
- RightLung = 1;
-
- LeftSuperiorLobe = 2;
- LeftInferiorLobe = 3;
- RightSuperiorLobe = 4;
- RightMiddleLobe = 5;
- RightInferiorLobe = 6;
+ LeftLung = 0;
+ RightLung = 1;
+
+ LeftSuperiorLobe = 2;
+ LeftInferiorLobe = 3;
+ RightSuperiorLobe = 4;
+ RightMiddleLobe = 5;
+ RightInferiorLobe = 6;
+
+ RightSuperiorLobeApical = 7;
+ RightSuperiorLobePosterior = 8;
+ RightSuperiorLobeAnterior = 9;
+ RightMiddleLobeLateral = 10;
+ RightMiddleLobeMedial = 11;
+ RightInferiorLobeSuperior = 12;
+ RightInferiorLobeMedialBasal = 13;
+ RightInferiorLobeAnteriorBasal = 14;
+ RightInferiorLobeLateralBasal = 15;
+ RightInferiorLobePosteriorBasal = 16;
+ LeftInferiorLobePosteriorBasal = 17;
+ LeftInferiorLobeLateralBasal = 18;
+ LeftInferiorLobeAnteromedialBasal = 19;
+ LeftInferiorLobeSuperior = 20;
+ LeftSuperiorLobeInferiorLingula = 21;
+ LeftSuperiorLobeSuperiorLingula = 22;
+ LeftSuperiorLobeAnterior = 23;
+ LeftSuperiorLobeApicoposterior = 24;
}
// Protobuf does not support enum's as map keys
diff --git a/src/schema/pulse/engine/bind/Configuration.proto b/src/schema/pulse/engine/bind/Configuration.proto
index 00ef44fa2cc546c74d11691f6f3ef4717e0e81fb..91795320036bd377d374863045b84e0fca72663a 100644
--- a/src/schema/pulse/engine/bind/Configuration.proto
+++ b/src/schema/pulse/engine/bind/Configuration.proto
@@ -24,28 +24,28 @@ message ConfigurationData
message CardiovascularConfigurationData
{
- pulse.cdm.bind.ScalarPressurePerVolumeData LeftHeartElastanceMaximum = 1;
- pulse.cdm.bind.ScalarPressurePerVolumeData LeftHeartElastanceMinimum = 2;
- pulse.cdm.bind.Scalar0To1Data MinimumBloodVolumeFraction = 3;
- pulse.cdm.bind.ScalarPressurePerVolumeData RightHeartElastanceMaximum = 4;
- pulse.cdm.bind.ScalarPressurePerVolumeData RightHeartElastanceMinimum = 5;
- pulse.cdm.bind.ScalarData StandardPulmonaryCapillaryCoverage = 6;
- pulse.cdm.bind.eSwitch UseExpandedVasculature = 7;
+ pulse.cdm.bind.eSwitch ComputationalLifeExpansion = 1;
+ pulse.cdm.bind.ScalarPressurePerVolumeData LeftHeartElastanceMaximum = 2;
+ pulse.cdm.bind.ScalarPressurePerVolumeData LeftHeartElastanceMinimum = 3;
+ pulse.cdm.bind.Scalar0To1Data MinimumBloodVolumeFraction = 4;
+ pulse.cdm.bind.ScalarPressurePerVolumeData RightHeartElastanceMaximum = 5;
+ pulse.cdm.bind.ScalarPressurePerVolumeData RightHeartElastanceMinimum = 6;
+ pulse.cdm.bind.ScalarData StandardPulmonaryCapillaryCoverage = 7;
pulse.cdm.bind.eSwitch TuneCardiovascularCircuit = 8;
string CardiovascularTuningFile = 9;
}
message CircuitConfigurationData
{
- pulse.cdm.bind.ScalarPressureTimePerVolumeData CardiovascularOpenResistance = 1;;
- pulse.cdm.bind.ScalarElectricResistanceData DefaultClosedElectricResistance = 2;;
- pulse.cdm.bind.ScalarElectricResistanceData DefaultOpenElectricResistance = 3;;
- pulse.cdm.bind.ScalarPressureTimePerVolumeData DefaultClosedFlowResistance = 4;;
- pulse.cdm.bind.ScalarPressureTimePerVolumeData DefaultOpenFlowResistance = 5;;
- pulse.cdm.bind.ScalarHeatResistanceData DefaultClosedHeatResistance = 6;;
- pulse.cdm.bind.ScalarHeatResistanceData DefaultOpenHeatResistance = 7;;
- pulse.cdm.bind.ScalarPressureTimePerVolumeData MachineClosedResistance = 8;;
- pulse.cdm.bind.ScalarPressureTimePerVolumeData MachineOpenResistance = 9;;
+ pulse.cdm.bind.ScalarPressureTimePerVolumeData CardiovascularOpenResistance = 1;
+ pulse.cdm.bind.ScalarElectricResistanceData DefaultClosedElectricResistance = 2;
+ pulse.cdm.bind.ScalarElectricResistanceData DefaultOpenElectricResistance = 3;
+ pulse.cdm.bind.ScalarPressureTimePerVolumeData DefaultClosedFlowResistance = 4;
+ pulse.cdm.bind.ScalarPressureTimePerVolumeData DefaultOpenFlowResistance = 5;
+ pulse.cdm.bind.ScalarHeatResistanceData DefaultClosedHeatResistance = 6;
+ pulse.cdm.bind.ScalarHeatResistanceData DefaultOpenHeatResistance = 7;
+ pulse.cdm.bind.ScalarPressureTimePerVolumeData MachineClosedResistance = 8;
+ pulse.cdm.bind.ScalarPressureTimePerVolumeData MachineOpenResistance = 9;
pulse.cdm.bind.ScalarPressureTimePerVolumeData RespiratoryClosedResistance = 10;
pulse.cdm.bind.ScalarPressureTimePerVolumeData RespiratoryOpenResistance = 11;
}
@@ -140,7 +140,7 @@ message ConfigurationData
message RenalConfigurationData
{
- pulse.cdm.bind.eSwitch EnableRenal = 1;
+ pulse.cdm.bind.eSwitch ExpandedKidneys = 1;
pulse.cdm.bind.ScalarMassPerVolumeData PlasmaSodiumConcentrationSetPoint = 2;
pulse.cdm.bind.ScalarMassPerVolumeData PeritubularPotassiumConcentrationSetPoint = 3;
@@ -163,16 +163,16 @@ message ConfigurationData
message RespiratoryConfigurationData
{
- pulse.cdm.bind.ScalarPressureData CentralControllerCO2PressureSetPoint = 1;
- pulse.cdm.bind.ScalarData CentralVentilatoryControllerGain = 2;
- pulse.cdm.bind.ScalarVolumeData MinimumAllowableTidalVolume = 3;
- pulse.cdm.bind.ScalarTimeData MinimumAllowableInspiratoryAndExpiratoryPeriod = 4;
- pulse.cdm.bind.ScalarPressureData PeripheralControllerCO2PressureSetPoint = 5;
- pulse.cdm.bind.ScalarData PeripheralVentilatoryControllerGain = 6;
- pulse.cdm.bind.ScalarVolumePerTimeData PulmonaryVentilationRateMaximum = 7;
- pulse.cdm.bind.ScalarVolumeData VentilationTidalVolumeIntercept = 8;
- pulse.cdm.bind.ScalarPressureData VentilatoryOcclusionPressure = 9;
- pulse.cdm.bind.eSwitch UseExpandedRespiratory = 10;
+ pulse.cdm.bind.eSwitch ExpandedLungs = 1;
+ pulse.cdm.bind.ScalarPressureData CentralControllerCO2PressureSetPoint = 2;
+ pulse.cdm.bind.ScalarData CentralVentilatoryControllerGain = 3;
+ pulse.cdm.bind.ScalarVolumeData MinimumAllowableTidalVolume = 4;
+ pulse.cdm.bind.ScalarTimeData MinimumAllowableInspiratoryAndExpiratoryPeriod = 5;
+ pulse.cdm.bind.ScalarPressureData PeripheralControllerCO2PressureSetPoint = 6;
+ pulse.cdm.bind.ScalarData PeripheralVentilatoryControllerGain = 7;
+ pulse.cdm.bind.ScalarVolumePerTimeData PulmonaryVentilationRateMaximum = 8;
+ pulse.cdm.bind.ScalarVolumeData VentilationTidalVolumeIntercept = 9;
+ pulse.cdm.bind.ScalarPressureData VentilatoryOcclusionPressure = 10;
}
message TissueConfigurationData
@@ -189,22 +189,20 @@ message ConfigurationData
pulse.cdm.bind.TimedStabilizationData TimedStabilization = 4;/**<< @brief */
pulse.cdm.bind.DynamicStabilizationData DynamicStabilization = 5;/**<< @brief */
}
- pulse.cdm.bind.eSwitch WritePatientBaselineFile = 6;/**<< @brief Inform execution to write out patient object after all patient values are computed. */
- string PatientBaselineFilePath = 7;/**<< @brief Optional filepath of the original patient file to write, if not it will be written to ./stable */
- BloodChemistryConfigurationData BloodChemistryConfiguration = 8;
- CardiovascularConfigurationData CardiovascularConfiguration = 9;
- CircuitConfigurationData CircuitConfiguration = 10;
- ConstantsConfigurationData ConstantsConfiguration = 11;
- DrugsConfigurationData DrugsConfiguration = 12;
- ECGConfigurationData ECGConfiguration = 13;
- EnergyConfigurationData EnergyConfiguration = 14;
- EnvironmentConfigurationData EnvironmentConfiguration = 15;
- GastrointestinalConfigurationData GastrointestinalConfiguration = 16;
- NervousConfigurationData NervousConfiguration = 17;
- RenalConfigurationData RenalConfiguration = 18;
- RespiratoryConfigurationData RespiratoryConfiguration = 19;
- TissueConfigurationData TissueConfiguration = 20;
- map Modifiers = 21;
- map Overrides = 22;
+ BloodChemistryConfigurationData BloodChemistryConfiguration = 6;
+ CardiovascularConfigurationData CardiovascularConfiguration = 7;
+ CircuitConfigurationData CircuitConfiguration = 8;
+ ConstantsConfigurationData ConstantsConfiguration = 9;
+ DrugsConfigurationData DrugsConfiguration = 10;
+ ECGConfigurationData ECGConfiguration = 11;
+ EnergyConfigurationData EnergyConfiguration = 12;
+ EnvironmentConfigurationData EnvironmentConfiguration = 13;
+ GastrointestinalConfigurationData GastrointestinalConfiguration = 14;
+ NervousConfigurationData NervousConfiguration = 15;
+ RenalConfigurationData RenalConfiguration = 16;
+ RespiratoryConfigurationData RespiratoryConfiguration = 17;
+ TissueConfigurationData TissueConfiguration = 18;
+ map Modifiers = 19;
+ map Overrides = 20;
}
\ No newline at end of file