Hi Pythonistas,
This week kicked off with the hunt for a robust Navier-Stokes solver for SfePy.
I went through huge amount of resources.
To summarise the journey:
For our Navier-Stokes currently we use the Newton method with backtracking line-search. in OpenFoam and most of the CFD code the linearization approach is based on Patankar's SIMPLE algorithm.[1][2]
I talked to my professor who told me that SIMPLE is used in commercial softwares like FLUENT too.
I found few papers which tells us some other approaches:
- 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
[1]: http://www.cfd-online.com/
[2]: http://web.cecs.pdx.edu/~
I did some more digging from the implementation point of view and came across some interesting things:
This tutorial demonstrates the solution of Incompressible Navier-Stokes Equations using Fenics. it uses Chlorin's method[3] to solve the problem.
http://fenicsproject.org/
Other Implementations:
- Parallel Spectral Numerical Methods/The Two- and Three-Dimensional Navier-Stokes Equations - http://en.wikibooks.org/wiki/
Parallel_Spectral_Numerical_ Methods/The_Two-_and_Three- Dimensional_Navier-Stokes_ Equations - 2D Navier-Stokes solver implemented as a Python package with Python
modules and C++ extension modules. It uses the finite difference method
on a uniform, rectangular grid. It handles single- and two-phase
incompressible, Newtonian, laminar flow with obstacles. -https://code.google.com/p/
kmkns/ - Finite Volume Based - http://www.ctcms.nist.gov/
fipy/
http://www.cfd-online.com/
According to people iNavier and dolphyn are promising:
http://www.cfd-online.com/
Someone was using PyAMG to develop Jacobian-Free Newton-Krylov code to solve the Navier Stokes equations : https://groups.google.com/
[3] http://en.wikipedia.org/wiki/
This is everything I could harness this week. There is a lot of things to take care to lock the final solver to be used which I would do the current week. Also I am currently narrowing down and rigorously searching a way to implementing SIMPLE in the FE context.
On a side note I have also been working on a SfePy version for Python 3 and benchmarking the simulation results.
This journey is surely turning out to be awesome!
Cheers!
No comments:
Post a Comment
Comment will be sent for moderation.