S. Engblom's free software
Overview
- License
- Platforms
- Research-related codes:
- Packages for daily use: stenglib
License
You may download all software on this page and
use, modify and redistribute it in any way you like. A
redistributor must fully attribute the authorship and make a good
effort to cite the original location of the software. A researcher
making critical use of the software in research is
requested to acknowledge this in publications related to the
research. A company may use the code in software products provided
that the original location and the author is clearly
cited.
All code provided here comes with absolutely no warranty
and no support whatsoever is given.
There are a lot of freeware available on the net. Do not
download unless you agree to the above license.
Find me at
home...
...at
the Research
Gate...
...at Google
Scholar...
...at ORCID...
...at ResearcherID....
...at arXiv...
...at GitHub.
Platforms
Currently, most codes below are used
essentially daily on platforms with mexext = {mexa64,mexmaci64}
and Matlab version {9.6}. I have extensive previous experience
with mexext = {mexmaci,mexglx,mexmac,mexsol,mexs64} and version =
{7.0, 7.2. 7.5, 7.8, 7.11, 7.13, 7.14, 8.4}. Note: very limited
support for PC.
Research-related codes
When coding, I tend to use my own libraries rather extensively
(see "stenglib" below). I try to register all such dependencies
but have likely missed a few.
- SimInf is an R-package with the ability to simulate
arbitrary models of epidemics using temporal contact
data. The package has its own
page.
The SimInf manual is available
via arXiv. The
modeling and the simulation method is described in P. Bauer,
S. Engblom, S. Widgren: Fast event-based epidemiological
simulations on national scales in Int. J. High
Perf. Comput. Appl.,
2016: (doi).
A sample output
result is
animated here.
- The URDME-package is an efficient implementation of the
next subvolume method with the ability to sample the
reaction-diffusion master equation in general unstructured
geometries. The package has its own
page.
New! Version 1.4 is now released and can be downloaded
from www.urdme.org. The manual
is available
via arXiv.
A sample output result is animated here.
The numerical modeling is described in S. Engblom, L. Ferm,
A. Hellander, P. Lötstedt: Simulation of Stochastic
Reaction-Diffusion Processes on Unstructured Meshes, in
SIAM J. Sci. Comput. 31(3):1774--1797,
2009: (doi).
There is also a software paper about URDME: B. Drawert,
S. Engblom, and A. Hellander: URDME: a modular framework for
stochastic simulation of reaction-transport processes in complex
geometries, in BMC Syst. Biol. 6(76):1--17,
2012: (doi).
Old! Version 1.0 is still available. This release is
designed for use with Matlab 7.0 and above and Comsol Multiphysics
3.4. A manual in .pdf-format is included. Download the original
stable version here: urdme.tar.gz.
- FMM3D, New! an adaptive distributed fast
multipole method in 3D with a Matlab interface. Download here:
daFMM3D.tar.
- FMM2D, an adaptive quite general fast multipole method
in 2 dimensions with a nice Matlab-interface. Download here:
FMM2D.tar. A
relevant paper is S. Engblom: On well-separated sets and fast
multipole methods, in Appl. Numer. Math.
61(10):1096--1102,
2011: (doi).
There is also a GPU-version available (joint work
with Anders
Goude). It both provides support for NVIDIA's CUDA and
a CPU-only version. It is highly configurable when it comes to
compilation options and additionally, has support for (CPU
only) high order panel potentials. Download here:
FMM2Dgpu_small.tar.
Previous version, for reproducibility: Download here:
FMM2Dgpu_small_prev.tar. A
larger .tar-file containing not only the source-code but also the
data from our computational experiments is also available:
FMM2Dgpu.tar
(this file is large). We describe the GPU-implementation
and perform various performance experiments in: A. Goude and
S. Engblom: Adaptive fast multipole methods on the GPU,
in J. Supercomput., 63(3):897--918,
2013: (doi).
The GPU-code has bee ported into a stand-alone C++
interace by Artur Palha. This library is available via
Bitbucket: libfmm.
An experimental concurrent hybrid CPU/GPU-version using a
task-based approach on the CPU is also available. Download here:
FMM2Db.tar. This
code has extended control of certain algorithmic parameters and
can therefore be tuned for performance very easily. We describe
the design of this code and test the feasability for autotuning
in a paper: M. Holm, S. Engblom, A. Goude, S. Holmgren:
Dynamic autotuning of adaptive fast multipole methods on hybrid
multicore CPU & GPU systems, in SIAM J. Sci. Comput.
36(4):C376--C399
(2014): (doi).
Old! There is also an older, no longer maintained
uniform (non-adaptive) version available:
FMM2Du.tar.
Acknowledgment: The development of FMM2D and FMM3D has been
partially supported by UPMARC,
Uppsala Programming for Multicore Architectures Research Center.
- The BISDE-package is a small research code in Matlab and R
for reproducing the computational experiments in the paper Bayesian
inference in Epidemics: linear noise analysis by Samuel Bronstein,
Stefan Engblom, and Robin Marin. Download the paper here: (arXiv) and the BISDE
software here: BISDE.tar.
- The FLOW-package is a research code for accurately
simulating surfactant laden interface flows. The method employed
is a spectral Galerkin-Legendre discretization. The distributed
experiments all use the time-stepper ode1s from Scicomp
below. Download here:
FLOW.tar.
The relevant paper is S. Engblom, M. Do-Quang, G. Amberg, and
A-K. Tornberg: On diffuse interface modeling and simulation of
surfactants in two-phase fluid flow,
in Commun. Comput. Phys. 14(4):879--915,
2013: (doi).
- The FIBR-package is a research code for simulating
fibers in Stokes flow. Download the
FIBR.tar-file
into a fresh directory (eg. 'mkdir FIBR'), cd into it and untar
(eg. 'untar' at the Matlab prompt, or 'tar -xf' at the Unix
prompt). Run 'startup' to put some suitable directories on your
path, then try the tests 'checkin' and 'spin'. Type 'help
fibrsetup' and run the example there (it's the simplest
possible). Then you might want to try the animation found by
typing 'help advect'.
A sample output
result is
animated here.
Packages for daily use ("stenglib")
The package stenglib is available
via GitHub. Please refer
to stenglib at
GitHub.
Stefan Engblom
Last modified: Wed Dec 7 09:40:05 CET 2022