FreeFEM-NavierStokes Code
Status: Alpha
Brought to you by:
mairw
| File | Date | Author | Commit |
|---|---|---|---|
| gnuplot | 2008-02-12 | mairw | [r1] initial import |
| maple | 2008-02-12 | mairw | [r1] initial import |
| sh | 2008-02-12 | mairw | [r1] initial import |
| src | 2008-02-12 | mairw | [r1] initial import |
| AUTHORS | 2008-02-12 | mairw | [r1] initial import |
| COPYRIGHT | 2008-02-12 | mairw | [r1] initial import |
| README | 2008-02-12 | mairw | [r1] initial import |
| critical_profile.txt | 2008-02-12 | mairw | [r1] initial import |
| nstest-advect-surface.edp | 2008-02-12 | mairw | [r1] initial import |
| nstest-advect.edp | 2008-02-12 | mairw | [r1] initial import |
| nstest-capillary-sphere.edp | 2008-02-12 | mairw | [r1] initial import |
| nstest-capillary-wave.edp | 2008-02-12 | mairw | [r1] initial import |
| nstest-cavity.edp | 2008-02-12 | mairw | [r1] initial import |
| nstest-ellipsoid.edp | 2008-02-12 | mairw | [r1] initial import |
| nstest-noslip-ellipsoid-steady.edp | 2008-02-12 | mairw | [r1] initial import |
| nstest-template.edp | 2008-02-12 | mairw | [r1] initial import |
| xprof.ghia | 2008-02-12 | mairw | [r1] initial import |
| yprof.ghia | 2008-02-12 | mairw | [r1] initial import |
This project is a collection of FreeFEM++ scripts used to find numerical solutions
of the incompressible Navier-Stokes equations. The scripts include examples
of SUPG/PSPG stabilisation and show how to construct 5th order polynomial
boundary interpolations from moving mesh problems. The interpolations are
suitable for applying surface tension boundary conditions.
Also, the boundary interpolation routines from this project can be re-used in
other FreeFEM++ projects where the boundary condition depends on the shape of
the domain. The boundary interpolation scripts are:
src/ns-markers.edp //Routines to track boundary markers
src/ns-boundary*.edp //Routines to construct a boundary interpolation
src/ns-interp5.edp //Defines 5th order polynomial interpolation
For Navier-Stokes problems, each flow problem is defined in a separate parameter
file; the examples are named nstest-######.edp.
The default problem parameters and description are defined in the file
src/ns-defaults.edp.
To run a simulation, use FreeFem++ nstest-#####.edp.
The correct finite element scheme needs to be selected in the file
src/ns-finite-elements.edp. So if no stabilisation is enabled, you must
choose an element that satisfies the LBB condition. If enablePSPG is set
then equal order elements can be used. The best combination for moving
surface problems is P1bP1 elements with enableSUPG set.
Note that if you wish to use high order elements, such as P3 or P4 then you must
copy the files Element_P3.so, Element_P4.so and qf11to25.so from the freefem++
examples++-load directory into the freefem-ns/src/ directory.
To define a new problem you can work from an example parameter file with reference
to the comments in src/ns-defaults.edp. The parameter file template is given
in nstest-template.edp
Examples parameter files are given for:
* Advection tests
* Driven cavity
* Steady flow past an ellipse/ellipsoid
* Transient flows with free surfaces - droplet formation.
Methods used:
* Moving/adaptive mesh
* Semi-implicit time integration
* A selection of stabilisation schemes, including
==> Pressure Stabilised Petrov Galerkin (PSPG) for equal order finite elements.
==> Streamwise Upwind Petrov Gelerkin (SUPG) for advection dominated problems.
==> A fractional step method which in many cases allows equal order finite elements
to be used at the expense of accuracy in time (educational only).
==>Bubble functions, for P1bP1 elements
Various error measures are available, including:
* Velocity error due to divergence not being exactly zero.
* Linearisation error due to advection term being linearised from (u.Del)u to (a.Del)u.
To control the level of debugging output see the file src/ns-debug.edp
The current test cases are:
nstest-