View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001930 | OpenFOAM | Bug | public | 2015-11-29 20:19 | 2015-11-29 21:29 |
Reporter | wyldckat | Assigned To | henry | ||
Priority | low | Severity | text | Reproducibility | N/A |
Status | resolved | Resolution | fixed | ||
Product Version | dev | ||||
Summary | 0001930: Default parameters in nutWallFunction are undocumented, update attached | ||||
Description | This week at work, my colleague Pedro Freitas and I did some investigating into the values for "kappa" and "E" that is used by default in "nutWallFunctionFvPatchScalarField.C", because we were using another pair of values of "kappa=0.41" and "E=8.432" for smooth wall analytical expressions, which many people defend are better values based on experimental data. After some archaeological investigation into the OpenFOAM-history repository, I found that the latest values were introduced in this commit: https://github.com/OpenCFD/OpenFOAM-history/commit/704b3304dc86c7955d6e791ee223254186788c9a - which has the commit comment: «selecting common kappa=0.41 and E=9.8 (ref. Verst+Malal)» Attached is the file "nutWallFunctionFvPatchScalarField.H" for OpenFOAM-dev (might be also usable in 3.0.x?) that has the updated description that includes this information: \heading Patch usage \table Property | Description | Required | Default value Cmu | Cmu coefficient | no | 0.09 kappa | Von Karman constant | no | 0.41 E | E coefficient | no | 9.8 \endtable Examples of the boundary condition specification: \verbatim myPatch { type nutWallFunction; value uniform 0.0; } Reference for the default model coefficients: \verbatim H. Versteeg, W. Malalasekera An Introduction to Computational Fluid Dynamics: The Finite Volume Method, subsection "3.5.2 k-epsilon model" \endverbatim | ||||
Additional Information | For complementing information on this topic, regarding what values should be used for kappa and E, lead us to the paper "Estimating the value of von Kármán’s constant in turbulent pipe flow", by S. C. C. Bailey, M. Vallikivi, M. Hultmark and A. J. Smits - doi:10.1017/jfm.2014.208 - http://fluids.princeton.edu/pubs/Bailey_et_al_2014.pdf There we can find out right on the introduction the large variety of kappa and E pairs that can be used in several situations. In addition, in Figure 5 is shown how much these values can vary depending on a series of flow scenarios, therefore... the pseudo-magical numbers used by OpenFOAM in "nutWallFunction" are the ones from the aforementioned book and that settles the issue :) | ||||
Tags | No tags attached. | ||||
|
nutWallFunctionFvPatchScalarField.H (5,437 bytes)
/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class Foam::nutWallFunctionFvPatchScalarField Group grpWallFunctions Description This boundary condition provides a turbulent kinematic viscosity condition when using wall functions, based on turbulence kinetic energy. - replicates OpenFOAM v1.5 (and earlier) behaviour \heading Patch usage \table Property | Description | Required | Default value Cmu | Cmu coefficient | no | 0.09 kappa | Von Karman constant | no | 0.41 E | E coefficient | no | 9.8 \endtable Examples of the boundary condition specification: \verbatim myPatch { type nutWallFunction; value uniform 0.0; } Reference for the default model coefficients: \verbatim H. Versteeg, W. Malalasekera An Introduction to Computational Fluid Dynamics: The Finite Volume Method, subsection "3.5.2 k-epsilon model" \endverbatim SeeAlso Foam::fixedValueFvPatchField SourceFiles nutWallFunctionFvPatchScalarField.C \*---------------------------------------------------------------------------*/ #ifndef nutWallFunctionFvPatchScalarField_H #define nutWallFunctionFvPatchScalarField_H #include "fixedValueFvPatchFields.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { /*---------------------------------------------------------------------------*\ Class nutWallFunctionFvPatchScalarField Declaration \*---------------------------------------------------------------------------*/ class nutWallFunctionFvPatchScalarField : public fixedValueFvPatchScalarField { protected: // Protected data //- Cmu coefficient scalar Cmu_; //- Von Karman constant scalar kappa_; //- E coefficient scalar E_; //- Y+ at the edge of the laminar sublayer scalar yPlusLam_; // Protected Member Functions //- Check the type of the patch virtual void checkType(); //- Calculate the turbulence viscosity virtual tmp<scalarField> calcNut() const = 0; //- Write local wall function variables virtual void writeLocalEntries(Ostream&) const; public: //- Runtime type information TypeName("nutWallFunction"); // Constructors //- Construct from patch and internal field nutWallFunctionFvPatchScalarField ( const fvPatch&, const DimensionedField<scalar, volMesh>& ); //- Construct from patch, internal field and dictionary nutWallFunctionFvPatchScalarField ( const fvPatch&, const DimensionedField<scalar, volMesh>&, const dictionary& ); //- Construct by mapping given // nutWallFunctionFvPatchScalarField // onto a new patch nutWallFunctionFvPatchScalarField ( const nutWallFunctionFvPatchScalarField&, const fvPatch&, const DimensionedField<scalar, volMesh>&, const fvPatchFieldMapper& ); //- Construct as copy nutWallFunctionFvPatchScalarField ( const nutWallFunctionFvPatchScalarField& ); //- Construct as copy setting internal field reference nutWallFunctionFvPatchScalarField ( const nutWallFunctionFvPatchScalarField&, const DimensionedField<scalar, volMesh>& ); // Member functions //- Calculate the Y+ at the edge of the laminar sublayer static scalar yPlusLam(const scalar kappa, const scalar E); //- Calculate and return the yPlus at the boundary virtual tmp<scalarField> yPlus() const = 0; // Evaluation functions //- Update the coefficients associated with the patch field virtual void updateCoeffs(); // I-O //- Write virtual void write(Ostream&) const; }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif // ************************************************************************* // |
|
Ooops... I lost a "\endverbatim" when adding the book reference :( |
|
nutWallFunctionFvPatchScalarField_v2.H (5,454 bytes)
/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class Foam::nutWallFunctionFvPatchScalarField Group grpWallFunctions Description This boundary condition provides a turbulent kinematic viscosity condition when using wall functions, based on turbulence kinetic energy. - replicates OpenFOAM v1.5 (and earlier) behaviour \heading Patch usage \table Property | Description | Required | Default value Cmu | Cmu coefficient | no | 0.09 kappa | Von Karman constant | no | 0.41 E | E coefficient | no | 9.8 \endtable Examples of the boundary condition specification: \verbatim myPatch { type nutWallFunction; value uniform 0.0; } \endverbatim Reference for the default model coefficients: \verbatim H. Versteeg, W. Malalasekera An Introduction to Computational Fluid Dynamics: The Finite Volume Method, subsection "3.5.2 k-epsilon model" \endverbatim SeeAlso Foam::fixedValueFvPatchField SourceFiles nutWallFunctionFvPatchScalarField.C \*---------------------------------------------------------------------------*/ #ifndef nutWallFunctionFvPatchScalarField_H #define nutWallFunctionFvPatchScalarField_H #include "fixedValueFvPatchFields.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { /*---------------------------------------------------------------------------*\ Class nutWallFunctionFvPatchScalarField Declaration \*---------------------------------------------------------------------------*/ class nutWallFunctionFvPatchScalarField : public fixedValueFvPatchScalarField { protected: // Protected data //- Cmu coefficient scalar Cmu_; //- Von Karman constant scalar kappa_; //- E coefficient scalar E_; //- Y+ at the edge of the laminar sublayer scalar yPlusLam_; // Protected Member Functions //- Check the type of the patch virtual void checkType(); //- Calculate the turbulence viscosity virtual tmp<scalarField> calcNut() const = 0; //- Write local wall function variables virtual void writeLocalEntries(Ostream&) const; public: //- Runtime type information TypeName("nutWallFunction"); // Constructors //- Construct from patch and internal field nutWallFunctionFvPatchScalarField ( const fvPatch&, const DimensionedField<scalar, volMesh>& ); //- Construct from patch, internal field and dictionary nutWallFunctionFvPatchScalarField ( const fvPatch&, const DimensionedField<scalar, volMesh>&, const dictionary& ); //- Construct by mapping given // nutWallFunctionFvPatchScalarField // onto a new patch nutWallFunctionFvPatchScalarField ( const nutWallFunctionFvPatchScalarField&, const fvPatch&, const DimensionedField<scalar, volMesh>&, const fvPatchFieldMapper& ); //- Construct as copy nutWallFunctionFvPatchScalarField ( const nutWallFunctionFvPatchScalarField& ); //- Construct as copy setting internal field reference nutWallFunctionFvPatchScalarField ( const nutWallFunctionFvPatchScalarField&, const DimensionedField<scalar, volMesh>& ); // Member functions //- Calculate the Y+ at the edge of the laminar sublayer static scalar yPlusLam(const scalar kappa, const scalar E); //- Calculate and return the yPlus at the boundary virtual tmp<scalarField> yPlus() const = 0; // Evaluation functions //- Update the coefficients associated with the patch field virtual void updateCoeffs(); // I-O //- Write virtual void write(Ostream&) const; }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif // ************************************************************************* // |
|
Attached the rectified file "nutWallFunctionFvPatchScalarField_v2.H", for replacing "src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H" |
|
Resolved in OpenFOAM-dev by commit 69f0a5e316ee9f222be974f4c459d09e77487c5a Resolved in OpenFOAM-3.0.x by commit 82270c6e4cbce65a3cb04d6043a367bd71811813 |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-11-29 20:19 | wyldckat | New Issue | |
2015-11-29 20:19 | wyldckat | Status | new => assigned |
2015-11-29 20:19 | wyldckat | Assigned To | => henry |
2015-11-29 20:19 | wyldckat | File Added: nutWallFunctionFvPatchScalarField.H | |
2015-11-29 20:22 | wyldckat | Note Added: 0005686 | |
2015-11-29 20:22 | wyldckat | File Added: nutWallFunctionFvPatchScalarField_v2.H | |
2015-11-29 20:23 | wyldckat | Note Added: 0005687 | |
2015-11-29 21:29 | henry | Note Added: 0005689 | |
2015-11-29 21:29 | henry | Status | assigned => resolved |
2015-11-29 21:29 | henry | Resolution | open => fixed |