The cyclicACMI boundary condition now provides an additional scaling factor to the interpolation weights that can be used to open and close cyclicACMI patches. The scaling can be any PatchFunction1. For example, to control a ’valve’ closing from time 0.2 to 0.3:
// Optional scaling
In the animation below the cyclicACMI is used with a variant of the TJunction tutorial to switch the flow between top and bottom outlets.
Under normal conditions any mesh motion triggers update of the patch geometry. For cyclicACMI this recalculates the geometric overlap between the local and neighbour coupled patches. This sets the amount of coupling via the mask, where a value of 1 is full coupled and 0 is fully non-coupled, and the weights for the coupled interpolation. The coupling factor is used to scale face areas such that combined coupled and non-coupled face area is correct. Specifying the additional scaling triggers:
- saving the geometric face areas
- checking at any access whether the scaling is up-to-date with the time
- if not re-scale the face areas
The additional check against time means that the functionality can be used without mesh motion. Without the optional scaling the operation is bit-identical to previous versions.
- Source code
The outletMappedUniformInlet inlet boundary condition
- averages the patch field of <Type> over a specified ”outlet” patch and uniformly applies the averaged value over a specified inlet patch.
- optionally, the averaged value can be scaled and/or offset by a pair of specified values.
The outletMappedUniformInlet can be used to manipulate recirculating fields across patches. For example, a CO2 scalar field leaving through an outlet patch can be reintroduced from an inlet patch by scaling and offsetting.
A minimal example of this boundary condition can be seen below:
offset 10; // (1 0 0);
The following set of images and videos show an example application of a simplified body breathing in a room where air is re-cycled across the outlet and inlet patches.
- Source code
- OpenCFD would like to thank Alseny Diallo (ESI Japan) for his contributions: the extensive testings, useful discussions, helpful suggestions, and preparation of various setups.