Skip to content

pyDCONTINPALS - A Python program for running the historical FORTRAN code CONTIN-PALS which solves Fredholm integral equations with convoluted exponential decays as kernels of the type that occur in the analysis of Positron Annihilation Lifetime Spectra (PALS).

License

Notifications You must be signed in to change notification settings

dpscience/DCONTINPALS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

badge-OS badge-OS

Support this project and keep always updated about recent software releases, bug fixes and major improvements by following on github.

badge-followers badge-stars badge-forks

pyDCONTINPALS

badge-OS badge-language badge-license

Copyright (c) 2020-2023 Dr. Danny Petschke ([email protected]). All rights reserved.

pyDCONTINPALS - A program in Python for running the historical FORTRAN code CONTIN-PALS initially provided by Provencher (1982) and Gregory et al. (1990/1991). CONTIN-PALS program solves Fredholm integral equations with convoluted exponential decays as kernels of the type that occur in the analysis of Positron Annihilation Lifetime Spectra (PALS).

demo

Quickstart Guide

pyDCONTINPALS consists of 3 files ...

pyDCONTINPALS.py
pyDCONTINPALSInput.py
pyDCONTINPALSSpecSimulator.py

  • edit the input file pyDCONTINPALSInput.py:
__demoMode                  = True # disable if running from real data

# NOTE: SPECTRUM and IRF (or mono-exponential decay spectrum) data vectors require equal length!

__roi_start                 = 0
__roi_end                   = 7400 # Note: number of channels is internally limited by CONTIN to <= 4000, so adjust the '__binFactor' in order to fit the given number of channels into this range

# file path (and name) to the SPECTRUM data:

__usingRefSpectrum          = True # if set to FALSE the '__irfXXX' related parameters are considered

__filePathSpec              = 'testData/spectrum_10ps.dat'
__specDataDelimiter         = '\t'

# file path (and name) to the IRF data:

__filePathRefOrIRFSpec      = 'testData/ref_10ps.dat'
__refDataDelimiter          = '\t'

# define the number of rows to be skipped during the import of the data (e.g. for ignoring the header entries):

__skipRows                  = 5;

# fixed mono-decay component in units of picoseconds [ps] (1/lambda = tau):

# Note: set to values below 1E-6 if you are providing numerical IRF data as input otherwise the decay rate in [ps]: 

__tau_monoDecaySpec_in_ps   = 182.  # [ps]

# used to model the IRF data in case '__usingRefSpectrum' = False:

__t_zero                    = 2000             # channel number 
__irf_fwhm                  = [270.04,498.63]  # [ps]
__irf_intensity             = [0.9382,0.0618]  # [ps]
__irf_t0                    = [0.,6.6]         # [ps]

# grid of characteristic lifetimes with equally distributed grid points defining the resulting intensity spectrum to be expected as output:

__gridTau_start             = 10.0   # [ps]
__gridTau_stop              = 3000.0 # [ps]
__gridPoints                = 100    # 10 ... 100 Note: this value is internally limited by CONTIN

# channel/bin resolution [ps]:

__channelResolutionInPs     = 10. # >= 10 ... Note: this value is internally limited by CONTIN. If lower, increase '__binFactor' to fit into this range
__binFactor                 = 2   # Note: number of channels is internally limited by CONTIN to <= 4000, so adjust the '__binFactor' in order to fit the given number of channels into this range

# background estimation/calculation region:

__bkgrd_startIndex          = 6500;
__bkgrd_count               = 900; # number of channels with respect to the 'startIndex''
  • execute pyDCONTINPALS.py

  • finished. You should see the results as shown above in the figures when running in the demo mode (__demoMode = True).

How to cite this Program?

DOI

R.B. Gregory, Y. Zhu, Analysis of positron annihilation lifetime data by numerical laplace inversion with the program CONTIN, Nucl. Instruments Methods Phys. Res. Sect. A Accel. Spectrometers, Detect. Assoc. Equip. 290 (1990) 172–182. doi:10.1016/0168-9002(90)90358-D..

  • Additionally, you should cite the applied version of this program in your study.

You can cite all released software versions by using the DOI 10.5281/zenodo.3665474. This DOI represents all versions, and will always resolve to the latest one.

DOI

v1.x

pyDCONTINPALS v1.04
DOI
pyDCONTINPALS v1.03
DOI
pyDCONTINPALS v1.02
DOI
pyDCONTINPALS v1.01
DOI
pyDCONTINPALS v1.0
DOI

License of (py)DCONTINPALS (GNU General Public License)

Copyright (c) 2020-2023 Dr. Danny Petschke ([email protected]) All rights reserved.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

For more details see GNU General Public License v3