The pressure function object provides several methods to convert an input pressure field into derived forms, including:
Static pressure, \(p\):
\[ p = \rho \, p_k \]
Total pressure, \(p_t\):
\[ p_t = p_{ref} + p + 0.5 \rho |\u|^2 \]
Pressure coefficient, static or total, \(C_p\):
\[ C_p = \frac{p}{0.5 \rho_{\infty} \mag{\u_{\infty}}^2} \]
Isentropic pressure, \(p_i\):
\[ p_i = p \left[1 + \frac{\gamma-1}{2} M^2 \right]^{\frac{\gamma}{\gamma-1}} \]
where
| \(\rho \) | = | Density [kg/m3] |
| \(\u \) | = | Velocity [m/s] |
| \(\rho_{\inf} \) | = | Freestream density [kg/m3] |
| \(p_{\inf} \) | = | Freestream pressure [Pa] |
| \(\u_{\inf} \) | = | Freestream velocity [m/s] |
| \(p_k \) | = | Kinematic pressure (p/rho)[m2/s2] |
| \(p_s \) | = | Static pressure [Pa] |
| \(p_0 \) | = | Total pressure [Pa] |
| \(p_{ref} \) | = | Reference pressure level [Pa] |
| \(p_i \) | = | Total isentropic pressure |
| \(C_p \) | = | Pressure coefficient |
| \(C_{p_0} \) | = | Total pressure coefficient |
| \(\gamma \) | = | Specific heat ratio |
For incompressible cases, the kinematic pressure (pressure divided by density) can be converted to pressure via a user-specified reference density.
| Operand | Type | Location |
|---|---|---|
| input | volScalarField | $FOAM_CASE/<time>/<inpField> |
| output file | - | - |
| output field | volScalarField | $FOAM_CASE/<time>/<outField> |
Example of the pressure function object by using functions sub-dictionary in system/controlDict file:
pressure1
{
// Mandatory entries (unmodifiable)
type pressure;
libs (fieldFunctionObjects);
// Mandatory entries (runtime modifiable)
mode <option>;
// Optional entries (runtime modifiable)
p <pName>;
U <UName>;
rho <rhoName>;
rhoInf 1.0; // enabled if rho=rhoInf
pRef 0.0;
hydroStaticMode none;
g (0 -9.81 0); // enabled if hydroStaticMode != none
hRef 0.0; // enabled if hydroStaticMode != none
pInf 0.0;
UInf (1 0 0);
}
where the entries mean:
| Property | Description | Type | Required | Default |
|---|---|---|---|---|
| type | Type name: pressure | word | yes | - |
| libs | Library name: fieldFunctionObjects | word | yes | - |
| mode | Calculation mode (see below) | word | yes | - |
| p | Name of the pressure field | word | no | p |
| U | Name of the velocity field | word | no | U |
| rho | Name of the density field | word | no | rho |
| rhoInf | Freestream density for coefficient calculation | scalar | conditional | - |
| pRef | Reference pressure for total pressure | scalar | no | 0 |
| hydrostaticMode | Hydrostatic contributions (see below) | word | no | none |
| g | Gravity vector (see below) | vector | no | - |
| hRef | Reference height (see below) | scalar | no | - |
| pInf | Freestream pressure for coefficient calculation | scalar | no | - |
| UInf | Freestream velocity for coefficient calculation | vector | no | - |
Options for the mode entry:
static | static pressure total | total pressure isentropic | isentropic pressure staticCoeff | static pressure coefficient totalCoeff | total pressure coefficient
The hydrostaticMode entry provides handling for the term \(\rho (\vec{g} \cdot \vec{h})\) where options include
none | not included add | add the term, e.g. to convert from p_rgh to p subtract | subtract the term, e.g. to convert from p to p_rgh
If the hydrostaticMode is active, values are also required for gravity, g, and reference height, hRef. By default these will be retrieved from the database. When these values are not available the user must provide them, e.g.
g (0 -9.81 0); hRef 0;
Default behaviour assumes that the case is compressible. For incompressible cases, i.e. solved using the kinematic pressure:
\[ p_k = \frac{p}{\rho} \qquad [\mathrm{m}^2 \mathrm{s}^{-2}] \]
The rho entry can be used to set the freestream density:
rho rhoInf; rhoInf 100000;
The inherited entries are elaborated in:
Usage by the postProcess utility is not available.
The derived pressure is stored on the mesh database, using the default name:
static(p)static(p)_coefftotal(p)total(p)_coeffThis can be overridden using the result entry.
Tutorial:
Source code:
History