This boundary condition maintains a certain subsonic Mach number at an outlet patch by dynamically adjusting the static outlet pressure. It makes it possible, for example, to simulate the flow in a preturbine engine exhaust manifold, without resolving details of the flow inside the turbine. In general, the flow in a choked nozzle can be non-trivial and expensive to simulate. More...
#include <outletMachNumberPressureFvPatchScalarField.H>


Public Member Functions | |
| TypeName ("outletMachNumberPressure") | |
| Runtime type information. | |
| outletMachNumberPressureFvPatchScalarField (const fvPatch &p, const DimensionedField< scalar, volMesh > &iF) | |
| Construct from patch and internal field. | |
| outletMachNumberPressureFvPatchScalarField (const fvPatch &p, const DimensionedField< scalar, volMesh > &iF, const dictionary &dict) | |
| Construct from patch, internal field and dictionary. | |
| outletMachNumberPressureFvPatchScalarField (const outletMachNumberPressureFvPatchScalarField &ptf, const fvPatch &p, const DimensionedField< scalar, volMesh > &iF, const fvPatchFieldMapper &mapper) | |
| Construct by mapping given outletMachNumberPressureFvPatchScalarField onto a new patch. | |
| outletMachNumberPressureFvPatchScalarField (const outletMachNumberPressureFvPatchScalarField &tppsf) | |
| Construct as copy. | |
| outletMachNumberPressureFvPatchScalarField (const outletMachNumberPressureFvPatchScalarField &tppsf, const DimensionedField< scalar, volMesh > &iF) | |
| Construct as copy setting internal field reference. | |
| virtual tmp< fvPatchField< scalar > > | clone () const |
| Return a clone. | |
| virtual tmp< fvPatchField< scalar > > | clone (const DimensionedField< scalar, volMesh > &iF) const |
| Clone with an internal field reference. | |
| virtual void | updateCoeffs () |
| Update the coefficients associated with the patch field. | |
| virtual void | write (Ostream &os) const |
| Write. | |
This boundary condition maintains a certain subsonic Mach number at an outlet patch by dynamically adjusting the static outlet pressure. It makes it possible, for example, to simulate the flow in a preturbine engine exhaust manifold, without resolving details of the flow inside the turbine. In general, the flow in a choked nozzle can be non-trivial and expensive to simulate.
This formulation is derived from a simple model of the gas flow through a nozzle with fixed geometry. The nozzle flow is assumed to be quasi-steady, 1D, isentropic and compressible.
This gives the following general relationship between pressure ratio and Mach number in any cross section inside the nozzle:
![\[ \frac{p_{tot}}{p}=\left[ 1+ \frac{k-1}{2}\;M^2 \right]^{\frac{k}{k-1}}
\]](form_980.png)
where the constant ratio of heat capacities is 


Overall pressure difference across the nozzle is
![\[ r = pBack/p_{tot}
\]](form_984.png)
When 


The nozzle model assumption locks the relationship between nozzle cross sectional areas and Mach numbers. For a choked flow it is only the Mach number on the outlet patch, 
Care should be taken however to ensure that the entries in the input dictionary and the CFD geometry satisfy the following equation
![\[ c1\frac{A_{outlet}}{A_1}=\frac{1}{M_{outlet}}\left[\frac{1+\frac{k-1}{2}
M_{outlet}^2}{1+\frac{k-1}{2}}\right]^{\frac{k+1}{2(k-1)}}
\]](form_989.png)
where 


In the non-choked case the outlet patch Mach number is calculated as
![\[ M_{outlet} =
\frac{A_1}
{c1\;A_{outlet}}
\sqrt{\frac{2}{k-1}\left[r^\frac{2}{k}-r^\frac{k+1}{k} \right]}
\]](form_993.png)
The accompanying boundary conditions for velocity should be pressureInletOutletVelocity.
Author: Jens Dahl Kunoy
Reference:
Fox, R.W & McDonald, A. T. (1994). Introduction to Fluid Mechanics (4ed SI). Wiley
| Property | Description | Required | Default value |
|---|---|---|---|
choked | Defines nozzle conditions | Yes | None |
relax | underrelaxation of static pressure | Yes | 0 |
M | outlet Mach number | Yes (choked) | None |
A1 | Nozzle throat area [m2] | Yes (non-choked) | 0 |
pBack | Pressure downstream of nozzle | Yes (non-choked) | None |
c1 | Correction factor for non-uniform profiles | ||
| No (non-choked) | 0.0 |
Example of the boundary condition specification:
<patchName>
{
type outletMachNumberPressure;
pBack 101325;
c1 1;
A1 0.008;
relax 0.1;
choked false;
value uniform 200000;
}
Definition at line 178 of file outletMachNumberPressureFvPatchScalarField.H.
| outletMachNumberPressureFvPatchScalarField | ( | const fvPatch & | p, |
| const DimensionedField< scalar, volMesh > & | iF ) |
Construct from patch and internal field.
Definition at line 31 of file outletMachNumberPressureFvPatchScalarField.C.
References p.
Referenced by outletMachNumberPressureFvPatchScalarField(), outletMachNumberPressureFvPatchScalarField(), outletMachNumberPressureFvPatchScalarField(), and TypeName().

| outletMachNumberPressureFvPatchScalarField | ( | const fvPatch & | p, |
| const DimensionedField< scalar, volMesh > & | iF, | ||
| const dictionary & | dict ) |
Construct from patch, internal field and dictionary.
Definition at line 51 of file outletMachNumberPressureFvPatchScalarField.C.
| outletMachNumberPressureFvPatchScalarField | ( | const outletMachNumberPressureFvPatchScalarField & | ptf, |
| const fvPatch & | p, | ||
| const DimensionedField< scalar, volMesh > & | iF, | ||
| const fvPatchFieldMapper & | mapper ) |
Construct by mapping given outletMachNumberPressureFvPatchScalarField onto a new patch.
Definition at line 72 of file outletMachNumberPressureFvPatchScalarField.C.
References outletMachNumberPressureFvPatchScalarField(), and p.

| outletMachNumberPressureFvPatchScalarField | ( | const outletMachNumberPressureFvPatchScalarField & | tppsf | ) |
Construct as copy.
Definition at line 94 of file outletMachNumberPressureFvPatchScalarField.C.
References outletMachNumberPressureFvPatchScalarField().

| outletMachNumberPressureFvPatchScalarField | ( | const outletMachNumberPressureFvPatchScalarField & | tppsf, |
| const DimensionedField< scalar, volMesh > & | iF ) |
Construct as copy setting internal field reference.
Definition at line 113 of file outletMachNumberPressureFvPatchScalarField.C.
References outletMachNumberPressureFvPatchScalarField().

| TypeName | ( | "outletMachNumberPressure" | ) |
Runtime type information.
References dict, outletMachNumberPressureFvPatchScalarField(), and p.

|
inlinevirtual |
Return a clone.
Definition at line 291 of file outletMachNumberPressureFvPatchScalarField.H.
References fvPatchField< Type >::Clone().

|
inlinevirtual |
Clone with an internal field reference.
Definition at line 299 of file outletMachNumberPressureFvPatchScalarField.H.
References fvPatchField< Type >::Clone().

|
virtual |
Update the coefficients associated with the patch field.
Definition at line 135 of file outletMachNumberPressureFvPatchScalarField.C.
References basicThermo::dictName, Foam::dimMass, Foam::dimTime, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, basicThermo::gamma(), gamma, Foam::gAverage(), Foam::gSum(), M, Foam::mag(), Foam::operator==(), p, phi, Foam::pow(), rho, Foam::sqr(), Foam::sqrt(), U, and WarningInFunction.

|
virtual |
Write.
Definition at line 238 of file outletMachNumberPressureFvPatchScalarField.C.
References os(), fvPatchField< Type >::write(), and fvPatchField< Type >::writeValueEntry().
