suanPan
|
🧮 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 the documentation here for command references. Please star ⭐ the project!
The highlights of suanPan are
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.
Or on Windows,
First time users can use overview
command to go through a quick introduction.
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.
Only the 64-bit version is compiled. It is assumed that AVX is available thus if the program fails, please check if your CPU supports AVX.
The archives of binaries are released under Release page.
suanpan-win-mkl-vtk.zip
is the portable version.suanpan-win-mkl-vtk.exe
is the installer.The binaries, which are compiled with Intel MKL and VTK, are available on Chocolatey, please use the following command to install the package.
Use the following command to install suanPan
.
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.
It is also possible to use Scoop to install the package.
Install Scoop.
Install suanPan
.
Linux users are recommended to obtain the binaries via snap
or flatpak
.
The snap supports visualisation 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.
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.
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 versions 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.
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:
vtk
— visualisation support is enabled, with this you can record VTK files for postprocessing, however, OpenGL may be missing on server systemsmkl
— linear algebra operations are offloaded to MKL, which gives the optimal performance on Intel chipsopenblas
— linear algebra operations are offloaded to OpenBLAS, which may outperform MKL on AMD platformsAdvanced users can compile the program from source by themselves in order to enable GPU based solvers which require an 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,
For VTK enabled versions, it may be necessary to install OpenGL.
On Windows, a batch file named 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
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
.
Additional libraries used in suanPan are listed as follows.
thread-pool
Those libraries may depend on other libraries such as zlib and Szip. Additional tools may be used by suanPan, they are
Please refer to the corresponding page in the manual for details.