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...

Inheritance diagram for FriedrichModel:
Collaboration diagram for FriedrichModel:

Public Member Functions

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

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. More...
 

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()

Construct from the base film model and dictionary.

Definition at line 480 of file FriedrichModel.C.

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

Here is the call graph for this function:

◆ ~FriedrichModel()

virtual ~FriedrichModel ( )
virtualdefault

Member Function Documentation

◆ TypeName()

TypeName ( "Friedrich"  )

Runtime type information.

◆ 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::ensightOutput::debug, 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: