turbulentDFSEMInletFvPatchVectorField Class Reference

The turbulentDFSEMInlet is a synthesised-eddy based velocity inlet boundary condition to generate synthetic turbulence-alike time-series from a given set of turbulence statistics for LES and hybrid RANS-LES computations. More...

Inheritance diagram for turbulentDFSEMInletFvPatchVectorField:
[legend]
Collaboration diagram for turbulentDFSEMInletFvPatchVectorField:
[legend]

Public Member Functions

 TypeName ("turbulentDFSEMInlet")
 Runtime type information. More...
 
 turbulentDFSEMInletFvPatchVectorField (const fvPatch &, const DimensionedField< vector, volMesh > &)
 Construct from patch and internal field. More...
 
 turbulentDFSEMInletFvPatchVectorField (const fvPatch &, const DimensionedField< vector, volMesh > &, const dictionary &)
 Construct from patch, internal field and dictionary. More...
 
 turbulentDFSEMInletFvPatchVectorField (const turbulentDFSEMInletFvPatchVectorField &, const fvPatch &, const DimensionedField< vector, volMesh > &, const fvPatchFieldMapper &)
 
 turbulentDFSEMInletFvPatchVectorField (const turbulentDFSEMInletFvPatchVectorField &)
 Construct as copy. More...
 
virtual tmp< fvPatchVectorFieldclone () const
 Construct and return a clone. More...
 
 turbulentDFSEMInletFvPatchVectorField (const turbulentDFSEMInletFvPatchVectorField &, const DimensionedField< vector, volMesh > &)
 Construct as copy 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 ~turbulentDFSEMInletFvPatchVectorField ()=default
 Destructor. More...
 
virtual void autoMap (const fvPatchFieldMapper &m)
 Map (and resize as needed) from self given a mapping object. More...
 
virtual void rmap (const fvPatchVectorField &ptf, const labelList &addr)
 Reverse map the given fvPatchField onto this fvPatchField. More...
 
virtual void updateCoeffs ()
 Update the coefficients associated with the patch field. More...
 
virtual void write (Ostream &) const
 Write. More...
 

Static Public Member Functions

static bool checkStresses (const symmTensorField &Rf)
 Return true if input Reynold stresses are valid. More...
 

Detailed Description

The turbulentDFSEMInlet is a synthesised-eddy based velocity inlet boundary condition to generate synthetic turbulence-alike time-series from a given set of turbulence statistics for LES and hybrid RANS-LES computations.

Reference:

    Standard model (tag:PCR):
        Poletto, R., Craft, T., & Revell, A. (2013).
        A new divergence free synthetic eddy method for
        the reproduction of inlet flow conditions for LES.
        Flow, turbulence and combustion, 91(3), 519-539.
        DOI:10.1007/s10494-013-9488-2

    Expression for the average length scale (tag:SST):
        Shur, M., Strelets, M., Travin, A.,
        Probst, A., Probst, S., Schwamborn, D., ... & Revell, A. (2018).
        Improved embedded approaches.
        In: Mockett C., Haase W., Schwamborn D. (eds)
        Go4Hybrid: Grey area mitigation for hybrid RANS-LES methods.
        Notes on Numerical Fluid Mechanics and Multidisciplinary Design.
        p. 51-87. Springer, Cham.
        DOI:10.1007/978-3-319-52995-0_3
Usage
Example of the boundary condition specification:
<patchName>
{
    // Mandatory entries
    type            turbulentDFSEMInlet;
    delta           <scalar>;
    R               <PatchFunction1>;
    U               <PatchFunction1>;
    L               <PatchFunction1>;

        // e.g.
        // R        uniform (<Rxx> <Rxy> <Rxz> <Ryy> <Ryz> <Rzz>);
        // U        uniform (<Ux> <Uy> <Uz>);
        // L        uniform <L>;

    // Optional entries
    d               <scalar>;
    nCellPerEddy    <label>;
    kappa           <scalar>;
    Uref            <scalar>;
    Lref            <scalar>;
    scale           <scalar>;
    m               <scalar>;
    writeEddies     <bool>;

    // Inherited entries
    ...
}

where the entries mean:

Property Description Type Reqd Deflt
type Type name: turbulentDFSEMInlet word yes -
delta Characteristic length scale scalar yes -
R Reynolds-stress tensor field PatchFunction1<symmTensor> yes -
U Mean velocity field PatchFunction1<vector> yes -
L Integral-length scale field PatchFunction1<scalar> yes -
d Ratio of sum of eddy volumes to eddy box volume i.e. eddy density (fill fraction) scalar no 1.0
nCellPerEddy Minimum eddy length in units of number of cells label no 5
kappa von Karman constant scalar no 0.41
Uref Normalisation factor for Reynolds-stress tensor and mean velocity scalar no 1.0
Lref Normalisation factor for integral-length scale scalar no 1.0
scale Heuristic scaling factor being applied on the normalisation factor C1 scalar no 1.0
m The power of V defined in C1 scalar no 0.5
writeEddies Flag to write eddies as OBJ file bool no false

The inherited entries are elaborated in:

Note
  • The delta value typically represents the characteristic scale of flow or flow domain, e.g. a channel half height for plane channel flows.
  • nCellPerEddy and scale entries are heuristic entries which do not exist in the standard method, yet are necessary to reproduce the results published in the original journal paper.
  • In the original journal paper, C1 in Eq. 11 is not dimensionless. It is not clear whether this dimensionality issue was intentional. To alleviate this matter, users can alter the input entry m, which is the power of the eddy-box volume defined in the C1, to obtain a dimensionless C1 coefficient. The default value of m is 0.5, which is the value stated in the original journal paper, and m=1/3 leads to a dimensionless C1.
Source files

Definition at line 258 of file turbulentDFSEMInletFvPatchVectorField.H.

Constructor & Destructor Documentation

◆ turbulentDFSEMInletFvPatchVectorField() [1/5]

Construct from patch and internal field.

Definition at line 612 of file turbulentDFSEMInletFvPatchVectorField.C.

Referenced by turbulentDFSEMInletFvPatchVectorField::clone().

Here is the caller graph for this function:

◆ turbulentDFSEMInletFvPatchVectorField() [2/5]

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

Construct from patch, internal field and dictionary.

Definition at line 694 of file turbulentDFSEMInletFvPatchVectorField.C.

References Foam::expressions::patchExpr::debug, eddy::debug, R, and Foam::sqr().

Here is the call graph for this function:

◆ turbulentDFSEMInletFvPatchVectorField() [3/5]

Construct by mapping given turbulentDFSEMInletFvPatchVectorField onto a new patch

Definition at line 652 of file turbulentDFSEMInletFvPatchVectorField.C.

◆ turbulentDFSEMInletFvPatchVectorField() [4/5]

◆ turbulentDFSEMInletFvPatchVectorField() [5/5]

Construct as copy setting internal field reference.

Definition at line 781 of file turbulentDFSEMInletFvPatchVectorField.C.

◆ ~turbulentDFSEMInletFvPatchVectorField()

virtual ~turbulentDFSEMInletFvPatchVectorField ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeName()

TypeName ( "turbulentDFSEMInlet"  )

Runtime type information.

◆ clone() [1/2]

virtual tmp<fvPatchVectorField> clone ( ) const
inlinevirtual

Construct and return a clone.

Definition at line 429 of file turbulentDFSEMInletFvPatchVectorField.H.

References turbulentDFSEMInletFvPatchVectorField::turbulentDFSEMInletFvPatchVectorField().

Here is the call graph for this function:

◆ clone() [2/2]

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

Construct and return a clone setting internal field reference.

Definition at line 446 of file turbulentDFSEMInletFvPatchVectorField.H.

References turbulentDFSEMInletFvPatchVectorField::turbulentDFSEMInletFvPatchVectorField().

Here is the call graph for this function:

◆ checkStresses()

bool checkStresses ( const symmTensorField Rf)
static

Return true if input Reynold stresses are valid.

Definition at line 822 of file turbulentDFSEMInletFvPatchVectorField.C.

References Foam::expressions::patchExpr::debug, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::Pout, R, Foam::sqr(), and Foam::sqrt().

Here is the call graph for this function:

◆ autoMap()

void autoMap ( const fvPatchFieldMapper m)
virtual

Map (and resize as needed) from self given a mapping object.

Definition at line 890 of file turbulentDFSEMInletFvPatchVectorField.C.

References fvPatchField< Type >::autoMap().

Here is the call graph for this function:

◆ rmap()

void rmap ( const fvPatchVectorField ptf,
const labelList addr 
)
virtual

Reverse map the given fvPatchField onto this fvPatchField.

Definition at line 914 of file turbulentDFSEMInletFvPatchVectorField.C.

References fvPatchField< Type >::rmap().

Here is the call graph for this function:

◆ updateCoeffs()

void updateCoeffs ( )
virtual

Update the coefficients associated with the patch field.

Definition at line 941 of file turbulentDFSEMInletFvPatchVectorField.C.

References Foam::constant::universal::c, Foam::expressions::patchExpr::debug, Foam::endl(), forAll, Foam::gMax(), Foam::gMin(), Foam::gSum(), Foam::Info, n, UPstream::nProcs(), UPstream::parRun(), Foam::foamVersion::patch, Foam::pow(), Foam::returnReduce(), Foam::sqrt(), timeIndex, U, and UMean().

Here is the call graph for this function:

◆ write()

void write ( Ostream os) const
virtual

Write.

Definition at line 1057 of file turbulentDFSEMInletFvPatchVectorField.C.

References os(), fvPatchField< Type >::write(), Ostream::writeEntry(), and Ostream::writeEntryIfDifferent().

Here is the call graph for this function:

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