+
+ +
+\[\newcommand{\half}{\frac{1}{2}} +\newcommand{\nph}{{n + \half}} +\newcommand{\nmh}{{n - \frac{1}{2}}} +\newcommand{\iphj}{{i+\frac{1}{2},j,k}} +\newcommand{\ijph}{{i,j+\frac{1}{2}},k} +\newcommand{\imhj}{{i-\frac{1}{2},j,k}} +\newcommand{\ijmh}{{i,j-\frac{1}{2}},k} +\newcommand{\ijkmh}{{i,j,k-\frac{1}{2}}} +\newcommand{\ijkph}{{i,j,k+\frac{1}{2}}} +\newcommand{\grad}{\nabla} +\newcommand{\del}{\nabla} +\newcommand{\AN}{[(U \cdot \nabla)U]^{n+\frac{1}{2}}} +\newcommand{\npk}{{n + \frac{p+\half}{R}}} +\newcommand{\nak}{{n + \frac{p}{R}}} +\newcommand{\nmk}{{n + \frac{p-\half}{R}}} +\newcommand{\iph}{i+\half} +\newcommand{\imh}{i-\half} +\newcommand{\ipmh}{i\pm\half} +\newcommand{\jph}{j+\half} +\newcommand{\jmh}{j-\half} +\newcommand{\jpmh}{j\pm\half} +\newcommand{\kph}{k+\half} +\newcommand{\kmh}{k-\half} +\newcommand{\GMAC}{C \rightarrow E} +\newcommand{\DMAC}{E \rightarrow C} +\newcommand{\U}{\boldsymbol{U}} +\newcommand{\F}{\boldsymbol{F}} +\newcommand{\dt}{\Delta t} +\newcommand{\shalf}{\sfrac{1}{2}} +\newcommand\hathat[1]{\widehat{\widehat{#1}}} +\newcommand\hairbow[1]{\overset{\bowtie}{#1}} +\newcommand\widebreve[1]{\overset{\smile}{#1}} +\newcommand{\vol}{\mathcal{V}} +\newcommand{\area}{\mathcal{A}}\]
+
+

Enforcing inflow-outflow solvability

+

This routine enforces solvability for inflow-outflow boundaries, +which have both inflow and outflow cells. +A flux correction factor, \(\alpha_\text{fcf}\) is introduced +which scales the outflow velocities to match the inflow:

+
+\[\sum_{\partial\Omega_\text{in}} {\bf u} \cdot {\bf \area} + \alpha_\text{fcf} \sum_{\partial\Omega_\text{out}} {\bf u} \cdot {\bf \area} = 0\]
+

The new flux-conserving velocities to be used for the MAC/nodal projections, +\({\bf u}_\text{fc}\), are calculated from the correction factor as:

+
+\[\alpha_\text{fcf} = \frac{-\sum_{\partial\Omega_\text{in}} {\bf u} \cdot {\bf \area}}{\sum_{\partial\Omega_\text{out}} {\bf u} \cdot {\bf \area}},\]
+
+\[{\bf u}_\text{fc} = \alpha_\text{fcf} \cdot {\bf u}, \ \forall {\bf x} \in \partial\Omega_\text{out}.\]
+

It must be noted that this routine currently only accounts for boundaries +with the math BC BCType::direction_dependent, which is to be used for +an inflow-outflow boundary. It does not compute or correct the boundary velocities +over other math BC types such as those representing pure inflow or pure outflow.

+
+ + +
+