Computer Software
Gerris is computer software in the field of computational fluid dynamics (CFD). Gerris was released as free and open-source software, subject to the requirements of the GNU General Public License (GPL), version 2 or any later.
Scope.
"Gerris" solves the Navier–Stokes equations in 2 or 3 dimensions, allowing to model industrial fluids (aerodynamics, internal flows, etc.) or for instance, the mechanics of droplets, thanks to an accurate formulation of multiphase flows (including surface tension). Actually, the latter field of study is the reason why the software shares the same name as the insect genus.
"Gerris" also provides features relevant to geophysical flows:
Flow types #1 to #3 were studied using the shallow-water solver included in "Gerris", case #4 brings in the primitives equations and application #5 relies on the "spectral" equations for generation/propagation/dissipation of swell (and/or wind sea): for this purpose "Gerris" makes use of the source terms from WaveWatchIII.
Lastly, one can note that the (non-hydrostatic) Navier–Stokes solver was also used in the ocean to study:
On the contrary "Gerris" does not allow the modeling of compressible fluids (supersonic flows).
Numerical scheme.
Several methods can be used to provide a numerical solution to partial differential equations:
"Gerris" belongs to the "finite volumes" family of CFD models.
Type of grid.
Most models use meshes which are either structured (Cartesian or curvilinear grids) or unstructured (triangular, tetrahedral, etc.). "Gerris" is quite different on this respect: it implements a deal between structured and unstructured meshes by using a tree data structure, allowing to refine locally (and dynamically) the (finite-volume) description of the pressure and velocity fields. Indeed, the grid evolves in the course of a given simulation owing to criteria defined by the user ("e.g." dynamic refinement of the grid in the vicinity of sharp gradients).
Turbulent closure.
"Gerris" mainly aims at DNS; the range of Reynolds available to the user thus depends on the computing power they can afford (although the auto-adaptive mesh allows one to focus the computing resources on the coherent structures). According to the "Gerris" FAQ the implementation of turbulence models will focus on the LES family rather than RANS approaches.
Programming language, library dependencies, included tools.
"Gerris" is developed in C using the libraries Glib (object orientation, dynamic loading of modules, etc.) and GTS. The latter brings in facilities to perform geometric computations such as triangulation of solid surfaces and their intersection with fluid cells. Moreover "Gerris" is fully compliant with MPI parallelisation (including dynamic load balancing).
"Gerris" does not need a meshing tool since the local (and time dependent) refinement of the grid is on charge of the solver itself. As far as solid surfaces are concerned, several input formats are recognized:
Among the various ways to output "Gerris" results, let us just mention here:
Licence.
CFD software, as any software, can be developed in various "realms":
As far as CFD is concerned, a thorough discussion of these software development paths can be found in the statement by Zaleski.
"Gerris" was distributed as free and open-source software right from the onset of the project.
Continued development.
Following a redesign of the software organization, "Gerris" became "Basilisk", which allows one to develop its own solver (not necessarily in fluid mechanics) using various data structures (including of course the "quadtree/octree") and optimized operators for iteration, derivation, etc. Solvers are written in "C", more specifically the "Basilisk C". 
However many solvers are available "turnkey", including Navier-Stokes et Saint-Venant.
See also.
Other computing software are freely available in the field of fluid mechanics. Here are some of them (if the development was not initialized under a free license, the year when it moved to "Open Source" is mentioned in parentheses):
References.
 ;templatestyles src="Reflist/styles.css" / ;