Public Member Functions | List of all members
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:
Inheritance graph
[legend]
Collaboration diagram for plenumPressureFvPatchScalarField:
Collaboration graph
[legend]

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 &)
 Construct as copy. More...
 
virtual tmp< fvPatchScalarFieldclone () const
 Construct and return a clone. More...
 
 plenumPressureFvPatchScalarField (const plenumPressureFvPatchScalarField &, const DimensionedField< scalar, volMesh > &)
 Construct as copy 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 191 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(), plenumPressureFvPatchScalarField::plenumPressureFvPatchScalarField(), and readScalar.

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]

Construct as copy.

Definition at line 125 of file plenumPressureFvPatchScalarField.C.

References plenumPressureFvPatchScalarField::plenumPressureFvPatchScalarField().

Here is the call graph for this function:

◆ plenumPressureFvPatchScalarField() [5/5]

Construct as copy setting internal field reference.

Definition at line 148 of file plenumPressureFvPatchScalarField.C.

Member Function Documentation

◆ TypeName()

TypeName ( "plenumPressure"  )

Runtime type information.

◆ clone() [1/2]

virtual tmp<fvPatchScalarField> clone ( ) const
inlinevirtual

Construct and return a clone.

Definition at line 290 of file plenumPressureFvPatchScalarField.H.

References plenumPressureFvPatchScalarField::plenumPressureFvPatchScalarField().

Here is the call graph for this function:

◆ clone() [2/2]

virtual tmp<fvPatchScalarField> clone ( const DimensionedField< scalar, volMesh > &  iF) const
inlinevirtual

Construct and return a clone setting internal field reference.

Definition at line 307 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 173 of file plenumPressureFvPatchScalarField.C.

References Foam::cp(), TimeState::deltaTValue(), Foam::dimArea, Foam::dimDensity, Foam::dimVelocity, 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 300 of file plenumPressureFvPatchScalarField.C.

References token::END_STATEMENT, Foam::makePatchTypeField(), Foam::nl, fvPatchField< Type >::write(), and Ostream::writeKeyword().

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: