Downloads of v 1.7:


Last Update:

01 Aug 2021

Package Maintainer(s):

Software Author(s):

  • Theodore Chang




  • 1
  • 2
  • 3

1.7 | Updated: 01 Aug 2021



Downloads of v 1.7:



Software Author(s):

  • Theodore Chang



  • 1
  • 2
  • 3
suanPan 1.7

  • 1
  • 2
  • 3

Some Checks Have Failed or Are Not Yet Complete

Not All Tests Have Passed

Validation Testing Passed

Verification Testing Passed


Scan Testing Resulted in Flagged as a Note:

At least one file within this package has greater than 0 detections, but less than 5


To install suanPan, run the following command from the command line or from PowerShell:


To upgrade suanPan, run the following command from the command line or from PowerShell:


To uninstall suanPan, run the following command from the command line or from PowerShell:


NOTE: This applies to both open source and commercial editions of Chocolatey.

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

  • Open Source or Commercial:
    • Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
    • You can also just download the package and push it to a repository Download

3. Enter your internal repository url

(this should look similar to

4. Choose your deployment method:

choco upgrade suanpan -y --source="'STEP 3 URL'" [other options]

See options you can pass to upgrade.

See best practices for scripting.

Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.

If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:

choco upgrade suanpan -y --source="'STEP 3 URL'"

Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
  Exit 0

Exit $exitCode

- name: Ensure suanpan installed
    name: suanpan
    state: present
    version: 1.7
    source: STEP 3 URL

See docs at

chocolatey_package 'suanpan' do
  action    :install
  version  '1.7'
  source   'STEP 3 URL'

See docs at

    Name: suanpan,
    Version: 1.7,
    Source: STEP 3 URL

Requires Otter Chocolatey Extension. See docs at

cChocoPackageInstaller suanpan
   Name     = 'suanpan'
   Ensure   = 'Present'
   Version  = '1.7'
   Source   = 'STEP 3 URL'

Requires cChoco DSC Resource. See docs at

package { 'suanpan':
  provider => 'chocolatey',
  ensure   => '1.7',
  source   => 'STEP 3 URL',

Requires Puppet Chocolatey Provider module. See docs at

salt '*' chocolatey.install suanpan version="1.7" source="STEP 3 URL"

See docs at

5. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

This package was approved as a trusted package on 01 Aug 2021.


🧮 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. Please check documentation here and here for command references.

@echo off

assoc .sp=suanpanmodel
assoc .supan=suanpanmodel

set "program=%~dp0suanPan.exe"

if not exist "%program%" (
	echo suanPan.exe does not exist in current folder
	goto byebye

ftype suanpanmodel="%program%" "-f" "%%1"

set "program=%program:\=/%"

set "target=%appdata%\Sublime Text 3\Packages\User\"

if exist "%target%\" goto copyfile

set target=

set /p target="Input path contains sublime_text.exe (leave empty to quit): "

if "%target%" == "" goto byebye

if not exist "%target%\sublime_text.exe" (
	echo sublime_text.exe does not exist in the given folder
	goto byebye

set "target=%target%\Data\Packages\User\"
set "target=%target:\=/%"


echo {"cmd":["%program%","-f","$file"],"selector":"source.supan","file_patterns":["*.supan","*.sp"]} > "%~dp0suanPan.sublime-build"
xcopy "%~dp0suanPan.sublime*" "%target%"

# Changelog

## known issues

1. `MKL` includes outdated `FEAST`, the external names in `FEAST` library are modified to avoid linking error.

## version 1.x

1. revise `SimpleSand` model
2. add `DafaliasManzari` sand model
3. add `materialtestbystrainhistory` and `materialtestbystresshistory` utility functions
4. bugfix: potential racing in initialising reference dof, change to serial initialisation
5. bugfix: wrong update of plastic strain in `CDP` model
6. add `CDPM2` model with isotropic damage

## version 1.6

1. add `terminal` command and `output_folder` setting
2. some minor updates

## version 1.5

1. add `scoop` support
2. add `Contact3D` 3D node-triangular facet contact element
3. add `NodeLine` and `NodeFacet` contact constraint
4. add `Sleeve2D`, `Sleeve3D`, `MaxGap2D` and `MaxGap3D` constraint
5. update `OpenBLAS` to version 0.3.15
6. update `Material` class to accommodate couple stress related quantities

## version 1.4

1. add `R2D2` and `R3D2` alias for fixed length constraint
2. add `MinGap2D` and `MinGap3D` inequality constraints
3. add `SupportMotion` loads, including `SupportDisplacement`, `SupportVelocity` and `SupportAcceleration`
4. update `Armadillo` to version 10.4
5. add functionality to check new version
6. add `FEAST` solver
7. improve mixed precision solver performance
8. add `CUDA` solver for dense matrix

## version 1.3

1. update handling of constraints and loads
2. store commands in backup file in CLI mode
3. add `FixedLength2D` and `FixedLength3D` nonlinear constraints
4. improve handling of constraints in dynamic analysis
5. add `NLE1D01` model
6. minor bugfixes

## version 1.2

1. remove dependency on `MAGMA`, now `CUDA` is directly used as the GPU solver
2. add `PARDISO` sparse solver
3. upgrade to `Intel oneAPI Toolkit`
4. add C interface material model
5. remove all reinforced elements, reinforcement can be handled by material models

## version 1.1

1. add phase field enabled elements: `DCP3`, `DCP4`, `DC3D4`, `DC3D8` elements
2. add support to record nodal damping/inertial force `DF` and `IF`
3. add regularized `Yeoh` model for compressible rubbers
4. improve stability of `RambergOsgood` model
5. add `LeeNewmarkFull` damping model, improve performance of `LeeNewmark` damping model
6. add shared memory `SuperLU` solver
7. add `Spike` solver for banded matrices
8. add displacement based beam element with end moment release: `B21EL` and `B21EH` elements
9. correct name of `Kelvin` model

## version 1.0

1. initial release
md5: EF5CD44103AED8B16062A0500B38314D | sha1: D5A32E1EC6D3713C19B2B631EF15AF55574B258A | sha256: F7828E9BAF1DF7E2797C246D0519A45ECAA2EFB28B66232A733126A8DB623CE1 | sha512: 9CE3E1E1329AB3AD7FDFA7626ABE25F02AA9177AF4E7DECD11D9F177F4F320D4331D0980E0925FDD8A5A3384AFF0484451D4D01F0AA2560DC88CB1F7A017FF28
md5: 0CDDE8C80449D11DF589C75F1E96E16B | sha1: 466198D06A21CD581F4FD20200C1181B6CB6BB7E | sha256: AE789A9CEFF6D68DEED37383079BAD45E65F33345619DCC6AF054C5876D8278B | sha512: 7DE31C20FD31BF052B18359184211AFB57F28D83D9683BC18A77DC83F182DBE00D8E4440B1A8570E73027C194F419A6B34BEB195F827591CF242439E7D282357
md5: 6ED07A2C50AA6E9F6573A5EAF79E7998 | sha1: 777E7A0C42FC64381A40D0F1B3A655F5EBB188B4 | sha256: DB87DF9D551F067CE1405F49D9B47CA1FF14C19723B3A196A22C9EAAA6BCF927 | sha512: 03AF5CB0BEF56FBF698D61A42385969AD3E168236E9086921730D0AEC01324BC74C6E6194E4D2BB0137030678259998426088B65D8B69532A215CC1054F9C245
md5: B71E57FA0F630AE2422538913E739352 | sha1: EA2BB1D5E598B9067CD876209AC74476AFAF7AB0 | sha256: 50DB104070701286BEC8276A5D3702D3ED2C0C605959752E85BFC3FEE0DF43C9 | sha512: 32DA7902E0E35739C3179E53C9D116738BF74B91249DF6C73CB9F145289DA48B325F6EC42717CD9055D66D5B658438CDD3EA3D2320862D0A3C7DE6D72E4FF4FE
# <img src="Resource/suanPan-qr.svg" width="150" align="middle"/><img src="Resource/suanPan.svg" width="150" align="middle"/> suanPan

[![stable build](](
[![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 multi-threaded 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.

## 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

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.


It is also possible to use [Scoop]( to install the package.

Set-ExecutionPolicy RemoteSigned -scope CurrentUser
iwr -useb | iex
scoop install

### Linux

Linux 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](](


### 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 admin 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.

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

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

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

## Dependency

Additional libraries used in **suanPan** are listed as follows.

- [**ARPACK**]( version 0.96
- [**SPIKE**]( version 1.0
- [**FEAST**]( version 4.0
- [**SuperLU**]( version 5.2.2 and [**SuperLU MT**]( version 3.1
- [**OpenBLAS**]( version 0.3.15
- [**TBB** Threading Building Blocks]( version 2020U2
- [**HDF5**]( version 1.10.6
- [**MUMPS**]( version 5.2.1
- [**VTK**]( version 8.2
- [**CUDA**]( version 11.2
- [**Armadillo**]( version 10.4
- [**Intel oneAPI Math Kernel Library**]( version 2021

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

- [**UPX** the Ultimate Packer for eXecutables](

## 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)

## License

[![FOSSA Status](](
md5: 29E2FD6113B8748F61A4B90DF218BC98 | sha1: 7F4EB948B989E745F0F28AC100ADDA607B9FE92E | sha256: A487D5952143841E862F47AECDF0C6DDFD16DD43232BC2979459481F2E5FA6D1 | sha512: 02E8AD2BA29D955052628D88C000581FB2CD3F695BC563BE4562BDFA6E4880A42833ACB5FECB8A4807E6D19BB728E5E2F8813D2F99779B4BA1E4C84121EC677A
md5: 8F28AE63B54AA6E60FD79C5008CF6948 | sha1: 51C9A35A99B086BE8E1A62DA4E559D77537AD617 | sha256: A90D09BDE6F4283D737BE356A8F2A6D4A6AED7701F88110B630F56E5A8DB1643 | sha512: 8DED1E582D19C3C22ED6EBE95EF100E3A4D6CBA6CBCDB6039D3F8E46D65EB63B16F2D19A17EB30C6C8C92C72839596623006A9FF89C9DDDEADE6C6A789D642C4
md5: 8F16FB2FEA99D0442415D09C5346FE31 | sha1: 15AEE05CDD9B92F25894B39D145021865F19C4FE | sha256: 62A752D3D9DECBD79CD286DFC16980B51147F418F716F09A34CB0F4F9F9748D2 | sha512: F9851B364E7385AB01ADE2A3B22B1C70AB832AD56A7EE2F028CF729CC6D5EA390795B4637247A8953A4043EE7F07265A4CC2A8D418597353CAF063B568842DBF
md5: DA4389E59444AFA3038B3673D9789D72 | sha1: 5876EC2F67D2FE6CF05D484E58655AEDE665F5C4 | sha256: FB4FFDEBC306FC7BC52028558A9ECC0349D5AC62B3C469F683C5D744D58EBEC8 | sha512: F107C3EF896383ABD210FA84AFF9A0817CF4FD6C03A6F691350D535A93D294541E9BA5B0F2C13E16A77DC4B0B7B009383370CDF55FD48E88902F71D039F46A11
md5: AB5888D2D66CB83FE4D212FAC400C6A0 | sha1: FF92515E22A57A352E738FA651B770A20948FF66 | sha256: 3998B0A1AF00625862D17FAB04FC59B1AC798E273B81D2E9E71446FA09760C73 | sha512: 14F1437BB660915D4DF701CF399E3DCC8E3F9BD5946090DDB3ACDE84B21CCD2CFA84C1891EB4557B6402F8DD45D263E929DBD3F49F646FEC8FE8ECE0509C4726
md5: A65F92AE0E05FE8C5D11E391D5693413 | sha1: 46CA4EF6D3662F9C3E458B021CD84C5B6C9797CF | sha256: 9EADF0DA498C06DC4C641355BCEEAE4C340C785BBBA66D2B7971ACF38B958E2C | sha512: F8DB7C1A108927BEEE60CD72A53DA4753BC0AC29E10FCD62F854D8D67D23F9C21596707378AD33A540C92EB91E583467A50A6C77B9EC7DA529D190A5D12E4417
md5: 02FD4D5E0C46C64BC7BBB40C14A265F8 | sha1: 8C5D16747647A4F50D217559C05512309ED55276 | sha256: 44F715F4DD74D105F5A4DEB51F2665ADBEC45383776F92414F20139A1628897F | sha512: 63DC1A55B4988E8F7764CFA7CF4D16754A0D92D9DD6AC222F18BB2F759C8CD54594BEA106F7826586CA53C1407B56E1F9EA0FB15B4055B1060C2A167CFC63C93
Verification is intended to assist the Chocolatey moderators and community in verifying that this package's contents are trustworthy.

To verify, please visit where the same archive is uploaded.

From Intel MKL:
  libifcoremd.dll SHA256: F7828E9BAF1DF7E2797C246D0519A45ECAA2EFB28B66232A733126A8DB623CE1
  libiomp5md.dll SHA256: AE789A9CEFF6D68DEED37383079BAD45E65F33345619DCC6AF054C5876D8278B
  libmmd.dll SHA256: DB87DF9D551F067CE1405F49D9B47CA1FF14C19723B3A196A22C9EAAA6BCF927
  svml_dispmd.dll SHA256: A90D09BDE6F4283D737BE356A8F2A6D4A6AED7701F88110B630F56E5A8DB1643

From MSVC:
  msvcp140.dll SHA256: 50DB104070701286BEC8276A5D3702D3ED2C0C605959752E85BFC3FEE0DF43C9
  vcruntime140.dll SHA256: 9EADF0DA498C06DC4C641355BCEEAE4C340C785BBBA66D2B7971ACF38B958E2C
  vcruntime140_1.dll SHA256: 44F715F4DD74D105F5A4DEB51F2665ADBEC45383776F92414F20139A1628897F

From TBB:
  tbb.dll SHA256: 62A752D3D9DECBD79CD286DFC16980B51147F418F716F09A34CB0F4F9F9748D2
  tbbmalloc.dll SHA256: FB4FFDEBC306FC7BC52028558A9ECC0349D5AC62B3C469F683C5D744D58EBEC8
  tbbmalloc_proxy.dll SHA256: 3998B0A1AF00625862D17FAB04FC59B1AC798E273B81D2E9E71446FA09760C73

Main Executable:
  suanPan.exe SHA256: A487D5952143841E862F47AECDF0C6DDFD16DD43232BC2979459481F2E5FA6D1


Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Version Downloads Last Updated Status
suanPan 1.6 15 Saturday, June 26, 2021 Approved
suanPan 1.5 32 Wednesday, May 26, 2021 Approved
suanPan 1.4 17 Saturday, April 24, 2021 Approved
suanPan 1.3 34 Saturday, March 20, 2021 Approved
suanPan 1.2 36 Friday, February 12, 2021 Approved
suanPan 1.1 34 Sunday, January 10, 2021 Approved
suanPan 1.0 53 Sunday, October 18, 2020 Approved

This package has no dependencies.

Discussion for the suanPan Package

Ground Rules:

  • This discussion is only about suanPan and the suanPan package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or suanPan, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus