Skip to content

Probe-Particle/PPSTM

Repository files navigation

Ask DeepWiki

PPSTM (Probe Particle STM)

Code simulating various STM techniques, especially for tilting tips (depending on ProkopHapala/ProbeParticleModel ) This is implementation of efficient and simple model for simulation of High-resolution scanning tunneling microscopy (STM). Normall STM simulations using Chen's approximattion is part of the code as well

  • BEWARE - latest numpy is probably causing problems within the code, we have noticed problem with trying to run examples with periodic boundary conditions recently.
  • BEWARE - after repairing misteake in d-orbitals the results for FePc are different. We are investigating it.
  • currently developed Python3/C++ version of the PPSTM code:
    • works in python3(.7 and higher), matplotlib, cpp>=4.4.8 (look at wiki instruction for problems with MAC compilation), PyQt5 (for GUI ),for some parts ASE and GPAW are imporatant;
    • Part of the code regarding simulations with tilting tips is depending on the ProbeParticleModel developed by Prokop Hapala and co. (https://github.com/Probe-Particle/ppafm), you can easilly install it with pip install ppafm>=0.2.0a3.

For easy introduction to this code and its functionalities, try Graphic User Interface (GUI) or PPSTM_simple.py script.

Constant current simulations are now available through const_cur_tutorial.ipynb jupyter notebook from npz or xsf. There is also former Mathematica notebook which works only with xsf.

Documentation

Documentation is here at Wiki.

It can also simulate IETS images of molecules, if the imaging mechanism is driven by the amplitude of the IETS peak.

Auto-Generated Documentation

  • Ask DeepWiki

Setup

Ensure you have Conda installed.

Choose the environment that best fits your needs:

  • Full Environment (ppstm):

    conda env create -f environment.yml
    conda activate ppstm
    python -m ipykernel install --user --name=ppstm
  • Dev Environment with Intel GPU (ppstm-dev):

    conda env create -f environment_dev_gpu_intel.yml
    conda activate ppstm-dev
    python -m ipykernel install --user --name=ppstm-dev
  • Dev Environment with system-wide ICDs (ppstm-dev):

    conda env create -f environment_dev_icd_system.yml
    conda activate ppstm-dev
    python -m ipykernel install --user --name=ppstm-dev
  • Minimal Environment (ppstm-min):

    conda env create -f environment_min.yml
    conda activate ppstm-min

Note: macOS support is currently experimental and may have limited functionality.

Tests

After activating the ppstm-dev environment, you can run the test suite with:

pytest tests -v

This runs all tests in verbose mode.

Test Coverage

Measure code coverage to identify untested code paths.

View coverage in the terminal

To show coverage statistics by file and list lines not covered by tests:

pytest --cov=pyPPSTM --cov-report term-missing tests
Generate an interactive HTML report

To create a detailed HTML report with coverage by file, function, and class:

pytest --cov=pyPPSTM --cov-report html:coverage tests

Open coverage/index.html in your browser to explore the results interactively.

References (should be always cited)

References (should be cited for the relaxed scans)

References (should be cited if IETS or STM-d orbitals were included)

About

Code simulating variousSTM techniques, especially for tilting tip (dependent on https://github.com/Probe-Particle/ppafm)l)

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages