All Projects → grinsfem → grins

grinsfem / grins

Licence: Unknown, LGPL-2.1 licenses found Licenses found Unknown LICENSE LGPL-2.1 COPYING
Multiphysics Finite Element package built on libMesh

Programming Languages

C++
36643 projects - #6 most used programming language
M4
1887 projects
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to grins

Mfem
Lightweight, general, scalable C++ library for finite element methods
Stars: ✭ 667 (+1382.22%)
Mutual labels:  hpc, amr, fem
Moose
Multiphysics Object Oriented Simulation Environment
Stars: ✭ 652 (+1348.89%)
Mutual labels:  amr, fem
featool-multiphysics
FEATool - "Physics Simulation Made Easy" (Fully Integrated FEA, FEniCS, OpenFOAM, SU2 Solver GUI & Multi-Physics Simulation Platform)
Stars: ✭ 190 (+322.22%)
Mutual labels:  fem, multiphysics
PyMFEM
Python wrapper for MFEM
Stars: ✭ 91 (+102.22%)
Mutual labels:  hpc, fem
bitpit
Open source library for scientific HPC
Stars: ✭ 80 (+77.78%)
Mutual labels:  hpc, amr
Libmesh
libMesh github repository
Stars: ✭ 450 (+900%)
Mutual labels:  amr, fem
Samrai
Structured Adaptive Mesh Refinement Application Infrastructure - a scalable C++ framework for block-structured AMR application development
Stars: ✭ 160 (+255.56%)
Mutual labels:  hpc, amr
suanPan
🧮 An Open Source, Parallel and Heterogeneous Finite Element Analysis Framework
Stars: ✭ 29 (-35.56%)
Mutual labels:  hpc, fem
plantFEM
This is a plant/farming simulator based on Finite Element Method, which targets crops in fields. This software provides multi-physical simulations of agriculture for canopies, plants, and organs for farmers, breeders, and agronomists. Please try and give us feedback. This github-page is a mirror of the following gitlab-page.
Stars: ✭ 31 (-31.11%)
Mutual labels:  fem
amr-wind
AMReX-based structured wind solver
Stars: ✭ 46 (+2.22%)
Mutual labels:  amr
claw-compiler
CLAW Compiler for Performance Portability
Stars: ✭ 38 (-15.56%)
Mutual labels:  hpc
nerd
Your personal nerd that takes care of running jobs on the Nerdalize cloud
Stars: ✭ 15 (-66.67%)
Mutual labels:  hpc
parallel
PARALLEL: Stata module for parallel computing
Stars: ✭ 97 (+115.56%)
Mutual labels:  hpc
forward
Port Forwarding Utility
Stars: ✭ 41 (-8.89%)
Mutual labels:  hpc
SmartRedis
SmartSim Infrastructure Library Clients.
Stars: ✭ 37 (-17.78%)
Mutual labels:  hpc
OpenCossan
OpenCossan is an open and free toolbox for uncertainty quantification and management.
Stars: ✭ 40 (-11.11%)
Mutual labels:  sensitivity-analysis
wrench
WRENCH: Cyberinfrastructure Simulation Workbench
Stars: ✭ 25 (-44.44%)
Mutual labels:  hpc
grendel
Bare Metal Provisioning system for HPC Linux clusters
Stars: ✭ 35 (-22.22%)
Mutual labels:  hpc
fml
Fused Matrix Library
Stars: ✭ 24 (-46.67%)
Mutual labels:  hpc
mckernel
McKernel
Stars: ✭ 88 (+95.56%)
Mutual labels:  hpc

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 C++17 compiler, GRINS requires an up-to-date installation of the libMesh finite element library.

libMesh

GRINS development both drives and is driven by libMesh development. Thus, the required minimum master hash of libMesh may change in GRINS master. The current required libMesh master hash is f27eba2 PR #3270, as of GRINS PR #620. 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.

Optional Packages

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

The current required minimum hash for using Antioch is libantioch/antioch@e17822d (libantioch/antioch#265).

Building GRINS

GRINS uses an Autotools build system, so typical GNU build commands are used. We support, and encourage, out-of-source builds (so-called VPATH builds). However, in-source builds are supported.

  1. cd grins-clone
  2. ./bootstrap (generate configure script)
  3. cd ../ & mkdir build & cd build
  4. ../grins-clone/configure --prefix=/path/to/install --with-libmesh=/path/to/libMesh (for more options, do ../grins-clone/configure --help)
  5. make (note parallel builds are supported)
  6. make check (note parallel-tests are supported)
  7. 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".

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].