Gofem (Go Finite Element Method) is an implementation of the finite element method (FEM) in Go language for applications in solid mechanics. The code aims to be as general as possible and has a focus on porous media mechanics. Nonetheless, classical plasticity and the solution of multi-physics coupled problems are also targeted by Gofem. Efficiency is a goal as long as the quality of code and code maintenance is not penalised. The computational efficiency is achieved by parallel computing using message passage interface (MPI). Several unit tests are employed for every detail of the code and its usage aims to be comprehensive. Gofem depends on the Go Scientific Library (Gosl) and was developed for obtaining the results presented in a number of journal papers, including [1-5].
- ana – analytical solutions
- shp – shape (interpolation) structures and quadrature points
- mdl/generic – generic models (placeholder for parameters set)
- mdl/solid – models for solids
- mdl/fluid – models for fluids (liquid / gas)
- mdl/conduct – models for liquid conductivity within porous media
- mdl/retention – models for liquid retention within porous media
- mdl/diffusion – models for diffusion applications
- mdl/thermomech – models for thermo-mechanical applications
- mdl/porous – models for porous media (TPM-based)
- inp – input data (.sim = simulation, .mat = materials, .msh = meshes)
- ele – finite elements
- ele/solid – elements for solid mechanics
- ele/seepage – elements for seepage problems (with liquid and/or gases)
- ele/diffusion – elements for diffusion(-like) problems
- ele/thermomech – elements for thermo-mechanical applications
- ele/porous – elements for porous media simulations (TPM)
- fem – finite element method (main, domain, solver, ...)
- tests – (unit) tests of complete simulations
- tests/solid – tests of solid mechanics applications
- tests/seepage – tests of seepage problems
- tests/diffusion – tests of diffusion problems
- tests/thermomech – tests of thermo-mechanical applications
- tests/porous – tests of porous media simulations
- out – output routines (post-processing and plotting)
See examples here: https://github.com/cpmech/gofem/blob/master/examples/README.md
mkdir -p $GOPATH/src/github.com/cpmech
cd $GOPATH/src/github.com/cpmech
git clone https://github.com/cpmech/gofem.git
cd gofem
./all.bash
The documentation for developers is available here: http://rawgit.com/cpmech/gofem/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
- Pedroso DM, Sheng D and Zhao, J (2009) The concept of reference curves for constitutive modelling in soil mechanics, Computers and Geotechnics, 36(1-2), 149-165, http://dx.doi.org/10.1016/j.compgeo.2008.01.009
- Pedroso DM and Williams DJ (2010) A novel approach for modelling soil-water characteristic curves with hysteresis, Computers and Geotechnics, 37(3), 374-380, http://dx.doi.org/10.1016/j.compgeo.2009.12.004
- Pedroso DM and Williams DJ (2011) Automatic Calibration of soil-water characteristic curves using genetic algorithms. Computers and Geotechnics, 38(3), 330-340, http://dx.doi.org/10.1016/j.compgeo.2010.12.004
Funding from the Australian Research Council is gratefully acknowledged.
Unless otherwise noted, the Gofem source files are distributed under the BSD-style license found in the LICENSE file.