Base-class for film contact angle force models. More...
#include <contactAngleForce.H>


Public Member Functions | |
| TypeName ("contactAngle") | |
| Runtime type information. | |
| contactAngleForce (const word &typeName, liquidFilmBase &film, const dictionary &dict) | |
| Construct from surface film model. | |
| virtual | ~contactAngleForce ()=default |
| Destructor. | |
| virtual tmp< faVectorMatrix > | correct (areaVectorField &U) |
| Correct. | |
| Public Member Functions inherited from force | |
| TypeName ("force") | |
| Runtime type information. | |
| declareRunTimeSelectionTable (autoPtr, force, dictionary,(liquidFilmBase &film, const dictionary &dict),(film, dict)) | |
| force (liquidFilmBase &film) | |
| Construct null. | |
| force (const word &modelType, liquidFilmBase &film, const dictionary &dict) | |
| Construct from type name, dictionary and surface film model. | |
| virtual | ~force () |
| Destructor. | |
| Public Member Functions inherited from filmSubModelBase | |
| filmSubModelBase (liquidFilmBase &film) | |
| Construct null. | |
| filmSubModelBase (liquidFilmBase &film, const dictionary &dict, const word &baseName, const word &modelType, const word &dictExt="Coeffs") | |
| Construct from film film without name. | |
| filmSubModelBase (const word &modelName, liquidFilmBase &film, const dictionary &dict, const word &baseName, const word &modelType) | |
| Construct from film film with name. | |
| virtual | ~filmSubModelBase () |
| Destructor. | |
| virtual bool | writeTime () const |
| Flag to indicate when to write a property. | |
| const liquidFilmBase & | film () const |
| Return const access to the film surface film model. | |
| liquidFilmBase & | film () |
| Return the reference to the film surface film model. | |
| template<class FilmType> | |
| const FilmType & | filmType () const |
| Public Member Functions inherited from subModelBase | |
| subModelBase (dictionary &properties) | |
| Construct null. | |
| subModelBase (dictionary &properties, const dictionary &dict, const word &baseName, const word &modelType, const word &dictExt="Coeffs") | |
| Construct from components without name. | |
| subModelBase (const word &modelName, dictionary &properties, const dictionary &dict, const word &baseName, const word &modelType) | |
| Construct from components with name. | |
| subModelBase (const subModelBase &smb) | |
| Construct as copy. | |
| virtual | ~subModelBase ()=default |
| Destructor. | |
| const word & | modelName () const |
| Return const access to the name of the sub-model. | |
| const dictionary & | dict () const |
| Return const access to the cloud dictionary. | |
| const word & | baseName () const |
| Return const access to the base name of the sub-model. | |
| const word & | modelType () const |
| Return const access to the sub-model type. | |
| const dictionary & | coeffDict () const |
| Return const access to the coefficients dictionary. | |
| const dictionary & | properties () const |
| Return const access to the properties dictionary. | |
| virtual bool | defaultCoeffs (const bool printMsg) const |
| Returns true if defaultCoeffs is true and outputs on printMsg. | |
| virtual bool | active () const |
| Return the model 'active' status - default active = true. | |
| virtual void | cacheFields (const bool store) |
| Cache dependent sub-model fields. | |
| virtual fileName | localPath () const |
| Output directory. | |
| template<class Type> | |
| Type | getBaseProperty (const word &entryName, const Type &defaultValue=Type(Zero)) const |
| Retrieve generic property from the base model. | |
| template<class Type> | |
| void | getBaseProperty (const word &entryName, Type &value) const |
| Retrieve generic property from the base model. | |
| template<class Type> | |
| void | setBaseProperty (const word &entryName, const Type &value) |
| Add generic property to the base model. | |
| bool | getModelDict (const word &entryName, dictionary &dict) const |
| Retrieve dictionary, return true if set. | |
| template<class Type> | |
| bool | getModelProperty (const word &entryName, Type &value) const |
| Retrieve generic property from the sub-model. | |
| template<class Type> | |
| Type | getModelProperty (const word &entryName, const Type &defaultValue=Type(Zero)) const |
| Retrieve generic property from the sub-model. | |
| template<class Type> | |
| void | setModelProperty (const word &entryName, const Type &value) |
| Add generic property to the sub-model. | |
| virtual void | write (Ostream &os) const |
| Write. | |
Protected Member Functions | |
| virtual tmp< areaScalarField > | theta () const =0 |
| Return the contact angle field. | |
| Protected Member Functions inherited from subModelBase | |
| bool | inLine () const |
| Flag to indicate whether data is/was read in-line. | |
Additional Inherited Members | |
| Static Public Member Functions inherited from force | |
| static autoPtr< force > | New (liquidFilmBase &film, const dictionary &dict, const word &modelType) |
| Return a reference to the selected force model. | |
| Public Attributes inherited from subModelBase | |
| bool | log |
| Flag to write log into Info. | |
| Protected Attributes inherited from filmSubModelBase | |
| liquidFilmBase & | filmModel_ |
| Reference to the film surface film model. | |
| Protected Attributes inherited from subModelBase | |
| const word | modelName_ |
| Name of the sub-model. | |
| dictionary & | properties_ |
| Reference to properties dictionary e.g. for restart. | |
| const dictionary | dict_ |
| Copy of dictionary used during construction. | |
| const word | baseName_ |
| Name of the sub-model base class. | |
| const word | modelType_ |
| Type of the sub-model. | |
| const dictionary | coeffDict_ |
| Coefficients dictionary. | |
Base-class for film contact angle force models.
The effect of the contact angle force can be ignored over a specified distance from patches.
The contact-angle force is implemented as follows:
![\[ \vec{f}_\theta =
\beta \frac{\sigma (1 - cos(\theta))}{\Delta_{cl}} \vec{n}_{cl}
\frac{1}{\rho_f|\vec{S}_f|}
- \vec{f}_{cl}
\]](form_862.png)
with if 
![\[ \vec{f}_{cl} = \nu_f \frac{\vec{U}_f}{h_{crit}}
\]](form_864.png)
where
![]() | = | Contact-angle force [N/m^2/rho] |
![]() | = | Empirical constant [-] |
![]() | = | Liquid-air interfacial surface tension [kg/s^2] |
![]() | = | Contact angle [rad] |
![]() | = | Inverse width in direction normal to contact line [1/m] |
![]() | = | Direction normal to contact line [-] |
![]() | = | Film density [kg/m^3] |
![]() | = | Face-area vector [m^2] |
![]() | = | Contact-line movement force [N/m^2/rho] |
![]() | = | Film kinematic viscosity [m^2/s] |
![]() | = | Film velocity [m/s] |
![]() | = | Critical film height [m] |
Reference:
Governing equations (tag:MHDX):
Meredith, K. V., Heather, A., De Vries, J., & Xin, Y. (2011).
A numerical model for partially-wetted flow of thin liquid films.
Computational Methods in Multiphase Flow VI, 70, 239.
Contact line movement (tag:NDPC):
Novák, M., Devaradja, R., Papper, J., & Černý, M. (2020).
Efficient CFD methods for assessment of water management.
In 20. Internationales Stuttgarter Symposium (pp. 151-170).
Springer Vieweg, Wiesbaden.
{
// Mandatory entries
Ccf <scalar>;
// Optional entries
hCrit <scalar>;
// Inherited entries
...
}
where the entries mean:
| Property | Description | Type | Reqd | Deflt |
|---|---|---|---|---|
Ccf | Empirical coefficient | scalar | yes | - |
hCrit | Critical film height [m] | scalar | no | GREAT |
The inherited entries are elaborated in:
Definition at line 188 of file contactAngleForce.H.
| contactAngleForce | ( | const word & | typeName, |
| liquidFilmBase & | film, | ||
| const dictionary & | dict ) |
Construct from surface film model.
Definition at line 40 of file contactAngleForce.C.
References subModelBase::coeffDict_, subModelBase::dict(), filmSubModelBase::film(), and Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName.

|
virtualdefault |
Destructor.
References U.
|
protectedpure virtual |
Return the contact angle field.
Implemented in dynamicContactAngleForce.
Referenced by correct().

| TypeName | ( | "contactAngle" | ) |
Runtime type information.
References subModelBase::dict(), filmSubModelBase::film(), and Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName.

|
virtual |
Correct.
Implements force.
Definition at line 55 of file contactAngleForce.C.
References alpha, liquidFilmBase::alpha(), Foam::cos(), Foam::degToRad(), edgeInterpolation::deltaCoeffs(), Foam::dimArea, Foam::dimDensity, Foam::dimForce, DimensionedField< Type, GeoMesh >::field(), filmSubModelBase::film(), forAll, Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName, Foam::fac::grad(), liquidFilmBase::h(), liquidFilmBase::mu(), mu, n, faMesh::neighbour(), tmp< T >::New(), IOobjectOption::NO_READ, IOobjectOption::NO_REGISTER, IOobjectOption::NO_WRITE, Foam::normalised(), faMesh::owner(), p, regionFaModel::regionMesh(), liquidFilmBase::rho(), rhof(), faMesh::S(), IOobject::scopedName(), liquidFilmBase::sigma(), sigma(), theta(), timeName, U, liquidFilmBase::Uf(), Uf, regIOobject::write(), filmSubModelBase::writeTime(), and Foam::Zero.
