Skip to main content

No project description provided

Project description

pySIMsalabim logo

pySIMsalabim

Description

pySIMsalabim is a Python package used to interface drift-diffusion simulator SIMsalabim with Python. It provides many useful tools to set up and run simulations, as well as to analyze and visualize the results.

Authors

Institutions

RuG logo Zernike Institute for Advanced Materials, University of Groningen, The Netherlands

SDU logo CAPE - Centre for Advanced Photovoltaics and Thin-film Energy Devices, University of Southern Denmark, Denmark

Installation

With pip

To install pySIMsalabim with pip you have two options:

  1. Install pySIMsalabim using the PyPI repository

    pip install pySIMsalabim 
    
  2. Install pySIMsalabim using the GitHub repository. First, you need to clone the repository and install the requirements. The requirements can be installed with the following command:

    pip install -r requirements.txt
    

    Similarly to the conda installation, if you plan on using the BoTorch/Ax optimizer you need to use the requirements_torch_CPU.txt file or install PyTorch with the correct version for your system with the requirements.txt file.

With conda

To install pySIMsalabim, you need to clone the repository and install the requirements. The requirements can be installed with the following command:

conda create -n pySIMsalabim 
conda activate pySIMsalabim
conda install --file requirements.txt

If you want, you can also clone your base environment by replacing the first line with:

conda create -n pySIMsalabim --clone base

Additional necessary installs for the drift-diffusion software

SIMsalabim

The drift-diffusion simulations are run using the SIMsalabim package. Therefore, you need to install SIMsalabim prior to running any simulations.

All the details to install SIMsalabim are detailed in the GitHub repository. To make sure that you are running the latest version of SIMsalabim, check the repository regularly. You can also install SIMsalabim by running the following Python script:

import os
import pySIMsalabim
from pySIMsalabim.install.get_SIMsalabim import *

cwd = os.getcwd()
install_SIMsalabim(cwd)

Free Pascal Compiler

SIMsalabim needs the Free Pascal Compiler to compile the Pascal code. In the previous step, you have the option to use the precompiled binaries from the SIMsalabim repository (for Windows and Linux). If you want to compile the code yourself, you need to install the Free Pascal Compiler. The Free Pascal Compiler can be installed on Linux by running the following command:

sudo apt-get update
sudo apt-get install fp-compiler

Running the install_SIMsalabim function will also install the Free Pascal Compiler for you if you are on Linux. For Windows, you can download the Free Pascal Compiler from the Free Pascal website.

You can test if the installation worked by running the following command in the terminal:

fpc -iV

This should return the version of the Free Pascal Compiler. Note that the version of the Free Pascal Compiler should be 3.2.2 or higher.

Parallel simulations

On Linux, you have the option to run the simulations using the GNU parallel package instead of the default threading or multiprocessing from Python. To install on Linux, run in the terminal:

sudo apt-get update
sudo apt-get install parallel

You can also use Anaconda:

conda install -c conda-forge parallel

To test if the installation worked, run the following command in the terminal:

parallel --help

Alternatively, you can run the following Python script to install GNU parallel:

import os
import pySIMsalabim
from pySIMsalabim.install.get_gnu_parallel import *

install_GNU_parallel_Linux()

If you are on Windows, pySIMsalabim will use the default threading or multiprocessing from Python.

Warning for Windows users

If you are using Windows, please be aware that Windows typically has a maximum path length of 260 characters. This can cause issues when running simulations with long file paths. To avoid this, you can try to shorten the paths used in your simulations or enable long path support in Windows.

We also recommend that you do not run the simulations on synced folders (e.g. OneDrive, Google Drive, Dropbox, etc.) as this can cause issues with file access. All these issues are not related to pySIMsalabim or SIMsalabim, but to the Windows operating system itself.

If this annoys you, we recommend using Linux or WSL2 (Windows Subsystem for Linux) instead of Windows.

Testing

The physics and implementation of the drift-diffusion simulator are tested in the main SIMsalabim repository. The tests in pySIMsalabim are mainly focused on the interface between SIMsalabim and Python. The tests can be run using the following command:

pytest pySIMsalabim

Note that pytest needs to be installed to run the tests. You can install pytest by running the following command:

pip install pytest

Disclaimer

This repository is still under development. If you find any bugs or have any questions, please contact us.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysimsalabim-1.4.tar.gz (106.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pysimsalabim-1.4-py3-none-any.whl (132.3 kB view details)

Uploaded Python 3

File details

Details for the file pysimsalabim-1.4.tar.gz.

File metadata

  • Download URL: pysimsalabim-1.4.tar.gz
  • Upload date:
  • Size: 106.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for pysimsalabim-1.4.tar.gz
Algorithm Hash digest
SHA256 1d06dd299437cce126d3bbaf823deb2fcf3255ce84ae120dba0c30daced93569
MD5 b78412bc9adce66ee9ee1b58f53296c1
BLAKE2b-256 294f29719780723f6b793021e742ec32cc8a25df7d756b4e518560957e594701

See more details on using hashes here.

File details

Details for the file pysimsalabim-1.4-py3-none-any.whl.

File metadata

  • Download URL: pysimsalabim-1.4-py3-none-any.whl
  • Upload date:
  • Size: 132.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for pysimsalabim-1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9bc4ab37481c02d1e47b804b1e758574be5175e6b262c17d53da3c74ba9ec569
MD5 c915fc80341fe9debccc850d972f01f4
BLAKE2b-256 ed3bb991ef8497c0bf6c8565fea8a00809e36e59a1ab7dbc9c33fcf331a11094

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page