# A new turbulent model without empirical coefficients

 Register Blogs Members List Search Today's Posts Mark Forums Read

 June 26, 2013, 10:13 A new turbulent model without empirical coefficients #1 New Member   Sam_chio Join Date: Jun 2013 Posts: 5 Rep Power: 6 Hi there, This is my first post. I read a academic paper "A Partial Average Based Study of Compressible Turbulent Flows" http://www.jomse.org/paperInfo.aspx?ID=88 For incompressible flow, the governing equations are shown in the figure. Gao_yong equations.PNG Equation (1) and (2) are averaged continuity and momentum equations. Equation (3) and (4) are fluctuation continuity and momentum equations. Equation (5) is the turbulent energy dissipation equation. The equations describe a new turbulence model without any empirical coefficients, which can simulate statistical mean behaviors and coherent structures of various benchmark turbulent flows. The chain of momentum transference contains two stages.The first stage is from the mean flow to the fluctuation flow as the viscous dissipation term of the mean flow equals the source term of the fluctuation flow. The second stage is from the fluctuation flow to molecular motion as the viscous dissipation term of the fluctuation flow plays its role. I have followed the tutorial that added temperature to icoFoam, now I plan to modify pisoFoam solver to solve the equations in OpenFoam. Any suggestion is really appreciated. Sam Chio sharonyue, JR22 and Duo like this.

 June 28, 2013, 00:31 #2 New Member   Sam_chio Join Date: Jun 2013 Posts: 5 Rep Power: 6 As I known, the equations used by pisoFOAM solver are similar to equation (1) and (2). So I can keep the velocity predictor UEqn using the following code: Code: ```fvVectorMatrix UEqn ( fvm::ddt(U) + fvm::div(phi, U) + turbulence->divDevReff(U) ); UEqn.relax(); if (momentumPredictor) { solve(UEqn == -fvc::grad(p)); }``` The main difference of the new model is the calculation of Reynolds stress divDevReff(U). How to obtain Reynolds stress by solving equation (3) to (5) in OpenFoam? That is my question that I wish to solve. Last edited by s9a9m92001; July 4, 2013 at 01:51.

 July 2, 2013, 10:16 #3 New Member   Sam_chio Join Date: Jun 2013 Posts: 5 Rep Power: 6 Dear all, I consider to build up the new turbulence solver by modifying the RASModel. As I mentioned in foregoing thread, OpenFOAM calculates the turbulent shear stresses in incompressible RASModel using the divDevReff term: Code: ```tmp kEpsilon::divDevReff(volVectorField& U) const { return ( - fvm::laplacian(nuEff(), U) - fvc::div(nuEff()*dev(T(fvc::grad(U)))) ); }``` Noting that 'nuEff' is the so-called effective viscosity that is the sum of the laminar molecular viscosity and turbulent eddy viscosity. The expression is in the form: Code: ```virtual tmp nuEff() const { return tmp ( new volScalarField("nuEff", nut() + nu()) ); }``` Investigating the new turbulent model without empirical coefficients, I prefer to implement equations (3), (4) and (5) to calculate the value of "nut". Sam Last edited by s9a9m92001; July 3, 2013 at 10:17.

 July 3, 2013, 04:28 #4 New Member   Sam_chio Join Date: Jun 2013 Posts: 5 Rep Power: 6 Next it is required to solve drift velocity udrift, drift pressure pdrift and turbulence length scale l. Header file createField.h may take the form like: Code: ``` udrift_ ( IOobject ( "udrift", runTime_.timeName(), mesh_, IOobject::NO_READ, IOobject::AUTO_WRITE ), autoCreateUdrift("udrift", mesh_) ), pdrift_ ( IOobject ( "pdrift", runTime_.timeName(), mesh_, IOobject::NO_READ, IOobject::AUTO_WRITE ), autoCreatePdrift("pdrift", mesh_) ), l_ ( IOobject ( "l", runTime_.timeName(), mesh_, IOobject::NO_READ, IOobject::AUTO_WRITE ), autoCreateL("l", mesh_) ), nut_ ( IOobject ( "nut", runTime_.timeName(), mesh_, IOobject::NO_READ, IOobject::AUTO_WRITE ), autoCreateNut("nut", mesh_) )``` Last edited by s9a9m92001; July 6, 2013 at 01:58.

 July 3, 2013, 21:24 #5 New Member   Sam_chio Join Date: Jun 2013 Posts: 5 Rep Power: 6 Considering the C++ code of equation (4), we have the expression in the form Code: ```fvVectorMatrix UdriftEqn ( fvm::ddt(udrift) + fvm::div(phi, udrift) + fvm::div(phidrift, U) + turbulence->divDevReff(udrift) - turbulence->divDevReff(U) ); UdriftEqn.relax(); if (momentumPredictor) { solve(UdriftEqn == -fvc::grad(pdrift)); }``` Last edited by s9a9m92001; July 4, 2013 at 01:50.

 September 22, 2013, 21:40 #6 Senior Member   Dongyue Li Join Date: Jun 2012 Location: Torino, Italy Posts: 754 Rep Power: 10 It has been a while. how is it going dude? AFAIK, Prof. Gao's student is doing the same thing and their works had been published in Chinese Journal. Last edited by sharonyue; September 23, 2013 at 21:44.

October 9, 2013, 23:11
#7
Senior Member

Dongyue Li
Join Date: Jun 2012
Location: Torino, Italy
Posts: 754
Rep Power: 10
Quote:
 Originally Posted by s9a9m92001 Considering the C++ code of equation (4), we have the expression in the form Code: ```fvVectorMatrix UdriftEqn ( fvm::ddt(udrift) + fvm::div(phi, udrift) + fvm::div(phidrift, U) + turbulence->divDevReff(udrift) - turbulence->divDevReff(U) ); UdriftEqn.relax(); if (momentumPredictor) { solve(UdriftEqn == -fvc::grad(pdrift)); }```
I think it should be:
Code:
`+ fvc::div(phidrift, U)`
rite?

 Thread Tools Display Modes Linear Mode

 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 OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post YJZ ANSYS 1 August 20, 2010 13:57 duaiduaihu FLUENT 0 August 13, 2010 23:40 maolongliu OpenFOAM Programming & Development 0 July 27, 2010 11:40 achinta OpenFOAM 1 July 7, 2010 08:24 sven OpenFOAM 0 July 19, 2009 15:47

All times are GMT -4. The time now is 03:37.