## Tags and keywords

At the top we see a SysML Parametric Diagram representing a network of equations for the psychrometric properties obtained from low-level CoolProp wrappers for Mathematica, and a `Psy`

library function for calculating the sensible heat for cooling (-ve) in the case where there is no exchange of water. Note how the humidity ratio 'w1' of initial state State1 is bound to the humidity ratio parameter 'w' used to calculate the specific enthalpy per dry 'hda2' of the final State2.

In the middle and bottom Activity Diagrams we see how the problem can be setup instead using Webel `MPsy`

objects, which encapsulate the lower level CoolProp calls. Together, they represent this Mathematica invocation:

```
ex7$cfm = 20000 unitCFM;
ex7$psy1 = newPsy[asDegF[90], $opt$psy$r -> 0.6];
psy$qDotSen$via$vfr[
ex7$psy1,
asDegF[75],
ex7$cfm ,
$opt$psy$doShowAsIP -> True
]
-313881.9462400727 Btu/hr
```

Here `unitCFM`

is a pre-built Mathematica `Quantity[1.0, "Feet"^3/"Minutes"]`

:

*Webel Best Practice:*Webel: Mathematica: TIP: Maintain a Package library of Quantity variables for frequently used units using a naming convention unit$[unitSymbol] and unit[DescriptiveName] or unit[Acronym]

And the units utility function `asDegF[magF_Real]`

similarly creates a Quantity for °F.

Note how in the Activity for function `psy$qDotSen$via$vfr`

the pressure 'p' and humidity ratio 'w' for object `psy2`

are supplied by `psy1`

.

The dedicated method `MPsy.mDotDa[]`

accesses the mixture volume per dry air 'vda' on the psy1 object (which internally uses SI units) and applies unit conversion to the SI units for volumetric flow rate to the argument 'vfr' before dividing, to ensure the resulting `Quantity`

uses SI units.