About foresight
foresight (FORtran Easy Svg Interactive Gnuplot-like Html Tool) is a Fortran library and command line tool for the small graphical work that surrounds scientific computing: convergence histories, monitored quantities of a running job, quick looks at output files, benchmark charts. It renders gnuplot's 2D plot styles (curves, bars, box plots, heatmaps, vector fields, polar and spider plots) and dashboard charts (readouts, gauges, pies) to self-contained interactive HTML pages, static SVG, or text, and needs nothing but a Fortran compiler.
Why
That grey zone between computing and visualisation is usually covered by Python, gnuplot or MATLAB. Each brings its own runtime into a workflow that is otherwise pure Fortran: a Python environment to maintain on every cluster, a gnuplot build with the right terminals, glue scripts in a second language. foresight takes the opposite path:
- the plotting core is Fortran: data never leaves the language, the solver can plot directly, and the build is one more FoBiS mode;
- the browser is the viewer: every workstation already has one, and an HTML page with an embedded script gives zoom and pan without any GUI toolkit;
- the command language is gnuplot's: a subset, interpreted by the library, so existing habits and many existing scripts carry over.
What it is not
foresight is deliberately scoped. It does not aim at publication figures with LaTeX labels (use pgfplots or matplotlib), 3D or field visualisation (use ParaView through VTKFortran), or fitting and 3D plots (fit, splot). Anything outside the supported gnuplot subset is reported as an error naming the command, never silently ignored.
Where to start
- Install the library and the command line.
- Follow the tutorial: one solver run, from a first plot to a live dashboard.
- Look up a task in the cookbook, a command or method in the reference.
Releases and their changes are in the changelog.
Authors
- Stefano Zaghi — @szaghi
Contributions are welcome — see the Contributing page.
Copyrights
foresight is distributed under the GNU General Public License v3.