Code Monkey home page Code Monkey logo

gofem's Introduction

Gofem – Go Finite Element Method

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].

Content

  1. ana – analytical solutions
  2. shp – shape (interpolation) structures and quadrature points
  3. mdl/generic – generic models (placeholder for parameters set)
  4. mdl/solid – models for solids
  5. mdl/fluid – models for fluids (liquid / gas)
  6. mdl/conduct – models for liquid conductivity within porous media
  7. mdl/retention – models for liquid retention within porous media
  8. mdl/diffusion – models for diffusion applications
  9. mdl/thermomech – models for thermo-mechanical applications
  10. mdl/porous – models for porous media (TPM-based)
  11. inp – input data (.sim = simulation, .mat = materials, .msh = meshes)
  12. ele – finite elements
  13. ele/solid – elements for solid mechanics
  14. ele/seepage – elements for seepage problems (with liquid and/or gases)
  15. ele/diffusion – elements for diffusion(-like) problems
  16. ele/thermomech – elements for thermo-mechanical applications
  17. ele/porous – elements for porous media simulations (TPM)
  18. fem – finite element method (main, domain, solver, ...)
  19. tests – (unit) tests of complete simulations
  20. tests/solid – tests of solid mechanics applications
  21. tests/seepage – tests of seepage problems
  22. tests/diffusion – tests of diffusion problems
  23. tests/thermomech – tests of thermo-mechanical applications
  24. tests/porous – tests of porous media simulations
  25. out – output routines (post-processing and plotting)

Examples

See examples here: https://github.com/cpmech/gofem/blob/master/examples/README.md

Installation and documentation

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

References

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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

Acknowledgements

Funding from the Australian Research Council is gratefully acknowledged.

License

Unless otherwise noted, the Gofem source files are distributed under the BSD-style license found in the LICENSE file.

gofem's People

Contributors

cpmech avatar rauldurand avatar hokkanen avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.