This boundary condition provides a waveVelocity condition. This sets the velocity to that specified by a superposition of wave models. The corresponding phase fraction and pressure conditions look this condition up and re-use the wave modelling. More...
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 &) | |
Construct as copy. More... | |
virtual tmp< fvPatchVectorField > | clone () const |
Construct and return a clone. More... | |
waveVelocityFvPatchVectorField (const waveVelocityFvPatchVectorField &, const DimensionedField< vector, volMesh > &) | |
Construct as copy setting internal field reference. More... | |
virtual tmp< fvPatchVectorField > | clone (const DimensionedField< vector, volMesh > &iF) const |
Construct and return a clone setting internal field reference. More... | |
const word & | pName () const |
Access the name of the pressure field. More... | |
const waveSuperposition & | waves () const |
Access the wave models. More... | |
const fvMeshSubset & | faceCellSubset () const |
Access the face-cell subset. More... | |
tmp< vectorField > | U () const |
Return the current modelled velocity field on the patch faces. More... | |
tmp< vectorField > | Un () 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... | |
This boundary condition provides a waveVelocity condition. This sets the velocity to that specified by a superposition of wave models. The corresponding phase fraction and pressure conditions look this condition up and re-use the wave modelling.
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.
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 |
origin | origin of the wave coordinate system | yes | |
direction | direction of the mean flow | yes | |
speed | speed of the mean flow | yes | |
waves | list of wave models to superimpose | yes | |
ramp | ramping function for the mean flow speed | no | None |
scale | scale factor along the mean flow direction | no | None |
crossScale | scale factor across the mean flow direction | no | None |
heightAboveWave | use with the height above the wave | no | false |
Example of the boundary condition specification:
<patchName> { type waveVelocity; origin (0 25 0); direction (1 0 0); speed 2; waves ( Airy { length 40; amplitude 0.5; phase 0; angle 0; } Airy { length 20; amplitude 0.25; phase 1.5708; angle 0; } ); ramp constant 1; scale table ((100 1) (200 0)); crossScale constant 1; }
Definition at line 187 of file waveVelocityFvPatchVectorField.H.
waveVelocityFvPatchVectorField | ( | const fvPatch & | p, |
const DimensionedField< vector, volMesh > & | iF | ||
) |
Construct from patch and internal field.
Definition at line 36 of file waveVelocityFvPatchVectorField.C.
References Foam::Zero.
Referenced by waveVelocityFvPatchVectorField::clone(), and waveVelocityFvPatchVectorField::waveVelocityFvPatchVectorField().
waveVelocityFvPatchVectorField | ( | const fvPatch & | p, |
const DimensionedField< vector, volMesh > & | iF, | ||
const dictionary & | dict | ||
) |
Construct from patch, internal field and dictionary.
Definition at line 56 of file waveVelocityFvPatchVectorField.C.
References dictionary::found(), fvPatch::size(), vectorField(), waveVelocityFvPatchVectorField::waveVelocityFvPatchVectorField(), and Foam::Zero.
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 86 of file waveVelocityFvPatchVectorField.C.
References waveVelocityFvPatchVectorField::waveVelocityFvPatchVectorField().
waveVelocityFvPatchVectorField | ( | const waveVelocityFvPatchVectorField & | ptf | ) |
Construct as copy.
Definition at line 104 of file waveVelocityFvPatchVectorField.C.
References waveVelocityFvPatchVectorField::waveVelocityFvPatchVectorField().
waveVelocityFvPatchVectorField | ( | const waveVelocityFvPatchVectorField & | ptf, |
const DimensionedField< vector, volMesh > & | iF | ||
) |
Construct as copy setting internal field reference.
Definition at line 119 of file waveVelocityFvPatchVectorField.C.
TypeName | ( | "waveVelocity" | ) |
Runtime type information.
|
inlinevirtual |
Construct and return a clone.
Definition at line 251 of file waveVelocityFvPatchVectorField.H.
References waveVelocityFvPatchVectorField::waveVelocityFvPatchVectorField().
|
inlinevirtual |
Construct and return a clone setting internal field reference.
Definition at line 268 of file waveVelocityFvPatchVectorField.H.
References waveVelocityFvPatchVectorField::waveVelocityFvPatchVectorField().
|
inline |
Access the name of the pressure field.
Definition at line 284 of file waveVelocityFvPatchVectorField.H.
Referenced by wavePressureFvPatchScalarField::updateCoeffs(), and waveAlphaFvPatchScalarField::updateCoeffs().
|
inline |
Access the wave models.
Definition at line 290 of file waveVelocityFvPatchVectorField.H.
References waveVelocityFvPatchVectorField::faceCellSubset(), waveVelocityFvPatchVectorField::U(), waveVelocityFvPatchVectorField::Un(), waveVelocityFvPatchVectorField::updateCoeffs(), and waveVelocityFvPatchVectorField::write().
Referenced by waveAlphaFvPatchScalarField::alpha(), waveAlphaFvPatchScalarField::alphan(), wavePressureFvPatchScalarField::p(), and wavePressureFvPatchScalarField::pn().
const Foam::fvMeshSubset & faceCellSubset | ( | ) | const |
Access the face-cell subset.
Definition at line 137 of file waveVelocityFvPatchVectorField.C.
References polyMesh::changing(), mesh, fvMesh::time(), timeIndex, and TimeState::timeIndex().
Referenced by waveAlphaFvPatchScalarField::alphan(), wavePressureFvPatchScalarField::pn(), waveVelocityFvPatchVectorField::Un(), and waveVelocityFvPatchVectorField::waves().
Foam::tmp< Foam::vectorField > U | ( | ) | const |
Return the current modelled velocity field on the patch faces.
Definition at line 162 of file waveVelocityFvPatchVectorField.C.
References waveSuperposition::height(), Foam::levelSetAverage(), waveSuperposition::UGas(), and waveSuperposition::ULiquid().
Referenced by wavePressureFvPatchScalarField::updateCoeffs(), waveAlphaFvPatchScalarField::updateCoeffs(), waveVelocityFvPatchVectorField::updateCoeffs(), and waveVelocityFvPatchVectorField::waves().
Foam::tmp< Foam::vectorField > Un | ( | ) | const |
Return the current modelled velocity field in the neighbour cell.
Definition at line 180 of file waveVelocityFvPatchVectorField.C.
References fvMesh::boundary(), primitiveMesh::cellCentres(), f(), waveVelocityFvPatchVectorField::faceCellSubset(), fvMeshSubset::faceMap(), Foam::findIndex(), forAll, waveSuperposition::height(), Foam::levelSetAverage(), fvMeshSubset::patchMap(), polyMesh::points(), tmp< T >::ref(), fvMeshSubset::subMesh(), Foam::subset(), waveSuperposition::UGas(), and waveSuperposition::ULiquid().
Referenced by waveVelocityFvPatchVectorField::updateCoeffs(), and waveVelocityFvPatchVectorField::waves().
|
virtual |
Update the coefficients associated with the patch field.
Definition at line 221 of file waveVelocityFvPatchVectorField.C.
References Foam::gSum(), SymmTensor< scalar >::I, Foam::pos0(), Foam::sqr(), waveVelocityFvPatchVectorField::U(), waveVelocityFvPatchVectorField::Un(), and waveVelocityFvPatchVectorField::write().
Referenced by waveVelocityFvPatchVectorField::waves().
|
virtual |
Write.
Definition at line 288 of file waveVelocityFvPatchVectorField.C.
References Foam::makePatchTypeField(), Foam::blockMeshTools::write(), and waveSuperposition::write().
Referenced by waveVelocityFvPatchVectorField::updateCoeffs(), and waveVelocityFvPatchVectorField::waves().