Alph is no longer for sale.

I am afraid revenue generated from Alph has not proven to be sufficient to justify its continued sale. I greatly appreciate the support of the folks who have purchased Alph in the past and hope that it will continue to serve you well in the future.

This and related pages will be maintained for archival purposes only.

Craig


Natural Gas Liquefaction Example

This is a natural gas liquefaction process based on an example from the VMGSim process simulator by Virtual Materials. See the more detailed description.

Loading this case into Alph

Browse this page with the web browser on your iPhone. Tap and hold in the gray area below to select the whole region and and then tap the copy button that appears. Run Alph and use the Load Case command to load this case from the paste board.

{
 "Tools" : [
   {
     "Type" : "Mixer",
     "name" : "m1",
     "DiagramY" : 108.9744,
     "inputPaths" : [
       "@feed",
       "@f37"
     ],
     "DiagramX" : 112.6168
   },
   {
     "name" : "ex1",
     "Type" : "Compressor/Expander",
     "outP" : "520 kPa",
     "efficiency" : ".8",
     "DiagramY" : 86.32358,
     "Feed" : "@f2",
     "DiagramX" : 207.0584
   },
   {
     "Variables" : [
       {
         "PropertyType" : "DeltaT",
         "name" : "dt",
         "Type" : "V",
         "PropertyFormula" : "",
         "Description" : "delta T between side1in and side2out",
         "DiagramY" : 160.1964,
         "DiagramX" : 7.000001
       },
       {
         "Type" : "V",
         "name" : "side1dp",
         "PropertyFormula" : "10 Kpa",
         "PropertyType" : "DeltaP",
         "DiagramY" : 46.1964,
         "DiagramX" : 11.66667
       },
       {
         "Type" : "V",
         "name" : "side2dp",
         "PropertyFormula" : "10 Kpa",
         "PropertyType" : "DeltaP",
         "DiagramY" : 132.8631,
         "DiagramX" : 8.333344
       },
       {
         "Type" : "V",
         "name" : "side1out",
         "PropertyFormula" : "@side1out",
         "PropertyType" : "Reference",
         "DiagramY" : 23.02135,
         "DiagramX" : 322.7667
       },
       {
         "Type" : "V",
         "name" : "side2out",
         "PropertyFormula" : "@side2out",
         "PropertyType" : "Reference",
         "DiagramY" : 160.9684,
         "DiagramX" : 333.9115
       },
       {
         "Type" : "V",
         "name" : "duty",
         "PropertyFormula" : "@side1out - #side1in",
         "PropertyType" : "Q",
         "DiagramY" : 76.29341,
         "DiagramX" : 325.2804
       },
       {
         "Type" : "V",
         "name" : "dta",
         "PropertyFormula" : "#side1in.t - @side2out.t",
         "PropertyType" : "DeltaT",
         "DiagramY" : 93.10149,
         "DiagramX" : 247.7463
       },
       {
         "Type" : "V",
         "name" : "dtb",
         "PropertyFormula" : "@side1out.t - #side2in.t",
         "PropertyType" : "DeltaT",
         "DiagramY" : 127.8955,
         "DiagramX" : 248.2448
       },
       {
         "PropertyType" : "Vf",
         "name" : "lmtd",
         "Type" : "V",
         "PropertyFormula" : "($dta - $dtb) /\n{ln ($dta/$dtb)}",
         "Notes" : "Assumes a simple single shell, single tube bundle exchanger with an f factor of 1.  Adding F factor calculations for other configurations would be relatively straight forward.",
         "DiagramY" : 109.9919,
         "DiagramX" : 332.219
       },
       {
         "PropertyType" : "T",
         "name" : "T2Out",
         "Type" : "V",
         "PropertyFormula" : "-90 C",
         "Description" : "optional side 2 out temperature",
         "DiagramY" : 186.9536,
         "DiagramX" : 7.034012
       }
     ],
     "diagramY" : -21.19169,
     "name" : "hx1",
     "Type" : "Model Tool",
     "Fluids" : [
       {
         "CompFormula" : "#side1in",
         "TwoLiquids" : false,
         "Retrograde" : false,
         "FirstPropFormula" : "#side1in - $side1dp",
         "SecondPropFormula" : "(#side1in.q + #side2in.q - @side2out.q ) / @side1out.f ",
         "DiagramX" : 164.5857,
         "Type" : "F",
         "FirstPropType" : "P",
         "SumCompForFlow" : false,
         "name" : "side1out",
         "SecondPropType" : "H",
         "DiagramY" : 21.8401,
         "FlowFormula" : "#side1in"
       },
       {
         "CompFormula" : "#side2in",
         "TwoLiquids" : false,
         "Retrograde" : false,
         "FirstPropFormula" : "{if ($T2Out+10000) $T2Out (#side1in + $dt)}",
         "SecondPropFormula" : "#side2in - $side2dp",
         "DiagramX" : 123.3361,
         "Type" : "F",
         "FirstPropType" : "T",
         "SumCompForFlow" : false,
         "name" : "side2out",
         "SecondPropType" : "P",
         "DiagramY" : 161.5551,
         "FlowFormula" : "#side2in"
       }
     ],
     "Notes" : "Models the heat balance of a simple two sided exchanger.\n\nThe inlet fluids are obtained from the parent and the pressure drops are specified in the $side1dp and $side2dp variables.\n\nThe side2out temperature is set as a difference from the side1in temperature by variable $dt, but of course the model can be altered for other circumstances.",
     "Tools" : [
       {
         "Type" : "Model Input Tool",
         "name" : "side1in",
         "DiagramY" : 19.55223,
         "Source" : "f14",
         "DiagramX" : 11.85318
       },
       {
         "Type" : "Model Input Tool",
         "name" : "side2in",
         "DiagramY" : 108.1964,
         "Source" : "f3",
         "DiagramX" : 9.666661
       }
     ],
     "DiagramY" : 11.23637,
     "diagramScale" : 2.491526,
     "diagramX" : 8.619041,
     "DiagramX" : 351.9314
   },
   {
     "Variables" : [
       {
         "PropertyType" : "DeltaT",
         "name" : "dt",
         "Type" : "V",
         "PropertyFormula" : "",
         "Description" : "delta T between side1in and side2out",
         "DiagramY" : 160.1964,
         "DiagramX" : 7.000001
       },
       {
         "Type" : "V",
         "name" : "side1dp",
         "PropertyFormula" : "10 Kpa",
         "PropertyType" : "DeltaP",
         "DiagramY" : 46.1964,
         "DiagramX" : 11.66667
       },
       {
         "Type" : "V",
         "name" : "side2dp",
         "PropertyFormula" : "10 Kpa",
         "PropertyType" : "DeltaP",
         "DiagramY" : 132.8631,
         "DiagramX" : 8.333344
       },
       {
         "Type" : "V",
         "name" : "side1out",
         "PropertyFormula" : "@side1out",
         "PropertyType" : "Reference",
         "DiagramY" : 23.02135,
         "DiagramX" : 322.7667
       },
       {
         "Type" : "V",
         "name" : "side2out",
         "PropertyFormula" : "@side2out",
         "PropertyType" : "Reference",
         "DiagramY" : 160.9684,
         "DiagramX" : 333.9115
       },
       {
         "Type" : "V",
         "name" : "duty",
         "PropertyFormula" : "@side1out - #side1in",
         "PropertyType" : "Q",
         "DiagramY" : 76.29341,
         "DiagramX" : 325.2804
       },
       {
         "Type" : "V",
         "name" : "dta",
         "PropertyFormula" : "#side1in.t - @side2out.t",
         "PropertyType" : "DeltaT",
         "DiagramY" : 93.10149,
         "DiagramX" : 247.7463
       },
       {
         "Type" : "V",
         "name" : "dtb",
         "PropertyFormula" : "@side1out.t - #side2in.t",
         "PropertyType" : "DeltaT",
         "DiagramY" : 127.8955,
         "DiagramX" : 248.2448
       },
       {
         "PropertyType" : "Vf",
         "name" : "lmtd",
         "Type" : "V",
         "PropertyFormula" : "($dta - $dtb) /\n{ln ($dta/$dtb)}",
         "Notes" : "Assumes a simple single shell, single tube bundle exchanger with an f factor of 1.  Adding F factor calculations for other configurations would be relatively straight forward.",
         "DiagramY" : 109.9919,
         "DiagramX" : 332.219
       },
       {
         "PropertyType" : "T",
         "name" : "T2Out",
         "Type" : "V",
         "PropertyFormula" : "-131.27 C",
         "Description" : "optional side 2 out temperature",
         "DiagramY" : 185.3481,
         "DiagramX" : 5.829928
       }
     ],
     "diagramY" : 11.71987,
     "name" : "hx2",
     "Type" : "Model Tool",
     "Fluids" : [
       {
         "CompFormula" : "#side1in",
         "TwoLiquids" : false,
         "Retrograde" : false,
         "FirstPropFormula" : "#side1in - $side1dp",
         "SecondPropFormula" : "(#side1in.q + #side2in.q - @side2out.q ) / @side1out.f ",
         "DiagramX" : 164.5857,
         "Type" : "F",
         "FirstPropType" : "P",
         "SumCompForFlow" : false,
         "name" : "side1out",
         "SecondPropType" : "H",
         "DiagramY" : 21.8401,
         "FlowFormula" : "#side1in"
       },
       {
         "CompFormula" : "#side2in",
         "TwoLiquids" : false,
         "Retrograde" : false,
         "FirstPropFormula" : "{if ($T2Out+10000) $T2Out (#side1in + $dt)}",
         "SecondPropFormula" : "#side2in - $side2dp",
         "DiagramX" : 123.3361,
         "Type" : "F",
         "FirstPropType" : "T",
         "SumCompForFlow" : false,
         "name" : "side2out",
         "SecondPropType" : "P",
         "DiagramY" : 161.5551,
         "FlowFormula" : "#side2in"
       }
     ],
     "Notes" : "Models the heat balance of a simple two sided exchanger.\n\nThe inlet fluids are obtained from the parent and the pressure drops are specified in the $side1dp and $side2dp variables.\n\nThe side2out temperature is set as a difference from the side1in temperature by variable $dt, but of course the model can be altered for other circumstances.",
     "Tools" : [
       {
         "Type" : "Model Input Tool",
         "name" : "side1in",
         "DiagramY" : 19.55223,
         "Source" : "f13",
         "DiagramX" : 11.85318
       },
       {
         "Type" : "Model Input Tool",
         "name" : "side2in",
         "DiagramY" : 108.1964,
         "Source" : "f4",
         "DiagramX" : 9.666661
       }
     ],
     "DiagramY" : 5.685173,
     "diagramScale" : 2.491526,
     "diagramX" : 18.65306,
     "DiagramX" : 522.3172
   },
   {
     "Variables" : [
       {
         "PropertyType" : "DeltaT",
         "name" : "dt",
         "Type" : "V",
         "PropertyFormula" : "",
         "Description" : "delta T between side1in and side2out",
         "DiagramY" : 160.1964,
         "DiagramX" : 7.000001
       },
       {
         "Type" : "V",
         "name" : "side1dp",
         "PropertyFormula" : "10 Kpa",
         "PropertyType" : "DeltaP",
         "DiagramY" : 46.1964,
         "DiagramX" : 11.66667
       },
       {
         "Type" : "V",
         "name" : "side2dp",
         "PropertyFormula" : "10 Kpa",
         "PropertyType" : "DeltaP",
         "DiagramY" : 132.8631,
         "DiagramX" : 8.333344
       },
       {
         "Type" : "V",
         "name" : "side1out",
         "PropertyFormula" : "@side1out",
         "PropertyType" : "Reference",
         "DiagramY" : 23.02135,
         "DiagramX" : 322.7667
       },
       {
         "Type" : "V",
         "name" : "side2out",
         "PropertyFormula" : "@side2out",
         "PropertyType" : "Reference",
         "DiagramY" : 160.9684,
         "DiagramX" : 333.9115
       },
       {
         "Type" : "V",
         "name" : "duty",
         "PropertyFormula" : "@side1out - #side1in",
         "PropertyType" : "Q",
         "DiagramY" : 76.29341,
         "DiagramX" : 325.2804
       },
       {
         "Type" : "V",
         "name" : "dta",
         "PropertyFormula" : "#side1in.t - @side2out.t",
         "PropertyType" : "DeltaT",
         "DiagramY" : 93.10149,
         "DiagramX" : 247.7463
       },
       {
         "Type" : "V",
         "name" : "dtb",
         "PropertyFormula" : "@side1out.t - #side2in.t",
         "PropertyType" : "DeltaT",
         "DiagramY" : 127.8955,
         "DiagramX" : 248.2448
       },
       {
         "PropertyType" : "Vf",
         "name" : "lmtd",
         "Type" : "V",
         "PropertyFormula" : "($dta - $dtb) /\n{ln ($dta/$dtb)}",
         "Notes" : "Assumes a simple single shell, single tube bundle exchanger with an f factor of 1.  Adding F factor calculations for other configurations would be relatively straight forward.",
         "DiagramY" : 109.9919,
         "DiagramX" : 332.219
       },
       {
         "PropertyType" : "T",
         "name" : "T2Out",
         "Type" : "V",
         "PropertyFormula" : "-140 C",
         "Description" : "optional side 2 out temperature",
         "DiagramY" : 184.9468,
         "DiagramX" : 6.632651
       }
     ],
     "diagramY" : -10.75631,
     "name" : "hx3",
     "Type" : "Model Tool",
     "Fluids" : [
       {
         "CompFormula" : "#side1in",
         "TwoLiquids" : false,
         "Retrograde" : false,
         "FirstPropFormula" : "#side1in - $side1dp",
         "SecondPropFormula" : "(#side1in.q + #side2in.q - @side2out.q ) / @side1out.f ",
         "DiagramX" : 164.5857,
         "Type" : "F",
         "FirstPropType" : "P",
         "SumCompForFlow" : false,
         "name" : "side1out",
         "SecondPropType" : "H",
         "DiagramY" : 21.8401,
         "FlowFormula" : "#side1in"
       },
       {
         "CompFormula" : "#side2in",
         "TwoLiquids" : false,
         "Retrograde" : false,
         "FirstPropFormula" : "{if ($T2Out+10000) $T2Out (#side1in + $dt)}",
         "SecondPropFormula" : "#side2in - $side2dp",
         "DiagramX" : 123.3361,
         "Type" : "F",
         "FirstPropType" : "T",
         "SumCompForFlow" : false,
         "name" : "side2out",
         "SecondPropType" : "P",
         "DiagramY" : 161.5551,
         "FlowFormula" : "#side2in"
       }
     ],
     "Notes" : "Models the heat balance of a simple two sided exchanger.\n\nThe inlet fluids are obtained from the parent and the pressure drops are specified in the $side1dp and $side2dp variables.\n\nThe side2out temperature is set as a difference from the side1in temperature by variable $dt, but of course the model can be altered for other circumstances.",
     "Tools" : [
       {
         "Type" : "Model Input Tool",
         "name" : "side1in",
         "DiagramY" : 19.55223,
         "Source" : "f5",
         "DiagramX" : 11.85318
       },
       {
         "Type" : "Model Input Tool",
         "name" : "side2in",
         "DiagramY" : 108.1964,
         "Source" : "f12",
         "DiagramX" : 9.666661
       }
     ],
     "DiagramY" : 50.4408,
     "diagramScale" : 2.491526,
     "diagramX" : 1.394557,
     "DiagramX" : 628.4797
   },
   {
     "Variables" : [
       {
         "PropertyType" : "DeltaT",
         "name" : "dt",
         "Type" : "V",
         "PropertyFormula" : "",
         "Description" : "delta T between side1in and side2out",
         "DiagramY" : 160.1964,
         "DiagramX" : 7.000001
       },
       {
         "Type" : "V",
         "name" : "side1dp",
         "PropertyFormula" : "10 Kpa",
         "PropertyType" : "DeltaP",
         "DiagramY" : 46.1964,
         "DiagramX" : 11.66667
       },
       {
         "Type" : "V",
         "name" : "side2dp",
         "PropertyFormula" : "10 Kpa",
         "PropertyType" : "DeltaP",
         "DiagramY" : 132.8631,
         "DiagramX" : 8.333344
       },
       {
         "Type" : "V",
         "name" : "side1out",
         "PropertyFormula" : "@side1out",
         "PropertyType" : "Reference",
         "DiagramY" : 23.02135,
         "DiagramX" : 322.7667
       },
       {
         "Type" : "V",
         "name" : "side2out",
         "PropertyFormula" : "@side2out",
         "PropertyType" : "Reference",
         "DiagramY" : 160.9684,
         "DiagramX" : 333.9115
       },
       {
         "Type" : "V",
         "name" : "duty",
         "PropertyFormula" : "@side1out - #side1in",
         "PropertyType" : "Q",
         "DiagramY" : 76.29341,
         "DiagramX" : 325.2804
       },
       {
         "Type" : "V",
         "name" : "dta",
         "PropertyFormula" : "#side1in.t - @side2out.t",
         "PropertyType" : "DeltaT",
         "DiagramY" : 93.10149,
         "DiagramX" : 247.7463
       },
       {
         "Type" : "V",
         "name" : "dtb",
         "PropertyFormula" : "@side1out.t - #side2in.t",
         "PropertyType" : "DeltaT",
         "DiagramY" : 127.8955,
         "DiagramX" : 248.2448
       },
       {
         "PropertyType" : "Vf",
         "name" : "lmtd",
         "Type" : "V",
         "PropertyFormula" : "($dta - $dtb) /\n{ln ($dta/$dtb)}",
         "Notes" : "Assumes a simple single shell, single tube bundle exchanger with an f factor of 1.  Adding F factor calculations for other configurations would be relatively straight forward.",
         "DiagramY" : 109.9919,
         "DiagramX" : 332.219
       },
       {
         "PropertyType" : "T",
         "name" : "T2Out",
         "Type" : "V",
         "PropertyFormula" : "-32.5 C",
         "Description" : "optional side 2 out temperature",
         "DiagramY" : 185.3481,
         "DiagramX" : 7.034012
       }
     ],
     "diagramY" : -9.552231,
     "name" : "hx5",
     "Type" : "Model Tool",
     "Fluids" : [
       {
         "CompFormula" : "#side1in",
         "TwoLiquids" : false,
         "Retrograde" : false,
         "FirstPropFormula" : "#side1in - $side1dp",
         "SecondPropFormula" : "(#side1in.q + #side2in.q - @side2out.q ) / @side1out.f ",
         "DiagramX" : 164.5857,
         "Type" : "F",
         "FirstPropType" : "P",
         "SumCompForFlow" : false,
         "name" : "side1out",
         "SecondPropType" : "H",
         "DiagramY" : 21.8401,
         "FlowFormula" : "#side1in"
       },
       {
         "CompFormula" : "#side2in",
         "TwoLiquids" : false,
         "Retrograde" : false,
         "FirstPropFormula" : "{if ($T2Out+10000) $T2Out (#side1in + $dt)}",
         "SecondPropFormula" : "#side2in - $side2dp",
         "DiagramX" : 123.3361,
         "Type" : "F",
         "FirstPropType" : "T",
         "SumCompForFlow" : false,
         "name" : "side2out",
         "SecondPropType" : "P",
         "DiagramY" : 161.5551,
         "FlowFormula" : "#side2in"
       }
     ],
     "Notes" : "Models the heat balance of a simple two sided exchanger.\n\nThe inlet fluids are obtained from the parent and the pressure drops are specified in the $side1dp and $side2dp variables.\n\nThe side2out temperature is set as a difference from the side1in temperature by variable $dt, but of course the model can be altered for other circumstances.",
     "Tools" : [
       {
         "Type" : "Model Input Tool",
         "name" : "side1in",
         "DiagramY" : 19.55223,
         "Source" : "f10",
         "DiagramX" : 11.85318
       },
       {
         "Type" : "Model Input Tool",
         "name" : "side2in",
         "DiagramY" : 108.1964,
         "Source" : "f15",
         "DiagramX" : 9.666661
       }
     ],
     "DiagramY" : 225.921,
     "diagramScale" : 2.491526,
     "diagramX" : 2.999999,
     "DiagramX" : 278.3608
   },
   {
     "name" : "ex2",
     "Type" : "Compressor/Expander",
     "outP" : "150 kPa",
     "efficiency" : ".81",
     "DiagramY" : 186.5651,
     "Feed" : "@f11",
     "DiagramX" : 441.2764
   },
   {
     "Variables" : [
       {
         "PropertyType" : "DeltaT",
         "name" : "dt",
         "Type" : "V",
         "PropertyFormula" : "",
         "Description" : "delta T between side1in and side2out",
         "DiagramY" : 160.1964,
         "DiagramX" : 7.000001
       },
       {
         "Type" : "V",
         "name" : "side1dp",
         "PropertyFormula" : "5 Kpa",
         "PropertyType" : "DeltaP",
         "DiagramY" : 46.1964,
         "DiagramX" : 11.66667
       },
       {
         "Type" : "V",
         "name" : "side2dp",
         "PropertyFormula" : "5 Kpa",
         "PropertyType" : "DeltaP",
         "DiagramY" : 132.8631,
         "DiagramX" : 8.333344
       },
       {
         "Type" : "V",
         "name" : "side1out",
         "PropertyFormula" : "@side1out",
         "PropertyType" : "Reference",
         "DiagramY" : 23.02135,
         "DiagramX" : 322.7667
       },
       {
         "Type" : "V",
         "name" : "side2out",
         "PropertyFormula" : "@side2out",
         "PropertyType" : "Reference",
         "DiagramY" : 160.9684,
         "DiagramX" : 333.9115
       },
       {
         "Type" : "V",
         "name" : "duty",
         "PropertyFormula" : "@side1out - #side1in",
         "PropertyType" : "Q",
         "DiagramY" : 76.29341,
         "DiagramX" : 325.2804
       },
       {
         "Type" : "V",
         "name" : "dta",
         "PropertyFormula" : "#side1in.t - @side2out.t",
         "PropertyType" : "DeltaT",
         "DiagramY" : 93.10149,
         "DiagramX" : 247.7463
       },
       {
         "Type" : "V",
         "name" : "dtb",
         "PropertyFormula" : "@side1out.t - #side2in.t",
         "PropertyType" : "DeltaT",
         "DiagramY" : 127.8955,
         "DiagramX" : 248.2448
       },
       {
         "PropertyType" : "Vf",
         "name" : "lmtd",
         "Type" : "V",
         "PropertyFormula" : "($dta - $dtb) /\n{ln ($dta/$dtb)}",
         "Notes" : "Assumes a simple single shell, single tube bundle exchanger with an f factor of 1.  Adding F factor calculations for other configurations would be relatively straight forward.",
         "DiagramY" : 109.9919,
         "DiagramX" : 332.219
       },
       {
         "PropertyType" : "T",
         "name" : "T2Out",
         "Type" : "V",
         "PropertyFormula" : "-142 C",
         "Description" : "optional side 2 out temperature",
         "DiagramY" : 185.3481,
         "DiagramX" : 6.231292
       }
     ],
     "diagramY" : -9.552231,
     "name" : "hx4",
     "Type" : "Model Tool",
     "Fluids" : [
       {
         "CompFormula" : "#side1in",
         "TwoLiquids" : false,
         "Retrograde" : false,
         "FirstPropFormula" : "#side1in - $side1dp",
         "SecondPropFormula" : "(#side1in.q + #side2in.q - @side2out.q ) / @side1out.f ",
         "DiagramX" : 164.5857,
         "Type" : "F",
         "FirstPropType" : "P",
         "SumCompForFlow" : false,
         "name" : "side1out",
         "SecondPropType" : "H",
         "DiagramY" : 21.8401,
         "FlowFormula" : "#side1in"
       },
       {
         "CompFormula" : "#side2in",
         "TwoLiquids" : false,
         "Retrograde" : false,
         "FirstPropFormula" : "{if ($T2Out+10000) $T2Out (#side1in + $dt)}",
         "SecondPropFormula" : "#side2in - $side2dp",
         "DiagramX" : 123.3361,
         "Type" : "F",
         "FirstPropType" : "T",
         "SumCompForFlow" : false,
         "name" : "side2out",
         "SecondPropType" : "P",
         "DiagramY" : 161.5551,
         "FlowFormula" : "#side2in"
       }
     ],
     "Notes" : "Models the heat balance of a simple two sided exchanger.\n\nThe inlet fluids are obtained from the parent and the pressure drops are specified in the $side1dp and $side2dp variables.\n\nThe side2out temperature is set as a difference from the side1in temperature by variable $dt, but of course the model can be altered for other circumstances.",
     "Tools" : [
       {
         "Type" : "Model Input Tool",
         "name" : "side1in",
         "DiagramY" : 19.55223,
         "Source" : "f21",
         "DiagramX" : 11.85318
       },
       {
         "Type" : "Model Input Tool",
         "name" : "side2in",
         "DiagramY" : 108.1964,
         "Source" : "f6",
         "DiagramX" : 9.666661
       }
     ],
     "DiagramY" : 199.6843,
     "diagramScale" : 2.491526,
     "diagramX" : 2.999999,
     "DiagramX" : 589.5614
   },
   {
     "Type" : "Mixer",
     "name" : "m3",
     "DiagramY" : 302.9987,
     "inputPaths" : [
       "@f22",
       "@f16"
     ],
     "DiagramX" : 492.9644
   },
   {
     "name" : "cp1",
     "Type" : "Compressor/Expander",
     "outP" : "400 kPa",
     "efficiency" : ".8",
     "DiagramY" : 387.4115,
     "Feed" : "@f31",
     "DiagramX" : 347.1242
   },
   {
     "name" : "cp2",
     "Type" : "Compressor/Expander",
     "outP" : "1400 kPa",
     "efficiency" : ".8",
     "DiagramY" : 384.5905,
     "Feed" : "@f33",
     "DiagramX" : 512.5925
   },
   {
     "name" : "cp3",
     "Type" : "Compressor/Expander",
     "outP" : "4560 kPa",
     "efficiency" : ".8",
     "DiagramY" : 379.8254,
     "Feed" : "@f35",
     "DiagramX" : 672.9069
   },
   {
     "DiagramX" : 110.1529,
     "diagramY" : -42,
     "name" : "Models",
     "Type" : "Model Tool",
     "Fluids" : [],
     "Tools" : [
       {
         "Variables" : [
           {
             "PropertyType" : "DeltaP",
             "name" : "dphot",
             "Type" : "V",
             "PropertyFormula" : "50 Kpa",
             "Notes" : "The pressure drop of the warm fluid in the chiller.",
             "DiagramY" : 107.7188,
             "DiagramX" : 14.15664
           },
           {
             "PropertyType" : "DeltaP",
             "name" : "dpcold",
             "Type" : "V",
             "PropertyFormula" : "10 Kpa",
             "Notes" : "The pressure drop of the refrigerant in the chiller.",
             "DiagramY" : 144.6491,
             "DiagramX" : 14.15664
           },
           {
             "Type" : "V",
             "name" : "HotOut",
             "PropertyFormula" : "@HotOut",
             "PropertyType" : "Reference",
             "DiagramY" : 37.03811,
             "DiagramX" : 418.8666
           },
           {
             "Type" : "V",
             "name" : "Q",
             "PropertyFormula" : "#HotIn - @HotOut",
             "PropertyType" : "Q",
             "DiagramY" : 92.27057,
             "DiagramX" : 214.0569
           },
           {
             "PropertyType" : "T",
             "name" : "CondT",
             "Type" : "V",
             "Notes" : "The temperature of the refrigerant leaving the condenser.  Often this is a function of the ambient air temperature.",
             "PropertyFormula" : "45 C",
             "Description" : "refrigerant condensing temperature",
             "DiagramY" : 177.271,
             "DiagramX" : 14.15662
           },
           {
             "PropertyType" : "DeltaT",
             "name" : "dt",
             "Type" : "V",
             "Notes" : "The difference in the temperature between the refrigerant and the warm fluid leaving the chiller.",
             "PropertyFormula" : "5 C",
             "Description" : "hot end dt",
             "DiagramY" : 212.9703,
             "DiagramX" : 16.00317
           },
           {
             "PropertyType" : "DeltaP",
             "name" : "dpCond",
             "Type" : "V",
             "Notes" : "The pressure drop of the refrigerant in the condenser.",
             "PropertyFormula" : "75 Kpa",
             "Description" : "condensor pressure drop",
             "DiagramY" : 245.6903,
             "DiagramX" : 15.67767
           },
           {
             "PropertyType" : "Q",
             "name" : "power",
             "Type" : "V",
             "PropertyFormula" : "#c3comp.power",
             "Description" : "Compressor power",
             "DiagramY" : 149.8665,
             "DiagramX" : 417.5421
           },
           {
             "PropertyType" : "Vf",
             "name" : "compEff",
             "Type" : "V",
             "Notes" : "The compressor adiabatic efficiency.",
             "PropertyFormula" : ".75",
             "Description" : "compressor efficiency",
             "DiagramY" : 277.622,
             "DiagramX" : 14.49111
           },
           {
             "Type" : "V",
             "name" : "CondIn",
             "PropertyFormula" : "@condin",
             "PropertyType" : "Reference",
             "DiagramY" : 95.38553,
             "DiagramX" : 419.6184
           },
           {
             "Type" : "V",
             "name" : "CondQ",
             "PropertyFormula" : "@c3jt - @condIn",
             "PropertyType" : "Q",
             "DiagramY" : 200.7647,
             "DiagramX" : 418.9332
           },
           {
             "PropertyType" : "Reference",
             "name" : "ChillerIn.",
             "Type" : "V",
             "PropertyFormula" : "@chillerIn",
             "Description" : "refrigerant to chller",
             "DiagramY" : 256.0838,
             "DiagramX" : 417.0685
           },
           {
             "Type" : "V",
             "name" : "CmpOutP",
             "PropertyFormula" : "@c3jt + $dpCond",
             "PropertyType" : "P",
             "DiagramY" : 241.6794,
             "DiagramX" : 324.7387
           }
         ],
         "diagramY" : -3.89725,
         "name" : "refrig",
         "Type" : "Model Tool",
         "Fluids" : [
           {
             "CompFormula" : "#HotIn",
             "TwoLiquids" : false,
             "Retrograde" : false,
             "FirstPropFormula" : "#HotOutT",
             "SecondPropFormula" : "#HotIn - $dpHot",
             "DiagramX" : 174.1882,
             "Type" : "F",
             "FirstPropType" : "T",
             "SumCompForFlow" : false,
             "name" : "HotOut",
             "SecondPropType" : "P",
             "DiagramY" : 38.16658,
             "FlowFormula" : "#HotIn"
           },
           {
             "CompFormula" : "@c3comp",
             "TwoLiquids" : false,
             "Retrograde" : false,
             "FirstPropFormula" : "$condT",
             "SecondPropFormula" : "0",
             "Type" : "F",
             "FirstPropType" : "T",
             "Description" : "Propane to JT Valve",
             "DiagramX" : 235.0382,
             "name" : "c3jt",
             "SecondPropType" : "Vf",
             "DiagramY" : 215.1048,
             "FlowFormula" : "$Q / (@c3comp.H - @c3jt.H)",
             "SumCompForFlow" : false
           },
           {
             "CompFormula" : "#X",
             "TwoLiquids" : false,
             "Retrograde" : false,
             "FirstPropFormula" : "#HotOutT - $dt",
             "SecondPropFormula" : "1",
             "Type" : "F",
             "FirstPropType" : "T",
             "Description" : "Propane from chiller to Compressor",
             "DiagramX" : 155.7231,
             "name" : "c3comp",
             "SecondPropType" : "Vf",
             "DiagramY" : 133.5701,
             "FlowFormula" : "@c3jt",
             "SumCompForFlow" : false
           },
           {
             "CompFormula" : "#c3comp",
             "TwoLiquids" : false,
             "Retrograde" : false,
             "FirstPropFormula" : "#c3comp",
             "SecondPropFormula" : "#c3comp",
             "DiagramX" : 326.7156,
             "Type" : "F",
             "FirstPropType" : "P",
             "SumCompForFlow" : false,
             "name" : "CondIn",
             "SecondPropType" : "H",
             "DiagramY" : 95.07375,
             "FlowFormula" : "#c3comp"
           },
           {
             "CompFormula" : "@c3jt",
             "TwoLiquids" : false,
             "Retrograde" : false,
             "FirstPropFormula" : "@c3comp + $dpcold",
             "SecondPropFormula" : "@c3jt",
             "DiagramX" : 187.179,
             "Type" : "F",
             "FirstPropType" : "P",
             "SumCompForFlow" : false,
             "name" : "ChillerIn",
             "SecondPropType" : "H",
             "DiagramY" : 273.6158,
             "FlowFormula" : "@c3jt"
           }
         ],
         "Notes" : "This model represents a standard single stage refrigeration system.  The refrigerant composition is obtained from the parent by means of the #X model input tool, as is the hot inlet fluid (#HotIn) and the hot side outlet temperature (#HotOutT).\n\nSee the notes on left side variables for information about other inputs.",
         "Tools" : [
           {
             "name" : "X",
             "Type" : "Model Input Tool",
             "Notes" : "Refrigerant composition.",
             "Source" : "",
             "Description" : "refrigerant composition",
             "DiagramY" : 13.89725,
             "DiagramX" : 10.97431
           },
           {
             "name" : "HotIn",
             "Type" : "Model Input Tool",
             "Notes" : "The inlet fluid to be cooled.",
             "Source" : "",
             "Description" : "the fluid to be cooled",
             "DiagramY" : 45.07595,
             "DiagramX" : 11.38291
           },
           {
             "Type" : "Model Input Tool",
             "name" : "HotOutT",
             "DiagramX" : 12.61392,
             "DiagramY" : 77.55106,
             "Source" : "",
             "Notes" : "The temperature that the fluid is to be cooled to."
           },
           {
             "name" : "c3comp",
             "Type" : "Compressor/Expander",
             "outP" : "$CmpOutP",
             "efficiency" : "$compEff",
             "DiagramY" : 157.033,
             "Feed" : "@c3comp",
             "DiagramX" : 284.397
           }
         ],
         "DiagramY" : 52,
         "diagramScale" : 2.056998,
         "diagramX" : -0.9743099,
         "DiagramX" : 178
       },
       {
         "Variables" : [
           {
             "Type" : "V",
             "name" : "recycle",
             "PropertyFormula" : "@recycle",
             "PropertyType" : "Reference",
             "DiagramY" : 191.8402,
             "DiagramX" : 216.5356
           }
         ],
         "diagramY" : -159.5227,
         "name" : "Recycle",
         "Type" : "Model Tool",
         "Fluids" : [
           {
             "CompFormula" : "1.5 ^ #recysolve.0 * #guess",
             "TwoLiquids" : false,
             "Retrograde" : false,
             "FirstPropFormula" : "#guess",
             "SecondPropFormula" : "#guess + #recysolve.1 * 100",
             "DiagramX" : 122.1913,
             "Type" : "F",
             "FirstPropType" : "P",
             "SumCompForFlow" : false,
             "name" : "recycle",
             "SecondPropType" : "H",
             "DiagramY" : 242.5227,
             "FlowFormula" : "({sum #recysolve.0 } + 1) * #guess"
           }
         ],
         "Notes" : "Alters the recycle output fluid until the fluid that is the source of the #Next input is the same.  The fluid that is the source of the #Guess input provides the initial estimate.\n\nIt is assumed that the recycle stream pressure will not be changing and will remain the same as the estimate.  If this isn't the case, an equation will have to be added to the solver and the recycle fluid pressure calculation modified.\n",
         "Tools" : [
           {
             "Type" : "Model Input Tool",
             "name" : "Guess",
             "DiagramX" : 2.857961,
             "DiagramY" : 225.856,
             "Source" : "@estimate.l",
             "Notes" : "The source should be an initial estimate for the recycle.  However the pressure of the recycle fluid is assumed to be constant and equal to the guess pressure."
           },
           {
             "Type" : "Model Input Tool",
             "name" : "Next",
             "DiagramX" : 1.191296,
             "DiagramY" : 177.8561,
             "Source" : "",
             "Notes" : "The source should be the fluid that is calculated as a function of the recycle output and which should end up being the same as the output."
           },
           {
             "Enabled" : "y",
             "f1" : "(#next - @recycle) / 1000",
             "name" : "recysolve",
             "Type" : "Function Solver",
             "type0" : "X",
             "f0" : "(@recycle * @recycle.f - #next.f * #next) / #guess.f",
             "DiagramY" : 183.856,
             "type1" : "H",
             "DiagramX" : 119.1913
           }
         ],
         "DiagramY" : 97.33337,
         "diagramScale" : 3,
         "diagramX" : 8.475371,
         "DiagramX" : 107.6667
       },
       {
         "Variables" : [
           {
             "Type" : "V",
             "name" : "recycle",
             "PropertyFormula" : "@recycle",
             "PropertyType" : "Reference",
             "DiagramY" : 185.5069,
             "DiagramX" : 255.8689
           },
           {
             "Type" : "V",
             "name" : "recycle2",
             "PropertyFormula" : "@recycle2",
             "PropertyType" : "Reference",
             "DiagramY" : 248.1894,
             "DiagramX" : 257.858
           },
           {
             "Type" : "V",
             "name" : "recycle3",
             "PropertyFormula" : "@recycle3",
             "PropertyType" : "Reference",
             "DiagramY" : 302.856,
             "DiagramX" : 255.1913
           }
         ],
         "diagramY" : -155.8319,
         "name" : "Recycle3",
         "Type" : "Model Tool",
         "Fluids" : [
           {
             "CompFormula" : "1.5 ^ #recysolve.0 * #guess",
             "TwoLiquids" : false,
             "Retrograde" : false,
             "FirstPropFormula" : "#guess",
             "SecondPropFormula" : "#guess + #recysolve.1 * 100",
             "DiagramX" : 183.1913,
             "Type" : "F",
             "FirstPropType" : "P",
             "SumCompForFlow" : false,
             "name" : "recycle",
             "SecondPropType" : "H",
             "DiagramY" : 215.8561,
             "FlowFormula" : "({sum #recysolve.0 } + 1) * #guess"
           },
           {
             "CompFormula" : "1.5 ^ #recysolve.2 * #guess2",
             "TwoLiquids" : false,
             "Retrograde" : false,
             "FirstPropFormula" : "#guess2",
             "SecondPropFormula" : "#guess2 + #recysolve.3 * 100",
             "DiagramX" : 149.7923,
             "Type" : "F",
             "FirstPropType" : "P",
             "SumCompForFlow" : false,
             "name" : "recycle2",
             "SecondPropType" : "H",
             "DiagramY" : 260.4432,
             "FlowFormula" : "({sum #recysolve.2 } + 1) * #guess2"
           },
           {
             "CompFormula" : "1.5 ^ #recysolve.4 * #guess3",
             "TwoLiquids" : false,
             "Retrograde" : false,
             "FirstPropFormula" : "#guess3",
             "SecondPropFormula" : "#guess3",
             "DiagramX" : 89.19129,
             "Type" : "F",
             "FirstPropType" : "T",
             "SumCompForFlow" : false,
             "name" : "recycle3",
             "SecondPropType" : "P",
             "DiagramY" : 306.1894,
             "FlowFormula" : "({sum #recysolve.4 } + 1) * #guess3"
           }
         ],
         "Notes" : "This is an extension of the Recycle model to three material recycles.  If only two recycles are needed, just delete the last two equations in the solver and ignore the \"3\" objects.\n\nPlease see the notes for the Recycle model for more information.\n\nNote that recycle problems can vary a lot and it is likely that you will have to adapt this model for your problem, so as to match the variables that are actually changing in the recycles.",
         "Tools" : [
           {
             "Type" : "Model Input Tool",
             "name" : "Guess",
             "DiagramX" : -6.808706,
             "DiagramY" : 257.1893,
             "Source" : "",
             "Notes" : "The source should be an initial estimate for the recycle.  However the pressure of the recycle fluid is assumed to be constant and equal to the guess pressure."
           },
           {
             "type4" : "X",
             "f0" : "(@recycle * @recycle.f - #next.f * #next) / #guess.f",
             "type2" : "X",
             "f5" : "(#next3 - @recycle3) / 1000",
             "f1" : "(#next - @recycle) / 1000",
             "type0" : "X",
             "type5" : "H",
             "f2" : "(@recycle2 * @recycle2.f - #next2.f * #next2) / #Guess2.f",
             "Type" : "Function Solver",
             "DiagramX" : 92.19136,
             "type3" : "H",
             "f3" : "(#next2 - @recycle2) / 1000",
             "name" : "recysolve",
             "DiagramY" : 168.1894,
             "type1" : "H",
             "f4" : "(@recycle3 * @recycle3.f - #next3.f * #next3) / #Guess3.f"
           },
           {
             "Type" : "Model Input Tool",
             "name" : "Next",
             "DiagramX" : -5.211195,
             "DiagramY" : 169.5228,
             "Source" : "",
             "Notes" : "The source should be the fluid that is calculated as a function of the recycle output and which should end up being the same as the output."
           },
           {
             "Type" : "Model Input Tool",
             "name" : "Next2",
             "DiagramX" : -6.211195,
             "DiagramY" : 193.1755,
             "Source" : "",
             "Notes" : "The source should be the fluid that is calculated as a function of the recycle output and which should end up being the same as the output."
           },
           {
             "Type" : "Model Input Tool",
             "name" : "Guess2",
             "DiagramX" : -6.142037,
             "DiagramY" : 282.1894,
             "Source" : "",
             "Notes" : "The source should be an initial estimate for the recycle.  However the pressure of the recycle fluid is assumed to be constant and equal to the guess pressure."
           },
           {
             "Type" : "Model Input Tool",
             "name" : "Guess3",
             "DiagramX" : -6.47537,
             "DiagramY" : 308.1894,
             "Source" : "",
             "Notes" : "The source should be an initial estimate for the recycle.  However the pressure of the recycle fluid is assumed to be constant and equal to the guess pressure."
           },
           {
             "Type" : "Model Input Tool",
             "name" : "Next3",
             "DiagramX" : -6.541069,
             "DiagramY" : 220.54,
             "Source" : "",
             "Notes" : "The source should be the fluid that is calculated as a function of the recycle output and which should end up being the same as the output."
           }
         ],
         "DiagramY" : 98.00004,
         "diagramScale" : 2.969199,
         "diagramX" : 19.50303,
         "DiagramX" : 174
       },
       {
         "Variables" : [
           {
             "PropertyType" : "X",
             "name" : "r",
             "Type" : "V",
             "PropertyFormula" : "#feed*#feed.f",
             "Description" : "reactant flows",
             "DiagramY" : 173.1295,
             "DiagramX" : 129.9649
           },
           {
             "PropertyType" : "X",
             "name" : "s",
             "Type" : "V",
             "Notes" : "Assign the reaction stoichiometry to the compounds.\n\nminus for reactants\npositive for products\nzero for inerts\n\nFor example:\n\n2H2 + O2 => 2H2O\n\nwould have:\n\nH2 = -2\nO2 = -1\nH2O = 2\nN2 = 0\n",
             "PropertyFormula" : "",
             "Description" : "stoichiometry",
             "DiagramY" : 189.8138,
             "DiagramX" : 20.14679
           },
           {
             "PropertyType" : "F",
             "name" : "e",
             "Type" : "V",
             "PropertyFormula" : "#feed.x:$basis * #feed.f * $extent / (-$s:$basis)",
             "Description" : "methane consumption",
             "DiagramY" : 254.7208,
             "DiagramX" : 133.5778
           },
           {
             "PropertyType" : "Vf",
             "name" : "basis",
             "Type" : "V",
             "Notes" : "Compound the reaction extent is based on.\n\nMust be a quoted name like \"methane\"",
             "PropertyFormula" : "",
             "Description" : "compound extent is based on",
             "DiagramY" : 226.389,
             "DiagramX" : 21.087
           },
           {
             "PropertyType" : "Vf",
             "name" : "extent",
             "Type" : "V",
             "Notes" : "Fraction of basis compound consumed in the reaction",
             "PropertyFormula" : "0.95",
             "Description" : "fraction of basis compound consumed in the reaction",
             "DiagramY" : 275.3838,
             "DiagramX" : 22.17861
           },
           {
             "PropertyType" : "X",
             "name" : "p",
             "Type" : "V",
             "PropertyFormula" : "$r + $s * $e",
             "Description" : "reaction products",
             "DiagramY" : 224.0997,
             "DiagramX" : 210.7751
           },
           {
             "PropertyType" : "Q",
             "name" : "q",
             "Type" : "V",
             "Notes" : "Contains the total heat produced by the reaction.  Note the use of the rxnbasis property to convert the enthalpies into ones that take into account heats of formation.",
             "PropertyFormula" : "(#feed.h + #feed.rxnbasis) * #feed.f\n -\n(@iso.h + @iso.rxnbasis)\n* @iso.f\n\n",
             "Description" : "reactor q",
             "DiagramY" : 168.8822,
             "DiagramX" : 416.42
           },
           {
             "PropertyType" : "Reference",
             "name" : "product",
             "Type" : "V",
             "Notes" : "Contains the products assuming the reaction is adiabatic.\n",
             "PropertyFormula" : "@prod",
             "Description" : "adiabatic reaction product",
             "DiagramY" : 100.061,
             "DiagramX" : 415.4342
           },
           {
             "PropertyType" : "Reference",
             "name" : "isoproduct",
             "Type" : "V",
             "Notes" : "Contains the products assuming isothermal.",
             "PropertyFormula" : "@iso",
             "Description" : "isothermal reaction product",
             "DiagramY" : 209.9726,
             "DiagramX" : 421.5417
           }
         ],
         "diagramY" : -70.94186,
         "name" : "reaction",
         "Type" : "Model Tool",
         "Fluids" : [
           {
             "CompFormula" : "$p",
             "TwoLiquids" : false,
             "Retrograde" : false,
             "FirstPropFormula" : "#feed",
             "SecondPropFormula" : "#feed",
             "Type" : "F",
             "FirstPropType" : "T",
             "Description" : "isothermal reaction products",
             "DiagramX" : 249.1213,
             "name" : "iso",
             "SecondPropType" : "P",
             "DiagramY" : 171.5073,
             "FlowFormula" : "{ sum $p }",
             "SumCompForFlow" : false
           },
           {
             "CompFormula" : "@iso",
             "TwoLiquids" : false,
             "Retrograde" : false,
             "FirstPropFormula" : "@iso",
             "SecondPropFormula" : "( @iso.q + $q ) / @iso.f",
             "Type" : "F",
             "FirstPropType" : "P",
             "Description" : "adiabatic reaction product",
             "DiagramX" : 320.3455,
             "name" : "prod",
             "SecondPropType" : "H",
             "DiagramY" : 101.1295,
             "FlowFormula" : "@iso",
             "SumCompForFlow" : false
           }
         ],
         "Notes" : "This model performs a single stoichiometric reaction.\n\nSee the notes for #feed, $s, $basis and $extent for information on the required inputs.\n\nSee the notes for $product, $isoproduct and $q for information on the calculated values.",
         "Tools" : [
           {
             "name" : "feed",
             "Type" : "Model Input Tool",
             "Notes" : "Should be connected to the fluid in the parent containing the reactants.",
             "Source" : "",
             "Description" : "parent reactant fluid",
             "DiagramY" : 96.7365,
             "DiagramX" : 20.80527
           }
         ],
         "DiagramY" : 98.66667,
         "diagramScale" : 2.089317,
         "diagramX" : -12.06129,
         "DiagramX" : 32.66663
       },
       {
         "Variables" : [
           {
             "PropertyType" : "DeltaT",
             "name" : "dt",
             "Type" : "V",
             "PropertyFormula" : "-5 C",
             "Description" : "delta T between side1in and side2out",
             "DiagramY" : 160.1964,
             "DiagramX" : 7.000001
           },
           {
             "Type" : "V",
             "name" : "side1dp",
             "PropertyFormula" : "50 Kpa",
             "PropertyType" : "DeltaP",
             "DiagramY" : 46.1964,
             "DiagramX" : 11.66667
           },
           {
             "Type" : "V",
             "name" : "side2dp",
             "PropertyFormula" : "50 Kpa",
             "PropertyType" : "DeltaP",
             "DiagramY" : 132.8631,
             "DiagramX" : 8.333344
           },
           {
             "Type" : "V",
             "name" : "side1out",
             "PropertyFormula" : "@side1out",
             "PropertyType" : "Reference",
             "DiagramY" : 23.02135,
             "DiagramX" : 322.7667
           },
           {
             "Type" : "V",
             "name" : "side2out",
             "PropertyFormula" : "@side2out",
             "PropertyType" : "Reference",
             "DiagramY" : 160.9684,
             "DiagramX" : 333.9115
           },
           {
             "Type" : "V",
             "name" : "duty",
             "PropertyFormula" : "@side1out - #side1in",
             "PropertyType" : "Q",
             "DiagramY" : 76.29341,
             "DiagramX" : 325.2804
           },
           {
             "Type" : "V",
             "name" : "dta",
             "PropertyFormula" : "#side1in.t - @side2out.t",
             "PropertyType" : "DeltaT",
             "DiagramY" : 93.10149,
             "DiagramX" : 247.7463
           },
           {
             "Type" : "V",
             "name" : "dtb",
             "PropertyFormula" : "@side1out.t - #side2in.t",
             "PropertyType" : "DeltaT",
             "DiagramY" : 127.8955,
             "DiagramX" : 248.2448
           },
           {
             "PropertyType" : "Vf",
             "name" : "lmtd",
             "Type" : "V",
             "PropertyFormula" : "($dta - $dtb) /\n{ln ($dta/$dtb)}",
             "Notes" : "Assumes a simple single shell, single tube bundle exchanger with an f factor of 1.  Adding F factor calculations for other configurations would be relatively straight forward.",
             "DiagramY" : 109.9919,
             "DiagramX" : 332.219
           },
           {
             "PropertyType" : "T",
             "name" : "T2Out",
             "Type" : "V",
             "PropertyFormula" : "",
             "Description" : "optional side 2 out temperature",
             "DiagramY" : 184.9468,
             "DiagramX" : 7.034012
           }
         ],
         "diagramY" : -9.953591,
         "name" : "heatex",
         "Type" : "Model Tool",
         "Fluids" : [
           {
             "CompFormula" : "#side1in",
             "TwoLiquids" : false,
             "Retrograde" : false,
             "FirstPropFormula" : "#side1in - $side1dp",
             "SecondPropFormula" : "(#side1in.q + #side2in.q - @side2out.q ) / @side1out.f ",
             "DiagramX" : 164.5857,
             "Type" : "F",
             "FirstPropType" : "P",
             "SumCompForFlow" : false,
             "name" : "side1out",
             "SecondPropType" : "H",
             "DiagramY" : 21.8401,
             "FlowFormula" : "#side1in"
           },
           {
             "CompFormula" : "#side2in",
             "TwoLiquids" : false,
             "Retrograde" : false,
             "FirstPropFormula" : "{if ($T2Out+10000) $T2Out (#side1in + $dt)}",
             "SecondPropFormula" : "#side2in - $side2dp",
             "DiagramX" : 123.3361,
             "Type" : "F",
             "FirstPropType" : "T",
             "SumCompForFlow" : false,
             "name" : "side2out",
             "SecondPropType" : "P",
             "DiagramY" : 161.5551,
             "FlowFormula" : "#side2in"
           }
         ],
         "Notes" : "Models the heat balance of a simple two sided exchanger.\n\nThe inlet fluids are obtained from the parent and the pressure drops are specified in the $side1dp and $side2dp variables.\n\nThe side2out temperature is set as a difference from the side1in temperature by variable $dt, but of course the model can be altered for other circumstances.",
         "Tools" : [
           {
             "Type" : "Model Input Tool",
             "name" : "side1in",
             "DiagramY" : 19.55223,
             "Source" : "",
             "DiagramX" : 11.85318
           },
           {
             "Type" : "Model Input Tool",
             "name" : "side2in",
             "DiagramY" : 108.1964,
             "Source" : "",
             "DiagramX" : 9.666661
           }
         ],
         "DiagramY" : 52.33334,
         "diagramScale" : 2.491526,
         "diagramX" : 1.394557,
         "DiagramX" : 102.6667
       },
       {
         "Variables" : [
           {
             "Type" : "V",
             "name" : "PolyEff",
             "PropertyFormula" : "{if #polyEff, #polyEff, $PolyE} ",
             "PropertyType" : "Vf",
             "DiagramY" : -3.90169,
             "DiagramX" : 91.94737
           },
           {
             "Type" : "V",
             "name" : "e",
             "PropertyFormula" : "#comp.e",
             "PropertyType" : "Vf",
             "DiagramY" : 37.11945,
             "DiagramX" : 276.6189
           },
           {
             "Type" : "V",
             "name" : "poly",
             "PropertyFormula" : "#comp.poly",
             "PropertyType" : "Vf",
             "DiagramY" : 60.45277,
             "DiagramX" : 277.2856
           },
           {
             "Type" : "V",
             "name" : "power",
             "PropertyFormula" : "#comp.power",
             "PropertyType" : "Q",
             "DiagramY" : 84.78612,
             "DiagramX" : 277.619
           },
           {
             "Type" : "V",
             "name" : "H",
             "PropertyFormula" : "#comp.h",
             "PropertyType" : "H",
             "DiagramY" : -57.21388,
             "DiagramX" : 278.2856
           },
           {
             "Type" : "V",
             "name" : "P",
             "PropertyFormula" : "#comp.p",
             "PropertyType" : "P",
             "DiagramY" : -33.54721,
             "DiagramX" : 278.2856
           },
           {
             "Type" : "V",
             "name" : "X",
             "PropertyFormula" : "#comp.x",
             "PropertyType" : "X",
             "DiagramY" : -12.21388,
             "DiagramX" : 278.2856
           },
           {
             "Type" : "V",
             "name" : "F",
             "PropertyFormula" : "#comp.f",
             "PropertyType" : "F",
             "DiagramY" : 12.45279,
             "DiagramX" : 276.9523
           },
           {
             "PropertyType" : "P",
             "name" : "POut",
             "Type" : "V",
             "PropertyFormula" : "",
             "Notes" : "Give this variable a value for the compressor outlet pressure if a parent value isn't being used.",
             "DiagramY" : -13.34227,
             "DiagramX" : 2.071657
           },
           {
             "Type" : "V",
             "name" : "OutletP",
             "PropertyFormula" : "{if #outletp, #outletp.p, $pout}",
             "PropertyType" : "P",
             "DiagramY" : -34.85221,
             "DiagramX" : 92.34296
           },
           {
             "PropertyType" : "Vf",
             "name" : "PolyE",
             "Type" : "V",
             "PropertyFormula" : ".8",
             "Notes" : "Give this variable a value for the polytropic efficiency if a parent value isn't being used.",
             "DiagramY" : 55.03141,
             "DiagramX" : 0.9387722
           }
         ],
         "diagramY" : 100.9169,
         "name" : "polycomp",
         "Type" : "Model Tool",
         "Fluids" : [
           {
             "CompFormula" : "#feed",
             "TwoLiquids" : false,
             "Retrograde" : false,
             "FirstPropFormula" : "#feed",
             "SecondPropFormula" : "#feed",
             "DiagramX" : 90.44435,
             "Type" : "F",
             "FirstPropType" : "P",
             "SumCompForFlow" : false,
             "name" : "feed",
             "SecondPropType" : "H",
             "DiagramY" : -63.86856,
             "FlowFormula" : "#feed"
           },
           {
             "CompFormula" : "#comp",
             "TwoLiquids" : false,
             "Retrograde" : false,
             "FirstPropFormula" : "#comp",
             "SecondPropFormula" : "#comp",
             "DiagramX" : 278.9523,
             "Type" : "F",
             "FirstPropType" : "P",
             "SumCompForFlow" : false,
             "name" : "out",
             "SecondPropType" : "H",
             "DiagramY" : -80.21389,
             "FlowFormula" : "#comp"
           }
         ],
         "Notes" : "This model represents a compressor or expander with a specified polytropic efficiency.  Essentially it is just pairs a normal compressor/expander tool with a solver.\n\nAll the other objects in the model are just for getting input and making output available, although the $OutletP and $PolyEff variables are interesting in that they use an \"if\" function to choose between a model input value and a directly specified variable.  If the model input has a source, it is used, otherwise the variable value is used.",
         "Tools" : [
           {
             "Type" : "Model Input Tool",
             "name" : "feed",
             "DiagramY" : -69.63706,
             "Source" : "",
             "DiagramX" : 2.999033
           },
           {
             "Enabled" : "y",
             "name" : "polysolver",
             "Type" : "Function Solver",
             "type0" : "Vf",
             "f0" : "$polyeff - #comp.poly",
             "DiagramY" : 19.78611,
             "DiagramX" : 179.6189
           },
           {
             "name" : "comp",
             "Type" : "Compressor/Expander",
             "Notes" : "Note that the formula for efficiency is only design to work for adiabatic efficiencies between 0.5 and 1.",
             "outP" : "$outletp",
             "efficiency" : "{if @feed.s, (.5 + (10 + #polysolver.0) / 40), 1 }\n' the if statement ensures that the feed is calculated before the solver is invoked",
             "DiagramY" : -38.54722,
             "Feed" : "feed",
             "DiagramX" : 180.619
           },
           {
             "Type" : "Model Input Tool",
             "name" : "OutletP",
             "DiagramX" : 1.905813,
             "DiagramY" : -39.51533,
             "Source" : "",
             "Notes" : "Supply a source in the parent if the outlet pressure is to be calculated there."
           },
           {
             "Type" : "Model Input Tool",
             "name" : "PolyEff",
             "DiagramX" : -0.2690217,
             "DiagramY" : 20.43869,
             "Source" : "",
             "Notes" : "Supply a source in the parent if the polytropic efficiency is to be calculated there."
           }
         ],
         "DiagramY" : 52,
         "diagramScale" : 2.841803,
         "diagramX" : 10.26902,
         "DiagramX" : 33.33333
       }
     ],
     "diagramScale" : 3,
     "DiagramY" : 7.936736,
     "diagramX" : -21,
     "Variables" : []
   },
   {
     "Variables" : [
       {
         "Type" : "V",
         "name" : "recycle",
         "PropertyFormula" : "@recycle",
         "PropertyType" : "Reference",
         "DiagramY" : 191.8402,
         "DiagramX" : 216.5356
       }
     ],
     "diagramY" : -159.5227,
     "name" : "Recycle",
     "Type" : "Model Tool",
     "Fluids" : [
       {
         "CompFormula" : "1.5 ^ #recysolve.0 * #guess",
         "TwoLiquids" : false,
         "Retrograde" : false,
         "FirstPropFormula" : "#guess",
         "SecondPropFormula" : "#guess + #recysolve.1 * 100",
         "DiagramX" : 122.1913,
         "Type" : "F",
         "FirstPropType" : "P",
         "SumCompForFlow" : false,
         "name" : "recycle",
         "SecondPropType" : "H",
         "DiagramY" : 242.5227,
         "FlowFormula" : "({sum #recysolve.0 } + 1) * #guess"
       }
     ],
     "Notes" : "Alters the recycle output fluid until the fluid that is the source of the #Next input is the same.  The fluid that is the source of the #Guess input provides the initial estimate.\n\nIt is assumed that the recycle stream pressure will not be changing and will remain the same as the estimate.  If this isn't the case, an equation will have to be added to the solver and the recycle fluid pressure calculation modified.\n",
     "Tools" : [
       {
         "Type" : "Model Input Tool",
         "name" : "Guess",
         "DiagramX" : 2.857961,
         "DiagramY" : 225.856,
         "Source" : "recyest",
         "Notes" : "The source should be an initial estimate for the recycle.  However the pressure of the recycle fluid is assumed to be constant and equal to the guess pressure."
       },
       {
         "Type" : "Model Input Tool",
         "name" : "Next",
         "DiagramX" : 1.191296,
         "DiagramY" : 177.8561,
         "Source" : "recycle",
         "Notes" : "The source should be the fluid that is calculated as a function of the recycle output and which should end up being the same as the output."
       },
       {
         "Enabled" : "y",
         "f1" : "(#next - @recycle) / 1000",
         "name" : "recysolve",
         "Type" : "Function Solver",
         "type0" : "X",
         "f0" : "(@recycle * @recycle.f - #next.f * #next) / #guess.f",
         "DiagramY" : 183.856,
         "type1" : "H",
         "DiagramX" : 119.1913
       }
     ],
     "DiagramY" : 275.069,
     "diagramScale" : 3,
     "diagramX" : 8.475371,
     "DiagramX" : 199.8115
   }
 ],
 "SelectedToolIndex" : 12,
 "diagramScale" : 1.475849,
 "diagramX" : -96.44807,
 "SelectedFluidIndex" : 2147483647,
 "SelectedVariableIndex" : 2147483647,
 "diagramY" : 4.314827,
 "CurrentUnitSet" : 1,
 "Fluids" : [
   {
     "CompFormula" : "[ .98,.02 ]",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "40 C",
     "SecondPropFormula" : "4550 kPa",
     "DiagramX" : 106.4481,
     "Type" : "F",
     "FirstPropType" : "T",
     "SumCompForFlow" : false,
     "name" : "feed",
     "SecondPropType" : "P",
     "DiagramY" : 48.24384,
     "FlowFormula" : "9011.25/@.mw"
   },
   {
     "CompFormula" : "[ .98,.02 ]",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "40 C",
     "SecondPropFormula" : "4550 kPa",
     "DiagramX" : 116.876,
     "Type" : "F",
     "FirstPropType" : "T",
     "SumCompForFlow" : false,
     "name" : "recyest",
     "SecondPropType" : "P",
     "DiagramY" : 247.8957,
     "FlowFormula" : "80000/@.mw"
   },
   {
     "CompFormula" : "#m1",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "#m1",
     "SecondPropFormula" : "#m1",
     "DiagramX" : 197.8884,
     "Type" : "F",
     "FirstPropType" : "P",
     "SumCompForFlow" : false,
     "name" : "f2",
     "SecondPropType" : "H",
     "DiagramY" : 36.468,
     "FlowFormula" : "#m1*0.1"
   },
   {
     "CompFormula" : "#m1",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "#m1",
     "SecondPropFormula" : "#m1",
     "DiagramX" : 201.8064,
     "Type" : "F",
     "FirstPropType" : "P",
     "SumCompForFlow" : false,
     "name" : "f10",
     "SecondPropType" : "H",
     "DiagramY" : 162.2061,
     "FlowFormula" : "#m1*0.9"
   },
   {
     "CompFormula" : "#ex1",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "#ex1",
     "SecondPropFormula" : "#ex1",
     "DiagramX" : 273.0357,
     "Type" : "F",
     "FirstPropType" : "P",
     "SumCompForFlow" : false,
     "name" : "f3",
     "SecondPropType" : "H",
     "DiagramY" : 41.70966,
     "FlowFormula" : "#ex1"
   },
   {
     "CompFormula" : "#hx2.side1out",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "#hx2.side1out",
     "SecondPropFormula" : "#hx2.side1out",
     "DiagramX" : 312.2044,
     "Type" : "F",
     "FirstPropType" : "P",
     "SumCompForFlow" : false,
     "name" : "f14",
     "SecondPropType" : "H",
     "DiagramY" : 145.4872,
     "FlowFormula" : "#hx2.side1out"
   },
   {
     "CompFormula" : "#hx1.side2out",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "#hx1.side2out",
     "SecondPropFormula" : "#hx1.side2out",
     "DiagramX" : 439.398,
     "Type" : "F",
     "FirstPropType" : "T",
     "SumCompForFlow" : false,
     "name" : "f4",
     "SecondPropType" : "P",
     "DiagramY" : 46.18372,
     "FlowFormula" : "#hx1.side2out"
   },
   {
     "CompFormula" : "#hx3.side2out",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "#hx3.side2out",
     "SecondPropFormula" : "#hx3.side2out",
     "DiagramX" : 525.803,
     "Type" : "F",
     "FirstPropType" : "P",
     "SumCompForFlow" : false,
     "name" : "f13",
     "SecondPropType" : "H",
     "DiagramY" : 96.2726,
     "FlowFormula" : "#hx3.side2out"
   },
   {
     "CompFormula" : "#hx2.side2out",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "#hx2.side2out",
     "SecondPropFormula" : "#hx2.side2out",
     "DiagramX" : 627.829,
     "Type" : "F",
     "FirstPropType" : "P",
     "SumCompForFlow" : false,
     "name" : "f5",
     "SecondPropType" : "H",
     "DiagramY" : 9.577232,
     "FlowFormula" : "#hx2.side2out"
   },
   {
     "CompFormula" : "#ex2",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "#ex2",
     "SecondPropFormula" : "#ex2",
     "DiagramX" : 527.3754,
     "Type" : "F",
     "FirstPropType" : "P",
     "SumCompForFlow" : false,
     "name" : "f12",
     "SecondPropType" : "H",
     "DiagramY" : 165.7445,
     "FlowFormula" : "#ex2"
   },
   {
     "CompFormula" : "#hx3.side1out",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "#hx3.side1out",
     "SecondPropFormula" : "#hx3.side1out",
     "DiagramX" : 640.3165,
     "Type" : "F",
     "FirstPropType" : "P",
     "SumCompForFlow" : false,
     "name" : "f6",
     "SecondPropType" : "H",
     "DiagramY" : 117.8457,
     "FlowFormula" : "#hx3.side1out"
   },
   {
     "CompFormula" : "#hx5.side2out",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "#hx5.side2out",
     "SecondPropFormula" : "#hx5.side2out",
     "DiagramX" : 335.9352,
     "Type" : "F",
     "FirstPropType" : "P",
     "SumCompForFlow" : false,
     "name" : "f16",
     "SecondPropType" : "T",
     "DiagramY" : 306.8028,
     "FlowFormula" : "#hx5.side2out"
   },
   {
     "CompFormula" : "#hx1.side1out",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "#hx1.side1out",
     "SecondPropFormula" : "#hx1.side1out",
     "DiagramX" : 422.1173,
     "Type" : "F",
     "FirstPropType" : "P",
     "SumCompForFlow" : false,
     "name" : "f15",
     "SecondPropType" : "H",
     "DiagramY" : 123.4647,
     "FlowFormula" : "#hx1.side1out"
   },
   {
     "CompFormula" : "#hx5.side1out",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "#hx5.side1out",
     "SecondPropFormula" : "#hx5.side1out",
     "DiagramX" : 360.9149,
     "Type" : "F",
     "FirstPropType" : "P",
     "SumCompForFlow" : false,
     "name" : "f11",
     "SecondPropType" : "H",
     "DiagramY" : 210.6204,
     "FlowFormula" : "#hx5.side1out"
   },
   {
     "CompFormula" : "@f20",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "@f20-370",
     "SecondPropFormula" : "@f20",
     "DiagramX" : 647.8012,
     "Type" : "F",
     "FirstPropType" : "P",
     "SumCompForFlow" : false,
     "name" : "f21",
     "SecondPropType" : "H",
     "DiagramY" : 283.1834,
     "FlowFormula" : "@f20"
   },
   {
     "CompFormula" : "#hx4.side2out",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "#hx4.side2out",
     "SecondPropFormula" : "#hx4.side2out",
     "DiagramX" : 680.6216,
     "Type" : "F",
     "FirstPropType" : "P",
     "SumCompForFlow" : false,
     "name" : "f20",
     "SecondPropType" : "H",
     "DiagramY" : 215.5879,
     "FlowFormula" : "#hx4.side2out*0.05"
   },
   {
     "CompFormula" : "@f20",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "@f20",
     "SecondPropFormula" : "@f20",
     "DiagramX" : 681.2894,
     "Type" : "F",
     "FirstPropType" : "T",
     "SumCompForFlow" : false,
     "name" : "lng_prod",
     "SecondPropType" : "P",
     "DiagramY" : 164.4519,
     "FlowFormula" : "#hx4.side2out*0.95"
   },
   {
     "CompFormula" : "#hx4.side1out",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "#hx4.side1out",
     "SecondPropFormula" : "#hx4.side1out",
     "DiagramX" : 474.6942,
     "Type" : "F",
     "FirstPropType" : "P",
     "SumCompForFlow" : false,
     "name" : "f22",
     "SecondPropType" : "H",
     "DiagramY" : 260.5979,
     "FlowFormula" : "#hx4.side1out"
   },
   {
     "CompFormula" : "#m3",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "#m3",
     "SecondPropFormula" : "#m3",
     "DiagramX" : 259.1165,
     "Type" : "F",
     "FirstPropType" : "P",
     "SumCompForFlow" : false,
     "name" : "f31",
     "SecondPropType" : "H",
     "DiagramY" : 395.6368,
     "FlowFormula" : "#m3*0.9999"
   },
   {
     "CompFormula" : "#cp1",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "40 C",
     "SecondPropFormula" : "#cp1-10",
     "DiagramX" : 429.5526,
     "Type" : "F",
     "FirstPropType" : "T",
     "SumCompForFlow" : false,
     "name" : "f33",
     "SecondPropType" : "P",
     "DiagramY" : 396.3107,
     "FlowFormula" : "#cp1"
   },
   {
     "CompFormula" : "#cp2",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "40 C",
     "SecondPropFormula" : "#cp2-10",
     "DiagramX" : 595.0334,
     "Type" : "F",
     "FirstPropType" : "T",
     "SumCompForFlow" : false,
     "name" : "f35",
     "SecondPropType" : "P",
     "DiagramY" : 399.0067,
     "FlowFormula" : "#cp2"
   },
   {
     "CompFormula" : "#cp3",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "40 C",
     "SecondPropFormula" : "#cp3-10",
     "DiagramX" : 117.636,
     "Type" : "F",
     "FirstPropType" : "T",
     "SumCompForFlow" : false,
     "name" : "recycle",
     "SecondPropType" : "P",
     "DiagramY" : 294.7198,
     "FlowFormula" : "#cp3"
   },
   {
     "CompFormula" : "#Recycle.recycle",
     "TwoLiquids" : false,
     "Retrograde" : false,
     "FirstPropFormula" : "#Recycle.recycle",
     "SecondPropFormula" : "#Recycle.recycle",
     "DiagramX" : 126.1658,
     "Type" : "F",
     "FirstPropType" : "T",
     "SumCompForFlow" : false,
     "name" : "f37",
     "SecondPropType" : "P",
     "DiagramY" : 184.9869,
     "FlowFormula" : "#Recycle.recycle"
   }
 ],
 "PropPkg" : "APRNGL",
 "CaseName" : "lng",
 "Hypotheticals" : [],
 "CompoundNames" : [
   "METHANE",
   "ETHANE"
 ],
 "Version" : 1.5,
 "NextVariableNumber" : 1,
 "NextFluidNumber" : 1,
 "Program" : "Alph",
 "DisplayedProperties" : {
   "-4" : "y",
   "-2" : "y",
   "8" : "y",
   "9" : "y",
   "10001" : "y",
   "10003" : "y",
   "-6" : "y",
   "-1" : "y"
 },
 "Variables" : []
}