CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM (http://www.cfd-online.com/Forums/openfoam/)
-   -   Modify kEpsilon model (http://www.cfd-online.com/Forums/openfoam/60731-modify-kepsilon-model.html)

harly November 30, 2008 19:05

Hi, I want to modify the ex
 
Hi,

I want to modify the existing k - epsilon model in OpenFoam.
My first question would be has anyone of experience with something like that?

Basically I need to add a line that is computed in every iteration. The main problem is, that I can't find the proper files.

I can do almost everything in kEpsilon.H/.C but a few things. For example: Is there an array where all the k_ and epsilon_ values are stored ? I have a formula in which I need to apply the current k_ (iteration) and a k0_ (timestep) to calculate a new variable.

Maybe someone can give me a lead where I could look for that or how I could create such an array. Especially where I can find the loops for timesteps and iterations. (I want to use turbFoam)

I would appreciate your help - this is my first bigger modification in OpenFoam and I feel a bit lost in all those files.

your
harly

henrik December 1, 2008 06:19

Daniel, - new turbulence mo
 
Daniel,

- new turbulence model: Have a look here http://openfoamwiki.net/index.php/Si...ry_/_Tutorials

- arrays: k_ and epsilon_ are volScalarField and contain the arrays you are looking for.

Info << k_[cellI] << endl;

Prints the value of k in cell cellI.

- Loops: Have a look at the source of turbFoam and you will surely find them.

Henrik

harly December 1, 2008 13:55

Hi, thanks a lot especially
 
Hi,

thanks a lot especially for the link - I have one small questions - how can I access the k_ value of a previous timestep/iteration? Because in your example I get the current k_ or not?

or is there a easy explanation how a volScalarField is structured I couldn't find a proper description.

Daniel

hjasak December 1, 2008 18:06

Try: k_.oldTime() You ge
 
Try:

k_.oldTime()

You get the complete field for the old time. Also, things like

k.oldTime().oldTime().oldTime() (as many as you like!)

will work fine. Beware: this kind of game costs memory http://www.cfd-online.com/OpenFOAM_D...part/happy.gif

Enjoy,

Hrv

harly December 2, 2008 18:36

thanks that is perfect So n
 
thanks that is perfect

So now that I can access all the fields data I have another question:

I need to Implement an equation like this:

C1_new = C1_*(1+Ct_*k_/epsilon_*1/(Q+k_)*abs(d(Q+k_)/dt) )

with Q = 0.5(u^2 + v^2) (for 2D)

and Ct_ will become a Constant

So here is the thing how can I implement Q ? I am not sure how to call the components from U_

also

I wonder what would be the best solution for the part in the abs(), because I would have done (Q_+k_)-(Q_old+k_.oldTime())/deltaT

maybe someone can give me a hint

harly December 3, 2008 17:43

Hi, I think I figured it o
 
Hi,

I think I figured it out but one small issue:
I have now the following for my
C1_star:
C1_*(0.38*k_/epsilon_*1.0/(0.5*magSqr(U_)+k_)*mag((0.5*magSqr(U_)+k_-0.5*magSqr( U_.oldTime())+k_.oldTime())/1.0));

The problem is in front of the 0.38 there should be a vector full of ones the same size like k_ and epsilon_ but I don't know how to create it.

Basically I want to make:

1+k_

Has someone an idea?

Yours
Daniel


All times are GMT -4. The time now is 15:35.