Class ODEWallModelFvPatchScalarField

Inheritance Relationships

Base Type

Derived Types

Class Documentation

class ODEWallModelFvPatchScalarField : public wallModelFvPatchScalarField

Base abstract class for ODE-based wall models.

All the models are based on the following equation

\[ \frac{\partial}{\partial y} \left[ (\nu + \nu_t)\frac{\partial U_i}{\partial y}\right] = F_i, \]

where i corresponds to the two wall-parallel coordinates. If the source term F is not dependent on y this can be integrated to give

\[ \tau_{w,i} = \left( U_i|_h - F_i \int^h_0 \frac{y}{\nu + \nu_t}dy \right) \bigg / \int^h_0 \frac{dy}{\nu + \nu_t} \]

The magnitude of the wall shear stress can then be expressed through the magnitude of the the wall-parallel component of velocity and the source term. Note that no ODE is actually being solved, only numerical integration.

All ODE wall models require an eddy viscosity model. All share the following parameters

  • maxIter, the amount of iterations in the coupling loop between the wall shear stress and the eddy viscosity values.

  • eps, the relative error tolerance for the convergence of the wall shear stress.

  • nMeshY, the amount of nodes in the 1D grid discretising the distance between 0 and h.

Contributors/Copyright: 2016-2019 Timofey Mukha 2017 Saleh Rezaeiravesh

Source files

Subclassed by EquilibriumODEWallModelFvPatchScalarField, PGradODEWallModelFvPatchScalarField

Public Functions

ODEWallModelFvPatchScalarField(const fvPatch&, const DimensionedField<scalar, volMesh>&)
ODEWallModelFvPatchScalarField(const fvPatch&, const DimensionedField<scalar, volMesh>&, const dictionary&)
ODEWallModelFvPatchScalarField(const ODEWallModelFvPatchScalarField&, const fvPatch&, const DimensionedField<scalar, volMesh>&, const fvPatchFieldMapper&)
ODEWallModelFvPatchScalarField(const ODEWallModelFvPatchScalarField&)
ODEWallModelFvPatchScalarField(const ODEWallModelFvPatchScalarField&, const DimensionedField<scalar, volMesh>&)
virtual void write(Ostream &os) const
virtual void updateCoeffs()
inline scalar eps() const
inline scalar maxIter() const
inline scalar nMeshY() const
inline SingleCellSampler &sampler()
inline const SingleCellSampler &sampler() const

Protected Functions

virtual void writeLocalEntries(Ostream&) const
virtual tmp<scalarField> calcNut() const
virtual tmp<scalarField> calcUTau(const scalarField &magGradU) const
void createMeshes()
scalar integrate(const scalarList &y, const scalarList &v) const
virtual void source(vectorField&) const = 0

Protected Attributes

autoPtr<EddyViscosity> eddyViscosity_
autoPtr<SingleCellSampler> sampler_
scalarListList meshes_
label maxIter_
scalar eps_
label nMeshY_