irradiapy.srim package
Subpackages
- irradiapy.srim.ofiles package
- Submodules
- irradiapy.srim.ofiles.backscat module
- irradiapy.srim.ofiles.collision module
- irradiapy.srim.ofiles.e2recoil module
- irradiapy.srim.ofiles.ioniz module
- irradiapy.srim.ofiles.lateral module
- irradiapy.srim.ofiles.novac module
- irradiapy.srim.ofiles.phonon module
- irradiapy.srim.ofiles.range module
- irradiapy.srim.ofiles.range3d module
- irradiapy.srim.ofiles.sputter module
- irradiapy.srim.ofiles.srimfile module
- irradiapy.srim.ofiles.subcollision module
- irradiapy.srim.ofiles.transmit module
- irradiapy.srim.ofiles.trimdat module
- irradiapy.srim.ofiles.vacancy module
- Module contents
- irradiapy.srim.target package
- Submodules
- irradiapy.srim.target.element module
- irradiapy.srim.target.layer module
- irradiapy.srim.target.target module
TargetTarget.layersTarget.nelementsTarget.nlayersTarget.layersTarget.nelementsTarget.nlayersTarget.trimin_bragg()Target.trimin_description()Target.trimin_displacement()Target.trimin_lattice()Target.trimin_phases()Target.trimin_surface()Target.trimin_target_elements()Target.trimin_target_layers()
- Module contents
Submodules
irradiapy.srim.analysis module
Utility functions related to SRIM data analysis and debris production.
- irradiapy.srim.analysis.generate_debris(srimdb, dir_mddb, compute_tdam, path_debris, tdam_mode, dpa_mode, add_injected, outsiders, seed=None, depth_offset=0.0, ylo=None, yhi=None, zlo=None, zhi=None)[source]
Turns SRIM’s collisions into .xyz files for the given database of cascades’ debris.
Warning
Assumes a monolayer monoatomic target and same element for all ions.
- Parameters:
srimdb (SRIMDB) – SRIM database class.
dir_mddb (Path) – Directory where the database of cascades’ debris is stored.
compute_tdam (bool) – Whether to transform the PKA energies into damage energies. It should be True for MD simulations without electronic stopping.
path_debris (Path) – Directory where the ions debris will be stored as .xyz files.
tdam_mode (materials.Material.TdamMode) – Mode to convert the PKA energy into damage energy.
dpa_mode (materials.Material.DpaMode) – Formula to convert the residual energy into Frenkel pairs.
add_injected (bool) – Whether to add the injected interstitial.
outsiders (bool) – Whether to include defects generated outside the material (PKAs close to surfaces). This can cause an inmbalance between the number of vacancies and interstitials.
seed (int, optional) – Random seed for reproducibility.
depth_offset (float, optional (default=0.0)) – Offset to add to the depth of the defects.
ylo (float, optional (default=None)) – Minimum y-coordinate for the defects. If None, will be set to minus the target width.
yhi (float, optional (default=None)) – Maximum y-coordinate for the defects. If None, will be set to the target width.
zlo (float, optional (default=None)) – Minimum z-coordinate for the defects. If None, will be set to minus the target width.
zhi (float, optional (default=None)) – Maximum z-coordinate for the defects. If None, will be set to the target width.
- Return type:
- irradiapy.srim.analysis.plot_distances(srimdb, pka_e_lim=5000.0, dist_bins=100, energy_bins=100, plot_path=None, dpi=300)[source]
Plots a 2D histogram of pairwise distances and sum of PKA energies for each ion.
- Parameters:
srimdb (SRIMDB) – SRIM database class.
pka_elim (float, optional (default=5e3)) – Minimum recoil energy to consider.
dist_bins (int, optional (default=100)) – Number of bins for the distance histogram.
energy_bins (int, optional (default=100)) – Number of bins for the energy histogram.
plot_path (Path, optional (default=None)) – Output path for the plot. If None, the plot is shown.
dpi (int, optional (default=300)) – Dots per inch for the plot.
- Return type:
- irradiapy.srim.analysis.plot_energy_depth(srimdb, depth_bins=100, pka_ebins=100, pka_e_max=200, plot_high_path=None, plot_low_path=None, dpi=300)[source]
Plots the depth-energy distribution of PKAs.
- Parameters:
srimdb (SRIMDB) – SRIM database class.
depth_bins (int, optional (default=100)) – Number of bins for depth histogram.
pka_ebins (int, optional (default=100)) – Number of bins for PKA energy histogram.
pka_e_max (float, optional (default=200)) – Maximum PKA energy.
plot_high_path (Path, optional (default=None)) – Output path for the high energy plot. If None, the plot is shown.
plot_low_path (Path, optional (default=None)) – Output path for the low energy plot. If None, the plot is shown.
dpi (int, optional (default=300)) – Dots per inch for the plot.
- Return type:
- irradiapy.srim.analysis.plot_injected(srimdb, bins=100, plot_path=None, path_fit=None, p0=None, asymmetry=1.0, dpi=300)[source]
Plot injected ions final depth distribution.
- Parameters:
srimdb (SRIMDB) – SRIM database class.
bins (int, optional (default=100)) – Depth bins.
plot_path (Path, optional (default=None)) – Output path for the plot. If None, the plot is shown.
path_fit (Path, optional (default=None)) – Output path for the fit parameters.
p0 (float, optional (default=None)) – Initial guess of fit parameters.
asymmetry (float, optional (default=1.0)) – Asymmetry fit parameter bound.
dpi (int, optional (default=300)) – Dots per inch.
- Return type:
- irradiapy.srim.analysis.plot_pka_distribution(srimdb, bins=100, plot_path=None, fit_path=None, dpi=300)[source]
Plot the PKA energy distribution and tries to fit it.
- Parameters:
srimdb (SRIMDB) – SRIM database class.
bins (int, optional (default=100)) – Energy bins. The fit will be done over non-empty bins.
plot_path (Path, optional (default=None)) – Output path for the plot. If None, the plot is shown.
fit_path (Path, optional (default=None)) – Output path for the fit parameters.
dpi (int, optional (default=300)) – Dots per inch.
- Returns:
Scaling law function.
- Return type:
Callable
irradiapy.srim.srimdb module
This module contains the SRIMDB class.
- class irradiapy.srim.srimdb.SRIMDB(*, path_db, calculation=None, target=None, check_interval=0.2, seed=0, reminders=0, plot_type=5, xmin=0.0, xmax=0.0, do_ranges=1, do_backscatt=1, do_transmit=1, do_sputtered=1, do_collisions=1, exyz=0.0, bragg=1, autosave=0, dir_srim=<factory>)[source]
Bases:
ConnectionBase class for running SRIM calculations and storing the output data in a SQLite database.
- path_db
Output database path.
- Type:
Path
- srim_path
Where all SRIM output files are. If given, it will automatically add all those files into the database.
- Type:
Path
- con
Database connection.
- Type:
- append_backscat(backscat_path)[source]
Appends BACKSCAT.txt into the database.
- Parameters:
backscat_path (Path) – BACKSCAT.txt path.
- Return type:
- append_e2recoil(e2recoil_path)[source]
Appends E2RECOIL.txt into the database.
- Parameters:
e2recoil_path (Path) – E2RECOIL.txt path.
- Return type:
- append_ioniz(ioniz_path)[source]
Appends IONIZ.txt into the database.
- Parameters:
ioniz_path (Path) – IONIZ.txt path.
- Return type:
- append_lateral(lateral_path)[source]
Appends LATERAL.txt into the database.
- Parameters:
lateral_path (Path) – LATERAL.txt path.
- Return type:
- append_novac(novac_path)[source]
Appends NOVAC.txt into the database.
- Parameters:
novac_path (Path) – NOVAC.txt path.
- Return type:
- append_phonon(phonon_path)[source]
Appends PHONON.txt into the database.
- Parameters:
phonon_path (Path) – PHONON.txt path.
- Return type:
- append_range(range_path)[source]
Appends RANGE.txt into the database.
- Parameters:
range_path (Path) – RANGE.txt path.
- Return type:
- append_range3d(range3d_path)[source]
Appends RANGE_3D.txt into the database.
- Parameters:
range3d_path (Path) – RANGE_3D.txt path.
- Return type:
- append_sputter(sputter_path)[source]
Appends SPUTTER.txt into the database.
- Parameters:
sputter_path (Path) – SPUTTER.txt path.
- Return type:
- append_subcollision(collision_path)[source]
Appends currect iteration COLLISON.txt into the database.
- Parameters:
collision_path (Path) – COLLISON.txt path.
- Return type:
- append_transmit(transmit_path)[source]
Appends TRANSMIT.txt into the database.
- Parameters:
transmit_path (Path) – TRANSMIT.txt path.
- Return type:
- append_trimdat(trimdat_path)[source]
Appends TRIM.DAT into the database.
- Parameters:
trimdat_path (Path) – TRIM.DAT path.
- Return type:
- append_vacancy(vacancy_path)[source]
Appends VACANCY.txt into the database.
- Parameters:
vacancy_path (Path) – VACANCY.txt path.
- Return type:
-
dir_srim:
Path
- generate_trimdat(atomic_numbers, energies, depths=None, ys=None, zs=None, cosxs=None, cosys=None, coszs=None)[source]
Generates TRIM.DAT file.
- Parameters:
atomic_numbers (npt.NDArray[np.int64]) – Atomic numbers.
energies (npt.NDArray[np.float64]) – Energies.
depths (npt.NDArray[np.float64], optional) – Depths.
ys (npt.NDArray[np.float64], optional) – Y positions.
zs (npt.NDArray[np.float64], optional) – Z positions.
cosxs (npt.NDArray[np.float64], optional) – X directions.
cosys (npt.NDArray[np.float64], optional) – Y directions.
coszs (npt.NDArray[np.float64], optional) – Z directions.
- Returns:
TRIM.DAT data.
- Return type:
npt.NDArray[np.float64]
- load_target_calculation()[source]
Loads the target and calculation parameters from the database.
- Return type:
- merge(srimdb2, backscat=True, e2recoil=True, ioniz=True, lateral=True, phonon=True, range3d=True, range_=True, sputter=True, transmit=True, vacancy=True, collision=True, trimdat=True, novac=True)[source]
Merges two databases.
- Parameters:
srimdb2 (SRIMDBIter) – SRIM database to merge.
backscat (bool, optional) – Merge backscattering data.
e2recoil (bool, optional) – Merge energy to recoil data.
ioniz (bool, optional) – Merge ionization data.
lateral (bool, optional) – Merge lateral data.
phonon (bool, optional) – Merge phonon data.
range3d (bool, optional) – Merge 3D range data.
range (bool, optional) – Merge range data.
sputter (bool, optional) – Merge sputtering data.
transmit (bool, optional) – Merge transmission data.
vacancy (bool, optional) – Merge vacancy data.
collision (bool, optional) – Merge collision data.
trimdat (bool, optional) – Merge TRIMDAT data.
novac (bool, optional) – Merge NOVAC data.
- Return type:
- minimize_and_handle_popup()[source]
Minimizes the SRIM window and handles the end of calculation popup.
- optimize()[source]
Optimize the SQLite database.
This method performs two operations to optimize the database: 1. Executes the “PRAGMA optimize” command to analyze and optimize the database. 2. Executes the “VACUUM” command to rebuild the database file, repacking it into a minimal amount of disk space.
- Return type:
-
path_db:
Path
- run(criterion, atomic_numbers, energies, remove_offsets, depths=None, ys=None, zs=None, cosxs=None, cosys=None, coszs=None, iter_max=None, ignore_32bit_warning=True)[source]
Runs the SRIM simulation.
- Parameters:
criterion (Callable) – Criterion to repeat calculation, must return False to repeat calculation. Its signature is: criterion(nion, energy, depth, y, z, se, atom_hit, pka_e, target_disp). Recommended to be defined as def criterion(**kwargs: dict) -> bool:.
atomic_numbers (npt.NDArray[np.int64]) – Ion atomic numbers.
energies (npt.NDArray[np.float64]) – Ion energies.
remove_offsets (bool) – Whether to remove initial depth offsets or not.
depths (npt.NDArray[np.float64], optional) – Ion initial depths.
ys (npt.NDArray[np.float64], optional) – Ion initial y positions.
zs (npt.NDArray[np.float64], optional) – Ion initial z positions.
cosxs (npt.NDArray[np.float64], optional) – Ion initial x directions.
cosys (npt.NDArray[np.float64], optional) – Ion initial y directions.
coszs (npt.NDArray[np.float64], optional) – Ion initial z directions.
iter_max (int, optional (default=None)) – Maximum number of iterations.
- Return type:
- save_target_calculation()[source]
Saves the target and calculation parameters into the database.
- Return type:
Module contents
This subpackage provides a Python interface for SRIM for simulating collisional cascades.