waveVelocityFvPatchVectorField Class Reference

This boundary condition provides a waveVelocity condition. This sets the velocity to that specified by a superposition of wave models. All the wave modelling parameters are obtained from a centrally registered waveSuperposition class. More...

Inheritance diagram for waveVelocityFvPatchVectorField:
Collaboration diagram for waveVelocityFvPatchVectorField:

Public Member Functions

 TypeName ("waveVelocity")
 Runtime type information. More...
 
 waveVelocityFvPatchVectorField (const fvPatch &, const DimensionedField< vector, volMesh > &)
 Construct from patch and internal field. More...
 
 waveVelocityFvPatchVectorField (const fvPatch &, const DimensionedField< vector, volMesh > &, const dictionary &)
 Construct from patch, internal field and dictionary. More...
 
 waveVelocityFvPatchVectorField (const waveVelocityFvPatchVectorField &, const fvPatch &, const DimensionedField< vector, volMesh > &, const fvPatchFieldMapper &)
 Construct by mapping given mixedTypeFvPatchField onto a new patch. More...
 
 waveVelocityFvPatchVectorField (const waveVelocityFvPatchVectorField &)=delete
 Disallow copy without setting internal field reference. More...
 
 waveVelocityFvPatchVectorField (const waveVelocityFvPatchVectorField &, const DimensionedField< vector, volMesh > &)
 Copy constructor setting internal field reference. More...
 
virtual tmp< fvPatchVectorFieldclone (const DimensionedField< vector, volMesh > &iF) const
 Construct and return a clone setting internal field reference. More...
 
const wordpName () const
 Access the name of the pressure field. More...
 
const fvMeshSubsetfaceCellSubset () const
 Access the face-cell subset. More...
 
tmp< vectorFieldU () const
 Return the current modelled velocity field on the patch faces. More...
 
tmp< vectorFieldUn () const
 Return the current modelled velocity field in the neighbour cell. More...
 
virtual void updateCoeffs ()
 Update the coefficients associated with the patch field. More...
 
virtual void write (Ostream &) const
 Write. More...
 

Detailed Description

This boundary condition provides a waveVelocity condition. This sets the velocity to that specified by a superposition of wave models. All the wave modelling parameters are obtained from a centrally registered waveSuperposition class.

Flow reversal will occur in the event that the amplitude of the velocity oscillation is greater than the mean flow. This triggers special handling, the form of which depends on the inletOutlet flag and whether a wave pressure condition is being used.

If a wave pressure condition is not being used, and inletOutlet is false, then this is a standard fixed value condition, with the value supplied by the wave model. If flow reversal occurs this state may be unstable. The corresponding pressure condition should be fixedFluxPressure.

If a wave pressure condition is not being used, and inletOutlet is true or not specified then the proportion of the patch over which the flow is reversed functions in a manner similar to the flowRateOutletVelocity condition; i.e., the velocity is extrapolated and then scaled to match the required outlet flow rate. Numerically, this is still a fixedValue constraint on the normal velocity, just one which tends to avoid instability. Again, the corresponding pressure condition should be fixedFluxPressure.

If a wave pressure condition is being used, then the normal velocity condition becomes fixedGradient on outlet faces. This gradient is calculated numerically by evaluating the wave model on both the patch face and the adjacent cell. The pressure boundary in this case should be a wavePressure condition. This will do the opposite; it will fix the pressure value on outlet faces, and the gradient otherwise.

Usage
Property Description Req'd? Default
phi Name of the flux field no phi
p Name of the pressure field no p
inletOutlet does the condition behave like inletOutlet no true
ramp ramping function for the mean flow speed no None

Example of the boundary condition specification:

    <patchName>
    {
        type        waveVelocity;
        phi         phi;
        p           p;
        inletOutlet yes;
        ramp        constant 1;
    }
See also
Foam::waveSuperposition
Source files

Definition at line 129 of file waveVelocityFvPatchVectorField.H.

Constructor & Destructor Documentation

◆ waveVelocityFvPatchVectorField() [1/5]

Construct from patch and internal field.

Definition at line 36 of file waveVelocityFvPatchVectorField.C.

References Foam::Zero.

Referenced by waveVelocityFvPatchVectorField::clone(), and waveVelocityFvPatchVectorField::waveVelocityFvPatchVectorField().

Here is the caller graph for this function:

◆ waveVelocityFvPatchVectorField() [2/5]

waveVelocityFvPatchVectorField ( const fvPatch p,
const DimensionedField< vector, volMesh > &  iF,
const dictionary dict 
)

Construct from patch, internal field and dictionary.

Definition at line 55 of file waveVelocityFvPatchVectorField.C.

References dictionary::found(), fvPatch::size(), vectorField(), waveVelocityFvPatchVectorField::waveVelocityFvPatchVectorField(), and Foam::Zero.

Here is the call graph for this function:

◆ waveVelocityFvPatchVectorField() [3/5]

waveVelocityFvPatchVectorField ( const waveVelocityFvPatchVectorField ptf,
const fvPatch p,
const DimensionedField< vector, volMesh > &  iF,
const fvPatchFieldMapper mapper 
)

Construct by mapping given mixedTypeFvPatchField onto a new patch.

Definition at line 84 of file waveVelocityFvPatchVectorField.C.

References waveVelocityFvPatchVectorField::waveVelocityFvPatchVectorField().

Here is the call graph for this function:

◆ waveVelocityFvPatchVectorField() [4/5]

Disallow copy without setting internal field reference.

◆ waveVelocityFvPatchVectorField() [5/5]

Copy constructor setting internal field reference.

Definition at line 101 of file waveVelocityFvPatchVectorField.C.

Member Function Documentation

◆ TypeName()

TypeName ( "waveVelocity"  )

Runtime type information.

◆ clone()

virtual tmp<fvPatchVectorField> clone ( const DimensionedField< vector, volMesh > &  iF) const
inlinevirtual

Construct and return a clone setting internal field reference.

Definition at line 198 of file waveVelocityFvPatchVectorField.H.

References waveVelocityFvPatchVectorField::waveVelocityFvPatchVectorField().

Here is the call graph for this function:

◆ pName()

const word& pName ( ) const
inline

◆ faceCellSubset()

const Foam::fvMeshSubset & faceCellSubset ( ) const

Access the face-cell subset.

Definition at line 118 of file waveVelocityFvPatchVectorField.C.

References polyMesh::changing(), mesh, fvMesh::time(), timeIndex, and TimeState::timeIndex().

Referenced by waveAlphaFvPatchScalarField::alphan(), wavePressureFvPatchScalarField::pn(), waveVelocityFvPatchVectorField::pName(), and waveVelocityFvPatchVectorField::Un().

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

◆ U()

Foam::tmp< Foam::vectorField > U ( ) const

Return the current modelled velocity field on the patch faces.

Definition at line 143 of file waveVelocityFvPatchVectorField.C.

References waveSuperposition::height(), Foam::levelSetAverage(), waveSuperposition::New(), waveSuperposition::UGas(), and waveSuperposition::ULiquid().

Referenced by waveVelocityFvPatchVectorField::pName(), wavePressureFvPatchScalarField::updateCoeffs(), waveAlphaFvPatchScalarField::updateCoeffs(), and waveVelocityFvPatchVectorField::updateCoeffs().

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

◆ Un()

◆ updateCoeffs()

void updateCoeffs ( )
virtual

Update the coefficients associated with the patch field.

Definition at line 204 of file waveVelocityFvPatchVectorField.C.

References Foam::evaluate(), Foam::gSum(), SymmTensor< scalar >::I, Foam::pos0(), Foam::sqr(), waveVelocityFvPatchVectorField::U(), waveVelocityFvPatchVectorField::Un(), and waveVelocityFvPatchVectorField::write().

Referenced by waveVelocityFvPatchVectorField::pName().

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

◆ write()

void write ( Ostream os) const
virtual

Write.

Definition at line 271 of file waveVelocityFvPatchVectorField.C.

References Foam::makePatchTypeField(), and Foam::vtkWriteOps::write().

Referenced by waveVelocityFvPatchVectorField::pName(), and waveVelocityFvPatchVectorField::updateCoeffs().

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

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