Gosl is a computing library written in go language (golang) to help with the development of software for scientific research. The library tries to be as general as possible. The use of concurrency for multi-threaded applications and message passing for parallel computations are considered. Functions and structures for geometry calculations, random numbers generation and probability distributions, optimisation algorithms, and plotting and visualisation are implemented as well. This library helped with the development of the results presented in [1-5].
- chk – check and unit test
- io – input/output
- utl – utilities
- plt – plotting
- mpi – message passing interface
- la – linear algebra
- fdm – finite differences method
- num – numerical methods
- fun – scalar functions of one scalar and one vector
- gm – geometry
- gm/msh – mesh generation
- gm/tri – mesh generation: triangles
- gm/rw – mesh generation: read/write
- graph – graph theory
- ode – ordinary differential equations
- opt – optimisation
- rnd – random numbers and probability distributions
- tsr – tensor algebra and definitions for continuum mechanics
- vtk – visualisation tool kit
See examples here: https://github.com/cpmech/gosl/blob/master/examples/README.md
- To install on Windows, see instructions for Windows here
- To install on Mac OS X, see instructions for Mac OS X here
- To install on Debian/Ubuntu/Linux, type the following commands:
sudo apt-get install libopenmpi-dev libhwloc-dev libsuitesparse-dev libmumps-dev
sudo apt-get install gfortran libvtk6-dev python-scipy python-matplotlib dvipng
mkdir -p $GOPATH/src/github.com/cpmech
cd $GOPATH/src/github.com/cpmech
git clone https://github.com/cpmech/gosl.git
cd gosl
./all.bash
Make sure that the following environment variable is defined:
export PYTHONPATH=$PYTHONPATH:$GOPATH/src/github.com/cpmech/gosl/scripts
The documentation for developers is available here: http://rawgit.com/cpmech/gosl/master/doc/index.html
- Pedroso DM (2015) A consistent u-p formulation for porous media with hysteresis. Int Journal for Numerical Methods in Engineering, 101(8) 606-634 http://dx.doi.org/10.1002/nme.4808
- Pedroso DM (2015) A solution to transient seepage in unsaturated porous media. Computer Methods in Applied Mechanics and Engineering, 285 791-816 http://dx.doi.org/10.1016/j.cma.2014.12.009
Funding from the Australian Research Council is gratefully acknowledged.
Unless otherwise noted, the Gosl source files are distributed under the BSD-style license found in the LICENSE file.