## Tags and keywords

In these Activity Diagrams we see how the previous problem can be setup using Webel `MPsy`

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

```
ex11$cfm = 20000 unitCFM;
ex11$psy1 = newPsy[asDegF[90], $opt$psy$r -> 0.6];
ex11$psy2 = newPsy[asDegF[55], $opt$psy$r -> 1.0];
psy$dehumidify$qTotSenLat$table[
ex11$psy1,
ex11$psy2,
ex11$cfm,
$opt$psy$doShowAsIP -> True
]
```

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]

The units utility function `asDegF[magF_Real]`

creates a Quantity for °F.

The OpaqueBehavior `+Q`

represents addition (Plus) of 2 Quantities in Mathematica, in this case to obtain 'qDotTotApprox' from 'qDotLatApprox' and 'qDotSenApprox'.

The OpaqueAction `@asAssoc`

is a placeholder "analysis" function that represents constructing a Mathematica `Association`

from 'qDotTot', 'qDotLatApprox', 'qDotSenApprox', and 'qDotTotApprox' with names as label keys.

When the output Association (represented as a SysML Block `<||>`

) is displayed as a table the result is:

qDotTot | -1.546632642093384 10^6 Btu/hr |

qDotLatApprox | -805733.3295464187 Btu/hr |

qDotSenApprox | -755327.385263709 Btu/hr |

qDotTotApprox | -1.5610607148101279 10^6 Btu/hr |