## 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 heating (+ve) in the case where there is no exchange of water. Note how the humidity ratio of the final State2 is bound directly to the humidity ratio 'w1' of initial state State1 (in the previous an intermediate value property 'w2' was used for illustration purposes, this has been omitted here).

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:

```
ex6$psy1 = newPsy[asDegF[50], $opt$psy$r -> 0.5];
psy$qSen[
ex5$psy1,
asDegF[90],
1 unit$lb,
$opt$psy$doShowAsIP->True
]/unit$lb
9.681097475241787 Btu/lb
```

Here `unit$lb`

is a pre-built Mathematica `Quantity[1.0, "Pounds"]`

:

*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$qSen`

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

are supplied by `psy1`

.