Popularity
1.9
Growing
Activity
7.4
-
45
8
8

Description

[🧮 **suanPan**](https://tlcfem.github.io/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](https://en.wikipedia.org/wiki/Suanpan). **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](https://www.3ds.com/products-services/simulia/products/abaqus/), [ANSYS](http://www.ansys.com/) and [OpenSees](http://opensees.berkeley.edu/).

Programming language: C++
License: GNU General Public License v3.0 only
Tags: Scientific Computing     FEM     HPC     IGA    
Latest version: v2.3

suanPan alternatives and similar libraries

Based on the "Scientific Computing" category.
Alternatively, view suanPan alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of suanPan or a related project?

Add another 'Scientific Computing' Library

README

suanPan

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

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 and here for command references. Please consider star ⭐ 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 expanded to incorporate user-defined elements, materials, etc.
  • suanPan separates the FEA model part from the linear algebra operation part, which significantly reduces the complexity of development.
  • suanPan utilizes the new language features shipped with the latest standards (C++14, C++17, etc.), such as new STL containers, smart pointers and many others.
  • suanPan supports simple visualization supported by VTK.

Quick Start

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

Portable Binary

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.

Simply download, unpack/install and run. 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. Please install Sublime Text first and execute the batch file with the administrator privilege.

Chocolatey

The binaries, which are compiled with Intel MKL and VTK, are available on Chocolatey, please use the following command to install the package. The batch file AddAssociation.bat is also provided, but users need to execute it manually.

  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.

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
  1. Install suanPan.

    scoop install suanpan
    

Linux

Linux's users are recommended to obtain the binaries via snap. The snap supports visualization via VTK and uses Intel MKL for linear algebra.

Get it from the Snap Store

asciicast

Other Platforms

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

Advanced users can compile the program from source by themselves in order to enable

  1. GPU based solvers which require available CUDA library;
  2. Visualization support provided by VTK library;
  3. High performing linear algebra provided by Intel MKL library.

On Windows, to add 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 check the Enhancement folder.

On Linux, since CI/CD uses GCC 9.3.0, it may be required to update/install GCC version 9 or above.

# Ubuntu
sudo apt install gcc-9 g++-9 gfortran-9 libomp5

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

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

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](Resource/particle-collision.gif)

Licence

FOSSA Status


*Note that all licence references and agreements mentioned in the suanPan README section above are relevant to that project's source code only.