On 07/04/2013 03:02 PM, Ankit Mahato wrote:
Hi R,
For our Navier-Stokes currently we use the Newton method with backtracking line-search.
Yes, in sfepy we use that.
in OpenFoam and most of the CFD code the linearization approach is based on Patankar's SIMPLE algorithm.1 I talked to my professor who told me that SIMPLE is used in commercial softwares like FLUENT too.
Do you think you could then try implementing SIMPLE in the FE context?
I found few papers which tells us some other approaches. Do have a look at them and lend your views:
- http://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CC0QFjAA&url=http%3A%2F%2Fwww.wias-berlin.de%2Fpeople%2Fjohn%2FPP99_13.ps&ei=mW3VUZqzOMmzrgeKuYD4DA&usg=AFQjCNEp9_rShrLSjkYdax6bOimSrkD-KQ&sig2=8S654V-zz2vd4mFZOilZCw&bvm=bv.48705608,d.bmk - http://numerik.iwr.uni-heidelberg.de/Oberwolfach-Seminar/CFD-Course.pdf - http://dspace.uta.edu/bitstream/handle/10106/5144/JIAJAN_uta_2502M_10764.pdf - http://www.reaction-eng.com/downloads/nksolver_pernice.pdf - http://aero-comlab.stanford.edu/Papers/birkenjamesonproceedings09.pdf - https://cs.uwaterloo.ca/research/tr/1993/02/CS-93-02.pdf - http://www.cs.sandia.gov/~rstumin/backtrack.pdf - http://repository.cmu.edu/cgi/viewcontent.cgi?article=1032&context=math - http://www8.cs.umu.se/kurser/5DA001/HT07/lectures/newton-handouts.pdf
Nice list. I will try to look at it, but doubt that I will be of much help in deciding what path to pursue. We need something that could be implemented in a reasonable time. IMHO that rules out the multigrid-based solvers, unless a prepared solution like pyamg could be used directly.
PS: For the python 3 fix which I had forgotten earlier :( . While going through the codes I came across that we use output() in base.py to print. You have already called if sys.version[0] < '3': basestr = basestring else: basestr = str So basically we know the python version and call the print function according to the python version. If I am correct it is quite easy to fix then, am I?
In the sfepy codebase, there should be no print statements - output() should be used everywhere (if it is not, it's a bug), so yes, updating that for python 3 should be pretty easy.
r.