All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
flowRateOutletVelocityFvPatchVectorField Class Reference

Velocity outlet boundary condition which corrects the extrapolated velocity to match the specified flow rate. More...

Inheritance diagram for flowRateOutletVelocityFvPatchVectorField:
Collaboration diagram for flowRateOutletVelocityFvPatchVectorField:

Public Member Functions

 TypeName ("flowRateOutletVelocity")
 Runtime type information. More...
 
 flowRateOutletVelocityFvPatchVectorField (const fvPatch &, const DimensionedField< vector, volMesh > &, const dictionary &)
 Construct from patch, internal field and dictionary. More...
 
 flowRateOutletVelocityFvPatchVectorField (const flowRateOutletVelocityFvPatchVectorField &, const fvPatch &, const DimensionedField< vector, volMesh > &, const fieldMapper &)
 Construct by mapping given. More...
 
 flowRateOutletVelocityFvPatchVectorField (const flowRateOutletVelocityFvPatchVectorField &)=delete
 Disallow copy without setting internal field reference. More...
 
 flowRateOutletVelocityFvPatchVectorField (const flowRateOutletVelocityFvPatchVectorField &, const DimensionedField< vector, volMesh > &)
 Copy constructor setting internal field reference. More...
 
virtual tmp< fvPatchVectorFieldclone (const DimensionedField< vector, 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

Velocity outlet boundary condition which corrects the extrapolated velocity to match the specified flow rate.

For a mass-based flux:

  • the flow rate should be provided in kg/s
  • if rho is "none" the flow rate is in m^3/s
  • otherwise rho should correspond to the name of the density field
  • if the density field cannot be found in the database, the user must specify the outlet density using the rhoOutlet entry

For a volumetric-based flux:

  • the flow rate is in m^3/s
Usage
Property Description Required Default value
massFlowRate Mass flow rate [kg/s] no
volumetricFlowRate Volumetric flow rate [m^3/s] no
rho Density field name no rho
rhoOutlet Outlet density no

Example of the boundary condition specification for a volumetric flow rate:

    <patchName>
    {
        type                flowRateOutletVelocity;
        volumetricFlowRate  0.2;
        value               uniform (0 0 0);
    }

Example of the boundary condition specification for a mass flow rate:

    <patchName>
    {
        type                flowRateOutletVelocity;
        massFlowRate        0.2;
        rhoOutlet           1.0;
        value               uniform (0 0 0);
    }

The c volumetricFlowRate or massFlowRate entry is a Function1 of time, see Foam::Function1s.

Note:

  • rhoOutlet is required for the case of a mass flow rate, where the density field is not available at start-up
  • The value is positive out of the domain (as an outlet)
  • May not work correctly for transonic outlets
  • Strange behaviour with potentialFoam since the U equation is not solved
See also
Foam::fixedValueFvPatchField Foam::Function1s Foam::flowRateInletVelocityFvPatchVectorField
Source files

Definition at line 130 of file flowRateOutletVelocityFvPatchVectorField.H.

Constructor & Destructor Documentation

◆ flowRateOutletVelocityFvPatchVectorField() [1/4]

flowRateOutletVelocityFvPatchVectorField ( const fvPatch p,
const DimensionedField< vector, volMesh > &  iF,
const dictionary dict 
)

Construct from patch, internal field and dictionary.

Definition at line 74 of file flowRateOutletVelocityFvPatchVectorField.C.

References UPstream::blocking, dict, DimensionedField< Type, GeoMesh >::dimensions(), Foam::dimMassFlux, Foam::dimVolumetricFlux, Foam::evaluate(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, Function1< Type >::New(), and p.

Referenced by flowRateOutletVelocityFvPatchVectorField::clone().

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

◆ flowRateOutletVelocityFvPatchVectorField() [2/4]

Construct by mapping given.

flowRateOutletVelocityFvPatchVectorField onto a new patch

Definition at line 135 of file flowRateOutletVelocityFvPatchVectorField.C.

◆ flowRateOutletVelocityFvPatchVectorField() [3/4]

Disallow copy without setting internal field reference.

◆ flowRateOutletVelocityFvPatchVectorField() [4/4]

Copy constructor setting internal field reference.

Definition at line 152 of file flowRateOutletVelocityFvPatchVectorField.C.

Member Function Documentation

◆ TypeName()

TypeName ( "flowRateOutletVelocity"  )

Runtime type information.

◆ clone()

virtual tmp<fvPatchVectorField> clone ( const DimensionedField< vector, volMesh > &  iF) const
inlinevirtual

Construct and return a clone setting internal field reference.

Definition at line 197 of file flowRateOutletVelocityFvPatchVectorField.H.

References flowRateOutletVelocityFvPatchVectorField::flowRateOutletVelocityFvPatchVectorField().

Here is the call graph for this function:

◆ updateCoeffs()

void updateCoeffs ( )
virtual

Update the coefficients associated with the patch field.

Definition at line 169 of file flowRateOutletVelocityFvPatchVectorField.C.

References Foam::exit(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ write()

void write ( Ostream os) const
virtual

Write.

Definition at line 209 of file flowRateOutletVelocityFvPatchVectorField.C.

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

Here is the call graph for this function:

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