Loading...
Searching...
No Matches
alphaContactAngleTwoPhaseFvPatchScalarField Class Referenceabstract

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

#include <alphaContactAngleTwoPhaseFvPatchScalarField.H>

Inheritance diagram for alphaContactAngleTwoPhaseFvPatchScalarField:
Collaboration diagram for alphaContactAngleTwoPhaseFvPatchScalarField:

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

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 74 of file alphaContactAngleTwoPhaseFvPatchScalarField.H.

Member Enumeration Documentation

◆ limitControls

Alpha limit options.

Enumerator
lcNone 
lcGradient 
lcZeroGradient 
lcAlpha 

Definition at line 85 of file alphaContactAngleTwoPhaseFvPatchScalarField.H.

Constructor & Destructor Documentation

◆ alphaContactAngleTwoPhaseFvPatchScalarField() [1/5]

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

Construct from patch and internal field.

Definition at line 43 of file alphaContactAngleTwoPhaseFvPatchScalarField.C.

References lcZeroGradient, limit_, and p.

Referenced by alphaContactAngleTwoPhaseFvPatchScalarField(), alphaContactAngleTwoPhaseFvPatchScalarField(), alphaContactAngleTwoPhaseFvPatchScalarField(), constantAlphaContactAngleFvPatchScalarField::constantAlphaContactAngleFvPatchScalarField(), constantAlphaContactAngleFvPatchScalarField::constantAlphaContactAngleFvPatchScalarField(), constantAlphaContactAngleFvPatchScalarField::constantAlphaContactAngleFvPatchScalarField(), constantAlphaContactAngleFvPatchScalarField::constantAlphaContactAngleFvPatchScalarField(), constantAlphaContactAngleFvPatchScalarField::constantAlphaContactAngleFvPatchScalarField(), dynamicAlphaContactAngleFvPatchScalarField::dynamicAlphaContactAngleFvPatchScalarField(), dynamicAlphaContactAngleFvPatchScalarField::dynamicAlphaContactAngleFvPatchScalarField(), dynamicAlphaContactAngleFvPatchScalarField::dynamicAlphaContactAngleFvPatchScalarField(), dynamicAlphaContactAngleFvPatchScalarField::dynamicAlphaContactAngleFvPatchScalarField(), dynamicAlphaContactAngleFvPatchScalarField::dynamicAlphaContactAngleFvPatchScalarField(), temperatureDependentAlphaContactAngleFvPatchScalarField::temperatureDependentAlphaContactAngleFvPatchScalarField(), temperatureDependentAlphaContactAngleFvPatchScalarField::temperatureDependentAlphaContactAngleFvPatchScalarField(), temperatureDependentAlphaContactAngleFvPatchScalarField::temperatureDependentAlphaContactAngleFvPatchScalarField(), temperatureDependentAlphaContactAngleFvPatchScalarField::temperatureDependentAlphaContactAngleFvPatchScalarField(), temperatureDependentAlphaContactAngleFvPatchScalarField::temperatureDependentAlphaContactAngleFvPatchScalarField(), timeVaryingAlphaContactAngleFvPatchScalarField::timeVaryingAlphaContactAngleFvPatchScalarField(), timeVaryingAlphaContactAngleFvPatchScalarField::timeVaryingAlphaContactAngleFvPatchScalarField(), timeVaryingAlphaContactAngleFvPatchScalarField::timeVaryingAlphaContactAngleFvPatchScalarField(), and timeVaryingAlphaContactAngleFvPatchScalarField::timeVaryingAlphaContactAngleFvPatchScalarField().

Here is the caller graph for this function:

◆ 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 55 of file alphaContactAngleTwoPhaseFvPatchScalarField.C.

References dict, limit_, limitControlNames_, p, and Foam::Zero.

◆ alphaContactAngleTwoPhaseFvPatchScalarField() [3/5]

alphaContactAngleTwoPhaseFvPatchScalarField ( const alphaContactAngleTwoPhaseFvPatchScalarField & acpsf,
const fvPatch & p,
const DimensionedField< scalar, volMesh > & iF,
const fvPatchFieldMapper & mapper )

Construct by mapping onto a new patch.

Definition at line 80 of file alphaContactAngleTwoPhaseFvPatchScalarField.C.

References alphaContactAngleTwoPhaseFvPatchScalarField(), limit_, and p.

Here is the call graph for this function:

◆ alphaContactAngleTwoPhaseFvPatchScalarField() [4/5]

alphaContactAngleTwoPhaseFvPatchScalarField ( const alphaContactAngleTwoPhaseFvPatchScalarField & acpsf)

Construct as copy.

Definition at line 94 of file alphaContactAngleTwoPhaseFvPatchScalarField.C.

References alphaContactAngleTwoPhaseFvPatchScalarField(), and limit_.

Here is the call graph for this function:

◆ alphaContactAngleTwoPhaseFvPatchScalarField() [5/5]

alphaContactAngleTwoPhaseFvPatchScalarField ( const alphaContactAngleTwoPhaseFvPatchScalarField & acpsf,
const DimensionedField< scalar, volMesh > & iF )

Construct as copy setting internal field reference.

Definition at line 105 of file alphaContactAngleTwoPhaseFvPatchScalarField.C.

References alphaContactAngleTwoPhaseFvPatchScalarField(), and limit_.

Here is the call graph for this function:

Member Function Documentation

◆ theta()

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

Return the contact angle.

Implemented in constantAlphaContactAngleFvPatchScalarField, dynamicAlphaContactAngleFvPatchScalarField, temperatureDependentAlphaContactAngleFvPatchScalarField, and timeVaryingAlphaContactAngleFvPatchScalarField.

References UPstream::buffered, and os().

Referenced by reconstructedDistanceFunction::updateContactAngle().

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

◆ evaluate()

◆ write()

Member Data Documentation

◆ limitControlNames_

◆ limit_


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