Hi Benny, I've updated the example with your version (http://matforge.org/fipy/changeset/3799/). Can I add you name and email to the example?
On Mon, Jul 19, 2010 at 6:58 PM, Benny Malengier <[email protected]> wrote: > Hi, > > I wanted to test the flow code some more (as was said in the other thread, > difficult to write a good test for the code in viscous limit), and not > having dolphyn, I decided to see how fipy stacks up for the lid driven > cavity, Re=1000, which is a well known example with many literature > comparisons. > > The example file and figures are in Ticket URL: > <http://matforge.org/fipy/ticket/306> > > The literature comparison for a 123x123 grid is not bad, but not stellar > either: > http://matforge.org/fipy/attachment/ticket/306/lidcavitylitcmpvx.png > http://matforge.org/fipy/attachment/ticket/306/lidcavitylitcmpvy.png > > I think it would be good to add this example to the flow examples so as to > clearly show fipy users what fipy can do for flow simulations. For my own > use I only need an approximated flow field to do mass flow, so it seems > sufficient for my needs. > > Perhaps to add in the example is that one can obtain better matching values > with literature for refined parameters, at a heavy computational cost. Eg, > for > N=243 > pressureRelaxation = 0.8 > velocityRelaxation = 0.6 > sweeps = 3000 > I obtain: > http://matforge.org/fipy/attachment/ticket/306/lidcavitylitcmpvx_N243_sweep3000.png > http://matforge.org/fipy/attachment/ticket/306/lidcavitylitcmpvy_N243_sweep3000.png > > As a comparison, it is interesting to look at > http://www.cfd-online.com/Wiki/Sample_code_for_solving_Lid-Driven_cavity_test_%28Re%3D1000%29_-_Fortran_90 > where a 120 grid is used to obtan the results. For a 123 grid, fipy still > has visible discrepancy, however that code uses a higher order derivative > for the convective term (HLPA it is called there), perhaps that explains it > Obviously, having such a convective term would be great if it makes such a > difference :-) > > Also a result of fluent here: > http://www.cfd-online.com/Wiki/Lid-driven_cavity_problem on a 32x32 grid, > but it is not written what order or method is used or how long the > computation took. > > My guess would be one can obtain better results if one can put the velocity > implicitly in the velocity equation, now the velocity facevariable is used, > which is fixed and updated once in every sweep. I tried that in the code, > but it is commented out, because the results where bad. Perhaps I do > something wrong ... >>>> #xVelocityEq = 2.* xVelocity * PowerLawConvectionTerm(coeff=(1.,0.)) \ > ... # + yVelocity * PowerLawConvectionTerm(coeff=(0.,1.)) \ > ... # + yVelocity.getGrad().dot([0.,1.])*xVelocity \ > .. # - DiffusionTerm(coeff=viscosity) + pressure.getGrad().dot([1.,0.]) >>>> #yVelocityEq = 2.* yVelocity * PowerLawConvectionTerm(coeff=(0.,1.)) \ > ... # + xVelocity * PowerLawConvectionTerm(coeff=(1.,0.)) \ > .. # + xVelocity.getGrad().dot([1.,0.])*yVelocity \ > ... # - DiffusionTerm(coeff=viscosity) + pressure.getGrad().dot([0.,1.]) > > Would be nice if sombody can tweak it to have matching results with the > literature, but anyway, this test has shown me fipy is adequate for my > purposes. > Obviously I wonder if the fully coupled matrix equation Daniel talks about > would not also solve the problem better, however, that fortran code I refer > to works apparently great without such a coupled solver. > > Benny > -- Daniel Wheeler
