FEM2D_NAVIER_STOKES_INOUT is a square region that is 1 unit wide and 1 unit high. A parabolic inflow is specified on the lower left, and a zero Neumann outflow is specified on the upper right.
The Neumann condition on the outflow is not working as expected, so we have temporarily backtracked to using a Dirichlet outflow condition there...
To run the problem directly, you only need the user-supplied routines in inout.cpp, the node data in nodes6.txt, and the element data in triangles6.txt.
You compile and link the solver with inout.cpp, using commands like:
g++ fem2d_navier_stokes.C inout.cpp mv a.out inoutand then run the program with the command
./inout nodes6.txt triangles6.txt
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
FEM2D_NAVIER_STOKES is available in a C++ version and a FORTRAN90 version and a MATLAB version.
FEM2D_NAVIER_STOKES, a C++ program which applies the finite element method to a 2D Navier Stokes flow problem with user input.
Some of the files needed to run the problem include:
The geometry is defined by sets of nodes and triangles. The velocities use the full set of nodes, and quadratic (6 node) triangles.
The pressures are associated with a subset of the nodes called "pressure nodes", and linear (3 node) triangles. Note that, in the order 3 triangulation, the nodes are renumbered, and do NOT inherit the labels used in the order 6 triangulation.
The pressures are a scalar quantity associated with the pressure nodes, the velocities are a vector quantity associated with the vector nodes.