Add a "cellZoneAndDirection" mode to surfaceFieldValue FO (like fluxSummary)
Functionality to add/problem to solve
The fluxSummary function object has a really useful mode called cellZoneAndDirection which takes a cellZone and a direction. This mode finds the interior faces of the faceZone associated with the cellZone and then splits the faces by connected regions. It would be super useful to have a similar mode in the surfaceFieldValue function object so that we can auto split and monitor other fields across cellZone faces (like pressure drop for a porous zone).
Target audience
Anyone with disconnected cellZone faces that want to monitor the disconnected regions separately. This is common for a porous zone that is surrounded by walls and only has an "inlet" and "outlet" to the zone. Right now pressure drop is difficult to monitor since snappyHexMesh by default puts the "inlet" and "outlet" faces of a cellZone into a single faceZone. TopoSet can be used to split the faceZone after the fact, but we could eliminate that step with this option.
Proposal
Something like this is what I'd propose (i'm not even sure the direction is needed)...
fieldValue
{
type surfaceFieldValue;
libs ("libfieldFunctionObjects.so");
writeControl timeStep;
writeInterval 1;
regionType cellZoneAndDirection;
cellZoneAndDirection
(
(porous (0 0 -1))
);
operation weightedAverage;
weightField U;
fields
(
p
);
}
What does success look like, and how can we measure that?
Being able to do what fluxSummary does with cellZones and splitting the faceZones by connected region, but instead of monitoring flux, have the ability to monitor pressure (or any other field) on each faceZone.
Funding
Functionality technically already exists, just needs to be applied to surfaceFieldValue. I am not prepared to directly fund this feature request.