# SysML4Mathematica: Example 08a: Humidification: Drying lumber with air: required volumetric air flow rate

Click on the image to view it full size

The '@' prefix in some of the ConstraintBlocks and OpaqueBehaviors indicate that they are (typically trivial) maths operations that aren't represented by dedicated functions in the Webel `Psy` Mathematica code library:

The inclusion of such fine-grained `@dw` for `w2-w1` in the example diagrams here is purely for demonstration of that naming policy; one could instead simply pass `w1` and `w2` to the `dryingAirMassRate` calculation (with more concise model diagrams).

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 some ConstraintBlock usages for calculating the volumetric humid air flow rate for achieving a desired degree of drying of another object.

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:

``````
ex8\$psy1 = newPsy[asDegF[80.6], \$opt\$psy\$r -> 0.8];
ex8\$psy2 = newPsy[asDegF[140], \$opt\$psy\$twb -> asDegF[125.6]];

psy\$humidification\$vfr\$via\$waterMassRate[
ex8\$psy1,
ex8\$psy2,
5.68 unitPoundPerHour,
\$opt\$psy\$doShowAsIP -> True
]

1058.7950696434616 ft^3/hr
``````

Here `unitPoundPerHour` is a pre-built Mathematica `Quantity[1.0, ("Pounds")/("Hours")]`:

And the units utility function `asDegF[magF_Real]` similarly creates a Quantity for °F.

Note that:

Notes
Snippets (quotes/extracts)