# Drag model implementation

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

 April 2, 2013, 22:22 Drag model implementation #1 Member   Chris L Join Date: Sep 2012 Posts: 44 Rep Power: 6 I just wanted to check some code with the community to see if its doing what I think it should. I want to Implement the following Drag model (based on Roghair, 2011). http://fcre.tnw.utwente.nl/people/ni...oghair2011.pdf Cd/[Cinf*(1-alpha)] = ( 1 + 18/Eo*alpha ) Where Eo is the Eotvos # (1.4 for the system in question) Cinf is the drag coefficient for a single bubble in pure liquid Cd is the swarm corrected coefficient alpha is the gas phase fraction (gas-liquid system) This is for twoPhaseEulerFoam (OF version 2.2.0) Code: ``` volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3))); volScalarField Cds ( neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re) + pos(Re - 1000)*0.44 ); volScalarField Cde ( (Cds + Cds*(18/1.4)*alpha1_)*(scalar(1)-alpha1_) ); return 0.75*Cde*phase2_.rho()*Ur/phase1_.d();```

 March 31, 2015, 08:28 #2 New Member   Join Date: May 2014 Location: Germany Posts: 27 Rep Power: 5 Hello Chris, I know the answer is a bit late. I think your implementation is not correct. I implemented the model after Roghair myself in OF 2.3.0. Roghair calculates the Cd for a single bubble after Eq. 12- 14 in his paper. You used the Schiller-Naumann model instead. I don't think this will work. Also, its' a bad idea to put a number for the Eötvös number in the equation, it's much better to look it up. This way you can use the drag model for different systems. This is how I implemented the model. I use values for residualRe and residualEo, which I define in my constant/ directory, to make sure Re and Eo never become zero. Code: ``` residualRe_("residualRe", dimless, dict.lookup("residualRe")), residualEo_("residualEo", dimless, dict.lookup("residualEo"))``` Then I calculate CdRe() using the following code. Code: ```Foam::tmp Foam::dragModels::Roghair::CdRe() const { volScalarField Eo(max(pair_.Eo(), residualEo_)); volScalarField Re(max(pair_.Re(), residualRe_)); volScalarField alpha(pair_.dispersed()); volScalarField CdRe = 16./Re * (1. + 2./(1. + 16./Re + 3.315/sqrt(Re))); volScalarField CdEo = 4.* Eo/(Eo + 9.5); volScalarField Cdsingle = sqrt(pow(CdRe, 2.) + pow(CdEo, 2.)); volScalarField Cd = Cdsingle * (1. - alpha) * (1. + 18./Eo *alpha); return Cd * Re; }``` I'm not sure if this would look the same in OF 2.2.0. Regards, hester BlnPhoenix likes this.

 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 luftraudi Main CFD Forum 1 November 21, 2013 23:52 nikola_m Main CFD Forum 1 November 9, 2012 10:39 saeedi Main CFD Forum 3 August 24, 2012 14:51 fs82 OpenFOAM 1 October 9, 2009 10:31 Mohammad Kermani Main CFD Forum 2 December 26, 1999 03:56

All times are GMT -4. The time now is 17:31.