CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   k-omegaSST with nutUTabulatedWallFunction for incompressible RAS - OF v2.3.0 (https://www.cfd-online.com/Forums/openfoam-solving/136348-k-omegasst-nututabulatedwallfunction-incompressible-ras-v2-3-0-a.html)

kovamaniac May 27, 2014 05:11

k-omegaSST with nutUTabulatedWallFunction for incompressible RAS - OF v2.3.0
 
Hi.
As there is little (tending to 0) reference for this and as I would like to use it for my simulations, I would like to ask for any advice for my problem:

I am trying to do the channel395 case using k-omega SST turbulende model with the nutUTabulatedWallFunction.

I followed the precedure mentioned HERE and created the the table required.

I edited the 0/nut file to impement the wall function according to the description:
Code:


dimensions [0 2 -1 0 0 0 0];
 
internalField uniform 0;
 
boundaryField
{
 
bottomWall
{
type nutTabulatedWallFunction;
uPlusTable uPlusWallFunctionData;
}
 
topWall
{
type nutTabulatedWallFunction;
uPlusTable uPlusWallFunctionData;
}
 
sides1_half0
{
type cyclic;
}
 
sides2_half0
{
type cyclic;
}
.
.
.

The first error I get is the following:

Code:


--> FOAM FATAL IO ERROR:
Essential entry 'value' missing
file: /home/user/OpenFOAM/user-2.3.0/run/channel395/0/nut.boundaryField.bottomWall from line 29 to line 31.
From function fvPatchField<Type>::fvPatchField(const fvPatch& p,const DimensionedField<Type, volMesh>& iF,const dictionary& dict,const bool valueRequired)
in file /home/sergio/rpmbuild/BUILD/OpenFOAM-2.3.0/src/finiteVolume/lnInclude/fvPatchField.C at line 148.
FOAM exiting

The above is very strange given the fact that description is clear. However, I move making this modification with a sample value 0 just to see if it going to run.
Code:


bottomWall
{
type nutTabulatedWallFunction;
uPlusTable uPlusWallFunctionData;
value uniform 0;
}

The error this time is the following:

Code:


--> FOAM FATAL ERROR:
Not implemented
From function Istream& ITstream::read(char*, std::streamsize)
in file db/IOstreams/Tstreams/ITstream.C at line 153.
FOAM aborting
#0 Foam::error::printStack(Foam::Ostream&) in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#1 Foam::error::abort() in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#2 Foam::ITstream::read(char*, long) in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#3 Foam::Istream& Foam::operator>><double>(Foam::Istream&, Foam::List<double>&) in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/bin/simpleFoam"
#4 Foam::uniformInterpolationTable<double>::uniformInterpolationTable(Foam::IOobject const&, bool) in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so"
#5 Foam::incompressible::nutUTabulatedWallFunctionFvPatchScalarField::nutUTabulatedWallFunctionFvPatchScalarField(Foam::fvPatch const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so"
#6 Foam::fvPatchField<double>::adddictionaryConstructorToTable<Foam::incompressible::nutUTabulatedWallFunctionFvPatchScalarField>::New(Foam::fvPatch const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so"
#7 Foam::fvPatchField<double>::New(Foam::fvPatch const&, Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/bin/simpleFoam"
#8 Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::readField(Foam::DimensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/bin/simpleFoam"
#9 Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::readFields(Foam::dictionary const&) in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/bin/simpleFoam"
#10 Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::readFields() in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/bin/simpleFoam"
#11 Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::GeometricField(Foam::IOobject const&, Foam::fvMesh const&) in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/bin/simpleFoam"
#12 Foam::incompressible::autoCreateNut(Foam::word const&, Foam::fvMesh const&) in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so"
#13 Foam::incompressible::RASModels::kOmegaSST::kOmegaSST(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&, Foam::word const&) in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so"
#14 Foam::incompressible::RASModel::adddictionaryConstructorToTable<Foam::incompressible::RASModels::kOmegaSST>::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so"
#15 Foam::incompressible::RASModel::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so"
#16
in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/bin/simpleFoam"
#17 __libc_start_main in "/lib64/libc.so.6"
#18
in "/opt/OpenFOAM-2.3.0/platforms/linux64GccDPOpt/bin/simpleFoam"
Aborted

Can anybody give me any idea?? Other wall functions work fine with my setup.

RodriguezFatz May 27, 2014 06:33

I can just comment the first error: You need an initial value for the very first iteration of the first time step. This is given by the "value ...". After that first iteration it is not used any longer. You should set it to any other value than zero, because OpenFoam may divide by nut at some location in the code and receive an error. So better set it to 1e-12 than to zero.

kovamaniac May 27, 2014 06:46

Thank you for your reply.

I attach you the description:
Code:


30 Description
31 This boundary condition provides a turbulent kinematic viscosity condition
32 when using wall functions. As input, the user specifies a look-up table
33 of U+ as a function of near-wall Reynolds number. The table should be
34 located in the $FOAM_CASE/constant directory.
35
36 \heading Patch usage
37
38 \table
39 Property | Description | Required | Default value
40 uPlusTable | U+ as a function of Re table name | yes |
41 \endtable
42
43 Example of the boundary condition specification:
44 \verbatim
45 myPatch
46 {
47 type nutTabulatedWallFunction;
48 uPlusTable myUPlusTable;
49 }
50 \endverbatim

Therefore, I suppose that looking at the table it doesn't need the initial value. In any case, even for the very little value, the result is the same.


All times are GMT -4. The time now is 20:27.