alphaContactAngleFvPatchScalarField Class Referenceabstract

Contact-angle boundary condition for multi-phase interface-capturing simulations. More...

Inheritance diagram for alphaContactAngleFvPatchScalarField:
Collaboration diagram for alphaContactAngleFvPatchScalarField:

Classes

class  contactAngleProperties
 

Public Types

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

Public Member Functions

 TypeName ("alphaContactAngle")
 Runtime type information. More...
 
 alphaContactAngleFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &)
 Construct from patch and internal field. More...
 
 alphaContactAngleFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &, const dictionary &)
 Construct from patch, internal field and dictionary. More...
 
 alphaContactAngleFvPatchScalarField (const alphaContactAngleFvPatchScalarField &, const fvPatch &, const DimensionedField< scalar, volMesh > &, const fvPatchFieldMapper &)
 Construct by mapping given alphaContactAngleFvPatchScalarField. More...
 
 alphaContactAngleFvPatchScalarField (const alphaContactAngleFvPatchScalarField &, const DimensionedField< scalar, volMesh > &)
 Construct as copy setting internal field reference. More...
 
virtual tmp< fvPatchScalarFieldclone (const DimensionedField< scalar, volMesh > &iF) const
 Construct and return a clone setting internal field reference. More...
 
const HashTable< contactAngleProperties > & thetaProps () const
 Return the contact angle properties. More...
 
virtual void write (Ostream &) const
 Write. More...
 
 TypeName ("alphaContactAngle")
 Runtime type information. More...
 
 alphaContactAngleFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &)
 Construct from patch and internal field. More...
 
 alphaContactAngleFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &, const dictionary &)
 Construct from patch, internal field and dictionary. More...
 
 alphaContactAngleFvPatchScalarField (const alphaContactAngleFvPatchScalarField &, const fvPatch &, const DimensionedField< scalar, volMesh > &, const fvPatchFieldMapper &)
 Construct by mapping given alphaContactAngleFvPatchScalarField. More...
 
 alphaContactAngleFvPatchScalarField (const alphaContactAngleFvPatchScalarField &)=delete
 Disallow copy without setting internal field reference. More...
 
 alphaContactAngleFvPatchScalarField (const alphaContactAngleFvPatchScalarField &, const DimensionedField< scalar, volMesh > &)
 Copy constructor 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 &) const
 Write. More...
 

Public Attributes

limitControls limit_
 

Static Public Attributes

static const NamedEnum< limitControls, 4 > limitControlNames_
 

Detailed Description

Contact-angle boundary condition for multi-phase interface-capturing simulations.

Abstract base class for alphaContactAngle boundary conditions.

Source files

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 49 of file alphaContactAngleFvPatchScalarField.H.

Member Enumeration Documentation

◆ limitControls

Alpha limit options.

Enumerator
lcNone 
lcGradient 
lcZeroGradient 
lcAlpha 

Definition at line 83 of file alphaContactAngleFvPatchScalarField.H.

Constructor & Destructor Documentation

◆ alphaContactAngleFvPatchScalarField() [1/9]

◆ alphaContactAngleFvPatchScalarField() [2/9]

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

Construct from patch, internal field and dictionary.

Definition at line 56 of file alphaContactAngleFvPatchScalarField.C.

References alphaContactAngleFvPatchScalarField::alphaContactAngleFvPatchScalarField(), dict, forAllConstIter, and dictionary::subDict().

Here is the call graph for this function:

◆ alphaContactAngleFvPatchScalarField() [3/9]

alphaContactAngleFvPatchScalarField ( const alphaContactAngleFvPatchScalarField gcpsf,
const fvPatch p,
const DimensionedField< scalar, volMesh > &  iF,
const fvPatchFieldMapper mapper 
)

Construct by mapping given alphaContactAngleFvPatchScalarField.

onto a new patch

Definition at line 43 of file alphaContactAngleFvPatchScalarField.C.

References alphaContactAngleFvPatchScalarField::alphaContactAngleFvPatchScalarField().

Here is the call graph for this function:

◆ alphaContactAngleFvPatchScalarField() [4/9]

Construct as copy setting internal field reference.

Definition at line 77 of file alphaContactAngleFvPatchScalarField.C.

References dictionary::found(), and dictionary::lookup().

Here is the call graph for this function:

◆ alphaContactAngleFvPatchScalarField() [5/9]

alphaContactAngleFvPatchScalarField ( const fvPatch ,
const DimensionedField< scalar, volMesh > &   
)

Construct from patch and internal field.

◆ alphaContactAngleFvPatchScalarField() [6/9]

alphaContactAngleFvPatchScalarField ( const fvPatch ,
const DimensionedField< scalar, volMesh > &  ,
const dictionary  
)

Construct from patch, internal field and dictionary.

◆ alphaContactAngleFvPatchScalarField() [7/9]

Construct by mapping given alphaContactAngleFvPatchScalarField.

onto a new patch

◆ alphaContactAngleFvPatchScalarField() [8/9]

Disallow copy without setting internal field reference.

◆ alphaContactAngleFvPatchScalarField() [9/9]

Copy constructor setting internal field reference.

Member Function Documentation

◆ TypeName() [1/2]

TypeName ( "alphaContactAngle"  )

Runtime type information.

Referenced by alphaContactAngleFvPatchScalarField::contactAngleProperties::thetaR().

Here is the caller graph for this function:

◆ clone()

virtual tmp<fvPatchScalarField> clone ( const DimensionedField< scalar, volMesh > &  iF) const
inlinevirtual

◆ thetaProps()

const HashTable<contactAngleProperties>& thetaProps ( ) const
inline

Return the contact angle properties.

Definition at line 215 of file alphaContactAngleFvPatchScalarField.H.

References alphaContactAngleFvPatchScalarField::contactAngleProperties::write().

Referenced by Foam::correctContactAngle(), alphaContactAngleFvPatchScalarField::contactAngleProperties::thetaR(), and alphaContactAngleFvPatchScalarField::write().

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

◆ write() [1/2]

◆ TypeName() [2/2]

TypeName ( "alphaContactAngle"  )

Runtime type information.

◆ theta()

◆ evaluate()

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

Evaluate the patch field.

Definition at line 123 of file alphaContactAngleFvPatchScalarField.C.

References Foam::evaluate(), Foam::max(), Foam::min(), Field< scalar >::operator=(), Foam::vtkWriteOps::write(), alphaContactAngleFvPatchScalarField::write(), and Foam::writeEntry().

Referenced by NamedEnum< compressibleField, 8 >::names().

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

◆ write() [2/2]

Member Data Documentation

◆ limitControlNames_

◆ limit_


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