Gerris (software): Difference between revisions
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 |
|||
(21 intermediate revisions by 13 users not shown) | |||
Line 1: | Line 1: | ||
{{ |
{{Short description|Computer Software}} |
||
{{Infobox software |
|||
| name = Gerris |
| name = Gerris |
||
| logo = Gerris logo.png |
| logo = Gerris logo.png |
||
Line 5: | Line 6: | ||
| caption = Air flow around RV Tangaroa |
| caption = Air flow around RV Tangaroa |
||
| released = {{Start date and age|2001}} |
| released = {{Start date and age|2001}} |
||
| discontinued = yes |
|||
| status = Active |
|||
| replaced_by = Basilisk |
|||
| programming language = [[C (programming language)|C]] |
| programming language = [[C (programming language)|C]] |
||
| operating system = [[Unix]], [[Linux]] |
| operating system = [[Unix]], [[Linux]] |
||
Line 20: | Line 22: | ||
''Gerris'' also provides features relevant to geophysical flows: |
''Gerris'' also provides features relevant to geophysical flows: |
||
# ocean tide<ref>{{cite journal |last1=Msadek |first1=R. |title=Hydrodynamic tidal model of Cook Strait |journal=Technical |
# ocean tide<ref>{{cite journal |last1=Msadek |first1=R. |title=Hydrodynamic tidal model of Cook Strait |journal=Technical Report, National Institute of Water and Atmospheric Research |year=2005 }}</ref> |
||
# tsunamis<ref>{{cite journal |last1=Popinet |first1=S. |title=Adaptive modelling of long-distance wave propagation and fine-scale flooding during the Tohoku tsunami |journal=Natural Hazards and Earth System Sciences |volume=12 |year=2012 |pages=1213–1227 |doi=10.5194/nhess-12-1213-2012}}</ref><ref>{{cite journal |last1=Popinet |first1=S. |title=Quadtree-adaptive tsunami modelling |journal=Ocean Dynamics |volume=61 |year=2011 |pages=1261–1285 |doi=10.1007/s10236-011-0438-z}}</ref> |
# tsunamis<ref>{{cite journal |last1=Popinet |first1=S. |title=Adaptive modelling of long-distance wave propagation and fine-scale flooding during the Tohoku tsunami |journal=Natural Hazards and Earth System Sciences |volume=12 |issue=4 |year=2012 |pages=1213–1227 |doi=10.5194/nhess-12-1213-2012|bibcode=2012NHESS..12.1213P |doi-access=free }}</ref><ref>{{cite journal |last1=Popinet |first1=S. |title=Quadtree-adaptive tsunami modelling |journal=Ocean Dynamics |volume=61 |issue=9 |year=2011 |pages=1261–1285 |doi=10.1007/s10236-011-0438-z|bibcode=2011OcDyn..61.1261P |citeseerx=10.1.1.374.7506 |s2cid=14848237 }}</ref> |
||
# river flow<ref>{{cite journal |last1=Hyunuk |first1=A. |first2=Y. |last2=Soonyoung |title=Well-balanced shallow water flow simulation on quadtree cut cell grids |journal=Advances in Water Resources |volume=39 |year=2012 |pages=60–70 |doi=10.1016/j.advwatres.2012.01.003}}</ref> |
# river flow<ref>{{cite journal |last1=Hyunuk |first1=A. |first2=Y. |last2=Soonyoung |title=Well-balanced shallow water flow simulation on quadtree cut cell grids |journal=Advances in Water Resources |volume=39 |year=2012 |pages=60–70 |doi=10.1016/j.advwatres.2012.01.003|bibcode=2012AdWR...39...60A }}</ref> |
||
# eddies in the ocean<ref>{{cite journal |last1=Popinet |first1=S. |first2=G. |last2=Rickard |title=A tree-based solver for adaptive ocean modelling |journal=Ocean Modelling |volume=16 |year=2007 |pages=224–249 |doi=10.1016/j.ocemod.2006.10.002}}</ref> |
# eddies in the ocean<ref>{{cite journal |last1=Popinet |first1=S. |first2=G. |last2=Rickard |title=A tree-based solver for adaptive ocean modelling |journal=Ocean Modelling |volume=16 |issue=3–4 |year=2007 |pages=224–249 |doi=10.1016/j.ocemod.2006.10.002|bibcode=2007OcMod..16..224P |url=https://hal.archives-ouvertes.fr/hal-01445434/file/ocean-R1.pdf }}</ref> |
||
# sea state (surface waves)<ref>{{cite journal |last1=Tsai |first1=C.-C. |first2=T.-H. |last2=Hou |first3=S. |last3=Popinet |title=Wind wave prediction of tropical cyclones by a quadtree-adaptive model |journal=Coastal Engineering |volume=77 |year=2013 |pages=108–119 |doi=10.1016/j.coastaleng.2013.02.011}}</ref><ref>{{cite journal |last1=Popinet |first1=S. |first2=R.M. |last2=Gorman |first3=G.J. |last3=Rickard |first4=H.L. |last4=Tolman |title=A quadtree-adaptive spectral wave model |journal=Ocean Modelling |volume=34 |year=2010 |pages=36–49 |doi=10.1016/j.ocemod.2010.04.003}}</ref> |
# sea state (surface waves)<ref>{{cite journal |last1=Tsai |first1=C.-C. |first2=T.-H. |last2=Hou |first3=S. |last3=Popinet |title=Wind wave prediction of tropical cyclones by a quadtree-adaptive model |journal=Coastal Engineering |volume=77 |year=2013 |pages=108–119 |doi=10.1016/j.coastaleng.2013.02.011}}</ref><ref>{{cite journal |last1=Popinet |first1=S. |first2=R.M. |last2=Gorman |first3=G.J. |last3=Rickard |first4=H.L. |last4=Tolman |title=A quadtree-adaptive spectral wave model |journal=Ocean Modelling |volume=34 |issue=1–2 |year=2010 |pages=36–49 |doi=10.1016/j.ocemod.2010.04.003|bibcode=2010OcMod..34...36P |citeseerx=10.1.1.374.5299 |s2cid=14415336 }}</ref> |
||
Flow types #1 to #3 were studied using the [[Shallow water equations|shallow-water]] solver included in ''Gerris'', case #4 brings in the [[Primitive equations|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.<ref>[http://polar.ncep.noaa.gov/waves/wavewatch/wavewatch.shtml WaveWatchIII]</ref> |
Flow types #1 to #3 were studied using the [[Shallow water equations|shallow-water]] solver included in ''Gerris'', case #4 brings in the [[Primitive equations|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.<ref>[http://polar.ncep.noaa.gov/waves/wavewatch/wavewatch.shtml WaveWatchIII]</ref> |
||
Lastly, one can note that the (non-hydrostatic) Navier–Stokes solver was also used in the ocean to study: |
Lastly, one can note that the (non-hydrostatic) Navier–Stokes solver was also used in the ocean to study: |
||
* fluvial plumes<ref>{{cite journal |last1=O'Callaghan |first1=J. |first2=G. |last2=Rickard |first3=S. |last3=Popinet |first4=C. |last4=Stevens |title=Response of buoyant plumes to transient discharges investigated using an adaptive solver |journal=Journal of Geophysical Research |volume=115 |year=2010 |pages=C11025 |doi=10.1029/2009jc005645}}</ref> |
* fluvial plumes<ref>{{cite journal |last1=O'Callaghan |first1=J. |first2=G. |last2=Rickard |first3=S. |last3=Popinet |first4=C. |last4=Stevens |title=Response of buoyant plumes to transient discharges investigated using an adaptive solver |journal=Journal of Geophysical Research |volume=115 |year=2010 |issue=C11 |pages=C11025 |doi=10.1029/2009jc005645|bibcode=2010JGRC..11511025O |doi-access=free }}</ref> |
||
* internal waves<ref>{{cite journal |last1=Rickard |first1=G. |first2=J. |last2=O'Callaghan |first3=S. |last3=Popinet |title=Numerical simulations of internal solitary waves interacting with uniform slopes using an adaptive model |journal=Ocean Modelling |volume=30 |year=2009 |pages=16–28 |doi=10.1016/j.ocemod.2009.05.008}}</ref> |
* internal waves<ref>{{cite journal |last1=Rickard |first1=G. |first2=J. |last2=O'Callaghan |first3=S. |last3=Popinet |title=Numerical simulations of internal solitary waves interacting with uniform slopes using an adaptive model |journal=Ocean Modelling |volume=30 |year=2009 |issue=1 |pages=16–28 |doi=10.1016/j.ocemod.2009.05.008|bibcode=2009OcMod..30...16R |url=https://hal.archives-ouvertes.fr/hal-01445433 }}</ref> |
||
* hydrothermal convection<ref>{{cite journal |last1=Tao |first1=Y. |first2=S. |last2=Rosswog |first3=M. |last3=Brüggen |title=A simulation modeling approach to hydrothermal plumes and its comparison to analytical models |journal=Ocean Modelling |volume=61 |year=2013 |pages=68–80 |doi=10.1016/j.ocemod.2012.10.001}}</ref> |
* hydrothermal convection<ref>{{cite journal |last1=Tao |first1=Y. |first2=S. |last2=Rosswog |first3=M. |last3=Brüggen |title=A simulation modeling approach to hydrothermal plumes and its comparison to analytical models |journal=Ocean Modelling |volume=61 |year=2013 |pages=68–80 |doi=10.1016/j.ocemod.2012.10.001|bibcode=2013OcMod..61...68T }}</ref> |
||
On the contrary ''Gerris'' does not allow |
On the contrary ''Gerris'' does not allow the modeling of compressible fluids (supersonic flows). |
||
== Numerical scheme == |
== Numerical scheme == |
||
Line 43: | Line 45: | ||
== Type of grid == |
== 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,{{efn|''quadtree'' en 2D, ''octree'' en 3D}} 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). |
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,{{efn|''quadtree'' en 2D, ''octree'' en 3D}} 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 == |
== Turbulent closure == |
||
''Gerris'' mainly aims at [[Direct numerical simulation|DNS]]; the range of [[Reynolds number|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<ref> |
''Gerris'' mainly aims at [[Direct numerical simulation|DNS]]; the range of [[Reynolds number|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<ref>{{Cite web |url=http://gfs.sourceforge.net/wiki/index.php/FAQ |title=''Gerris'' (Frequently Asked Questions) |access-date=2013-05-15 |archive-date=2018-06-12 |archive-url=https://web.archive.org/web/20180612070712/http://gfs.sourceforge.net/wiki/index.php/FAQ |url-status=dead }}</ref> the implementation of turbulence models will focus on the [[Large eddy simulation|LES]] family rather than [[Reynolds-averaged Navier–Stokes equations|RANS]] approaches. |
||
== Programming language, library dependencies, included tools == |
== Programming language, library dependencies, included tools == |
||
Line 68: | Line 70: | ||
As far as CFD is concerned, a thorough discussion of these software development paths can be found in the statement by Zaleski.<ref>{{cite web |url=http://www.lmm.jussieu.fr/~zaleski/OpenCFD.html |title=Science and Fluid Dynamics should have more open sources |work=Institut Jean le Rond d'Alembert |author=Stéphane Zaleski |year=2001 |accessdate=12 May 2013 }}</ref> |
As far as CFD is concerned, a thorough discussion of these software development paths can be found in the statement by Zaleski.<ref>{{cite web |url=http://www.lmm.jussieu.fr/~zaleski/OpenCFD.html |title=Science and Fluid Dynamics should have more open sources |work=Institut Jean le Rond d'Alembert |author=Stéphane Zaleski |year=2001 |accessdate=12 May 2013 }}</ref> |
||
''Gerris'' was distributed as [[free and open-source software]] right from the onset of the project.<ref>{{cite journal |last1=Popinet |first1=S. |title=Gerris: a tree-based adaptive solver for the incompressible Euler equations in complex geometries |journal=Journal of Computational Physics |volume=190 |issue=2 |year=2003 |pages=572–600 |doi=10.1016/s0021-9991(03)00298-5|bibcode=2003JCoPh.190..572P |citeseerx=10.1.1.12.5063 }}</ref><ref>{{cite journal |last1=Popinet |first1=S. |title=Free Computational Fluid Dynamics |journal=Cluster World |volume=2 |year=2004 |pages=2–8}}</ref> |
|||
== Continued development == |
|||
Following a redesign of the software organization, ''Gerris'' became ''Basilisk'',<ref>[http://basilisk.fr Basilisk]</ref> 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 == |
== See also == |
||
{{Portal|Free software|Physics}} |
{{Portal|Free and open-source software|Physics}} |
||
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 |
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): |
||
=== Industrial fluids === |
=== Industrial fluids === |
||
Line 89: | Line 96: | ||
==Notes== |
==Notes== |
||
{{ |
{{notelist}} |
||
==References== |
==References== |
||
Line 96: | Line 103: | ||
{{CAE software}} |
{{CAE software}} |
||
[[Category:Free software]] |
[[Category:Free software programmed in C]] |
||
[[Category:Computational fluid dynamics]] |
[[Category:Computational fluid dynamics]] |
||
[[Category:Computer-aided engineering software for Linux]] |
[[Category:Computer-aided engineering software for Linux]] |
||
[[Category:Scientific simulation software]] |
[[Category:Scientific simulation software]] |
||
[[Category:Software using the GPL license]] |
Latest revision as of 12:59, 1 June 2024
Initial release | 2001 |
---|---|
Written in | C |
Operating system | Unix, Linux |
Successor | Basilisk |
Type | CFD |
Licence | GPL |
Website | gfs |
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
[edit]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.[8]
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
[edit]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
[edit]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,[a] 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
[edit]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[12] the implementation of turbulence models will focus on the LES family rather than RANS approaches.
Programming language, library dependencies, included tools
[edit]Gerris is developed in C using the libraries Glib (object orientation, dynamic loading of modules, etc.) and GTS.[13] 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:
- analytic formulas in the parameter file
- GTS triangulated files; note that the Gerris distribution includes a tool to translate the STL format (exported by various CAD software) into GTS triangulated surfaces
- bathymetric/topographic database in KDT format; a tool is also provided to generate such a database from simple ASCII listings
Among the various ways to output Gerris results, let us just mention here:
- Graphical output in PPM format: images can then be converted in (nearly) any format using ImageMagick, and MPEG movies can be generated thanks to FFmpeg (among others).
- Simulation files (.gfs), which are actually parameters files concatenated with fields issued from the simulation; these files can then be (i) re-used as parameter files (defining new initial conditions), or (ii) processed with Gfsview.
- Gfsview, a display software shipped with Gerris, able to cope with the tree structure of the Gerris grid (a data structure which is not efficiently operated by general visualization software[b]).
Licence
[edit]CFD software, as any software, can be developed in various "realms":
- Business;
- Academic;
- Open Source.
As far as CFD is concerned, a thorough discussion of these software development paths can be found in the statement by Zaleski.[14]
Gerris was distributed as free and open-source software right from the onset of the project.[15][16]
Continued development
[edit]Following a redesign of the software organization, Gerris became Basilisk,[17] 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
[edit]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):
Industrial fluids
[edit]- Advanced Simulation Library (2015)
- Code Saturne (2007)
- FEATool Multiphysics (2013)
- OpenFOAM (2004)
- SU2 code (2012)
Geophysical fluids
[edit]Notes
[edit]References
[edit]- ^ Msadek, R. (2005). "Hydrodynamic tidal model of Cook Strait". Technical Report, National Institute of Water and Atmospheric Research.
- ^ Popinet, S. (2012). "Adaptive modelling of long-distance wave propagation and fine-scale flooding during the Tohoku tsunami". Natural Hazards and Earth System Sciences. 12 (4): 1213–1227. Bibcode:2012NHESS..12.1213P. doi:10.5194/nhess-12-1213-2012.
- ^ Popinet, S. (2011). "Quadtree-adaptive tsunami modelling". Ocean Dynamics. 61 (9): 1261–1285. Bibcode:2011OcDyn..61.1261P. CiteSeerX 10.1.1.374.7506. doi:10.1007/s10236-011-0438-z. S2CID 14848237.
- ^ Hyunuk, A.; Soonyoung, Y. (2012). "Well-balanced shallow water flow simulation on quadtree cut cell grids". Advances in Water Resources. 39: 60–70. Bibcode:2012AdWR...39...60A. doi:10.1016/j.advwatres.2012.01.003.
- ^ Popinet, S.; Rickard, G. (2007). "A tree-based solver for adaptive ocean modelling" (PDF). Ocean Modelling. 16 (3–4): 224–249. Bibcode:2007OcMod..16..224P. doi:10.1016/j.ocemod.2006.10.002.
- ^ Tsai, C.-C.; Hou, T.-H.; Popinet, S. (2013). "Wind wave prediction of tropical cyclones by a quadtree-adaptive model". Coastal Engineering. 77: 108–119. doi:10.1016/j.coastaleng.2013.02.011.
- ^ Popinet, S.; Gorman, R.M.; Rickard, G.J.; Tolman, H.L. (2010). "A quadtree-adaptive spectral wave model". Ocean Modelling. 34 (1–2): 36–49. Bibcode:2010OcMod..34...36P. CiteSeerX 10.1.1.374.5299. doi:10.1016/j.ocemod.2010.04.003. S2CID 14415336.
- ^ WaveWatchIII
- ^ O'Callaghan, J.; Rickard, G.; Popinet, S.; Stevens, C. (2010). "Response of buoyant plumes to transient discharges investigated using an adaptive solver". Journal of Geophysical Research. 115 (C11): C11025. Bibcode:2010JGRC..11511025O. doi:10.1029/2009jc005645.
- ^ Rickard, G.; O'Callaghan, J.; Popinet, S. (2009). "Numerical simulations of internal solitary waves interacting with uniform slopes using an adaptive model". Ocean Modelling. 30 (1): 16–28. Bibcode:2009OcMod..30...16R. doi:10.1016/j.ocemod.2009.05.008.
- ^ Tao, Y.; Rosswog, S.; Brüggen, M. (2013). "A simulation modeling approach to hydrothermal plumes and its comparison to analytical models". Ocean Modelling. 61: 68–80. Bibcode:2013OcMod..61...68T. doi:10.1016/j.ocemod.2012.10.001.
- ^ "Gerris (Frequently Asked Questions)". Archived from the original on 2018-06-12. Retrieved 2013-05-15.
- ^ GTS
- ^ Stéphane Zaleski (2001). "Science and Fluid Dynamics should have more open sources". Institut Jean le Rond d'Alembert. Retrieved 12 May 2013.
- ^ Popinet, S. (2003). "Gerris: a tree-based adaptive solver for the incompressible Euler equations in complex geometries". Journal of Computational Physics. 190 (2): 572–600. Bibcode:2003JCoPh.190..572P. CiteSeerX 10.1.1.12.5063. doi:10.1016/s0021-9991(03)00298-5.
- ^ Popinet, S. (2004). "Free Computational Fluid Dynamics". Cluster World. 2: 2–8.
- ^ Basilisk
- ^ ROMS
- ^ GOTM
- ^ Telemac-Mascaret
- ^ Delft3D