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.
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:
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
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 to solve the problem.
- 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/
- Finite Volume Based - http://www.ctcms.nist.gov/
According to people iNavier and dolphyn are promising:
Someone was using PyAMG to develop Jacobian-Free Newton-Krylov code to solve the Navier Stokes equations : https://groups.google.com/
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!