Location: Guyton, Pulmonary, Fluid, Dynamics, 2008 @ 1a8f675f318d / pulmonary_fluid.cellml

Author:
Tommy Yu <tommy.yu@auckland.ac.nz>
Date:
2010-08-25 18:19:05+12:00
Desc:
xml:base fix
Permanent Source URI:
http://models.cellml.org/workspace/guyton_pulmonary_fluid_dynamics_2008/rawfile/1a8f675f318d96a3785d24b4dc8b2287f5358373/pulmonary_fluid.cellml

<?xml version="1.0" encoding="utf-8"?>
<model 
	name="pulmonary_fluid_dynamics_model"
	cmeta:id="pulmonary_fluid_dynamics_model"
	
	xmlns="http://www.cellml.org/cellml/1.1#"
	xmlns:cellml="http://www.cellml.org/cellml/1.1#"
	xmlns:cmeta="http://www.cellml.org/metadata/1.0#"
	xmlns:xlink="http://www.w3.org/1999/xlink">

	<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
		<rdf:Description rdf:about="#pulmonary_fluid_dynamics_model">
			<rdf:value>
			This is a highly simplified analysis of pulmonary fluid dynamics.  In general, the gel 
			portion of the pulmonary fluid is ignored, so that the pulmonary fluid volume (VPF) is 
			in reality an approximation of the amount of fluid that is relatively freely mobile.  
			Though this fluid is called "interstitial fluid," it includes fluid in the respiratory 
			passages.  Likewise, the pressure-volume curve of the pulmonary interstitium is highly 
			simplified, as well as the control of lymph flow.  Nevertheless, for many purposes, this
			simplified analysis serves quite well.
			</rdf:value>
		</rdf:Description>
	</rdf:RDF>

<!-- =============================================	Import the required units from the Units file	==================================================== -->
	<import xlink:href="units.cellml">
		<units name="minute" units_ref="minute"/>
		<units name="per_minute" units_ref="per_minute"/>
		<units name="beats_per_minute" units_ref="beats_per_minute"/>
		<units name="beats_per_minute_per_mmHg" units_ref="beats_per_minute_per_mmHg"/>
		<units name="minute_per_L" units_ref="minute_per_L"/>
		<units name="mmHg" units_ref="mmHg"/>
		<units name="per_mmHg" units_ref="per_mmHg"/>
		<units name="mmHg_per_mL" units_ref="mmHg_per_mL"/>
		<units name="mmHg_L" units_ref="mmHg_L"/>
		<units name="per_mmHg2" units_ref="per_mmHg2"/>
		<units name="mmHg3" units_ref="mmHg3"/>
		<units name="monovalent_mEq" units_ref="monovalent_mEq"/>
		<units name="monovalent_mEq_per_minute" units_ref="monovalent_mEq_per_minute"/>
		<units name="monovalent_mEq_per_litre" units_ref="monovalent_mEq_per_litre"/>
		<units name="mOsm" units_ref="mOsm"/>
		<units name="mOsm_per_litre" units_ref="mOsm_per_litre"/>
		<units name="mOsm_per_minute" units_ref="mOsm_per_minute"/>
		<units name="monovalent_mEq_per_litre_per_minute" units_ref="monovalent_mEq_per_litre_per_minute"/>
		<units name="litre2_per_monovalent_mEq_per_minute" units_ref="litre2_per_monovalent_mEq_per_minute"/>
		<units name="L_per_minute" units_ref="L_per_minute"/>
		<units name="per_mmHg_per_minute" units_ref="per_mmHg_per_minute"/>
		<units name="mL" units_ref="mL"/>
		<units name="gram_per_L" units_ref="gram_per_L"/>
		<units name="L_mmHg_per_gram" units_ref="L_mmHg_per_gram"/>
		<units name="L2_mmHg_per_gram2" units_ref="L2_mmHg_per_gram2"/>
		<units name="mmHg_minute_per_L" units_ref="mmHg_minute_per_L"/>
		<units name="mmHg_L_per_minute" units_ref="mmHg_L_per_minute"/>
		<units name="gram_per_minute" units_ref="gram_per_minute"/>
		<units name="mL_per_L" units_ref="mL_per_L"/>
		<units name="mL_per_L_per_mmHg" units_ref="mL_per_L_per_mmHg"/>
		<units name="mL_per_L_per_minute" units_ref="mL_per_L_per_minute"/>
		<units name="mL_per_minute_per_mmHg" units_ref="mL_per_minute_per_mmHg"/>
		<units name="L_mL_per_minute_per_mmHg" units_ref="L_mL_per_minute_per_mmHg"/>
		<units name="L_per_mL" units_ref="L_per_mL"/>
		<units name="L_per_mmHg" units_ref="L_per_mmHg"/>
		<units name="mL_per_minute" units_ref="mL_per_minute"/>
		<units name="L_per_minute_per_mmHg" units_ref="L_per_minute_per_mmHg"/>
		<units name="L_per_minute_per_mmHg2" units_ref="L_per_minute_per_mmHg2"/>
	</import>

<!-- =====================================	Import all Parameters and State Variables from the Parameter file	============================================== -->
	<import xlink:href="parameters.cellml">
		<component component_ref="parameter_values" name="parameter_values"/>
		<component component_ref="state_variables" name="state_variables"/>
	</import>


<!-- ========================================	PULMONARY FLUID DYNAMICS TOP-LEVEL COMPONENT		============================================= -->
	<component 	name="pulmonary_fluid_dynamics" 
				cmeta:id="pulmonary_fluid_dynamics">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#pulmonary_fluid_dynamics">
				<rdf:value>
				Encapsulation grouping component containing all the components in the Pulmonary Fluid Dynamics Model. 
				The inputs and outputs of the Pulmonary Fluid Dynamics Model must be passed by this component.
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>

		<variable name="time"	units="minute"	private_interface="out" public_interface="in"/>

<!-- Inputs from components in other models -->
		<variable name="PPC"	units="mmHg" private_interface="out" public_interface="in"/>
		<variable name="PPA"	units="mmHg" private_interface="out" public_interface="in"/>
		<variable name="PLA"	units="mmHg" private_interface="out" public_interface="in"/>
		<variable name="CPP"	units="gram_per_L" private_interface="out" public_interface="in"/>
		<variable name="RPV"	units="mmHg_minute_per_L" private_interface="out" public_interface="in"/>
		<variable name="RPA"	units="mmHg_minute_per_L" private_interface="out" public_interface="in"/>

<!-- Outputs to components in other models -->
		<variable name="DFP" 	units="L_per_minute" private_interface="in" public_interface="out"/>
		<variable name="VPF" 	units="litre" private_interface="in" public_interface="out"/>
		<variable name="PPD" 	units="gram_per_minute" private_interface="in" public_interface="out"/>
	</component>

<!-- OUTPUT CONNECTIONS -->
<!--	<connection>
		<map_components component_1="pulmonary_fluid_dynamics" component_2="pulmonary_interstitial_free_fluid_volume"/>
		<map_variables variable_1="DFP" variable_2="DFP"/>
		<map_variables variable_1="VPF" variable_2="VPF"/>
	</connection> -->
<!--	<connection>
		<map_components component_1="pulmonary_fluid_dynamics" component_2="concentration_of_protein_in_pulmonary_interstitium"/>
		<map_variables variable_1="PPD" variable_2="PPD"/>
	</connection> -->

<!-- ========================================	PULMONARY CAPILLARY PRESSURE	============================================= -->
	<component 	name="pulmonary_capillary_pressure" 
				cmeta:id="pulmonary_capillary_pressure">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#pulmonary_capillary_pressure">
				<rdf:value>
				PD1, PD2, PD2A, and PD3:  
				Calculation of pulmonary capillary pressure (PCP) from the pulmonary arterial 
				pressure (PPA) and left atrial pressure (PLA), and also from the vascular 
				resistances in the arterial (RPA) and venous (RPV) sides of the pulmonary 
				capillaries.  The arterial resistance is set to be 1.6 times the venous 
				resistance.
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#PD1_to_PD3">
				<rdf:value>
				PD1, PD2, PD2A, and PD3:  
				Calculation of pulmonary capillary pressure (PCP) from the pulmonary arterial 
				pressure (PPA) and left atrial pressure (PLA), and also from the vascular 
				resistances in the arterial (RPA) and venous (RPV) sides of the pulmonary 
				capillaries.  The arterial resistance is set to be 1.6 times the venous 
				resistance.
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>
		
<!-- Inputs from other components -->
		<variable name="PPA"	units="mmHg" private_interface="none" public_interface="in"/>
		<variable name="PLA"	units="mmHg" private_interface="none" public_interface="in"/>
		<variable name="RPV"	units="mmHg_minute_per_L" private_interface="none" public_interface="in"/>
		<variable name="RPA"	units="mmHg_minute_per_L" private_interface="none" public_interface="in"/>

<!-- Outputs to other components -->
		<variable name="PCP" 	units="mmHg" private_interface="none" public_interface="out"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="PD1_to_PD3">
				<eq/>
				<ci>PCP</ci>
				<apply>
					<plus/>
					<apply>
						<divide/>
						<apply>
							<times/>
							<apply>
								<minus/>
								<ci>PPA</ci>
								<ci>PLA</ci>
							</apply>
							<ci>RPV</ci>
						</apply>
						<apply>
							<plus/>
							<ci>RPV</ci>
							<ci>RPA</ci>
						</apply>
					</apply>
					<ci>PLA</ci>
				</apply>
			</apply>
		</math>
	</component>

<!-- INPUT CONNECTIONS -->
	<connection>
		<map_components component_1="pulmonary_capillary_pressure" component_2="pulmonary_fluid_dynamics"/>
		<map_variables variable_1="PPA" variable_2="PPA"/>
		<map_variables variable_1="PLA" variable_2="PLA"/>
		<map_variables variable_1="RPV" variable_2="RPV"/>
		<map_variables variable_1="RPA" variable_2="RPA"/>
	</connection>

<!-- ========================================	FLUID FILTRATION INTO PULMONARY INTERSTITIUM	============================================= -->
	<component 	name="fluid_filtration_into_pulmonary_interstitium" 
				cmeta:id="fluid_filtration_into_pulmonary_interstitium">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#fluid_filtration_into_pulmonary_interstitium">
				<rdf:value>
				PD4:  
				The pressure gradient across the pulmonary capillary membrane (PGRPCM) is equal
				to the pulmonary capillary pressure (PCP), plus the colloid osmotic pressure of
				the pulmonary interstitial fluid (POS), minus the pulmonary interstitial fluid 
				pressure (PPI), minus the plasma colloid osmotic pressure (PPC).

				PD5:  
				Rate of filtration of fluid outward through the pulmonary capillary membranes 
				into the interstitium (PFI) is equal to the pressure gradient across the 
				pulmonary capillary membrane (PGRPCM) times the pulmonary capillary filtration 
				coefficient (CPF).
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#PD4_and_PD5">
				<rdf:value>
				PD4:  
				The pressure gradient across the pulmonary capillary membrane (PGRPCM) is equal
				to the pulmonary capillary pressure (PCP), plus the colloid osmotic pressure of
				the pulmonary interstitial fluid (POS), minus the pulmonary interstitial fluid 
				pressure (PPI), minus the plasma colloid osmotic pressure (PPC).

				PD5:  
				Rate of filtration of fluid outward through the pulmonary capillary membranes 
				into the interstitium (PFI) is equal to the pressure gradient across the 
				pulmonary capillary membrane (PGRPCM) times the pulmonary capillary filtration 
				coefficient (CPF).
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>
		
<!-- Inputs from other components -->
		<variable name="PCP"	units="mmHg" private_interface="none" public_interface="in"/>
		<variable name="PPC"	units="mmHg" private_interface="none" public_interface="in"/>
		<variable name="POS"	units="mmHg" private_interface="none" public_interface="in"/>
		<variable name="PPI"	units="mmHg" private_interface="none" public_interface="in"/>

<!-- Outputs to other components -->
		<variable name="PFI" 	units="L_per_minute" private_interface="none" public_interface="out"/>

<!-- Parameters from parameter_file -->
		<variable name="CPF"	units="L_per_minute_per_mmHg" private_interface="none" public_interface="in"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="PD4_and_PD5">
				<eq/>
				<ci>PFI</ci>
				<apply>
					<times/>
					<apply>
						<minus/>
						<apply>
							<plus/>
							<apply>
								<minus/>
								<ci>PCP</ci>
								<ci>PPI</ci>
							</apply>
							<ci>POS</ci>
						</apply>
						<ci>PPC</ci>
					</apply>
					<ci>CPF</ci>
				</apply>
			</apply>
		</math>
	</component>

<!-- INPUT CONNECTIONS -->
	<connection>
		<map_components component_1="fluid_filtration_into_pulmonary_interstitium" component_2="pulmonary_capillary_pressure"/>
		<map_variables variable_1="PCP" variable_2="PCP"/>
	</connection>
	<connection>
		<map_components component_1="fluid_filtration_into_pulmonary_interstitium" component_2="pulmonary_fluid_dynamics"/>
		<map_variables variable_1="PPC" variable_2="PPC"/>
	</connection>
	<connection>
		<map_components component_1="fluid_filtration_into_pulmonary_interstitium" component_2="colloid_osmotic_pressure_of_pulmonary_interstitium"/>
		<map_variables variable_1="POS" variable_2="POS"/>
	</connection>
	<connection>
		<map_components component_1="fluid_filtration_into_pulmonary_interstitium" component_2="pulmonary_interstitial_fluid_pressure"/>
		<map_variables variable_1="PPI" variable_2="PPI"/>
	</connection>

<!-- PARAMETER CONNECTIONS -->
	<connection>
		<map_components component_1="fluid_filtration_into_pulmonary_interstitium" component_2="parameter_values"/>
		<map_variables variable_1="CPF" variable_2="CPF"/>
	</connection>

<!-- ========================================	PULMONARY INTERSTITIAL FREE FLUID VOLUME	============================================= -->
	<component 	name="pulmonary_interstitial_free_fluid_volume" 
				cmeta:id="pulmonary_interstitial_free_fluid_volume">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#pulmonary_interstitial_free_fluid_volume">
				<rdf:value>
				PD5A, PD5B, and PD5C:  
				The rate of change of the fluid volume in the lungs (DFP) is equal to the rate 
				of filtration of fluid out of the pulmonary capillary membranes (PFI), minus the 
				rate of return of fluid to the circulation from the pulmonary interstitium by way 
				of the pulmonary lymphatics (PLF).  Blocks 5B and 5C are computational blocks for 
				preventing oscillation and for preventing overshoot of the iteration.  The damping
				factor (Z) is used at multiple points in the model.

				PD6:  
				Calculation of the volume of free fluid in the pulmonary interstitium (and 
				respiratory passageways) (VPF) by integrating the rate of change of the free fluid
				in the lungs (DFP).

				NB:	- Damping in PD5B has been removed so that DFP = DFZ.
					- PD5C has been rearranged so that "if" statement is dependent on VPF which may alter
					the DFP output. (DFP IMPORTED INTO CP10 - Capillary Dynamics! CHECK THIS!!!).
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#PD5A">
				<rdf:value>
				PD5A, PD5B, and PD5C:  
				The rate of change of the fluid volume in the lungs (DFP) is equal to the rate 
				of filtration of fluid out of the pulmonary capillary membranes (PFI), minus the 
				rate of return of fluid to the circulation from the pulmonary interstitium by way 
				of the pulmonary lymphatics (PLF).  Blocks 5B and 5C are computational blocks for 
				preventing oscillation and for preventing overshoot of the iteration.  The damping
				factor (Z) is used at multiple points in the model.

				NB:	- Damping in PD5B has been removed so that DFP = DFZ.
					- PD5C has been rearranged so that "if" statement is dependent on VPF which may alter
					the DFP output. (DFP IMPORTED INTO CP10 - Capillary Dynamics! CHECK THIS!!!).
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#PD5B">
				<rdf:value>
				PD5A, PD5B, and PD5C:  
				The rate of change of the fluid volume in the lungs (DFP) is equal to the rate 
				of filtration of fluid out of the pulmonary capillary membranes (PFI), minus the 
				rate of return of fluid to the circulation from the pulmonary interstitium by way 
				of the pulmonary lymphatics (PLF).  Blocks 5B and 5C are computational blocks for 
				preventing oscillation and for preventing overshoot of the iteration.  The damping
				factor (Z) is used at multiple points in the model.

				NB:	- Damping in PD5B has been removed so that DFP = DFZ.
					- PD5C has been rearranged so that "if" statement is dependent on VPF which may alter
					the DFP output. (DFP IMPORTED INTO CP10 - Capillary Dynamics! CHECK THIS!!!).
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#PD5C">
				<rdf:value>
				PD5A, PD5B, and PD5C:  
				The rate of change of the fluid volume in the lungs (DFP) is equal to the rate 
				of filtration of fluid out of the pulmonary capillary membranes (PFI), minus the 
				rate of return of fluid to the circulation from the pulmonary interstitium by way 
				of the pulmonary lymphatics (PLF).  Blocks 5B and 5C are computational blocks for 
				preventing oscillation and for preventing overshoot of the iteration.  The damping
				factor (Z) is used at multiple points in the model.

				NB:	- Damping in PD5B has been removed so that DFP = DFZ.
					- PD5C has been rearranged so that "if" statement is dependent on VPF which may alter
					the DFP output. (DFP IMPORTED INTO CP10 - Capillary Dynamics! CHECK THIS!!!).
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#PD6">
				<rdf:value>
				PD6:  
				Calculation of the volume of free fluid in the pulmonary interstitium (and 
				respiratory passageways) (VPF) by integrating the rate of change of the free fluid
				in the lungs (DFP).
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>

<!-- Inputs from other components -->
		<variable name="PFI"	units="L_per_minute" private_interface="none" public_interface="in"/>
		<variable name="PLF"	units="L_per_minute" private_interface="none" public_interface="in"/>
		<variable name="VPF1_init"	units="litre" private_interface="none" public_interface="in"/>
		<variable name="time"	units="minute" private_interface="none" public_interface="in"/>

<!-- Outputs to other components -->
		<variable	cmeta:id="pulmonary_interstitial_free_fluid_volume_DFP"
					name="DFP" 	units="L_per_minute" private_interface="none" public_interface="out"/>
		<variable	cmeta:id="pulmonary_interstitial_free_fluid_volume_VPF"
					name="VPF" 	units="litre" private_interface="none" public_interface="out"/>

<!-- Internal variables -->
		<variable name="DFZ"	units="L_per_minute" private_interface="none" public_interface="none"/>
		<variable name="VPF1"	initial_value="VPF1_init"	units="litre" private_interface="none" public_interface="none"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="PD5A">
                <eq/>
                <ci>DFZ</ci>
                <apply>
                    <minus/>
                    <ci>PFI</ci>
                    <ci>PLF</ci>
                </apply>
            </apply>
			<apply id="PD5B">
				<eq/>
				<ci>DFP</ci>
				<ci>DFZ</ci>
			</apply>
			<apply id="PD6">
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>time</ci>
                    </bvar>
                    <ci>VPF1</ci>
                </apply>
                <ci>DFP</ci>
            </apply>
			<apply id="PD5C">
                <eq/>
                <ci>VPF</ci>
                <piecewise>
                    <piece>
                        <cn cellml:units="litre">0.001</cn>
                        <apply>
                            <lt/>
                            <ci>VPF1</ci>
                            <cn cellml:units="litre">0.001</cn>
                        </apply>
                    </piece>
                    <otherwise>
                        <ci>VPF1</ci>
                    </otherwise>
                </piecewise>
			</apply>
		</math>
	</component>

<!-- STATE VARIABLES INITIAL VALUE -->
	<connection>
		<map_components component_1="pulmonary_interstitial_free_fluid_volume" component_2="state_variables"/>
		<map_variables variable_1="VPF1_init" variable_2="VPF1_init"/>
	</connection>

<!-- INPUT CONNECTIONS -->
	<connection>
		<map_components component_1="pulmonary_interstitial_free_fluid_volume" component_2="fluid_filtration_into_pulmonary_interstitium"/>
		<map_variables variable_1="PFI" variable_2="PFI"/>
	</connection>
	<connection>
		<map_components component_1="pulmonary_interstitial_free_fluid_volume" component_2="lung_lymphatic_protein_flow"/>
		<map_variables variable_1="PLF" variable_2="PLF"/>
	</connection>
	<connection>
		<map_components component_1="pulmonary_interstitial_free_fluid_volume" component_2="pulmonary_fluid_dynamics"/>
		<map_variables variable_1="DFP" variable_2="DFP"/>
		<map_variables variable_1="VPF" variable_2="VPF"/>
		<map_variables variable_1="time" variable_2="time"/>
	</connection>

<!-- ========================================	PULMONARY INTERSTITIAL FLUID PRESSURE	============================================= -->
	<component 	name="pulmonary_interstitial_fluid_pressure" 
				cmeta:id="pulmonary_interstitial_fluid_pressure">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#pulmonary_interstitial_fluid_pressure">
				<rdf:value>
				PD10 and PD11:  
				Curve-fitting blocks to calculate the pulmonary interstitial fluid pressure (PPI) 
				from the pulmonary interstitial fluid volume (VPF).
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#PD10_and_PD11">
				<rdf:value>
				PD10 and PD11:  
				Curve-fitting blocks to calculate the pulmonary interstitial fluid pressure (PPI) 
				from the pulmonary interstitial fluid volume (VPF).
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>
		
<!-- Inputs from other components -->
		<variable name="VPF"	units="litre" private_interface="none" public_interface="in"/>

<!-- Outputs to other components -->
		<variable name="PPI" 	units="mmHg" private_interface="none" public_interface="out"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="PD10_and_PD11">
				<eq/>
				<ci>PPI</ci>
				<apply>
					<minus/>
					<cn cellml:units="mmHg">2</cn>
					<apply>
						<divide/>
						<cn cellml:units="mmHg_L">0.15</cn>
						<ci>VPF</ci>
					</apply>
				</apply>
			</apply>
		</math>
	</component>

<!-- INPUT CONNECTIONS -->
	<connection>
		<map_components component_1="pulmonary_interstitial_fluid_pressure" component_2="pulmonary_interstitial_free_fluid_volume"/>
		<map_variables variable_1="VPF" variable_2="VPF"/>
	</connection>

<!-- ========================================	CONCENTRATION OF PROTEIN IN PULMONARY INTERSTITIUM	============================================= -->
	<component 	name="concentration_of_protein_in_pulmonary_interstitium" 
				cmeta:id="concentration_of_protein_in_pulmonary_interstitium">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#concentration_of_protein_in_pulmonary_interstitium">
				<rdf:value>
				PD15, PD15A, and PD15B:  
				The rate of change of the total quantity of protein in the pulmonary interstitium (PPD)
				is equal to the rate of influx of protein into the interstitium as a result of protein 
				leakage through the pulmonary capillary membrane (PPN) minus the rate of return of protein 
				to the circulation from the interstitium by way of the lymphatics (PPO).  Blocks 15A and 
				15B are computational blocks for the purpose of preventing overshoot of an iteration and 
				for preventing oscillation.  The factor (Z) is a damping factor that is used widely 
				throughout the model.
				NB:	- Damping in PF15A has been removed so that PPD = PPZ.
					- PD15B has been rearranged so that "if" statement is dependent on PPR which may alter
					the PPD output. (PPD IMPORTED INTO CP33 - Capillary Dynamics! CHECK THIS!!!).

				PD16:  
				The total quantity of protein in the pulmonary interstital free fluid (PPR) is calculated 
				by integrating with respect to time the rate of change of protein in the pulmonary 
				interstitium (PPD).

				PD17:  
				The concentration of protein in the pulmonary interstitium (CPN) is equal to the total 
				quantity of protein in the interstitium (PPR) divided by the volume of interstitial 
				fluid (VPF).
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#PD15">
				<rdf:value>
				PD15, PD15A, and PD15B:  
				The rate of change of the total quantity of protein in the pulmonary interstitium (PPD)
				is equal to the rate of influx of protein into the interstitium as a result of protein 
				leakage through the pulmonary capillary membrane (PPN) minus the rate of return of protein 
				to the circulation from the interstitium by way of the lymphatics (PPO).  Blocks 15A and 
				15B are computational blocks for the purpose of preventing overshoot of an iteration and 
				for preventing oscillation.  The factor (Z) is a damping factor that is used widely 
				throughout the model.

				NB:	- Damping in PF15A has been removed so that PPD = PPZ.
					- PD15B has been rearranged so that "if" statement is dependent on PPR which may alter
					the PPD output. (PPD IMPORTED INTO CP33 - Capillary Dynamics! CHECK THIS!!!).
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#PD15A">
				<rdf:value>
				PD15, PD15A, and PD15B:  
				The rate of change of the total quantity of protein in the pulmonary interstitium (PPD)
				is equal to the rate of influx of protein into the interstitium as a result of protein 
				leakage through the pulmonary capillary membrane (PPN) minus the rate of return of protein 
				to the circulation from the interstitium by way of the lymphatics (PPO).  Blocks 15A and 
				15B are computational blocks for the purpose of preventing overshoot of an iteration and 
				for preventing oscillation.  The factor (Z) is a damping factor that is used widely 
				throughout the model.

				NB:	- Damping in PF15A has been removed so that PPD = PPZ.
					- PD15B has been rearranged so that "if" statement is dependent on PPR which may alter
					the PPD output. (PPD IMPORTED INTO CP33 - Capillary Dynamics! CHECK THIS!!!).
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#PD15B">
				<rdf:value>
				PD15, PD15A, and PD15B:  
				The rate of change of the total quantity of protein in the pulmonary interstitium (PPD)
				is equal to the rate of influx of protein into the interstitium as a result of protein 
				leakage through the pulmonary capillary membrane (PPN) minus the rate of return of protein 
				to the circulation from the interstitium by way of the lymphatics (PPO).  Blocks 15A and 
				15B are computational blocks for the purpose of preventing overshoot of an iteration and 
				for preventing oscillation.  The factor (Z) is a damping factor that is used widely 
				throughout the model.

				NB:	- Damping in PF15A has been removed so that PPD = PPZ.
					- PD15B has been rearranged so that "if" statement is dependent on PPR which may alter
					the PPD output. (PPD IMPORTED INTO CP33 - Capillary Dynamics! CHECK THIS!!!).
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#PD16">
				<rdf:value>
				PD16:  
				The total quantity of protein in the pulmonary interstital free fluid (PPR) is calculated 
				by integrating with respect to time the rate of change of protein in the pulmonary 
				interstitium (PPD).
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#PD17">
				<rdf:value>
				PD17:  
				The concentration of protein in the pulmonary interstitium (CPN) is equal to the total 
				quantity of protein in the interstitium (PPR) divided by the volume of interstitial 
				fluid (VPF).
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>
		
<!-- Inputs from other components -->
		<variable name="PPO"	units="gram_per_minute" private_interface="none" public_interface="in"/>
		<variable name="PPN"	units="gram_per_minute" private_interface="none" public_interface="in"/>
		<variable name="VPF"	units="litre" private_interface="none" public_interface="in"/>
		<variable name="PPR1_init"	units="gram" private_interface="none" public_interface="in"/>
		<variable name="time"	units="minute" private_interface="none" public_interface="in"/>

<!-- Outputs to other components -->
		<variable	cmeta:id="concentration_of_protein_in_pulmonary_interstitium_PPD" 
					name="PPD" 	units="gram_per_minute" private_interface="none" public_interface="out"/>
		<variable name="CPN" 	units="gram_per_L" private_interface="none" public_interface="out"/>

<!-- Internal variables -->
		<variable name="PPZ"	units="gram_per_minute" private_interface="none" public_interface="none"/>
		<variable name="PPR1"	initial_value="PPR1_init"	units="gram" private_interface="none" public_interface="none"/>
		<variable name="PPR"	units="gram" private_interface="none" public_interface="none"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="PD15">
				<eq/>
				<ci>PPZ</ci>
				<apply>
					<minus/>
					<ci>PPN</ci>
					<ci>PPO</ci>
				</apply>
			</apply>
			<apply id="PD15A">
				<eq/>
				<ci>PPD</ci>
				<ci>PPZ</ci>
			</apply>
			<apply id="PD16">
				<eq/>
				<apply>
					<diff/>
					<bvar>
						<ci>time</ci>
					</bvar>
					<ci>PPR1</ci>
				</apply>
				<ci>PPD</ci>
			</apply>
			<apply id="PD15B">
                <eq/>
                <ci>PPR</ci>
                <piecewise>
                    <piece>
                        <cn cellml:units="gram">0.025</cn>
                        <apply>
                            <lt/>
                            <ci>PPR1</ci>
                            <cn cellml:units="gram">0.025</cn>
                        </apply>
                    </piece>
                    <otherwise>
                        <ci>PPR1</ci>
                    </otherwise>
                </piecewise>
			</apply>
			<apply id="PD17">
				<eq/>
				<ci>CPN</ci>
				<apply>
					<divide/>
					<ci>PPR</ci>
					<ci>VPF</ci>
				</apply>
			</apply>
		</math>
	</component>

<!-- STATE VARIABLES INITIAL VALUE -->
	<connection>
		<map_components component_1="concentration_of_protein_in_pulmonary_interstitium" component_2="state_variables"/>
		<map_variables variable_1="PPR1_init" variable_2="PPR1_init"/> 
	</connection>

<!-- INPUT CONNECTIONS -->
	<connection>
		<map_components component_1="concentration_of_protein_in_pulmonary_interstitium" component_2="pulmonary_interstitial_free_fluid_volume"/>
		<map_variables variable_1="VPF" variable_2="VPF"/>
	</connection>
	<connection>
		<map_components component_1="concentration_of_protein_in_pulmonary_interstitium" component_2="pulmonary_fluid_dynamics"/>
		<map_variables variable_1="PPD" variable_2="PPD"/>
		<map_variables variable_1="time" variable_2="time"/>
	</connection>

<!-- ========================================	COLLOID OSMOTIC PRESSURE OF PULMONARY INTERSTITIUM	============================================= -->
	<component 	name="colloid_osmotic_pressure_of_pulmonary_interstitium" 
				cmeta:id="colloid_osmotic_pressure_of_pulmonary_interstitium">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#colloid_osmotic_pressure_of_pulmonary_interstitium">
				<rdf:value>
				PD18:  
				The colloid osmotic pressure of the pulmonary interstitial fluid (POS) is equal to 
				the concentration of protein in the pulmonary interstitium (CPN) times a constant.
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#PD18">
				<rdf:value>
				PD18:  
				The colloid osmotic pressure of the pulmonary interstitial fluid (POS) is equal to 
				the concentration of protein in the pulmonary interstitium (CPN) times a constant.
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>
		
<!-- Inputs from other components -->
		<variable name="CPN"	units="gram_per_L" private_interface="none" public_interface="in"/>

<!-- Outputs to other components -->
		<variable name="POS" 	units="mmHg" private_interface="none" public_interface="out"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="PD18">
				<eq/>
				<ci>POS</ci>
				<apply>
					<times/>
					<ci>CPN</ci>
					<cn cellml:units="L_mmHg_per_gram">0.4</cn>
				</apply>
			</apply>
		</math>
	</component>

<!-- INPUT CONNECTIONS -->
	<connection>
		<map_components component_1="colloid_osmotic_pressure_of_pulmonary_interstitium" component_2="concentration_of_protein_in_pulmonary_interstitium"/>
		<map_variables variable_1="CPN" variable_2="CPN"/>
	</connection>

<!-- ========================================	PROTEIN LEAKAGE INTO PULMONARY INTERSTITIUM		============================================= -->
	<component 	name="protein_leakage_into_pulmonary_interstitium" 
				cmeta:id="protein_leakage_into_pulmonary_interstitium">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#protein_leakage_into_pulmonary_interstitium">
				<rdf:value>
				PD19 and PD20:  
				The rate of leakage of protein through the pulmonary capillary membrane into the pulmonary 
				interstitium (PPN) is equal to the concentration of protein in the plasma (CPP), minus the
				concentration of protein in the pulmonary interstitium (CPN) times a constant.
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#PD19_and_PD20">
				<rdf:value>
				PD19 and PD20:  
				The rate of leakage of protein through the pulmonary capillary membrane into the pulmonary 
				interstitium (PPN) is equal to the concentration of protein in the plasma (CPP), minus the
				concentration of protein in the pulmonary interstitium (CPN) times a constant.
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>
		
<!-- Inputs from other components -->
		<variable name="CPP"	units="gram_per_L" private_interface="none" public_interface="in"/>
		<variable name="CPN"	units="gram_per_L" private_interface="none" public_interface="in"/>

<!-- Outputs to other components -->
		<variable name="PPN" 	units="gram_per_minute" private_interface="none" public_interface="out"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="PD19_and_PD20">
				<eq/>
				<ci>PPN</ci>
				<apply>
					<times/>
					<apply>
						<minus/>
						<ci>CPP</ci>
						<ci>CPN</ci>
					</apply>
					<cn cellml:units="L_per_minute">0.000225</cn>
				</apply>
			</apply>
		</math>
	</component>

<!-- INPUT CONNECTIONS -->
	<connection>
		<map_components component_1="protein_leakage_into_pulmonary_interstitium" component_2="pulmonary_fluid_dynamics"/>
		<map_variables variable_1="CPP" variable_2="CPP"/>
	</connection>
	<connection>
		<map_components component_1="protein_leakage_into_pulmonary_interstitium" component_2="concentration_of_protein_in_pulmonary_interstitium"/>
		<map_variables variable_1="CPN" variable_2="CPN"/>
		<map_variables variable_1="PPN" variable_2="PPN"/>
	</connection>

<!-- ========================================	LUNG LYMPHATIC PROTEIN FLOW		============================================= -->
	<component 	name="lung_lymphatic_protein_flow" 
				cmeta:id="lung_lymphatic_protein_flow">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#lung_lymphatic_protein_flow">
				<rdf:value>
				PD12 and PD13:  
				Curve-fitting blocks to calculate the rate of pulmonary lymph flow (PLF) from the 
				pulmonary interstitial fluid pressure (PPI).

				PD14:  
				Rate of return of protein from the pulmonary interstitium to the circulation in 
				the pulmonary lymph (PPO) is equal to the concentration of protein in the 
				pulmonary interstitial fluid (CPN) times the rate of pulmonary lymph flow (PLF).
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#PD12_and_PD13">
				<rdf:value>
				PD12 and PD13:  
				Curve-fitting blocks to calculate the rate of pulmonary lymph flow (PLF) from the 
				pulmonary interstitial fluid pressure (PPI).
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#PD14">
				<rdf:value>
				PD14:  
				Rate of return of protein from the pulmonary interstitium to the circulation in 
				the pulmonary lymph (PPO) is equal to the concentration of protein in the 
				pulmonary interstitial fluid (CPN) times the rate of pulmonary lymph flow (PLF).
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>
		
<!-- Inputs from other components -->
		<variable name="PPI"	units="mmHg" private_interface="none" public_interface="in"/>
		<variable name="CPN"	units="gram_per_L" private_interface="none" public_interface="in"/>

<!-- Outputs to other components -->
		<variable name="PLF" 	units="L_per_minute" private_interface="none" public_interface="out"/>
		<variable name="PPO" 	units="gram_per_minute" private_interface="none" public_interface="out"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="PD12_and_PD13">
				<eq/>
				<ci>PLF</ci>
				<apply>
					<times/>
					<apply>
						<plus/>
						<ci>PPI</ci>
						<cn cellml:units="mmHg">11</cn>
					</apply>
					<cn cellml:units="L_per_minute_per_mmHg">0.0003</cn>
				</apply>
			</apply>
			<apply id="PD14">
				<eq/>
				<ci>PPO</ci>
				<apply>
					<times/>
					<ci>PLF</ci>
					<ci>CPN</ci>
				</apply>
			</apply>
		</math>
	</component>

<!-- INPUT CONNECTIONS -->
	<connection>
		<map_components component_1="lung_lymphatic_protein_flow" component_2="pulmonary_interstitial_fluid_pressure"/>
		<map_variables variable_1="PPI" variable_2="PPI"/>
	</connection>
	<connection>
		<map_components component_1="lung_lymphatic_protein_flow" component_2="concentration_of_protein_in_pulmonary_interstitium"/>
		<map_variables variable_1="CPN" variable_2="CPN"/>
		<map_variables variable_1="PPO" variable_2="PPO"/>
	</connection>

<!-- ============================================================		GROUPING		=============================================================== -->

	<group>
		<relationship_ref relationship="containment"/>
		<component_ref component="pulmonary_fluid_dynamics">
			<component_ref component="pulmonary_capillary_pressure"/>
			<component_ref component="fluid_filtration_into_pulmonary_interstitium"/>
			<component_ref component="pulmonary_interstitial_free_fluid_volume"/>
			<component_ref component="pulmonary_interstitial_fluid_pressure"/>
			<component_ref component="concentration_of_protein_in_pulmonary_interstitium"/>
			<component_ref component="colloid_osmotic_pressure_of_pulmonary_interstitium"/>
			<component_ref component="protein_leakage_into_pulmonary_interstitium"/>
			<component_ref component="lung_lymphatic_protein_flow"/>
		</component_ref>
	</group>
      
	<group>
		<relationship_ref relationship="encapsulation"/>
		<component_ref component="pulmonary_fluid_dynamics">
			<component_ref component="parameter_values"/>
			<component_ref component="state_variables"/>
			<component_ref component="pulmonary_capillary_pressure"/>
			<component_ref component="fluid_filtration_into_pulmonary_interstitium"/>
			<component_ref component="pulmonary_interstitial_free_fluid_volume"/>
			<component_ref component="pulmonary_interstitial_fluid_pressure"/>
			<component_ref component="concentration_of_protein_in_pulmonary_interstitium"/>
			<component_ref component="colloid_osmotic_pressure_of_pulmonary_interstitium"/>
			<component_ref component="protein_leakage_into_pulmonary_interstitium"/>
			<component_ref component="lung_lymphatic_protein_flow"/>
		</component_ref>
	</group>
   
</model>