Source code for casinotools.fileformat.casino2.MeanIonizationPotential

#!/usr/bin/env python
""" """

# Script information for the file.
__author__ = "Hendrix Demers (hendrix.demers@mail.mcgill.ca)"
__version__ = ""
__date__ = ""
__copyright__ = "Copyright (c) 2009 Hendrix Demers"
__license__ = ""

# Standard library modules.
from math import pow

# Third party modules.

# Local modules.

# Globals and constants variables.
MODEL_JOY = 0
MODEL_BERGER = 1
MODEL_PH = 2

[docs]class MeanIonizationPotential(object): def __init__(self, model=MODEL_JOY): if model == MODEL_JOY: self._compute = self._computeJoy elif model == MODEL_BERGER: self._compute = self._computeBerger elif model == MODEL_PH: self._compute = self._computePH
[docs] def computeJ(self, atomicNumber): return self._compute(atomicNumber)
def _computeJoy(self, atomicNumber): z = float(atomicNumber) if atomicNumber < 13: J = 11.5 * z * 1e-3 else: J = 0.00976 * z + 0.0588 / pow(z, 0.19) return J def _computeBerger(self, atomicNumber): z = float(atomicNumber) J = 0.00976 * z + 0.0588 / pow(z, 0.19) return J def _computePH(self, atomicNumber): z = float(atomicNumber) if atomicNumber <= 20: J = 14.858 + 15.4 * z - 2.9276 * pow(z, 2) + 0.5348 * pow(z, 3) - 0.03563 * pow(z, 4) + 7.7733e-4 * pow(z, 5) else: J = -2034.18 + 35.576 * z - 0.1142 * pow(z, 2) + 63824.348 / z - 658308.68 / (z * z) return (J * 1e-3)