This boundary condition provides a plenum pressure inlet condition. This condition creates a zero-dimensional model of an enclosed volume of gas upstream of the inlet. The pressure that the boundary condition exerts on the inlet boundary is dependent on the thermodynamic state of the upstream volume. The upstream plenum density and temperature are time-stepped along with the rest of the simulation, and momentum is neglected. The plenum is supplied with a user specified mass flow and temperature. More...
Public Member Functions | |
TypeName ("plenumPressure") | |
Runtime type information. More... | |
plenumPressureFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &) | |
Construct from patch and internal field. More... | |
plenumPressureFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &, const dictionary &) | |
Construct from patch, internal field and dictionary. More... | |
plenumPressureFvPatchScalarField (const plenumPressureFvPatchScalarField &, const fvPatch &, const DimensionedField< scalar, volMesh > &, const fvPatchFieldMapper &) | |
Construct by mapping given plenumPressureFvPatchScalarField. More... | |
plenumPressureFvPatchScalarField (const plenumPressureFvPatchScalarField &)=delete | |
Disallow copy without setting internal field reference. More... | |
plenumPressureFvPatchScalarField (const plenumPressureFvPatchScalarField &, const DimensionedField< scalar, volMesh > &) | |
Copy constructor setting internal field reference. More... | |
virtual tmp< fvPatchScalarField > | clone (const DimensionedField< scalar, volMesh > &iF) const |
Construct and return a clone setting internal field reference. More... | |
virtual void | updateCoeffs () |
Update the coefficients associated with the patch field. More... | |
virtual void | write (Ostream &) const |
Write. More... | |
This boundary condition provides a plenum pressure inlet condition. This condition creates a zero-dimensional model of an enclosed volume of gas upstream of the inlet. The pressure that the boundary condition exerts on the inlet boundary is dependent on the thermodynamic state of the upstream volume. The upstream plenum density and temperature are time-stepped along with the rest of the simulation, and momentum is neglected. The plenum is supplied with a user specified mass flow and temperature.
The result is a boundary condition which blends between a pressure inlet condition condition and a fixed mass flow. The smaller the plenum volume, the quicker the pressure responds to a deviation from the supply mass flow, and the closer the model approximates a fixed mass flow. As the plenum size increases, the model becomes more similar to a specified pressure.
The expansion from the plenum to the inlet boundary is controlled by an area ratio and a discharge coefficient. The area ratio can be used to represent further acceleration between a sub-grid blockage such as fins. The discharge coefficient represents a fractional deviation from an ideal expansion process.
This condition is useful for simulating unsteady internal flow problems for which both a mass flow boundary is unrealistic, and a pressure boundary is susceptible to flow reversal. It was developed for use in simulating confined combustion.
Reference:
Bainbridge, W. (2013). The Numerical Simulation of Oscillations in Gas Turbine Combustion Chambers, PhD Thesis, Chapter 4, Section 4.3.1.2, 77-80.
Property | Description | Required | Default value |
---|---|---|---|
gamma | ratio of specific heats | yes | none |
R | specific gas constant | yes | none |
supplyMassFlowRate | flow rate into the plenum | yes | none |
supplyTotalTemperature | temperature into the plenum | yes | none |
plenumVolume | plenum volume | yes | none |
plenumDensity | plenum density | yes | none |
plenumTemperature | plenum temperature | yes | none |
U | velocity field name | no | U |
phi | flux field name | no | phi |
rho | inlet density | no | none |
inletAreaRatio | inlet open fraction | yes | none |
inletDischargeCoefficient | inlet loss coefficient | yes | none |
timeScale | relaxation time scale | yes | none |
Example of the boundary condition specification:
<patchName> { type plenumPressure; gamma 1.4; R 287.04; supplyMassFlowRate 0.0001; supplyTotalTemperature 300; plenumVolume 0.000125; plenumDensity 1.1613; plenumTemperature 300; inletAreaRatio 1.0; inletDischargeCoefficient 0.8; timeScale 1e-4; value uniform 1e5; }
Definition at line 188 of file plenumPressureFvPatchScalarField.H.
plenumPressureFvPatchScalarField | ( | const fvPatch & | p, |
const DimensionedField< scalar, volMesh > & | iF | ||
) |
Construct from patch and internal field.
Definition at line 35 of file plenumPressureFvPatchScalarField.C.
Referenced by plenumPressureFvPatchScalarField::clone(), and plenumPressureFvPatchScalarField::plenumPressureFvPatchScalarField().
plenumPressureFvPatchScalarField | ( | const fvPatch & | p, |
const DimensionedField< scalar, volMesh > & | iF, | ||
const dictionary & | dict | ||
) |
Construct from patch, internal field and dictionary.
Definition at line 62 of file plenumPressureFvPatchScalarField.C.
References dictionary::found(), dictionary::lookup(), and plenumPressureFvPatchScalarField::plenumPressureFvPatchScalarField().
plenumPressureFvPatchScalarField | ( | const plenumPressureFvPatchScalarField & | ptf, |
const fvPatch & | p, | ||
const DimensionedField< scalar, volMesh > & | iF, | ||
const fvPatchFieldMapper & | mapper | ||
) |
Construct by mapping given plenumPressureFvPatchScalarField.
onto a new patch
Definition at line 99 of file plenumPressureFvPatchScalarField.C.
References plenumPressureFvPatchScalarField::plenumPressureFvPatchScalarField().
|
delete |
Disallow copy without setting internal field reference.
plenumPressureFvPatchScalarField | ( | const plenumPressureFvPatchScalarField & | tppsf, |
const DimensionedField< scalar, volMesh > & | iF | ||
) |
Copy constructor setting internal field reference.
Definition at line 125 of file plenumPressureFvPatchScalarField.C.
TypeName | ( | "plenumPressure" | ) |
Runtime type information.
|
inlinevirtual |
Construct and return a clone setting internal field reference.
Definition at line 295 of file plenumPressureFvPatchScalarField.H.
References plenumPressureFvPatchScalarField::plenumPressureFvPatchScalarField(), plenumPressureFvPatchScalarField::updateCoeffs(), and plenumPressureFvPatchScalarField::write().
|
virtual |
Update the coefficients associated with the patch field.
Definition at line 150 of file plenumPressureFvPatchScalarField.C.
References Foam::cp(), TimeState::deltaTValue(), Foam::dimFlux, Foam::dimMassFlux, Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::gSum(), Foam::magSqr(), Foam::max(), Foam::nl, oldTime(), Foam::operator==(), phi, Foam::pos0(), Foam::pow(), s(), Foam::sqrt(), IOobject::time(), timeIndex, and U.
Referenced by plenumPressureFvPatchScalarField::clone().
|
virtual |
Write.
Definition at line 277 of file plenumPressureFvPatchScalarField.C.
References Foam::makePatchTypeField(), fvPatchField< Type >::write(), and Foam::writeEntry().
Referenced by plenumPressureFvPatchScalarField::clone().