plenumPressureFvPatchScalarField Class Reference

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...

Inheritance diagram for plenumPressureFvPatchScalarField:
Collaboration diagram for plenumPressureFvPatchScalarField:

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< fvPatchScalarFieldclone (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...
 

Detailed Description

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.
Usage
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;
    }
Source files

Definition at line 188 of file plenumPressureFvPatchScalarField.H.

Constructor & Destructor Documentation

◆ plenumPressureFvPatchScalarField() [1/5]

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().

Here is the caller graph for this function:

◆ plenumPressureFvPatchScalarField() [2/5]

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().

Here is the call graph for this function:

◆ plenumPressureFvPatchScalarField() [3/5]

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().

Here is the call graph for this function:

◆ plenumPressureFvPatchScalarField() [4/5]

Disallow copy without setting internal field reference.

◆ plenumPressureFvPatchScalarField() [5/5]

Copy constructor setting internal field reference.

Definition at line 125 of file plenumPressureFvPatchScalarField.C.

Member Function Documentation

◆ TypeName()

TypeName ( "plenumPressure"  )

Runtime type information.

◆ clone()

virtual tmp<fvPatchScalarField> clone ( const DimensionedField< scalar, volMesh > &  iF) const
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().

Here is the call graph for this function:

◆ updateCoeffs()

void updateCoeffs ( )
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ write()

void write ( Ostream os) const
virtual

Write.

Definition at line 277 of file plenumPressureFvPatchScalarField.C.

References Foam::makePatchTypeField(), fvPatchField< Type >::write(), and Foam::writeEntry().

Referenced by plenumPressureFvPatchScalarField::clone().

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following files: