All Projects → mfem → Mfem

mfem / Mfem

Licence: bsd-3-clause
Lightweight, general, scalable C++ library for finite element methods

Projects that are alternatives of or similar to Mfem

PyMFEM
Python wrapper for MFEM
Stars: ✭ 91 (-86.36%)
Mutual labels:  hpc, parallel-computing, scientific-computing, fem, finite-elements
Feelpp
💎 Feel++: Finite Element Embedded Language and Library in C++
Stars: ✭ 229 (-65.67%)
Mutual labels:  parallel-computing, finite-elements, scientific-computing, fem, high-performance-computing
bitpit
Open source library for scientific HPC
Stars: ✭ 80 (-88.01%)
Mutual labels:  hpc, parallel-computing, scientific-computing, amr
Samrai
Structured Adaptive Mesh Refinement Application Infrastructure - a scalable C++ framework for block-structured AMR application development
Stars: ✭ 160 (-76.01%)
Mutual labels:  parallel-computing, amr, scientific-computing, hpc
Opencoarrays
A parallel application binary interface for Fortran 2018 compilers.
Stars: ✭ 151 (-77.36%)
Mutual labels:  parallel-computing, scientific-computing, hpc, high-performance-computing
Sundials
SUNDIALS is a SUite of Nonlinear and DIfferential/ALgebraic equation Solvers. This is a mirror of current releases, and development will move here eventually. Pull requests are welcome for bug fixes and minor changes.
Stars: ✭ 194 (-70.91%)
Mutual labels:  parallel-computing, scientific-computing, hpc, high-performance-computing
Core
parallel finite element unstructured meshes
Stars: ✭ 124 (-81.41%)
Mutual labels:  parallel-computing, finite-elements, hpc
Batchtools
Tools for computation on batch systems
Stars: ✭ 127 (-80.96%)
Mutual labels:  parallel-computing, hpc, high-performance-computing
Dash
DASH, the C++ Template Library for Distributed Data Structures with Support for Hierarchical Locality for HPC and Data-Driven Science
Stars: ✭ 134 (-79.91%)
Mutual labels:  parallel-computing, hpc, high-performance-computing
Ngsolve
Netgen/NGSolve is a high performance multiphysics finite element software. It is widely used to analyze models from solid mechanics, fluid dynamics and electromagnetics. Due to its flexible Python interface new physical equations and solution algorithms can be implemented easily.
Stars: ✭ 171 (-74.36%)
Mutual labels:  parallel-computing, finite-elements, fem
grins
Multiphysics Finite Element package built on libMesh
Stars: ✭ 45 (-93.25%)
Mutual labels:  hpc, amr, fem
ParallelUtilities.jl
Fast and easy parallel mapreduce on HPC clusters
Stars: ✭ 28 (-95.8%)
Mutual labels:  hpc, parallel-computing, high-performance-computing
PSyclone
Domain-specific compiler for Finite Difference/Volume/Element Earth-system models in Fortran
Stars: ✭ 67 (-89.96%)
Mutual labels:  parallel-computing, high-performance-computing, finite-elements
Solidspy
2D-Finite Element Analysis with Python
Stars: ✭ 142 (-78.71%)
Mutual labels:  finite-elements, scientific-computing, fem
Moose
Multiphysics Object Oriented Simulation Environment
Stars: ✭ 652 (-2.25%)
Mutual labels:  finite-elements, amr, fem
t8code
Parallel algorithms and data structures for tree-based AMR with arbitrary element shapes.
Stars: ✭ 37 (-94.45%)
Mutual labels:  hpc, parallel-computing, high-performance-computing
Libmesh
libMesh github repository
Stars: ✭ 450 (-32.53%)
Mutual labels:  finite-elements, amr, fem
Elmerfem
Official git repository of Elmer FEM software
Stars: ✭ 523 (-21.59%)
Mutual labels:  parallel-computing, finite-elements, fem
blas-benchmarks
Timing results for BLAS (Basic Linear Algebra Subprograms) libraries in R
Stars: ✭ 24 (-96.4%)
Mutual labels:  hpc, high-performance-computing
monolish
monolish: MONOlithic LInear equation Solvers for Highly-parallel architecture
Stars: ✭ 166 (-75.11%)
Mutual labels:  hpc, scientific-computing
                Finite Element Discretization Library
                               __
                   _ __ ___   / _|  ___  _ __ ___
                  | '_ ` _ \ | |_  / _ \| '_ ` _ \
                  | | | | | ||  _||  __/| | | | | |
                  |_| |_| |_||_|   \___||_| |_| |_|

                           https://mfem.org

MFEM is a modular parallel C++ library for finite element methods. Its goal is to enable high-performance scalable finite element discretization research and application development on a wide variety of platforms, ranging from laptops to supercomputers.

  • For building instructions, see the file INSTALL, or type "make help".

  • Copyright and licensing information can be found in files LICENSE and NOTICE.

  • The best starting point for new users interested in MFEM's features is to review the examples and miniapps at https://mfem.org/examples.

  • Developers interested in contributing to the library, should read the instructions and documentation in the CONTRIBUTING.md file.

Conceptually, MFEM can be viewed as a finite element toolbox that provides the building blocks for developing finite element algorithms in a manner similar to that of MATLAB for linear algebra methods. In particular, MFEM provides support for arbitrary high-order H1-conforming, discontinuous (L2), H(div)-conforming, H(curl)-conforming and NURBS finite element spaces in 2D and 3D, as well as many bilinear, linear and nonlinear forms defined on them. It enables the quick prototyping of various finite element discretizations, including Galerkin methods, mixed finite elements, Discontinuous Galerkin (DG), isogeometric analysis, hybridization and Discontinuous Petrov-Galerkin (DPG) approaches.

MFEM includes classes for dealing with a wide range of mesh types: triangular, quadrilateral, tetrahedral and hexahedral, as well as surface and topologically periodical meshes. It has general support for mesh refinement, including local conforming and non-conforming (AMR) adaptive refinement. Arbitrary element transformations, allowing for high-order mesh elements with curved boundaries, are also supported.

When used as a "finite element to linear algebra translator", MFEM can take a problem described in terms of finite element-type objects, and produce the corresponding linear algebra vectors and fully or partially assembled operators, e.g. in the form of global sparse matrices or matrix-free operators. The library includes simple smoothers and Krylov solvers, such as PCG, MINRES and GMRES, as well as support for sequential sparse direct solvers from the SuiteSparse library. Nonlinear solvers (the Newton method), eigensolvers (LOBPCG), and several explicit and implicit Runge-Kutta time integrators are also available.

MFEM supports MPI-based parallelism throughout the library, and can readily be used as a scalable unstructured finite element problem generator. Starting with version 4.0, MFEM offers support for GPU acceleration, and programming models, such as CUDA, HIP, OCCA, RAJA and OpenMP. MFEM-based applications require minimal changes to switch from a serial to a highly-performant MPI-parallel version of the code, where they can take advantage of the integrated linear solvers from the hypre library. Comprehensive support for other external packages, e.g. PETSc, SUNDIALS and libCEED is also included, giving access to additional linear and nonlinear solvers, preconditioners, time integrators, etc.

For examples of using MFEM, see the examples/ and miniapps/ directories, as well as the OpenGL visualization tool GLVis which is available at https://glvis.org.

MFEM is distributed under the terms of the BSD-3 license. All new contributions must be made under this license. See LICENSE and NOTICE for details.

SPDX-License-Identifier: BSD-3-Clause LLNL Release Number: LLNL-CODE-806117 DOI: 10.11578/dc.20171025.1248

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