/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2021-2024 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see .
Class
Foam::filmSeparationModels::OwenRyleyModel
Description
Computes film-separation properties from round edges for full separation
(Owen & Ryley, 1983). The model assesses the film curvature based on the
mesh geometry and flow field, and then calculates a force balance of the
following form:
\f[
F_{net} = F_{inertial} + F_{body} + F_{surface}
\f]
with:
\f[
F_{inertial} = -\frac{4}{3} \frac{h \, \rho \, |\mathbf{u}|^2}{R_1}
\f]
\f[
F_{body} =
-\frac{\rho |\mathbf{g}| (R_1^2 - R_2^2) cos(\theta)}{2 \, R_1}
\f]
\f[
F_{surface} = \frac{\sigma}{R_2}
\f]
where:
\vartable
F_{net} | Magnitude of net force on the film
F_{inertial} | Magnitude of inertial forces on the film
F_{body} | Magnitude of body forces on the film
F_{surface} | Magnitude of surface forces on the film
h | Film thickness
\rho | Film density
\sigma | Film surface tension
\mathbf{u} | Film velocity
\mathbf{g} | Gravitational accelaration
\theta | Approximate angle between gravity vector and outflow direction
R_1 | Radius of curvature
R_2 | Sum of the radius of curvature and film thickness
\endvartable
The film is considered separated when \f$F_{net}<0\f$; otherwise, it
remains attached.
Reference:
\verbatim
Governing equations (tag:OR):
Owen, I., & Ryley, D. J. (1983).
The flow of thin liquid films around corners.
International journal of multiphase flow, 11(1), 51-62.
DOI:10.1016/0301-9322(85)90005-9
\endverbatim
Usage
Minimal example in boundary-condition files:
\verbatim
filmSeparationCoeffs
{
// Mandatory entries
model OwenRyley;
// Optional entries
fThreshold ;
definedPatchRadii ;
deltaByR1Min ;
minInvR1 ;
}
\endverbatim
where the entries mean:
\table
Property | Description | Type | Reqd | Deflt
model | Model name: OwenRyley | word | yes | -
fThreshold | Threshold force for separation | scalar | no | 1e-8
definedPatchRadii | Patch radius | scalar | no | 0
deltaByR1Min | Minimum gravity driven film thickness | scalar | no | 0
minInvR1 | Minimum inv R1 for separation | scalar | no | 5
\endtable
Note
- The assumptions underlying the derivation of the model indicate that
the model is better suited for round corners than for sharp corners.
SourceFiles
OwenRyleyModel.C
\*---------------------------------------------------------------------------*/
#ifndef Foam_filmSeparationModels_OwenRyleyModel_H
#define Foam_filmSeparationModels_OwenRyleyModel_H
#include "filmSeparationModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace filmSeparationModels
{
/*---------------------------------------------------------------------------*\
Class OwenRyleyModel Declaration
\*---------------------------------------------------------------------------*/
class OwenRyleyModel
:
public filmSeparationModel
{
// Private Data
//- Threshold force for separation
scalar fThreshold_;
//- Patch radius
scalar definedPatchRadii_;
//- Minimum gravity driven film thickness (non-dimensionalised h/R1)
scalar minHbyR1_;
//- Minimum inv R1 of film velocity for film separation
scalar minInvR1_;
//- Gradient of surface normals
areaTensorField gradNHat_;
// Private Member Functions
//- Calculate inverse of (local) radius of curvature of film velocity
tmp calcInvR1(const areaVectorField& U) const;
//- Calculate the cosine of the angle between gravity vector and
//- cell-out flow direction
tmp calcCosAngle
(
const edgeScalarField& phi,
const scalarField& invR1
) const;
//- Calculate the magnitude of net force on the film
tmp netForce() const;
public:
//- Runtime type information
TypeName("OwenRyley");
// Constructors
//- Construct from the base film model and dictionary
OwenRyleyModel
(
const regionModels::areaSurfaceFilmModels::liquidFilmBase& film,
const dictionary& dict
);
// Destructor
virtual ~OwenRyleyModel() = default;
// Member Functions
// Access
// Return access to minimum dimensionless gravity driven film thickness
scalar minHbyR1() const noexcept { return minHbyR1_; }
// Return access to minimum inv R1 for film separation
scalar minInvR1() const noexcept { return minInvR1_; }
// Evaluation
//- Calculate the mass ratio of film separation
virtual tmp separatedMassRatio() const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace filmSeparationModels
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //