Simple and efficient simulation software for high-resolution atomic force microscopy (HR-AFM) and other scanning probe microscopy (SPM) techniques with sub-molecular resolution (STM, IETS, TERS).
It simulates the deflection of the probe particle attached to the tip, where the probe particle represents a flexible tip apex (typically CO molecule, but also e.g. Xe, Cl-, H2O and others).
The Python package is named as ppafm
.
The standard way of installing ppafm
is:
$ pip install ppafm
This should install the package and all its dependencies.
The most up-to-date installation guide can be found on the dedicated wiki page.
Once ppafm
is installed, a collection of command-line tools will become available to the user.
Their names start with the ppafm-
prefix.
To get more information about a given tool, run it with the -h
option, e.g.:
ppafm-generate-ljff -h
For more information, please consult the dedicated page on the command line interface of ppafm
.
The package comes with a convenient graphical user interface. Unlike CLI, this interface needs to be explicitly enabled during the installation. To enable it, check the dedicated section on the Install ppafm wiki page. To know more about the GUI interface, please consult the ppafm GUI wiki page.
We provide a set of examples in the examples
directory.
To run them, navigate to the directory and run the run.sh
script.
For example:
$ cd examples/PTCDA_single
$ ./run.sh
You can study the script to see how to run the simulation.
Also, have a look at the params.ini
file and the wiki to see how to set up the simulation parameters.
Once the simulation is finished, several files and folders will be created.
See also the tutorial for using the Python API for running GPU-accelerated simulations.
examples/CorrectionLoopGraphene
use GPU accelerated ppafm to iteratively improve the estimate of molecular geometry by comparing simulated AFM images with reference.
This is a work in progress.
Currently, modification of estimate geometry is random (Monte-Carlo), while later we plan to develop a more clever (e.g. Machine-Learned) heuristic for more efficient improvement.examples/Generator
quickly generates a batch of simulated AFM images (resp. 3D data stacks) which can be further used for machine learning.
Especially in connection with (https://github.com/SINGROUP/ASD-AFM).Since 2014 ppafm developed into the toolbox of various methodologies adjusted for a particular use case.
pyOpenCL
can parallelize the evaluation of forcefield and relaxation of probe-particle positions over hundreds or thousands of stream processors of the graphical accelerator.
The further speed-up is achieved by using hardware-accelerated trilinear interpolation of 3D textures available in most GPUs.
This allows simulating 10-100 AFM experiments per second on consumer-grade desktop GPU.
GPU version is designed to work in collaboration with machine-learning software for AFM (https://github.com/SINGROUP/ASD-AFM) and use various generators of molecular geometry.master
branch that was recently significantly updated and named main
.
For users who miss the old master branch, we provided a backup copy.
However, this version is very old and its use is discouraged.If you miss some functionality or have discovered issues with the latest release - let us know by creating an issue. If you would like to contribute to the development of the ppafm code, please read the Developer's Guide wiki page. Small improvements in the documentation or minor bug fixes are always welcome.
If you have used ppafm
in your research, please cite the following articles:
MIT