alphaContactAngleTwoPhaseFvPatchScalarField Class Referenceabstract

Abstract base class for two-phase alphaContactAngle boundary conditions. More...

Inheritance diagram for alphaContactAngleTwoPhaseFvPatchScalarField:
[legend]
Collaboration diagram for alphaContactAngleTwoPhaseFvPatchScalarField:
[legend]

Public Types

enum  limitControls { lcNone, lcGradient, lcZeroGradient, lcAlpha }
 Alpha limit options. More...
 

Public Member Functions

 alphaContactAngleTwoPhaseFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &)
 Construct from patch and internal field. More...
 
 alphaContactAngleTwoPhaseFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &, const dictionary &)
 Construct from patch, internal field and dictionary. More...
 
 alphaContactAngleTwoPhaseFvPatchScalarField (const alphaContactAngleTwoPhaseFvPatchScalarField &, const fvPatch &, const DimensionedField< scalar, volMesh > &, const fvPatchFieldMapper &)
 Construct by mapping onto a new patch. More...
 
 alphaContactAngleTwoPhaseFvPatchScalarField (const alphaContactAngleTwoPhaseFvPatchScalarField &)
 Construct as copy. More...
 
 alphaContactAngleTwoPhaseFvPatchScalarField (const alphaContactAngleTwoPhaseFvPatchScalarField &, const DimensionedField< scalar, volMesh > &)
 Construct as copy setting internal field reference. More...
 
virtual tmp< scalarFieldtheta (const fvPatchVectorField &Up, const fvsPatchVectorField &nHat) const =0
 Return the contact angle. More...
 
virtual void evaluate (const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
 Evaluate the patch field. More...
 
virtual void write (Ostream &os) const
 Write. More...
 

Public Attributes

limitControls limit_
 

Static Public Attributes

static const Enum< limitControlslimitControlNames_
 

Detailed Description

Abstract base class for two-phase alphaContactAngle boundary conditions.

Derived classes must implement the theta() function which returns the wall contact angle field.

The essential entry "limit" controls the gradient of alpha1 on the wall:

  • none - Calculate the gradient from the contact-angle without limiter
  • gradient - Limit the wall-gradient such that alpha1 remains bounded on the wall
  • alpha - Bound the calculated alpha1 on the wall
  • zeroGradient - Set the gradient of alpha1 to 0 on the wall, i.e. reproduce previous behaviour, the pressure BCs can be left as before.

Note that if any of the first three options are used the boundary condition on p_rgh must set to guarantee that the flux is corrected to be zero at the wall e.g.:

<patchName>
{
    type            alphaContactAngle;
    limit           none;
}
Source files

Definition at line 78 of file alphaContactAngleTwoPhaseFvPatchScalarField.H.

Member Enumeration Documentation

◆ limitControls

Alpha limit options.

Enumerator
lcNone 
lcGradient 
lcZeroGradient 
lcAlpha 

Definition at line 87 of file alphaContactAngleTwoPhaseFvPatchScalarField.H.

Constructor & Destructor Documentation

◆ alphaContactAngleTwoPhaseFvPatchScalarField() [1/5]

Construct from patch and internal field.

Definition at line 52 of file alphaContactAngleTwoPhaseFvPatchScalarField.C.

◆ alphaContactAngleTwoPhaseFvPatchScalarField() [2/5]

alphaContactAngleTwoPhaseFvPatchScalarField ( const fvPatch p,
const DimensionedField< scalar, volMesh > &  iF,
const dictionary dict 
)

Construct from patch, internal field and dictionary.

Definition at line 64 of file alphaContactAngleTwoPhaseFvPatchScalarField.C.

References dict, Foam::stringOps::evaluate(), and p.

Here is the call graph for this function:

◆ alphaContactAngleTwoPhaseFvPatchScalarField() [3/5]

Construct by mapping onto a new patch.

Definition at line 89 of file alphaContactAngleTwoPhaseFvPatchScalarField.C.

◆ alphaContactAngleTwoPhaseFvPatchScalarField() [4/5]

◆ alphaContactAngleTwoPhaseFvPatchScalarField() [5/5]

Construct as copy setting internal field reference.

Definition at line 114 of file alphaContactAngleTwoPhaseFvPatchScalarField.C.

Member Function Documentation

◆ theta()

virtual tmp<scalarField> theta ( const fvPatchVectorField Up,
const fvsPatchVectorField nHat 
) const
pure virtual

Return the contact angle.

Implemented in temperatureDependentAlphaContactAngleFvPatchScalarField, dynamicAlphaContactAngleFvPatchScalarField, constantAlphaContactAngleFvPatchScalarField, and timeVaryingAlphaContactAngleFvPatchScalarField.

Referenced by reconstructedDistanceFunction::updateContactAngle().

Here is the caller graph for this function:

◆ evaluate()

void evaluate ( const Pstream::commsTypes  commsType = Pstream::commsTypes::blocking)
virtual

Evaluate the patch field.

Definition at line 127 of file alphaContactAngleTwoPhaseFvPatchScalarField.C.

References Foam::stringOps::evaluate(), Foam::max(), Foam::min(), and Foam::foamVersion::patch.

Here is the call graph for this function:

◆ write()

void write ( Ostream os) const
virtual

Write.

Reimplemented in temperatureDependentAlphaContactAngleFvPatchScalarField, dynamicAlphaContactAngleFvPatchScalarField, constantAlphaContactAngleFvPatchScalarField, and timeVaryingAlphaContactAngleFvPatchScalarField.

Definition at line 158 of file alphaContactAngleTwoPhaseFvPatchScalarField.C.

References os(), and Foam::vtk::write().

Referenced by dynamicAlphaContactAngleFvPatchScalarField::write().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ limitControlNames_

◆ limit_


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