6. Pressure-Correction Equation on Unstructured Grids#

The momentum predictor and momentum-weighted interpolation provide a provisional cell velocity, a provisional face flux, and the face response to a pressure change. This chapter inserts those quantities into discrete continuity, linearizes the density and flux corrections, and collects the result into the sparse algebraic equation solved for pressure correction.

In the algorithmic roadmap of Chapter 3, this is the stage after the momentum predictor has supplied provisional face fluxes and before the pressure, velocity, and face-flux corrections are applied. Put differently, this section is where the continuity balance is rewritten into the linear pressure-correction row for \(p^{'}\).

Three ingredients have to be made explicit:

  1. the unsteady density contribution,

  2. the pressure-induced face-flux correction,

  3. the bookkeeping that sends each face contribution into the diagonal, neighbor, and right-hand-side entries.

The goal is the standard diagonal–neighbor–source form used by a scalar finite-volume linear system. Its implementation mapping is deferred to the coding appendix.

6.1. State Labels and Continuity Balance#

Before breaking down the terms, fix the state labels used throughout this chapter. The superscript \(n\) denotes the previous converged time level. The superscript \(k\) denotes the current outer-iteration estimate at the new time level, and \(k+1\) denotes the next outer-iteration estimate at that same time level. A superscript \(*\) denotes a provisional quantity produced by the momentum predictor using coefficients and closure data lagged at iteration \(k\). A prime denotes the pressure-induced correction solved for during the pressure-correction stage. Thus, one may read \(p^*\equiv p^k\), whereas \(\vec{u}^*\) and \(\hat{m}_f^*\) are newly predicted quantities formed from that pressure reference. These stages occur inside one physical time step; they are not additional time-discretization levels. Once the outer iteration converges, its final state becomes the new time level \(n+1\).

The density notation needs one further distinction. Let \(\widehat{\rho}^{\,k+1}\) denote the density estimated inside the pressure-correction equation by linearizing only its pressure response. The hat is important: \(\widehat{\rho}^{\,k+1}\) is not, in general, the complete thermodynamic density \(\rho^{k+1}\) that will be rebuilt from the EOS after the corrected pressure, energy or temperature, composition, and any other required state variables are available.

Begin from the semi-discrete continuity balance for one cell after the momentum predictor but before the pressure correction is applied. At this stage, the provisional face fluxes do not, in general, satisfy discrete continuity. Let \(\hat{m}_f^*\) denote the predicted face flux appearing in the selected continuity form. In the ordinary mass-based form this is the predicted face mass flux \(\dot{m}_f^*\); normalized and moving-grid forms use the corresponding normalized or grid-relative flux. The equation below uses a fixed control volume to expose the pressure algebra. For a moving control volume, the time derivative acts on \(\rho\Omega\) and the face flux is measured relative to grid motion. The pressure-correction equation seeks a face correction \(\dot{m}_f'\) such that the pressure-linearized cell balance is satisfied:

(6.1.1)#\[\left[ \frac{\widehat{\rho}_P^{\,k+1} - \rho_P^{n}}{\Delta t} \right]\Omega_P + \sum_f \left( \hat{m}_f^{*} + \dot{m}_f^{'} \right) = 0\]

This is the starting continuity balance for the pressure-correction derivation, not yet the final linear equation. The next subsections express the unknown pressure response of density and face flux in terms of \(p'\), then collect those terms into the algebraic row.

6.2. Unsteady Density Contribution#

For compressible flow, split the pressure-linearized density estimate into the known density at the current outer iteration and an unknown pressure-induced increment:

(6.2.1)#\[\widehat{\rho}_P^{\,k+1} - \rho_P^{n} = \left( \widehat{\rho}_P^{\,k+1} - \rho_P^k \right) + \left( \rho_P^k - \rho_P^n \right) = \rho_P^{'} + \left( \rho_P^k - \rho_P^n \right)\]

Here

(6.2.2)#\[\rho_P' \equiv \widehat{\rho}_P^{\,k+1}-\rho_P^k\]

is an auxiliary density correction used to form the pressure equation. It models only the part of the density response assigned to \(p'\) in this linearization. It is neither the complete outer-iteration change \(\rho_P^{k+1}-\rho_P^k\) nor the complete time-step change \(\rho_P^{n+1}-\rho_P^n\).

Thus the unsteady contribution in the cell balance becomes

(6.2.3)#\[\left[ \frac{\widehat{\rho}_P^{\,k+1} - \rho_P^{n}}{\Delta t} \right]\Omega_P = \left[ \frac{\rho_P^{'} + \left( \rho_P^k - \rho_P^n \right)}{\Delta t} \right]\Omega_P.\]

The unknown part now requires a local relation between pressure and density. Write the EOS in a form suited to the acoustic tangent,

(6.2.4)#\[\rho_P = \rho(p_P,s_P,Y_{1,P},\ldots,Y_{N_s,P}).\]

A complete first-order thermodynamic change about the current nonlinear state would contain pressure, entropy, and composition contributions:

(6.2.5)#\[\delta\rho_P \approx \left(\frac{\partial \rho}{\partial p}\right)_{s,Y} \delta p_P + \left(\frac{\partial \rho}{\partial s}\right)_{p,Y} \delta s_P + \sum_{i=1}^{N_s} \left(\frac{\partial \rho}{\partial Y_i}\right)_{p,s,Y_{j\ne i}} \delta Y_{i,P}.\]

The segregated pressure-correction solve does not solve for all of these increments simultaneously. It retains one pressure-sensitive density response implicitly and lags the remaining thermodynamic and composition changes until their corresponding updates and the subsequent EOS reconstruction.

Density-Linearization Assumption

With entropy and composition frozen for this local pressure response, the auxiliary density correction is

(6.2.6)#\[\rho_P' \approx \psi_P p_P', \qquad \psi_P = \left(\frac{\partial \rho}{\partial p}\right)_{s,Y} = \frac{1}{a_{s,P}^2}.\]

This acoustic tangent is EOS-generic. It is not an isothermal derivative, and using it does not assert that the complete flow or complete outer iteration is isentropic.

The corresponding first-order pressure-only estimate about iteration \(k\) is

(6.2.7)#\[\widehat{\rho}_P^{\,k+1} = \rho_P^k + \left.\left( \frac{\partial \rho}{\partial p} \right)_{s,Y}\right|_k p_P' + O\!\left((p_P')^2\right),\]

where the sound speed supplied by the current EOS state gives

(6.2.8)#\[a_{s,P}^2 = \left.\left( \frac{\partial p}{\partial \rho} \right)_{s,Y}\right|_k, \qquad \left.\left( \frac{\partial \rho}{\partial p} \right)_{s,Y}\right|_k = \frac{1}{a_{s,P}^2}.\]

Substitution into the unsteady term gives, for the first-order time-discrete form used to expose the algebra,

(6.2.9)#\[\left[ \frac{\widehat{\rho}_P^{\,k+1} - \rho_P^{n}}{\Delta t} \right]\Omega_P = \frac{\Omega_P}{\Delta t\,a_{s,P}^2} p_P^{'} + \frac{\rho_P^k-\rho_P^n}{\Delta t}\Omega_P\]

Final Unsteady Density Contribution

For the compressible pressure-correction row, the unsteady density contribution is

(6.2.10)#\[{}^{(p')}\!a_{P,\mathrm{time}} p_P^{'} = \sum_{\text{nbr}} {}^{(p')}\!a_{\text{nbr},\mathrm{time}} p_{\text{nbr}}^{'} + {}^{(p')}\!b_{P,\mathrm{time}} ,\]

with

(6.2.11)#\[{}^{(p')}\!a_{P,\mathrm{time}} = \frac{\Omega_P}{\Delta t\,a_{s,P}^2}, \qquad {}^{(p')}\!a_{\text{nbr},\mathrm{time}} = 0, \qquad {}^{(p')}\!b_{P,\mathrm{time}} = -\frac{\rho_P^k-\rho_P^n}{\Delta t}\Omega_P.\]

That is, the acoustic density response contributes an implicit diagonal term, while the lagged time-level defect remains on the right-hand side.

Higher-order time schemes change the temporal weights but not this separation: the pressure-dependent acoustic response is implicit, while the continuity defect formed from the current iterate and previous time levels is known. The time-discretization coefficients are developed in Chapter 10.

6.3. EOS Reconstruction After Pressure Correction#

The pressure equation has now used \(\widehat{\rho}^{\,k+1}=\rho^k+p'/a_s^2\) only as a local linear model. After the pressure, velocity, energy or temperature, species, and other transported quantities have been updated, the next nonlinear density is reconstructed from the complete EOS relation:

(6.3.1)#\[\rho_P^{k+1} = \mathcal{R}\!\left( p_P^{k+1}, \Theta_P^{k+1}, \boldsymbol{Y}_P^{k+1}, \ldots \right),\]

where \(\Theta\) denotes whichever thermal variable closes the selected equation set. If total energy or total enthalpy is transported, the corrected velocity is needed to remove the kinetic contribution before the EOS is evaluated. If temperature is transported directly, that conversion is unnecessary.

Pressure-Equation Density Versus Iterated EOS Density

The quantity \(\rho'=p'/a_s^2\) closes the linear pressure-correction equation; it does not prescribe the full density update. The actual next-iteration density is rebuilt from the EOS using the corrected thermodynamic state. This distinction allows temperature, composition, phase, and other closure changes to affect \(\rho^{k+1}\) without pretending that all of them were solved implicitly in the pressure equation.

In Stream’s iteration labels, the pressure equation is assembled from the current rho{n,it} and soundSpeed{n,it}. The corrected thermodynamic state then produces rhoStar{n,it}, which advances to rho{n,it+1}. The code name rhoStar therefore denotes the EOS-rebuilt next-iteration density; it should not be identified with either the provisional superscript \(*\) used for the momentum predictor or the hatted density estimate introduced above.

6.4. Splitting the Face Flux#

The same predictor/corrector split is now applied to the face flux itself. Write the corrected face flux as

(6.4.1)#\[\dot{m}_f = \hat{m}_f^{*} + \dot{m}_f^{'},\]

where \(\hat{m}_f^{*}\) is the known provisional face flux available after the momentum predictor, and \(\dot{m}_f^{'}\) is the unknown pressure-induced change in that face flux. In other words, \(\dot{m}_f^{'}\) is the amount by which the provisional face flux must change during the pressure-correction step in order for continuity to be satisfied.

The momentum-interpolation construction in Chapter 5 separates all starred and otherwise known contributions into \(\hat{m}_f^{*}\). Its remaining response, linearized with respect to the pressure correction, has the generic interior-face form

(6.4.2)#\[\dot{m}_f^{'} = - d_f \left( p_N^{'} - p_P^{'} \right), \qquad d_f>0.\]

The selected momentum-interpolation family determines the precise value of \(d_f\); see Eqs. (5.5.3.1) and (5.8.5.1). Every family preserves the same linear dependence on the pressure-correction difference. That dependence is what becomes the face coefficient in the assembled pressure-correction row.

6.5. Assembling One Cell Row#

At this point, the unknown pieces of Eq. (6.1.1) have been rewritten in terms of \(p^{'}\): the unsteady density term has been linearized, and the face-flux correction has been expressed as a pressure-correction contribution. The next step is therefore just bookkeeping: substitute those replacements back into the starting continuity balance and collect the resulting diagonal, neighbor, and source terms into the algebraic pressure-correction row.

The most useful algebraic step is to stop treating Eq. (6.4.2) as one compact expression and instead expand what one face contributes to the row of one cell.

For an interior face between cells \(P\) and \(N\), expand Eq. (6.4.2) as

(6.5.1)#\[\dot{m}_f^{'} = - d_f \left( p_N^{'} - p_P^{'} \right),\]

where \(d_f\) is the face pressure-correction coefficient determined by the selected momentum-interpolation formula. Expanding the bracket gives

(6.5.2)#\[\dot{m}_f^{'} = d_f p_P^{'} - d_f p_N^{'} .\]

This is the key bookkeeping step. For the row associated with cell \(P\):

  1. the term multiplying \(p_P^{'}\) contributes to the diagonal,

  2. the term multiplying \(p_N^{'}\) contributes to the neighbor coupling.

At a specified-pressure boundary the same idea becomes one-sided. Because the boundary pressure correction is known and equal to zero, such a face contributes to the diagonal of the row for cell \(P\) but not to a neighbor coefficient. In the formulas below, the face sum \(\sum_f\) is therefore understood in the simple bookkeeping sense used throughout this section: it runs over the faces whose flux correction contributes to the pressure-correction row.

Substituting the unsteady split and the face-flux corrections into Eq. (6.1.1) gives us the row equation form for cell \(P\). For reference, this is the equation we will be substituting terms into.

(6.5.3)#\[\left[ \frac{\widehat{\rho}_P^{\,k+1} - \rho_P^{n}}{\Delta t} \right]\Omega_P + \sum_f \left( \hat{m}_f^{*} + \dot{m}_f^{'} \right) = 0\]

Substituting the unsteady split and the face-flux correction gives:

(6.5.4)#\[\left[ \frac{\Omega_P}{\Delta t\,a_{s,P}^2} p_P^{'} + \frac{\rho_P^k-\rho_P^n}{\Delta t}\Omega_P \right] + \sum_{f} \hat{m}_f^{*} + \sum_{f} \left( d_f p_P^{'} - d_f p_{N}^{'} \right) =0\]

where \(f\) denotes the faces of cell \(P\). The first face sum is the known provisional-flux contribution, and the second is the face pressure-difference coupling. On an interior face, \(p_N'\) is the pressure correction in the neighboring cell across that face. On a specified-pressure boundary, the boundary pressure correction is known, so only the diagonal part contributes.

All terms involving \(p_P^{'}\) can then be grouped together, with everything else moved to the right-hand side:

(6.5.5)#\[\left( \frac{\Omega_P}{\Delta t\,a_{s,P}^2} + \sum_{f} d_f \right) p_P^{'} = - \sum_{f} \hat{m}_f^{*} + \sum_{\text{interior }f} d_f p_{N}^{'} - \frac{\rho_P^k-\rho_P^n}{\Delta t}\Omega_P\]

This is the algebra behind the statement that several different \(p^{'}\) terms are “collected into the diagonal.” The face coefficients are still indexed by face in the grouped equation above. Once those face contributions are collected into the compact row, the corresponding neighbor coefficient is simply the coefficient on the face shared by cell \(P\) and that neighbor.

Final Standard Pressure-Correction Row

For each cell \(P\), the assembled pressure-correction equation is

(6.5.6)#\[{}^{(p')}\!a_P p_P^{'} = \sum_{\text{nbr}} {}^{(p')}\!a_{\text{nbr}} p_{\text{nbr}}^{'} + {}^{(p')}\!b_P\]

with

(6.5.7)#\[{}^{(p')}\!a_P = {}^{(p')}\!a_{P,\mathrm{time}} + \sum_{f} d_f \qquad {}^{(p')}\!a_{\text{nbr}} = d_f \quad \text{for the face shared by } P \text{ and nbr} \qquad {}^{(p')}\!b_P = {}^{(p')}\!b_{P,\mathrm{flux}} + {}^{(p')}\!b_{P,\mathrm{time}} + {}^{(p')}\!b_{P,\mathrm{bc}}\]

Here \(\sum_f d_f\) is the diagonal contribution from the faces that participate in the pressure-correction row. Interior faces contribute both diagonal and neighbor terms, while a specified-pressure boundary contributes only its diagonal piece. For the simple boundary treatment just derived, \({}^{(p')}\!b_{P,\mathrm{bc}}=0\).

In incompressible branches these are already the final coefficients. In compressible branches, the upwind acoustic density correction adds extra terms to the diagonal of the upwind row and to the neighbor coefficient of the downwind row, as described next.

The base row is now in hand. The remaining subsections answer two practical follow-up questions: what extra term appears in compressible branches, and how the implementation turns the abstract coefficients above into the stored matrix row.

The previous derivation was not only for incompressible flow. It derived the base pressure-difference part of the face-flux correction, namely the term \(-d_f\left(p_N'-p_P'\right)\), which is present in both incompressible and compressible branches. In incompressible branches that base term is already the whole correction, because there is no density correction. In compressible branches, however, the pressure-correction step also changes the density, and that changing density is carried by the provisional face-normal velocity. The subsection below is therefore adding the extra compressible contribution, not replacing the derivation above.

6.6. Additional Compressible Density-Correction Term at Faces#

For compressible flows, the face mass-flux correction contains the same base pressure-difference term derived above, plus one additional contribution: the density correction carried by the provisional face-normal velocity. In other words, the previous subsection already supplied the \(-d_f\left(p_N'-p_P'\right)\) part; the only new ingredient here is the \(\rho_f' u_{n,f}^* A_f\) term:

(6.6.1)#\[\dot{m}_f^{'} = \rho_f^k u_{n,f}^{'} A_f + \rho_f^{'} u_{n,f}^{*} A_f = - d_f \left( p_N^{'} - p_P^{'} \right) + \rho_f^{'} \frac{\hat{m}_f^{*}}{\rho_f^k}.\]

At the face, the density correction is linearized with the upwind acoustic derivative,

(6.6.2)#\[\rho_f^{'} \approx \left( \frac{\partial \rho}{\partial p} \right)_{s,Y,\mathrm{up}} p_{\mathrm{up}}^{'} = \frac{1}{a_{s,\mathrm{up}}^2} p_{\mathrm{up}}^{'} ,\]

so that the extra face term becomes

(6.6.3)#\[\rho_f^{'} \frac{\hat{m}_f^{*}}{\rho_f^k} \approx c_f p_{\mathrm{up}}^{'}, \qquad c_f = \frac{\left|\hat{m}_f^{*}\right|}{\rho_{\mathrm{up}}^k a_{s,\mathrm{up}}^2}.\]

Final Compressible Coefficient Update

For the additional compressible density-correction term, the assembled-row contribution is

(6.6.4)#\[{}^{(p')}\!a_{P,\mathrm{comp}} p_P^{'} = \sum_{\text{nbr}} {}^{(p')}\!a_{\text{nbr},\mathrm{comp}} p_{\text{nbr}}^{'} + {}^{(p')}\!b_{P,\mathrm{comp}}.\]

with

(6.6.5)#\[\begin{split}{}^{(p')}\!a_{P,\mathrm{comp}} = \sum_f \begin{cases} c_f, & \hat{m}_f^{*}>0, \\ 0, & \hat{m}_f^{*}<0, \end{cases} \qquad {}^{(p')}\!a_{\text{nbr},\mathrm{comp}} = \begin{cases} 0, & \hat{m}_f^{*}>0, \\ c_f, & \hat{m}_f^{*}<0, \end{cases} \qquad {}^{(p')}\!b_{P,\mathrm{comp}} = 0.\end{split}\]

So, in compressible branches, the assembled coefficients are

(6.6.6)#\[{}^{(p')}\!a_P = {}^{(p')}\!a_{P,\mathrm{time}} + \sum_{f} d_f + {}^{(p')}\!a_{P,\mathrm{comp}}, \qquad {}^{(p')}\!a_{\text{nbr}} = d_f \quad \text{for the face shared by } P \text{ and nbr} + {}^{(p')}\!a_{\text{nbr},\mathrm{comp}}, \qquad {}^{(p')}\!b_P = {}^{(p')}\!b_{P,\mathrm{flux}} + {}^{(p')}\!b_{P,\mathrm{time}} + {}^{(p')}\!b_{P,\mathrm{bc}} + {}^{(p')}\!b_{P,\mathrm{comp}}.\]

So the compressible term does not introduce a new base coefficient family. It simply adds an extra contribution to the same diagonal, neighbor, and right-hand-side quantities already derived above.

This closes the generic assembled-row description. The pressure-correction matrix-storage appendix rewrites these same additions in the sign convention used by the linear solver storage; it does not introduce a different pressure equation.

6.7. Face Coefficient Supplied by Momentum Interpolation#

The pressure-correction assembly requires the coefficient \(d_f\) appearing in the linear face-flux response. Its value is supplied by the selected momentum-interpolation construction. The Rhie–Chow/Pascau and Denner families use different momentum-response and temporal-consistency factors, but all reduce to the same face relation already used in this derivation:

(6.7.1)#\[\dot m_f' = -d_f\left(p_N'-p_P'\right).\]

The interior and boundary formulas for \(d_f\) are derived in Chapter 5. Once \(d_f\) is known, the later collection into \({}^{(p')}\!a_P\), \({}^{(p')}\!a_{\mathrm{nbr}}\), and \({}^{(p')}\!b_P\) is independent of which interpolation family supplied it.

6.8. Implementation Mapping#

The mathematical pressure-correction row is complete at this point. Its mapping to the Stream sparse-matrix stores, including the stored off-diagonal sign convention, temporary accumulation rules, SIMPLEC scaling, temporal right-hand-side terms, and code landmarks, is preserved in the pressure-correction matrix-storage appendix. Keeping that mapping in the coding reference allows the derivation here to remain focused on the numerical method.

6.9. Applying the Pressure Correction#

Once the pressure correction field is computed by solving Eq. (6.5.6), the mass flux, pressure, and velocity fields are corrected. For the SIMPLE and SIMPLEC families, these updates have the schematic form below. SIMPLER obtains its primary pressure from a preliminary pressure equation, while PISO and PIMPLE accumulate staged corrections; those distinctions are derived in Chapter 7.

(6.9.1)#\[p_P = p_P^{*} + \alpha_p p_P^{'} \]
(6.9.2)#\[\vec{u}_P = \vec{u}_P^{*} - \frac{D_P}{\Omega_P} \sum_f p_f^{'} \vec{A}_f \]
(6.9.3)#\[\dot{m}_f = \hat{m}_f^{*} + \dot{m}_f^{'} \]

where \(\dot{m}_f^{'}\) is given by Eq. (6.4.2) or Eq. (6.6.1). In these update equations, \(p^*\) is the pressure reference used to form \(p'\), while \(\vec{u}^*\) and \(\hat{m}_f^*\) are predicted quantities built from that reference state. \(\alpha_p\) is the under-relaxation factor for pressure, and \(D_P\) is the selected cell momentum-response coefficient. For SIMPLE, \(D_P=\Omega_P/a_P^{\mathrm{pred}}\); SIMPLEC uses the consistent response that also approximates the neighboring velocity corrections. Both responses, including the effect of momentum under-relaxation, are derived in Chapter 7. Variables with subscript \(P\) are cell-centered and those with subscript \(f\) are face-centered. For compressible flow, these primary-field corrections are followed by the complete EOS reconstruction described in EOS Reconstruction After Pressure Correction.

6.10. Boundary Conditions#

The different types of boundaries commonly encountered in a computational domain can be classified as: inflow, outflow, wall and symmetry boundaries. The boundary conditions are imposed in terms of the primitive variables, either by assigning them fixed values or extrapolating from the interior of the domain, depending on the local flow regime. Once the appropriate boundary mass fluxes are computed from boundary density and velocity components, the contribution to the discretized momentum and energy equations by the boundary faces is no different than any interior face. The contributions to the coefficients of the pressure correction equation, however, depend on the type of boundary, as discussed below.

At wall boundaries, the fluid velocity is the same as that of the wall which can be stationary or moving; the mass flux is zero. At symmetry boundaries, the flow is parallel to the boundary; thus, all the variables are extrapolated from the interior and the mass flux is set to zero. The inflow and outflow boundaries need special treatment depending on the flow regime and are discussed below.

6.10.1. Inlet: Fixed Mass Flux#

At an inlet, a mass flux and the flow angle can be specified. Static or total temperature is specified. Pressure can be specified or extrapolated from the interior depending on the flow regime. Three flow regimes can exist:

  1. Constant density flow: density and velocity components are fixed. Pressure is extrapolated from the interior.

  2. Subsonic flow: density is not fixed at the inlet. Pressure is extrapolated from the interior cells and then density is computed from the equation of state using the boundary temperature. Velocity components are then computed from the specified mass flux and flow angle.

  3. Supersonic flow: density, velocity components and pressure are all fixed.

In all of the above situations, the mass flux at a boundary face is given by

(6.10.1.1)#\[\dot{m}_{\mathrm{bnd}} = \rho_{\mathrm{bnd}} \vec{u}_{\mathrm{bnd}} \cdot \vec{A}_{\mathrm{bnd}} = \rho_{\mathrm{bnd}} V_{n,\mathrm{bnd}} A_{\mathrm{bnd}}\]

which goes into the pressure correction equation as a source term. The mass flux correction is zero; therefore, the contribution from the boundary face to the diagonal and neighbor coefficients of the pressure correction equation given by Eq. (6.5.6), is also zero. It should be noted that the contribution from \(\rho^{'}\) for compressible flows, given by Eq. (6.6.5) is also zero for a fixed mass flux boundary.

6.10.2. Outlet: Fixed or Extrapolated Pressure#

At outflow boundaries, the velocity vector \(\vec{u}_{\mathrm{bnd}}\) is extrapolated from the interior and temperature is extrapolated. Pressure can be specified or extrapolated depending on the flow regime. Density is extrapolated from the interior. Mass flux is given by Eq. (6.10.1.1) and the mass flux correction can be written as:

(6.10.2.1)#\[\dot{m}_{\mathrm{bnd}}^{'} = \rho_{\mathrm{bnd}} V_{n,\mathrm{bnd}}^{'} A_{\mathrm{bnd}} + \rho_{\mathrm{bnd}}^{'} V_{n,\mathrm{bnd}}^{*} A_{\mathrm{bnd}}\]

The normal velocity correction at the boundary in terms of pressure correction at the boundary and the adjacent cell, analogous to correction at an interior face given by Eq. (6.4.2), can be written as:

(6.10.2.2)#\[V_{n,\mathrm{bnd}}^{'} = - \frac{\Omega_P}{\left( \vec{r}_{\mathrm{bnd}} - \vec{r}_P \right)\cdot\hat{\vec{n}}} \frac{1}{{}^{(u)}\!a_P} \left( p_{\mathrm{bnd}}^{'} - p_P^{'} \right) \]

Two situations can arise at an outlet:

  • Fixed Pressure Outlet: If the flow at the outlet is incompressible or subsonic, the static pressure is fixed which implies \(p_{\mathrm{bnd}}^{'} = 0\) .

  • Extrapolated Pressure Outlet: If the flow is supersonic at the outlet, then the pressure is extrapolated from the interior which implies \(p_{\mathrm{bnd}}^{'} = p_P^{'}\) .

For a fixed-pressure outlet, \(p_{\mathrm{bnd}}'=0\), so the pressure-induced boundary density correction is also zero. For an extrapolated-pressure outlet, \(p_{\mathrm{bnd}}'=p_P'\) and the acoustic density correction can be nonzero. To stay consistent with the EOS-generic linearization used throughout this chapter, write the extrapolated boundary density correction as

(6.10.2.3)#\[\rho^{'}_{\mathrm{bnd}} = \left.\left( \frac{\partial \rho}{\partial p} \right)_{s,Y}\right|_{\mathrm{bnd}} p_{\mathrm{bnd}}^{'} \approx \frac{1}{a_{s,\mathrm{bnd}}^2} p_{\mathrm{bnd}}^{'}.\]

and the mass flux correction is given by:

(6.10.2.4)#\[\dot{m}_{\mathrm{bnd}}^{'} = - \frac{\left( \rho A \Omega \right)_P }{\left( \vec{r}_{\mathrm{bnd}} - \vec{r}_P \right) \cdot \hat{\vec{n}}} \cdot \frac{1}{{}^{(u)}\!a_P} \left( p_{\mathrm{bnd}}^{'} - p_P^{'} \right) + \rho_{\mathrm{bnd}}^{'} V_{n,\mathrm{bnd}}^{*} A_{\mathrm{bnd}}\]

The contributions to the pressure-correction equation from outflow boundary faces are obtained directly from Eq. (6.10.2.4). If one later specializes to an ideal-gas EOS, the acoustic derivative above reduces to the familiar ideal-gas expression, but that specialization is no longer assumed implicitly here.

6.11. References#