GithubHelp home page GithubHelp logo

beingmechon / goma Goto Github PK

View Code? Open in Web Editor NEW

This project forked from goma/goma

0.0 0.0 0.0 15.42 MB

A Full-Newton Finite Element Program for Free and Moving Boundary Problems with Coupled Fluid/Solid Momentum, Energy, Mass, and Chemical Species Transport

Home Page: https://www.gomafem.com

License: GNU General Public License v2.0

Makefile 0.16% C 93.25% C++ 1.77% Objective-C 2.10% Shell 0.49% Fortran 2.05% CMake 0.15% Python 0.03%

goma's Introduction

Goma 6.2

A Full-Newton Finite Element Program for Free and Moving Boundary Problems with Coupled Fluid/Solid Momentum, Energy, Mass, and Chemical Species Transport

For more information see the Goma website

Changes in version 6.2

  • Many bug fixes
  • Stratimikos support
  • Log conformation tensor stress model
  • Hysing and Denner surface tension models for level set
  • Suspension balance updates
  • Updated SUPG for species
  • Quadratic triangles
  • And more...

Changes in version 6.1

  • Automatic creation of brk files (see docs/parallel_integration.md)
  • Bug fixes (mostly MPI related bugs)
  • Epetra is now a supported matrix format (see docs/epetra_matrix_format.md)
  • MUMPS is now supported through Amesos
  • An experimental build script to build library dependencies is available under scripts/

Build Instructions

Get the Goma source code

Run the command

git clone https://github.com/goma/goma

Get the prerequisites

Goma requires many third party libraries (TPLs, listed in scripts/README.md) which can be built automatically with the build script located in the scripts directory.

Build script requirements

The build-goma-dependencies.sh script relies on several packages readily available in many repositories.

For Ubuntu this will install the necessary packages to run the script:

sudo apt-get install git build-essential m4 zlib1g-dev libx11-dev gfortran

For CentOS

sudo yum install git patch gcc gcc-c++ gcc-gfortran m4 make wget bzip2 tar zlib-devel libX11-devel

The scripts README gives a more specific list of minimum requirements. Please ensure the script requirements are met before attempting to use it.

Build Everything

To build third party libraries (TPLs):

cd goma/scripts

./build-goma-dependencies.sh [-j NUM_PROCS] GOMA_TPL_INSTALL_DIRECTORY

Where -j NUM_PROCS is optional to run the build with multiple processors and GOMA_TPL_INSTALL_DIRECTORY is where you would like the third party libraries to be installed.

Add the openmpi bin directory to your PATH, the trilinos bin directory to your path, and the openmpi lib directory to your LD_LIBRARY_PATH See scripts/README.md for more details on setting paths.

Finaly to build goma copy the settings.mk-example to settings.mk edit GOMA_LIBS to point to your TPL directory, and make sure the trilinos and openmpi paths/versions are correct.

Then to build goma run:

make

The goma executable will be built in the [path to goma]/bin directory

Optionally goma can be installed with

make install PREFIX="/path/to/install/"

default prefix if unspecified is /usr/local

Environment Variables

OpenMPI should be added to the path and library path. If the build script was used to build openmpi you would use something like:

export LD_LIBRARY_PATH="/[path to gomalibs]/openmpi-4.0.2/lib:$LD_LIBRARY_PATH"
export PATH="/[path to gomalibs]/openmpi-4.0.2/bin:$PATH"

SEACAS tools from Trilinos (e.g. aprepro and blot) should be added to your path

export PATH="/[path to gomalibs]/trilinos-12.18.1/bin:$PATH"  

For netcdf utilities such as ncdump add netcdf executables to your path

export PATH="/[path to gomalibs]/netcdf-c-4.7.3/bin:$PATH"  

Run the tutorial

To get started with Goma, use the following:

goma's People

Contributors

wortiz avatar acochrane avatar saroberts avatar rbsecor avatar tjiptowi avatar dshari avatar richmartin33 avatar andrewushakov avatar drbobf avatar jtmcconnell avatar natis1 avatar aditya369thalluri avatar prschun avatar abhuiyan avatar rrrao 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.