Public Member Functions | Static Public Member Functions | List of all members
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:
Inheritance graph
[legend]
Collaboration diagram for turbulentDFSEMInletFvPatchVectorField:
Collaboration graph
[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 &)
 Construct by mapping given turbulentDFSEMInletFvPatchVectorField onto a new patch. More...
 
 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 void checkStresses (const symmTensorField &R)
 Check if input Reynolds stresses are valid. More...
 
static void checkStresses (const scalarField &R)
 Check if input Reynolds 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 254 of file turbulentDFSEMInletFvPatchVectorField.H.

Constructor & Destructor Documentation

◆ turbulentDFSEMInletFvPatchVectorField() [1/5]

Construct from patch and internal field.

Definition at line 551 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 633 of file turbulentDFSEMInletFvPatchVectorField.C.

References Foam::ensightOutput::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 591 of file turbulentDFSEMInletFvPatchVectorField.C.

◆ turbulentDFSEMInletFvPatchVectorField() [4/5]

Construct as copy.

Definition at line 681 of file turbulentDFSEMInletFvPatchVectorField.C.

◆ turbulentDFSEMInletFvPatchVectorField() [5/5]

Construct as copy setting internal field reference.

Definition at line 720 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 511 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 532 of file turbulentDFSEMInletFvPatchVectorField.H.

References turbulentDFSEMInletFvPatchVectorField::turbulentDFSEMInletFvPatchVectorField().

Here is the call graph for this function:

◆ checkStresses() [1/2]

void checkStresses ( const symmTensorField R)
static

Check if input Reynolds stresses are valid.

Realizability conditions (tag:S): Schumann, U. (1977). Realizability of Reynolds‐stress turbulence models. The Physics of Fluids, 20(5), 721-725. DOI:10.1063/1.861942

Definition at line 761 of file turbulentDFSEMInletFvPatchVectorField.C.

References Foam::det(), Foam::diff(), Foam::endl(), forAll, Foam::Info, R, Foam::sqr(), WarningInFunction, SymmTensor< Cmpt >::xx(), SymmTensor< Cmpt >::xy(), and SymmTensor< Cmpt >::yy().

Here is the call graph for this function:

◆ checkStresses() [2/2]

void checkStresses ( const scalarField R)
static

Check if input Reynolds stresses are valid.

Definition at line 819 of file turbulentDFSEMInletFvPatchVectorField.C.

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

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 834 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 858 of file turbulentDFSEMInletFvPatchVectorField.C.

References fvPatchField< Type >::rmap().

Here is the call graph for this function:

◆ updateCoeffs()

void updateCoeffs ( )
virtual

◆ write()

void write ( Ostream os) const
virtual

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