Skip to main content

Abstracted executor for PySRIM

Project description

pysrim-docker

pypi-badge

Docker executor for PySRIM

Getting Started

To use this package, simply remove calls to run() method of SR and TRIM, and replace them with a call to the executor run dispatch method, e.g.:

from srim.executor import DockerExecutor
from srim import TRIM

executor = DockerExecutor()

trim = TRIM(...)
result = executor.run(trim)

Out of the box, the DockerExecutor uses the costrouc/srim Docker image, and writes the input and output files to a temporary directory.

Example

from srim.executor import DockerExecutor
from srim import Ion, Layer, Target, TRIM

from matplotlib import pyplot as plt

# Construct a 3MeV Nickel ion
ion = Ion('Ni', energy=3.0e6)

# Construct a layer of nick 20um thick with a displacement energy of 30 eV
layer = Layer({
        'Ni': {
            'stoich': 1.0,
            'E_d': 30.0,
            'lattice': 0.0,
            'surface': 3.0
        }}, density=8.9, width=20000.0)

# Construct a target of a single layer of Nickel
target = Target([layer])

# Initialize a TRIM calculation with given target and ion for 25 ions, quick calculation
trim = TRIM(target, ion, number_ions=25, calculation=1)

# Create executor and run TRIM
executor = DockerExecutor()
result = executor.run(trim)

# Pull out ionization
ioniz = result.ioniz

# Plot results
_, ax = plt.subplots()
ax.plot(ioniz.depth, ioniz.ions, label='Ionization from Ions')
ax.plot(ioniz.depth, ioniz.recoils, label='Ionization from Recoils')
plt.show()

Why?

There are a number of different ways that SRIM can be invoked to run simulations. Unix-like OS users have the option of using wine with or without xvfb. Windows users can directly call the binaries. Docker users can choose to defer to a pre-built SRIM container.

By abstracting the executor from the SRIM input file generation, executors can easily be swapped in and out, or extended as necessary.

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

pysrim-executor-0.1.0.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

pysrim_executor-0.1.0-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file pysrim-executor-0.1.0.tar.gz.

File metadata

  • Download URL: pysrim-executor-0.1.0.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.5 Linux/5.8.0-44-generic

File hashes

Hashes for pysrim-executor-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0578bea71d3444313706f8ad23e6ae0830b79931c323d84017112dbcc25c1997
MD5 af85316acf7913e874606ad8c4090bb8
BLAKE2b-256 014715e6af6f01d7fbfb3d4ff77a039db506b9546501df17dac6744959a568ce

See more details on using hashes here.

File details

Details for the file pysrim_executor-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pysrim_executor-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.5 Linux/5.8.0-44-generic

File hashes

Hashes for pysrim_executor-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0b6b17913c45b1447c60301acbe8ac76fb7a31a8c4e80c1d2c357695bd30cb11
MD5 883c7694d6ceed7fa1f4321fbbae4f4a
BLAKE2b-256 e4b09193d61e3824778a5f58ac31f165df8de0a382bac38cff5c98ec8ce2687e

See more details on using hashes here.

Supported by

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