Public Types | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
directionalPressureGradientExplicitSource Class Reference

Creates an explicit pressure gradient source in such a way to deflect the flow towards an specific direction (flowDir). Alternatively add an extra pressure drop in the flowDir direction using a model. More...

Inheritance diagram for directionalPressureGradientExplicitSource:
Inheritance graph
[legend]
Collaboration diagram for directionalPressureGradientExplicitSource:
Collaboration graph
[legend]

Public Types

enum  pressureDropModel { pVolumetricFlowRateTable, pConstant, pDarcyForchheimer }
 Modes of pressure drop. More...
 
- Public Types inherited from cellSetOption
enum  selectionModeType { smPoints, smCellSet, smCellZone, smAll }
 Enumeration for selection mode types. More...
 

Public Member Functions

 TypeName ("directionalPressureGradientExplicitSource")
 Runtime type information. More...
 
 directionalPressureGradientExplicitSource (const word &sourceName, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from explicit source name and mesh. More...
 
virtual void correct (volVectorField &U)
 Correct the pressure gradient. More...
 
virtual void addSup (fvMatrix< vector > &eqn, const label fieldI)
 Add explicit contribution to momentum equation. More...
 
virtual void addSup (const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldI)
 Add explicit contribution to compressible momentum equation. More...
 
virtual void constrain (fvMatrix< vector > &eqn, const label fieldI)
 Set 1/A coefficient. More...
 
virtual void writeData (Ostream &) const
 Write the source properties. More...
 
virtual bool read (const dictionary &dict)
 Read source dictionary. More...
 
- Public Member Functions inherited from cellSetOption
 TypeName ("cellSetOption")
 Runtime type information. More...
 
 cellSetOption (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from components. More...
 
virtual ~cellSetOption ()
 Destructor. More...
 
scalar timeStart () const
 Return const access to the time start. More...
 
scalar duration () const
 Return const access to the duration. More...
 
bool inTimeLimits (const scalar time) const
 Return true if within time limits. More...
 
const selectionModeTypeselectionMode () const
 Return const access to the cell selection mode. More...
 
const wordcellSetName () const
 Return const access to the name of cell set for "cellSet". More...
 
scalar V () const
 Return const access to the total cell volume. More...
 
const labelListcells () const
 Return const access to the cell set. More...
 
scalar & timeStart ()
 Return access to the time start. More...
 
scalar & duration ()
 Return access to the duration. More...
 
virtual bool isActive ()
 Is the source active? More...
 
- Public Member Functions inherited from option
 TypeName ("option")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, option, dictionary,(const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh),(name, modelType, dict, mesh))
 
 option (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from components. More...
 
autoPtr< optionclone () const
 Return clone. More...
 
virtual ~option ()
 Destructor. More...
 
const wordname () const
 Return const access to the source name. More...
 
const fvMeshmesh () const
 Return const access to the mesh database. More...
 
const dictionarycoeffs () const
 Return dictionary. More...
 
bool active () const
 Return const access to the source active flag. More...
 
void setApplied (const label fieldI)
 Set the applied flag to true for field index fieldI. More...
 
Switchactive ()
 Return access to the source active flag. More...
 
virtual label applyToField (const word &fieldName) const
 Return index of field name if found in fieldNames list. More...
 
virtual void checkApplied () const
 Check that the source has been applied. More...
 
virtual void addSup (fvMatrix< scalar > &eqn, const label fieldI)
 
virtual void addSup (fvMatrix< symmTensor > &eqn, const label fieldI)
 
virtual void addSup (fvMatrix< sphericalTensor > &eqn, const label fieldI)
 
virtual void addSup (fvMatrix< tensor > &eqn, const label fieldI)
 
virtual void addSup (const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldI)
 
virtual void addSup (const volScalarField &rho, fvMatrix< symmTensor > &eqn, const label fieldI)
 
virtual void addSup (const volScalarField &rho, fvMatrix< sphericalTensor > &eqn, const label fieldI)
 
virtual void addSup (const volScalarField &rho, fvMatrix< tensor > &eqn, const label fieldI)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldI)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldI)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< symmTensor > &eqn, const label fieldI)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< sphericalTensor > &eqn, const label fieldI)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< tensor > &eqn, const label fieldI)
 
virtual void constrain (fvMatrix< scalar > &eqn, const label fieldI)
 
virtual void constrain (fvMatrix< sphericalTensor > &eqn, const label fieldI)
 
virtual void constrain (fvMatrix< symmTensor > &eqn, const label fieldI)
 
virtual void constrain (fvMatrix< tensor > &eqn, const label fieldI)
 
virtual void correct (volScalarField &field)
 
virtual void writeHeader (Ostream &) const
 Write the source header information. More...
 
virtual void writeFooter (Ostream &) const
 Write the source footer information. More...
 

Private Member Functions

void initialise ()
 Init. More...
 
void writeProps (const vectorField &gradP) const
 Write the pressure gradient to file (for restarts etc) More...
 
void update (fvMatrix< vector > &eqn)
 Correct driving force for a constant mass flow rate. More...
 
 directionalPressureGradientExplicitSource (const directionalPressureGradientExplicitSource &)
 Disallow default bitwise copy construct. More...
 
void operator= (const directionalPressureGradientExplicitSource &)
 Disallow default bitwise assignment. More...
 

Private Attributes

pressureDropModel model_
 Pressure drop model. More...
 
vectorField gradP0_
 Pressure gradient before correction. More...
 
vectorField dGradP_
 Change in pressure gradient. More...
 
vectorField gradPporous_
 Pressure drop due to porous media. More...
 
vector flowDir_
 Flow direction. More...
 
autoPtr< volScalarFieldinvAPtr_
 Matrix 1/A coefficients field pointer. More...
 
scalar D_
 Darcy pressure loss coefficient. More...
 
scalar I_
 Inertia pressure lost coefficient. More...
 
scalar length_
 Porous media length. More...
 
scalar pressureDrop_
 Constant pressure drop. More...
 
interpolationTable< scalar > flowRate_
 Volumetric flow rate vs pressure drop table. More...
 
word faceZoneName_
 Name of the faceZone at the heat exchange inlet. More...
 
label zoneID_
 Id for the face zone. More...
 
labelList faceId_
 Local list of face IDs. More...
 
labelList facePatchId_
 Local list of patch ID per face. More...
 
scalar relaxationFactor_
 Relaxation factor. More...
 
labelList cellFaceMap_
 Cells faces mapping. More...
 

Static Private Attributes

static const NamedEnum< pressureDropModel, 3 > PressureDropModelNames_
 

Additional Inherited Members

- Static Public Member Functions inherited from option
static autoPtr< optionNew (const word &name, const dictionary &dict, const fvMesh &mesh)
 Return a reference to the selected fvOption model. More...
 
- Static Public Attributes inherited from cellSetOption
static const NamedEnum< selectionModeType, 4 > selectionModeTypeNames_
 Word list of selection mode type names. More...
 
- Protected Member Functions inherited from cellSetOption
void setSelection (const dictionary &dict)
 Set the cellSet or points selection. More...
 
void setCellSet ()
 Set the cell set based on the user input selection mode. More...
 
- Protected Attributes inherited from cellSetOption
scalar timeStart_
 Time start. More...
 
scalar duration_
 Duration. More...
 
selectionModeType selectionMode_
 Cell selection mode. More...
 
word cellSetName_
 Name of cell set for "cellSet" and "cellZone" selectionMode. More...
 
List< pointpoints_
 List of points for "points" selectionMode. More...
 
labelList cells_
 Set of cells to apply source to. More...
 
scalar V_
 Sum of cell volumes. More...
 
- Protected Attributes inherited from option
const word name_
 Source name. More...
 
const word modelType_
 Model type. More...
 
const fvMeshmesh_
 Reference to the mesh database. More...
 
dictionary dict_
 Top level source dictionary. More...
 
dictionary coeffs_
 Dictionary containing source coefficients. More...
 
Switch active_
 Source active flag. More...
 
wordList fieldNames_
 Field names to apply source to - populated by derived models. More...
 
List< bool > applied_
 Applied flag list - corresponds to each fieldNames_ entry. More...
 

Detailed Description

Creates an explicit pressure gradient source in such a way to deflect the flow towards an specific direction (flowDir). Alternatively add an extra pressure drop in the flowDir direction using a model.


Source usage
Example usage:

airDeflection
{
    type            directionalPressureGradientExplicitSource;
    active          true;

    directionalPressureGradientExplicitSourceCoeffs
    {
        selectionMode   cellZone;
        cellZone        cZone;

        fieldNames  (U);            // Name of the field
        flowDir     (1 1 0);        // Desired flow direction
        faceZone    f0Zone;         // Face zone upstream cell zone
        relaxationFactor    0.3;    // Relaxation factor for flow
                                    // deflection (default 0.3)

        //Pressure drop model [Pa]
        model       volumetricFlowRateTable;//constant;//DarcyForchheimer;

        //DarcyForchheimer model
        // deltaP = (D*mu + 0.5*rho*magUn)*magUn*length_

        D           5e7;
        I           0;
        length      1e-3;

        //constant model
        pressureDrop    40;

        //volumetricFlowRateTable model
        outOfBounds     clamp;
        fileName        "volFlowRateTable";
    }
}

NOTE: In order to obtain the upwind velocities this function loops over the slaves cells of the faceZone specified in the dictionary, on the other hand, the cellZone to which this source term is applied should be composed of the master cells and they should be 'downwind' the faceZone.

Source files

Definition at line 104 of file directionalPressureGradientExplicitSource.H.

Member Enumeration Documentation

◆ pressureDropModel

Modes of pressure drop.

Enumerator
pVolumetricFlowRateTable 
pConstant 
pDarcyForchheimer 

Definition at line 113 of file directionalPressureGradientExplicitSource.H.

Constructor & Destructor Documentation

◆ directionalPressureGradientExplicitSource() [1/2]

Disallow default bitwise copy construct.

◆ directionalPressureGradientExplicitSource() [2/2]

directionalPressureGradientExplicitSource ( const word sourceName,
const word modelType,
const dictionary dict,
const fvMesh mesh 
)

Construct from explicit source name and mesh.

Definition at line 173 of file directionalPressureGradientExplicitSource.C.

References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, IOstream::good(), Foam::Info, Foam::mag(), Foam::name(), Foam::nl, dictionary::null, propsDict(), and Foam::type().

Here is the call graph for this function:

Member Function Documentation

◆ initialise()

void initialise ( )
private

◆ writeProps()

void writeProps ( const vectorField gradP) const
private

Write the pressure gradient to file (for restarts etc)

Definition at line 144 of file directionalPressureGradientExplicitSource.C.

References gradP(), IOobject::NO_READ, IOobject::NO_WRITE, and propsDict().

Here is the call graph for this function:

◆ update()

void update ( fvMatrix< vector > &  eqn)
private

Correct driving force for a constant mass flow rate.

◆ operator=()

void operator= ( const directionalPressureGradientExplicitSource )
private

Disallow default bitwise assignment.

◆ TypeName()

TypeName ( "directionalPressureGradientExplicitSource"  )

Runtime type information.

◆ correct()

void correct ( volVectorField U)
virtual

◆ addSup() [1/2]

void addSup ( fvMatrix< vector > &  eqn,
const label  fieldI 
)
virtual

Add explicit contribution to momentum equation.

Reimplemented from option.

Definition at line 473 of file directionalPressureGradientExplicitSource.C.

References fvMatrix::dimensions(), Foam::dimVolume, IOobject::NO_READ, IOobject::NO_WRITE, Foam::fvc::Su(), and Vector< scalar >::zero.

Here is the call graph for this function:

◆ addSup() [2/2]

void addSup ( const volScalarField rho,
fvMatrix< vector > &  eqn,
const label  fieldI 
)
virtual

Add explicit contribution to compressible momentum equation.

Reimplemented from option.

Definition at line 499 of file directionalPressureGradientExplicitSource.C.

◆ constrain()

void constrain ( fvMatrix< vector > &  eqn,
const label  fieldI 
)
virtual

Set 1/A coefficient.

Reimplemented from option.

Definition at line 510 of file directionalPressureGradientExplicitSource.C.

References fvMatrix::A(), IOobject::NO_READ, IOobject::NO_WRITE, and Vector< scalar >::zero.

Here is the call graph for this function:

◆ writeData()

void writeData ( Ostream os) const
virtual

Write the source properties.

Reimplemented from option.

Definition at line 31 of file directionalPressureGradientExplicitSourceIO.C.

References NotImplemented.

◆ read()

bool read ( const dictionary dict)
virtual

Read source dictionary.

Reimplemented from cellSetOption.

Definition at line 40 of file directionalPressureGradientExplicitSourceIO.C.

References dict, dictionary::lookup(), dictionary::lookupOrDefault(), and Foam::mag().

Here is the call graph for this function:

Field Documentation

◆ PressureDropModelNames_

Definition at line 125 of file directionalPressureGradientExplicitSource.H.

◆ model_

pressureDropModel model_
private

Pressure drop model.

Definition at line 128 of file directionalPressureGradientExplicitSource.H.

◆ gradP0_

vectorField gradP0_
private

Pressure gradient before correction.

Definition at line 131 of file directionalPressureGradientExplicitSource.H.

◆ dGradP_

vectorField dGradP_
private

Change in pressure gradient.

Definition at line 134 of file directionalPressureGradientExplicitSource.H.

◆ gradPporous_

vectorField gradPporous_
private

Pressure drop due to porous media.

Definition at line 137 of file directionalPressureGradientExplicitSource.H.

◆ flowDir_

vector flowDir_
private

Flow direction.

Definition at line 140 of file directionalPressureGradientExplicitSource.H.

◆ invAPtr_

autoPtr<volScalarField> invAPtr_
private

Matrix 1/A coefficients field pointer.

Definition at line 143 of file directionalPressureGradientExplicitSource.H.

◆ D_

scalar D_
private

Darcy pressure loss coefficient.

Definition at line 146 of file directionalPressureGradientExplicitSource.H.

◆ I_

scalar I_
private

Inertia pressure lost coefficient.

Definition at line 149 of file directionalPressureGradientExplicitSource.H.

◆ length_

scalar length_
private

Porous media length.

Definition at line 152 of file directionalPressureGradientExplicitSource.H.

◆ pressureDrop_

scalar pressureDrop_
private

Constant pressure drop.

Definition at line 155 of file directionalPressureGradientExplicitSource.H.

◆ flowRate_

interpolationTable<scalar> flowRate_
private

Volumetric flow rate vs pressure drop table.

Definition at line 158 of file directionalPressureGradientExplicitSource.H.

◆ faceZoneName_

word faceZoneName_
private

Name of the faceZone at the heat exchange inlet.

Definition at line 161 of file directionalPressureGradientExplicitSource.H.

◆ zoneID_

label zoneID_
private

Id for the face zone.

Definition at line 164 of file directionalPressureGradientExplicitSource.H.

Referenced by directionalPressureGradientExplicitSource::initialise().

◆ faceId_

labelList faceId_
private

Local list of face IDs.

Definition at line 167 of file directionalPressureGradientExplicitSource.H.

Referenced by directionalPressureGradientExplicitSource::initialise().

◆ facePatchId_

labelList facePatchId_
private

Local list of patch ID per face.

Definition at line 170 of file directionalPressureGradientExplicitSource.H.

Referenced by directionalPressureGradientExplicitSource::initialise().

◆ relaxationFactor_

scalar relaxationFactor_
private

Relaxation factor.

Definition at line 173 of file directionalPressureGradientExplicitSource.H.

◆ cellFaceMap_

labelList cellFaceMap_
private

Cells faces mapping.

Definition at line 176 of file directionalPressureGradientExplicitSource.H.


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