CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

kappatJayatillekeWallFunctionFvPatchScalarField changes between OpenFOAM 171 and 201

Register Blogs Community New Posts Updated Threads Search

Like Tree1Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   October 13, 2011, 17:34
Default kappatJayatillekeWallFunctionFvPatchScalarField changes between OpenFOAM 171 and 201
  #1
Senior Member
 
Dr. Alexander Vakhrushev
Join Date: Mar 2009
Posts: 256
Blog Entries: 1
Rep Power: 19
makaveli_lcf is on a distinguished road
Send a message via ICQ to makaveli_lcf
Hi everyone!

I discovered following while simulating buoyant flow with 1.7.0 and 1.7.1 versions (Ubuntu 10.04 LTS packages from apt):

1. Comparable to 1.7.0 in version 1.7.1 kappat field is introduced in TEqn for incompressible SIMPLE and PIMPLE solvers.

v1.7.0:
Code:
{
    volScalarField kappaEff
    (
        "kappaEff",
        turbulence->nu()/Pr + turbulence->nut()/Prt
    );

    fvScalarMatrix TEqn
    (
        fvm::ddt(T)
      + fvm::div(phi, T)
      - fvm::laplacian(kappaEff, T)
    );

    TEqn.relax();
    TEqn.solve(mesh.solver(T.select(finalIter)));

    rhok = 1.0 - beta*(T - TRef);
}
v1.7.1:
Code:
{
    kappat = turbulence->nut()/Prt;
    kappat.correctBoundaryConditions();

      volScalarField kappaEff("kappaEff", turbulence->nu()/Pr + kappat);

    fvScalarMatrix TEqn
    (
        fvm::ddt(T)
      + fvm::div(phi, T)
      - fvm::laplacian(kappaEff, T)
    );

    TEqn.relax();
    TEqn.solve(mesh.solver(T.select(finalIter)));

    rhok = 1.0 - beta*(T - TRef);
}
2. For kappat field Jayatille wall function is introduced, but it has a bug in kappat calculation which is fixed in v2.0.1:

diff for kappatJayatillekeWallFunctionFvPatchScalarField.C between 1.7.1 and 2.0.1 results in

Code:
210c210
<     const scalarField& nuw = rasModel.nu().boundaryField()[patchI];
---
>     const scalarField& nuw = rasModel.nu()().boundaryField()[patchI];
238c238
<             scalar kt = nu*(yPlus/(Prt_/kappa_*log(E_*yPlusTherm) + P) - 1/Pr);
---
>             scalar kt = nu*(yPlus/(Prt_*(log(E_*yPlus)/kappa_ + P)) - 1/Pr);
264c264,268
< makePatchTypeField(fvPatchScalarField, kappatJayatillekeWallFunctionFvPatchScalarField);
---
> makePatchTypeField
> (
>     fvPatchScalarField,
>     kappatJayatillekeWallFunctionFvPatchScalarField
> );
I noticed this issue because got a floating point operation error actually coming from
log(E_*yPlusTherm) where yPlusTherm can be equal zero.

You cal also notice that parenthesis around (log(E_*yPlus)/kappa_ + P)) result in different expression
than
Prt_/kappa_*log(E_*yPlusTherm) + P.

Hope it would be helpful for someone))))

Cheers,
A.
__________________
Best regards,

Dr. Alexander VAKHRUSHEV

Christian Doppler Laboratory for "Metallurgical Applications of Magnetohydrodynamics"

Simulation and Modelling of Metallurgical Processes
Department of Metallurgy
University of Leoben

http://smmp.unileoben.ac.at

Last edited by makaveli_lcf; October 13, 2011 at 17:46. Reason: Parenthesis aroun expression.
makaveli_lcf is offline   Reply With Quote

Old   October 17, 2011, 12:52
Default
  #2
New Member
 
Howard NJOKU
Join Date: Nov 2010
Location: Nsukka, Nigeria
Posts: 9
Rep Power: 15
Oke'e is on a distinguished road
Please can you help me with an explanation of what rhok is?
Oke'e is offline   Reply With Quote

Old   October 17, 2011, 13:34
Default
  #3
Senior Member
 
Dr. Alexander Vakhrushev
Join Date: Mar 2009
Posts: 256
Blog Entries: 1
Rep Power: 19
makaveli_lcf is on a distinguished road
Send a message via ICQ to makaveli_lcf
http://en.wikipedia.org/wiki/Boussin...%28buoyancy%29
__________________
Best regards,

Dr. Alexander VAKHRUSHEV

Christian Doppler Laboratory for "Metallurgical Applications of Magnetohydrodynamics"

Simulation and Modelling of Metallurgical Processes
Department of Metallurgy
University of Leoben

http://smmp.unileoben.ac.at
makaveli_lcf is offline   Reply With Quote

Old   October 19, 2011, 11:06
Default
  #4
New Member
 
Howard NJOKU
Join Date: Nov 2010
Location: Nsukka, Nigeria
Posts: 9
Rep Power: 15
Oke'e is on a distinguished road
Thanks for the prompt response. I know about the boussinesque approximation. My question is because of a case I'm setting up in OpenFOAM. I am simulating stratification in a cylindrical tank. I have modified the 'hotroom' example under the bouyantBoussinesqPimpleFoam solver and changed the entries in the 'transportProperties' file to those of water. When the run the case with the original entries (which I suspect to be for air), I get realistic results - the stratification is obvious. But when I change the properties - Pr, beta, nu, to those of water the results when viewed show no signs of stratification. Could you be of help please?
Oke'e is offline   Reply With Quote

Old   October 19, 2011, 16:13
Default
  #5
Senior Member
 
Dr. Alexander Vakhrushev
Join Date: Mar 2009
Posts: 256
Blog Entries: 1
Rep Power: 19
makaveli_lcf is on a distinguished road
Send a message via ICQ to makaveli_lcf
Hello Howard!

It is always better when you ask detailed questions. Because for the obvious ones you can find answers yourself and it is more useful for you to learn finding answers.

Would you please post you pictures which do not satisfy you and also the parameters which you used?

Cheers,
A.
__________________
Best regards,

Dr. Alexander VAKHRUSHEV

Christian Doppler Laboratory for "Metallurgical Applications of Magnetohydrodynamics"

Simulation and Modelling of Metallurgical Processes
Department of Metallurgy
University of Leoben

http://smmp.unileoben.ac.at
makaveli_lcf is offline   Reply With Quote

Old   October 19, 2011, 16:41
Default
  #6
Senior Member
 
Dr. Alexander Vakhrushev
Join Date: Mar 2009
Posts: 256
Blog Entries: 1
Rep Power: 19
makaveli_lcf is on a distinguished road
Send a message via ICQ to makaveli_lcf
Do you mean simulating compressible flow? Of couse for water (almost incompressible liquid) there is no such stratification as for e.g. air.
__________________
Best regards,

Dr. Alexander VAKHRUSHEV

Christian Doppler Laboratory for "Metallurgical Applications of Magnetohydrodynamics"

Simulation and Modelling of Metallurgical Processes
Department of Metallurgy
University of Leoben

http://smmp.unileoben.ac.at
makaveli_lcf is offline   Reply With Quote

Old   October 24, 2011, 17:58
Default
  #7
New Member
 
Howard NJOKU
Join Date: Nov 2010
Location: Nsukka, Nigeria
Posts: 9
Rep Power: 15
Oke'e is on a distinguished road
Hello Dr. Alexander,

Please pardon the delay in my response. I travelled out of town without my laptop and was without access to computer facilities.

The changes I made in the transportProperties file were

nu : changed from 1e-05 to 4.5e-07 (m2sec-1)
beta: changed from 3e-03 to 5e-04 (K-1)
Pr: changed from 0.9 to 3.0
Prt: changed from 0.7 to 2.3.
Tref was left unchanged.

The RASModel keyword in the RASProperities file was changed to laminar.

In the 0/p file the wall pressures were set with the $internalField entry, while the p_rgh value was set to constant 0 in the 0/p_rgh file.

You'll see from the attached picture that there is no evidence of stratification. Stratification is obtainable in incompressible flows (the 'buoyantBoussinesqPimpleFoam' solver is for "Transient solver for buoyant, turbulent flow of incompressible fluids" according to the user guide.) This is the basis for stratified hot water storages which is what I'm trying to study.

Howard
Attached Images
File Type: jpg at1500secs.jpg (12.1 KB, 42 views)
Oke'e is offline   Reply With Quote

Old   January 14, 2012, 11:27
Default kappatw instead of kappat?
  #8
New Member
 
chirag patel
Join Date: Feb 2011
Posts: 1
Rep Power: 0
chiragomshanti is on a distinguished road
Dear Dr.Alexander,
In the file "kappatJayatillekeWallFunctionFvPatchScalarField.C" kappatw shouldn't be kappat? I searched much, but didn't find any use of kappatw.
With Regards,
Chirag Patel
chiragomshanti is offline   Reply With Quote

Old   January 31, 2012, 15:48
Default
  #9
Senior Member
 
Aram Amouzandeh
Join Date: Mar 2009
Location: Vienna, Vienna, Austria
Posts: 190
Rep Power: 17
mabinty is on a distinguished road
dear all,

i wonder why the JayatillekeWallFunction is not available for the the calculation of alphat in the compressible RANS version. for now, in the compressible version alphat is evaluated as mut/Prt at the wall. i m thinking of implementing the procedure of the JayatillekeWallFunction for compressible RANS in alphatWallFunctions.

does it make sens or is
alphatw = mutw/Prt resonable anyway??

@
Chirag Patel

kappatw is taken from the expression

Code:
scalarField& kappatw = *this;
thanks in advance for your input!

cheers,
aram
mabinty is offline   Reply With Quote

Old   February 1, 2012, 04:25
Default
  #10
Senior Member
 
Aram Amouzandeh
Join Date: Mar 2009
Location: Vienna, Vienna, Austria
Posts: 190
Rep Power: 17
mabinty is on a distinguished road
hi,

I though about something like this:

Code:
// Populate boundary values
scalarField& alphatw = *this;

forAll(alphatw, faceI)
{
       [ ... ]

        if (yPlus > yPlusTherm)
        {
            scalar mu = muw[faceI];
            scalar at = mu*(yPlus/(Prt_*(log(E_*yPlus))/kappa_ + P) - 1/Pr);
            alphatw[faceI] = max(0.0, at);
        }
        else
        {
            alphatw[faceI] = 0.0;
        }
in turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C (OF 1.7.1)

cheers,
Aram
mabinty is offline   Reply With Quote

Old   February 1, 2012, 05:53
Default
  #11
Senior Member
 
Dr. Alexander Vakhrushev
Join Date: Mar 2009
Posts: 256
Blog Entries: 1
Rep Power: 19
makaveli_lcf is on a distinguished road
Send a message via ICQ to makaveli_lcf
hi Aram!

you are right) But I found an implementation in version OF 2.10:

see http://foam.sourceforge.net/docs/cpp...ce.html#l00195

Code:
00195 void alphatJayatillekeWallFunctionFvPatchScalarField::updateCoeffs()
00196 {
00197     if (updated())
00198     {
00199         return;
00200     }
00201 
00202     const label patchI = patch().index();
00203 
00204     const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
00205 
00206     const scalar Cmu25 = pow025(Cmu_);
00207 
00208     const scalarField& y = rasModel.y()[patchI];
00209 
00210     const scalarField& muw = rasModel.mu().boundaryField()[patchI];
00211 
00212     const scalarField& alphaw = rasModel.alpha().boundaryField()[patchI];
00213     scalarField& alphatw = *this;
00214 
00215     const tmp<volScalarField> tk = rasModel.k();
00216     const volScalarField& k = tk();
00217 
00218     const fvPatchVectorField& Uw = rasModel.U().boundaryField()[patchI];
00219     const scalarField magUp(mag(Uw.patchInternalField() - Uw));
00220     const scalarField magGradUw(mag(Uw.snGrad()));
00221 
00222     const scalarField& rhow = rasModel.rho().boundaryField()[patchI];
00223     const fvPatchScalarField& hw =
00224         rasModel.thermo().h().boundaryField()[patchI];
00225 
00226     // Heat flux [W/m2] - lagging alphatw
00227     const scalarField qDot((alphaw + alphatw)*hw.snGrad());
00228 
00229     // Populate boundary values
00230     forAll(alphatw, faceI)
00231     {
00232         label faceCellI = patch().faceCells()[faceI];
00233 
00234         scalar uTau = Cmu25*sqrt(k[faceCellI]);
00235 
00236         scalar yPlus = uTau*y[faceI]/(muw[faceI]/rhow[faceI]);
00237 
00238         // Molecular Prandtl number
00239         scalar Pr = muw[faceI]/alphaw[faceI];
00240 
00241         // Molecular-to-turbulent Prandtl number ratio
00242         scalar Prat = Pr/Prt_;
00243 
00244         // Thermal sublayer thickness
00245         scalar P = Psmooth(Prat);
00246         scalar yPlusTherm = this->yPlusTherm(P, Prat);
00247 
00248         // Evaluate new effective thermal diffusivity
00249         scalar alphaEff = 0.0;
00250         if (yPlus < yPlusTherm)
00251         {
00252             scalar A = qDot[faceI]*rhow[faceI]*uTau*y[faceI];
00253             scalar B = qDot[faceI]*Pr*yPlus;
00254             scalar C = Pr*0.5*rhow[faceI]*uTau*sqr(magUp[faceI]);
00255             alphaEff = A/(B + C + VSMALL);
00256         }
00257         else
00258         {
00259             scalar A = qDot[faceI]*rhow[faceI]*uTau*y[faceI];
00260             scalar B = qDot[faceI]*Prt_*(1.0/kappa_*log(E_*yPlus) + P);
00261             scalar magUc = uTau/kappa_*log(E_*yPlusTherm) - mag(Uw[faceI]);
00262             scalar C =
00263                 0.5*rhow[faceI]*uTau
00264                *(Prt_*sqr(magUp[faceI]) + (Pr - Prt_)*sqr(magUc));
00265             alphaEff = A/(B + C + VSMALL);
00266         }
00267 
00268         // Update turbulent thermal diffusivity
00269         alphatw[faceI] = max(0.0, alphaEff - alphaw[faceI]);
00270 
00271         if (debug)
00272         {
00273             Info<< "    uTau           = " << uTau << nl
00274                 << "    Pr             = " << Pr << nl
00275                 << "    Prt            = " << Prt_ << nl
00276                 << "    qDot           = " << qDot[faceI] << nl
00277                 << "    yPlus          = " << yPlus << nl
00278                 << "    yPlusTherm     = " << yPlusTherm << nl
00279                 << "    alphaEff       = " << alphaEff << nl
00280                 << "    alphaw         = " << alphaw[faceI] << nl
00281                 << "    alphatw        = " << alphatw[faceI] << nl
00282                 << endl;
00283         }
00284     }
00285 
00286     fixedValueFvPatchField<scalar>::updateCoeffs();
00287 }
00288
I didn't go into details, but I think you can use it. It would be nice if you comment on what is the differece between what you suggest (I also would write similar code).

Cheers,
Alex
__________________
Best regards,

Dr. Alexander VAKHRUSHEV

Christian Doppler Laboratory for "Metallurgical Applications of Magnetohydrodynamics"

Simulation and Modelling of Metallurgical Processes
Department of Metallurgy
University of Leoben

http://smmp.unileoben.ac.at

Last edited by makaveli_lcf; February 1, 2012 at 06:00. Reason: Doxygen link fix
makaveli_lcf is offline   Reply With Quote

Old   February 1, 2012, 09:26
Default
  #12
Senior Member
 
Aram Amouzandeh
Join Date: Mar 2009
Location: Vienna, Vienna, Austria
Posts: 190
Rep Power: 17
mabinty is on a distinguished road
hi Alex,

thanks for the hint (still using OF 1.7). I had a look on the implementation of OF 2.1. Three main differences in the why how i proposed it:

1) alphat isnt set to zero for yPlus < yPlusLam, but I couldn t find a reference so far were the equation comes from
2) The BC calculates alphaEff and updates alphat by subtracting alpha (laminar)
3) For yPlus > yPlusLam the calculation of alphaEff differs from the version I proposed by an additional term in the denominator which contains velocities (which I couldn t find out yet where it comes from):

Code:
alphaEff = mu*(yPlus/(Pr_t*log(E *yPlus)/kappa_ + 0.5*rhow*uTau*(Pr_t*sqr(mag(Up)) + (Pr_t - Pr)*sqr(mag(Uc)))))
For yPlus < yPlusLam a similar term can be found. I was searching for a reference on that but couldn t find one so far. Any comments on that are appreciated!! I think I will give it a try in OF 1.7 anyway.

cheers,
Aram
mabinty is offline   Reply With Quote

Old   February 1, 2012, 09:34
Default
  #13
Senior Member
 
Dr. Alexander Vakhrushev
Join Date: Mar 2009
Posts: 256
Blog Entries: 1
Rep Power: 19
makaveli_lcf is on a distinguished road
Send a message via ICQ to makaveli_lcf
Hi,

those additional terms are for compressible flow, thus there are none of them in incompressible BC version. Check for the full version:

http://my.fit.edu/itresources/manual...pdf/flu_th.pdf, (page 124)

Sorry for the wrong link to the Theory Guide)

Cheers!
fumiya likes this.
__________________
Best regards,

Dr. Alexander VAKHRUSHEV

Christian Doppler Laboratory for "Metallurgical Applications of Magnetohydrodynamics"

Simulation and Modelling of Metallurgical Processes
Department of Metallurgy
University of Leoben

http://smmp.unileoben.ac.at

Last edited by makaveli_lcf; February 1, 2012 at 11:36. Reason: Theory Guide link
makaveli_lcf is offline   Reply With Quote

Old   February 1, 2012, 11:44
Default
  #14
Senior Member
 
Aram Amouzandeh
Join Date: Mar 2009
Location: Vienna, Vienna, Austria
Posts: 190
Rep Power: 17
mabinty is on a distinguished road
That s great! Got it now!!

Thanks again!!

Cheers,
Aram
mabinty is offline   Reply With Quote

Old   July 29, 2012, 03:01
Default help me plz
  #15
Member
 
vahid
Join Date: Feb 2012
Location: Mashhad-Iran
Posts: 80
Rep Power: 13
vahid.najafi is an unknown quantity at this point
Hi every foamers.

I want to add k(kinetic turbulence energy) in one solver.

for this work, added next line in the code of solver:

const volScalarField &k=U_.db().lookupObject<volScalarField>("k")
and wmake was Successfully .

but How can I Understand that this k is the same with k(kinetic turbulence energy)???Is it true?????or not????

Because I replase another word in this :

const volScalarField &M=U_.db().lookupObject<volScalarField>("M")
but nothing error was not occured!!!!!!??????
vahid.najafi is offline   Reply With Quote

Old   July 29, 2012, 05:33
Default
  #16
Senior Member
 
Dr. Alexander Vakhrushev
Join Date: Mar 2009
Posts: 256
Blog Entries: 1
Rep Power: 19
makaveli_lcf is on a distinguished road
Send a message via ICQ to makaveli_lcf
Could the lookup method just give you a null pointer, then no error is detected
__________________
Best regards,

Dr. Alexander VAKHRUSHEV

Christian Doppler Laboratory for "Metallurgical Applications of Magnetohydrodynamics"

Simulation and Modelling of Metallurgical Processes
Department of Metallurgy
University of Leoben

http://smmp.unileoben.ac.at
makaveli_lcf is offline   Reply With Quote

Old   July 29, 2012, 05:46
Default Thanks
  #17
Member
 
vahid
Join Date: Feb 2012
Location: Mashhad-Iran
Posts: 80
Rep Power: 13
vahid.najafi is an unknown quantity at this point
Thanks Dr. Alexander A. Vakhrushev for your answer.

its means this work not true???this k is not kinetic turbulence energy???
if your answer yes!!!Please suggest me one way to Correction this code with k(kinetic turbulence energy)!!!
vahid.najafi is offline   Reply With Quote

Old   July 29, 2012, 05:51
Default
  #18
Senior Member
 
Dr. Alexander Vakhrushev
Join Date: Mar 2009
Posts: 256
Blog Entries: 1
Rep Power: 19
makaveli_lcf is on a distinguished road
Send a message via ICQ to makaveli_lcf
Could you show more information, e.g.post your solver (if it is not secret) to understand your problem. Actually it should be ok what yo use to get k field.
__________________
Best regards,

Dr. Alexander VAKHRUSHEV

Christian Doppler Laboratory for "Metallurgical Applications of Magnetohydrodynamics"

Simulation and Modelling of Metallurgical Processes
Department of Metallurgy
University of Leoben

http://smmp.unileoben.ac.at
makaveli_lcf is offline   Reply With Quote

Old   July 29, 2012, 06:28
Default my solver is in Appendix
  #19
Member
 
vahid
Join Date: Feb 2012
Location: Mashhad-Iran
Posts: 80
Rep Power: 13
vahid.najafi is an unknown quantity at this point
Thanks for your answer Dr.
it is not secret!!!
my solver is in Appendix.I want to added kinetic turbulence energy in Directory:
OpenFOAM/vahid 2.0.1/run/myinterPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.c
in file:SchnerrSauer.c

I have add (turbulence kinetic Energy or k ) in a part of this solver.
first:
added:
-I$(LIB_SRC)/turbulenceModels \
-I$(LIB_SRC)/turbulenceModels/incompressible/RAS/RASModel \

in option.


and then:
added
//.................................................. .....changed
// Construct incompressible turbulence model
autoPtr<incompressible::RASModel> turbulence
(
incompressible::RASModel::New(U, phi, twoPhaseProperties())
);
//.................................................. .....changed


in creatField.

and then:
added

#include "RASModel.H"
and:

//.................................................. .............
volScalarField turbKinEnergy = turbulence().k(); //turbKinEnergy = turbulence().k();
volScalarField turbDisEnergy = turbulence().epsilon();
in this and turbkinEnergy=k
//.................................................. .............


in myinterPhaseChangeFoam.c

and wmake is ok!!!



but
I want in this solver in directory:
/run/myinterPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.c




I added
#include "RASModel.H"

in it and:


Foam::tmp<Foam::volScalarField>
Foam:haseChangeTwoPhaseMixtures::SchnerrSauer: Coeff
(
const volScalarField& p
) const
{
volScalarField limitedAlpha1(min(max(alpha1_, scalar(0)), scalar(1)));
volScalarField rho
(
limitedAlpha1*rho1() + (scalar(1) - limitedAlpha1)*rho2()
);

return
//......I want to change it( <<k>> turbulence multiple in it):
(3*rho1()*rho2())*sqrt(2/(3*rho1()))*k()
*rRb(limitedAlpha1)/(rho*sqrt(mag(p - pSat()) + 0.01*pSat()));
//.................................................. ......
}


dont successful wmake, and seen(was not declared ):

I/opt/openfoam201/src/OSspecific/POSIX/lnInclude -fPIC -c $SOURCE -o Make/linux64GccDPOpt/SchnerrSauer.o
phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C: In member function â€کFoam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam:haseChangeTwoPhaseMixtures::SchnerrSauer: Coeff(const Foam::volScalarField&) const’:
phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C:113: error: k() was not declared in this scope
make: *** [Make/linux64GccDPOpt/SchnerrSauer.o] Error 1


please help me.

another way that I worked:


Foam::tmp<Foam::volScalarField>
Foam:haseChangeTwoPhaseMixtures::SchnerrSauer: Coeff
(
const volScalarField& p
) const
{
volScalarField limitedAlpha1(min(max(alpha1_, scalar(0)), scalar(1)));
volScalarField rho
(
limitedAlpha1*rho1() + (scalar(1) - limitedAlpha1)*rho2()
);

return
const volScalarField &k=U_.db().lookupObject<volScalarField>("k");

(3*rho1()*rho2())*sqrt(2/(3*rho1()))*k()
*rRb(limitedAlpha1)/(rho*sqrt(mag(p - pSat()) + 0.01*pSat()));


and wmake was Successfully .

but How can I Understand that this k is the same with k(kinetic turbulence energy)???Is it true???
Because I replase another world in this :
const volScalarField &M=U_.db().lookupObject<volScalarField>("M")
but not error occured!!!!!!??????


please help me more about this problem????Thanks.
Attached Files
File Type: zip myinterPhaseChangeFoam.zip (13.1 KB, 4 views)
vahid.najafi is offline   Reply With Quote

Old   February 24, 2014, 09:57
Default
  #20
Senior Member
 
Join Date: Mar 2009
Posts: 138
Rep Power: 17
camoesas is on a distinguished road
Hello Everybody,

I am exhuming this thread because it is the only one were somebody talks about yPlustherm. So maybe the Pro's see their old thread poping up and somebody can give me a reply:

I am working with the above mentioned wall function. What I dont understand is the calculation of yPlustherm. The docu says it is the value of yPlus at the edge of the thermal laminar sublayer. But where does the formula come from:

Code:
00084         scalar f = ypt - (log(E_*ypt)/kappa_ + P)/Prat; 
00085         scalar df = 1.0 - 1.0/(ypt*kappa_*Prat); 
00086         scalar yptNew = ypt - f/df;
Fluent uses a similar alphajayatillekewallfunction but says that yPlusTherm is the point where the linear and the log law intersect.
So my question is: What is yPlustherm and whats the background for this formula?
So I would be gratefull if somebody could lift the fog.


Thanks!

Camoesas
__________________
OF - 2.0.0

Last edited by camoesas; February 28, 2014 at 03:49.
camoesas is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On



All times are GMT -4. The time now is 14:52.