All Projects â†’ TLCFEM â†’ suanPan

TLCFEM / suanPan

Licence: GPL-3.0 license
🧮 An Open Source, Parallel and Heterogeneous Finite Element Analysis Framework

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
fortran
972 projects
TeX
3793 projects
CSS
56736 projects
CMake
9771 projects

Projects that are alternatives of or similar to suanPan

grins
Multiphysics Finite Element package built on libMesh
Stars: ✭ 45 (+55.17%)
Mutual labels:  hpc, fem
PyMFEM
Python wrapper for MFEM
Stars: ✭ 91 (+213.79%)
Mutual labels:  hpc, fem
Mfem
Lightweight, general, scalable C++ library for finite element methods
Stars: ✭ 667 (+2200%)
Mutual labels:  hpc, fem
Samrai
Structured Adaptive Mesh Refinement Application Infrastructure - a scalable C++ framework for block-structured AMR application development
Stars: ✭ 160 (+451.72%)
Mutual labels:  hpc
Spack
A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
Stars: ✭ 2,425 (+8262.07%)
Mutual labels:  hpc
Pyslurm
Python Interface to Slurm
Stars: ✭ 222 (+665.52%)
Mutual labels:  hpc
generator-nullfactory-xrm
Yeoman generator for Dynamics 365 Solutions. It generates a project structure that facilitates the quick creation builds and automated release strategies with minimal effort.
Stars: ✭ 15 (-48.28%)
Mutual labels:  dynamics
Future.apply
🚀 R package: future.apply - Apply Function to Elements in Parallel using Futures
Stars: ✭ 159 (+448.28%)
Mutual labels:  hpc
ogs
DO NOT USE THIS REPO! Migrated to https://gitlab.opengeosys.org/ogs/ogs!
Stars: ✭ 104 (+258.62%)
Mutual labels:  fem
Relion
Image-processing software for cryo-electron microscopy
Stars: ✭ 219 (+655.17%)
Mutual labels:  hpc
Oq Engine
OpenQuake's Engine for Seismic Hazard and Risk Analysis
Stars: ✭ 207 (+613.79%)
Mutual labels:  hpc
Hpcinfo
Information about many aspects of high-performance computing. Wiki content moved to ~/docs.
Stars: ✭ 171 (+489.66%)
Mutual labels:  hpc
Occa
JIT Compilation for Multiple Architectures: C++, OpenMP, CUDA, HIP, OpenCL, Metal
Stars: ✭ 230 (+693.1%)
Mutual labels:  hpc
Caliper
Caliper is an instrumentation and performance profiling library
Stars: ✭ 162 (+458.62%)
Mutual labels:  hpc
tutorials
Tutorials for the usage of the Uni.lu HPC platform
Stars: ✭ 94 (+224.14%)
Mutual labels:  hpc
Osaca
Open Source Architecture Code Analyzer
Stars: ✭ 162 (+458.62%)
Mutual labels:  hpc
vpic
Vector Particle-In-Cell (VPIC) Project
Stars: ✭ 124 (+327.59%)
Mutual labels:  hpc
Easybuild Easyconfigs
A collection of easyconfig files that describe which software to build using which build options with EasyBuild.
Stars: ✭ 200 (+589.66%)
Mutual labels:  hpc
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 (+568.97%)
Mutual labels:  hpc
Nek5000
our classic
Stars: ✭ 219 (+655.17%)
Mutual labels:  hpc

suanPan

DOI license documentation release suanpan Chocolatey Chocolatey download stable build codecov codacy CodeFactor Codiga language language size issues chat FOSSA Status

gplv3-or-later

Introduction

🧮 suanPan is a finite element method (FEM) simulation platform for applications in fields such as solid mechanics and civil/structural/seismic engineering. The name suanPan (in some places such as suffix it is also abbreviated as suPan) comes from the term Suan Pan (įŽ—į›¤), which is Chinese abacus. suanPan is written in modern high quality C++ code and is targeted to provide an efficient, concise, flexible and reliable FEM simulation platform.

suanPan is partially influenced by popular (non-)commercial FEA packages, such as ABAQUS UNIFIED FEA, ANSYS and OpenSees.

Please check documentation here for command references. Please consider starring ⭐ the project!

Features

The highlights of suanPan are

  • suanPan is fast, both memory and thread safe.
  • suanPan is designed based on the shared memory model and supports parallelism on heterogeneous architectures, for example multithreaded CPU + optional GPU. The parallelism is available for both element state updating and global matrix assembling.
  • suanPan is open source and easy to be extended to incorporate user-defined elements, materials, etc.
  • suanPan separates the FEA model part from the linear algebra operation part, which significantly reduces the complexity and cost of development of new models.
  • suanPan utilizes the new language features shipped with the latest standards (C++11 to C++20), such as new STL containers, smart pointers and many others.
  • suanPan supports simple visualization supported by VTK.

Quick Start

Execute the application out-of-the-box in terminal on Linux using one of the following commands depending on how the application is obtained. See details below.

# in folder bin/ for linux portable tarball
./suanPan.sh
# for linux packages and snap
suanPan
# for flatpak
flatpak run flathub io.github.tlcfem.suanPan

Or on Windows,

# in the folder containing suanPan.exe
.\suanPan.exe

First time user can use overview command to go through a quick introduction.

+-----------------------------------------------------+
|   __        __            suanPan is an open source |
|  /  \      |  \              FEM framework (64-bit) |
|  \__       |__/  __   __         Betelgeuse (2.8.0) |
|     \ |  | |    |  \ |  |         by tlc @ 10fd6147 |
|  \__/ |__| |    |__X |  |       all rights reserved |
|                              10.5281/zenodo.1285221 |
+-----------------------------------------------------+
|  https://github.com/TLCFEM/suanPan                  |
|  https://tlcfem.github.io/suanPan-manual/latest     |
+-----------------------------------------------------+
|  https://gitter.im/suanPan-dev/community            |
+-----------------------------------------------------+

suanPan ~<> overview

Sample models are available for almost all models/commands. Please check the Example folder for details. Further details can be seen here regarding how to run model files.

Installation

Only 64-bit version is compiled. It is assumed that AVX is available thus if the program fails, please check if your CPU supports AVX.

Windows

Binary Package

The archives of binaries are released under Release page.

  1. suanpan-win-mkl-vtk.zip is the portable version.
  2. suanpan-win-mkl-vtk.exe is the installer.

Chocolatey

The binaries, which are compiled with Intel MKL and VTK, are available on Chocolatey, please use the following command to install the package.

  1. Follow the instructions to install Chocolatey.

  2. Use the following command to install suanPan.

    choco install suanpan
  3. It is recommended to use a modern terminal such as Windows Terminal and Fluent Terminal for better output display.

The Chocolatey repo available to you may not be up-to-date. If the latest version is not available, please try alternatives, such as portable binaries or scoop.

asciicast

Scoop

It is also possible to use Scoop to install the package.

  1. Install Scoop.

    Set-ExecutionPolicy RemoteSigned -scope CurrentUser
    iwr -useb get.scoop.sh | iex
  2. Install suanPan.

    scoop install suanpan

Linux

Linux's users are recommended to obtain the binaries via snap or flatpak.

Snap

The snap supports visualization via VTK and uses Intel MKL for linear algebra. The edge channel is in sync with the dev branch. The stable channel is in sync with the master branch.

Get it from the Snap Store

asciicast

Flatpak

Flatpak is also available if preferred. The beta channel is in sync with the dev branch. The stable channel is in sync with the master branch.

Download on Flathub

# add repo
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# or the beta channel
# flatpak remote-add --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo
# install
flatpak install flathub io.github.tlcfem.suanPan
# define alias
echo "alias suanpan=\"flatpak run io.github.tlcfem.suanPan\"" >> ~/.bashrc

Installation Packages

Alternatively, download the RPM (Fedora 36) or DEB (Ubuntu 22.04) package from the release page. The packages may not be compatible with older distributions (due to different version of libstdc++). It is also possible to compile the package via docker, check the dockerfiles under the Script folder, for any questions please open an issue.

Other Platforms

Precompiled binaries are provided via CI/CD on MacOS, Windows and Ubuntu. Please download the file from the release page.

A few flavors are available:

  1. vtk --- visualization support is enabled, with this you can record VTK files for postprocessing, however, OpenGL may be missing on server systems
  2. mkl --- linear algebra operations are offloaded to MKL, which gives optimal performance on Intel chips
  3. openblas --- linear algebra operations are offloaded to OpenBLAS, which may outperform MKL on AMD platforms

Advanced users can compile the program from source by themselves in order to enable GPU based solvers which require available CUDA library.

Since CI/CD uses GCC 11 (on Linux) and Clang 13.0.1 (on MacOS), it may be required to update/install proper libstdc++ (or libc++) version. The easiest way is to install the same compiler. For example, on Ubuntu 22.04,

# Ubuntu
sudo apt install gcc g++ gfortran libomp5

For VTK enabled versions, it may be necessary to install OpenGL.

# Ubuntu
sudo apt install libglu1-mesa-dev freeglut3-dev mesa-common-dev libglvnd-dev

Automation Related

On Windows, a batch file named as AddAssociation.bat is provided in the archive. It provides file associations and prepares a proper working environment (build system, autocompletion, highlighting) with Sublime Text. It also adds file associations with .sp and .supan files, please run the AddAssociation.bat file with administrator privilege. Sublime Text autocompletion and syntax highlighting files are also provided. Please install Sublime Text first and execute the batch file with the administrator privilege.

On Linux, a script file named as suanPan.sh is provided. By executing

./suanPan.sh --create-link

It adds Sublime Text autocompletion and syntax highlighting files to proper location if Sublime Text configuration folder is found. It also adds a command alias suanpan to ~/.local/bin and a desktop file to ~/.local/share/applications.

Dependency

Additional libraries used in suanPan are listed as follows.

Those libraries may depend on other libraries such as zlib and Szip. Additional tools may be used by suanPan, they are

How To Compile

Please refer to the corresponding page in manual for details.

Happy Modelling

an example of simulation of particle collision

Licence

FOSSA Status

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