Loading...
Searching...
No Matches
FriedrichModel Class Reference

Computes film-separation properties from sharp edges for full separation (Friedrich et al., 2008) and partial separation (Zhang et al., 2018). More...

#include <FriedrichModel.H>

Inheritance diagram for FriedrichModel:
Collaboration diagram for FriedrichModel:

Public Member Functions

 TypeName ("Friedrich")
 Runtime type information.
 FriedrichModel (const regionModels::areaSurfaceFilmModels::liquidFilmBase &film, const dictionary &dict)
 Construct from the base film model and dictionary.
virtual ~FriedrichModel ()=default
virtual tmp< scalarFieldseparatedMassRatio () const
 Calculate the mass ratio of film separation.
Public Member Functions inherited from filmSeparationModel
 TypeName ("filmSeparationModel")
 Runtime type information.
 declareRunTimeSelectionTable (autoPtr, filmSeparationModel, dictionary,(const regionModels::areaSurfaceFilmModels::liquidFilmBase &film, const dictionary &dict),(film, dict))
 filmSeparationModel (const filmSeparationModel &)=delete
 No copy construct.
void operator= (const filmSeparationModel &)=delete
 No copy assignment.
 filmSeparationModel (const regionModels::areaSurfaceFilmModels::liquidFilmBase &film, const dictionary &dict)
 Construct from the base film model and dictionary.
virtual ~filmSeparationModel ()=default
 Destructor.
const regionModels::areaSurfaceFilmModels::liquidFilmBasefilm () const
 Return const access to the film properties.
const faMeshmesh () const noexcept
 Return const access to the finite-area mesh.

Additional Inherited Members

Static Public Member Functions inherited from filmSeparationModel
static autoPtr< filmSeparationModelNew (const regionModels::areaSurfaceFilmModels::liquidFilmBase &film, const dictionary &dict)
 Return a reference to the selected filmSeparation model.

Detailed Description

Computes film-separation properties from sharp edges for full separation (Friedrich et al., 2008) and partial separation (Zhang et al., 2018).

The governing equations for full separation (Friedrich et al., 2008):

\‍[    F_{ratio} =
        \frac{\rho \, |\vec{u}|^2 \, h \, sin(\theta)}
        {\sigma (1 + sin(\theta)) + \rho \, \mathbf{g}\, h\,L_b cos(\theta)}
\‍]

with:

\‍[    L_b = 0.0388 h^{0.5} \mathrm{Re}^{0.6} \mathrm{We}^{-0.5}
\‍]

\‍[    \mathrm{Re} = \frac{h \, |\vec{u}| \, \rho}{\mu}
\‍]

\‍[    \mathrm{We} = \frac{h \, \rho_p (\vec{u}_p - \vec{u})^2}{2 \sigma}
\‍]

where:

$      F_{ratio}     $=Force ratio
$      h             $=Film thickness
$      \rho          $=Film density
$      \rho_p        $=Primary-phase (gas) density
$      \sigma        $=Film surface tension
$      \mu           $=Film dynamic viscosity
$      \mathbf{u}    $=Film velocity
$      \mathbf{g}    $=Gravitational acceleration
$      \theta        $=Sharp-corner angle
$      L_b           $=Characteristic breakup length

The onset of film separation is triggered and the film is assumed fully separated when $F_{ratio}>1$; otherwise, it remains attached.

The governing equations for partial separation (Zhang et al., 2018):

\‍[        m_{ratio} = C_0 + C_1 \, exp\left(-\frac{F_{ratio}}{C_2}\right)
\‍]

where:

$      m_{ratio}     $=Mass fraction of separated film mass
$      C_0           $=Empirical constant (0.882)
$      C_1           $=Empirical constant (-1.908)
$      C_2           $=Empirical constant (1.264)

With the above model modification, the film separation begins when $F_{ratio}>1$; however, only the portion with $m_{ratio}$ separates while the rest stays attached.

Reference:

    Governing equations for the full film-separation model (tag:FLW):
        Friedrich, M. A., Lan, H., Wegener, J. L.,
        Drallmeier, J. A., & Armaly, B. F. (2008).
        A separation criterion with experimental
        validation for shear-driven films in separated flows.
        J. Fluids Eng. May 2008, 130(5): 051301.
        DOI:10.1115/1.2907405

    Governing equations for the partial film-separation model (tag:ZJD):
        Zhang, Y., Jia, M., Duan, H., Wang, P.,
        Wang, J., Liu, H., & Xie, M. (2018).
        Numerical and experimental study of spray impingement and liquid
        film separation during the spray/wall interaction at expanding corners.
        International Journal of Multiphase Flow, 107, 67-81.
        DOI:10.1016/j.ijmultiphaseflow.2018.05.016
Usage
Minimal example in boundary-condition files:
filmSeparationCoeffs
{
    // Mandatory entries
    model               Friedrich;
    rhop                <scalar>;

    // Optional entries
    separationType      <word>;
}

where the entries mean:

Property Description Type Reqd Deflt
model Model name: Friedrich word yes -
rhop Primary-phase density scalar yes -
separationType Film separation type word no full

Options for the separationType entry:

      full          | Full film separation (Friedrich et al., 2008)
      partial       | Partial film separation (Zhang et al., 2018)
Source files

Definition at line 237 of file FriedrichModel.H.

Constructor & Destructor Documentation

◆ FriedrichModel()

FriedrichModel ( const regionModels::areaSurfaceFilmModels::liquidFilmBase & film,
const dictionary & dict )

Construct from the base film model and dictionary.

Definition at line 479 of file FriedrichModel.C.

References Foam::abort(), dict, Foam::FatalIOError, FatalIOErrorInFunction, filmSeparationModel::film(), filmSeparationModel::filmSeparationModel(), g, and Foam::mag().

Here is the call graph for this function:

◆ ~FriedrichModel()

virtual ~FriedrichModel ( )
virtualdefault

Member Function Documentation

◆ TypeName()

TypeName ( "Friedrich" )

Runtime type information.

References dict, and filmSeparationModel::film().

Here is the call graph for this function:

◆ separatedMassRatio()

tmp< scalarField > separatedMassRatio ( ) const
virtual

Calculate the mass ratio of film separation.

Implements filmSeparationModel.

Definition at line 521 of file FriedrichModel.C.

References tmp< T >::cref(), Foam::dimForce, Foam::exp(), forAll, filmSeparationModel::mesh(), tmp< T >::New(), GeometricField< Type, PatchField, GeoMesh >::primitiveFieldRef(), regIOobject::write(), and Foam::Zero.

Here is the call graph for this function:

The documentation for this class was generated from the following files:
  • src/regionFaModels/liquidFilm/subModels/kinematic/injectionModel/filmSeparation/filmSeparationModels/FriedrichModel/FriedrichModel.H
  • src/regionFaModels/liquidFilm/subModels/kinematic/injectionModel/filmSeparation/filmSeparationModels/FriedrichModel/FriedrichModel.C