Coder Social home page Coder Social logo

xyuan / grins Goto Github PK

View Code? Open in Web Editor NEW

This project forked from grinsfem/grins

0.0 2.0 0.0 218.29 MB

Multiphysics Finite Element package built on libMesh

Home Page: http://grinsfem.github.io

License: Other

Makefile 1.78% Shell 1.50% M4 5.72% Python 0.22% HTML 0.01% C++ 90.77%

grins's Introduction

GRINS

General Reacting Incompressible Navier-Stokes (GRINS) was initiated
to house common modeling work centered around using the incompressible and variable-density (low-Mach) Navier-Stokes equations utilizing the libMesh finite element library, including both MPI and MPI+threads parallelism, as provided by libMesh. GRINS has now become a tool for rapidly developing formulations and algorithms for the solution of complex multiphysics applications. GRINS originally lived within the PECOS center at the Institute for Computational Engineering and Sciences (ICES) at The University of Texas at Austin.

We encourage pull requests for new features, bug fixes, etc. For questions regarding development, we have a grins-devel Google group setup. For user related questions, please use the grins-users group.

Dependencies

Requirements

In addition to a modern C++ compiler, GRINS requires an up-to-date installation of the libMesh finite element library. GRINS release 0.5.0 can use libMesh versions as old as 0.9.4. Subsequent to the 0.5.0 release requires at least libMesh 1.0.0. The Boost C++ library is also required (header only).

Optional Packages

To enable the reacting low Mach Navier-Stokes physics class, GRINS must be compiled with an external chemistry library. While Cantera is partially supported, Antioch is fully supported.

Building GRINS

GRINS uses an Autotools build system, so typical GNU build commands are used.

  1. ./bootstrap (generate configure script)
  2. ./configure --prefix=/path/to/install --with-libmesh=/path/to/libMesh --with-boost=/path/to/boost (for more options, do ./configure --help)
  3. make (note parallel builds are supported)
  4. make check (note parallel-tests are supported)
  5. make install

LD_LIBRARY_PATH

If you've compiled libMesh with PETSc or other external libraries and have compiled GRINS with Antioch, Cantera, or other external libraries, you will need to add them to your LD_LIBRARY_PATH as we do not use -rpath when linking to the libraries.

METHOD

By default, GRINS leverages the METHOD environment variable (described here) in order to retrieve the CXXFLAGS variable from the libMesh installation (if METHOD is not present, the default is "opt"). Note that unlike libMesh, GRINS currently only supports building one METHOD at a time. Hence, we use METHOD and not METHODS. For example


./configure METHOD=devel

is valid.

The user can define their own CXXFLAGS variable by passing


--disable-libmesh-flags CXXFLAGS="your flags here"

to configure.

Examples

Upon running make install, there are several examples in the /path/to/install/examples directory. Each example can be run with the local run.sh script. You may set the environment variable GRINS_RUN to run with more than one processor, e.g. export GRINS_RUN="mpiexec -np 4". Additionally, you can set the environment variable GRINS_SOLVER_OPTIONS to pass solver options, e.g. to use MUMPS through PETSc (if you built libMesh with PETSc and built PETSc with MUMPS), export GRINS_SOLVER_OPTIONS="-ksp_type preonly -pc_type lu -pc_factor_mat_solver_package mumps".

grins's People

Contributors

pbauman avatar roystgnr avatar vikramvgarg avatar onkarsahni avatar tradowsk avatar nicholasmalaya avatar cahaynes avatar gdmcbain avatar koomie avatar

Watchers

Xingqiu Yuan avatar  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.