rmgpy.statmech.schrodinger

The rmgpy.statmech.schrodinger module contains functionality for working with the Schrodinger equation and its solution. In particular, it contains functions for using the energy levels and corresponding degeneracies obtained from solving the Schrodinger equation to compute various thermodynamic and statistical mechanical properties, such as heat capacity, enthalpy, entropy, partition function, and the sum and density of states.

rmgpy.statmech.schrodinger.convolve(ndarray rho1, ndarray rho2)

Return the convolution of two arrays rho1 and rho2.

rmgpy.statmech.schrodinger.convolveBS(ndarray Elist, ndarray rho0, double energy, int degeneracy=1)

Convolve a molecular degree of freedom into a density or sum of states using the Beyer-Swinehart (BS) direct count algorithm. This algorithm is suitable for unevenly-spaced energy levels in the array of energy grains Elist (in J/mol), but assumes the solution of the Schrodinger equation gives evenly-spaced energy levels with spacing energy in kJ/mol and degeneracy degeneracy.

rmgpy.statmech.schrodinger.convolveBSSR(ndarray Elist, ndarray rho0, energy, degeneracy=unitDegeneracy, int n0=0)

Convolve a molecular degree of freedom into a density or sum of states using the Beyer-Swinehart-Stein-Rabinovitch (BSSR) direct count algorithm. This algorithm is suitable for unevenly-spaced energy levels in both the array of energy grains Elist (in J/mol) and the energy levels corresponding to the solution of the Schrodinger equation.

rmgpy.statmech.schrodinger.getDensityOfStates(ndarray Elist, energy, degeneracy=unitDegeneracy, int n0=0, ndarray densStates0=None) → ndarray

Return the values of the dimensionless density of states \(\rho(E) \ dE\) for a given set of energies Elist in J/mol above the ground state using an initial density of states densStates0. The solution to the Schrodinger equation is given using functions energy and degeneracy that accept as argument a quantum number and return the corresponding energy in J/mol and degeneracy of that level. The quantum number always begins at n0 and increases by ones.

rmgpy.statmech.schrodinger.getEnthalpy(double T, energy, degeneracy=unitDegeneracy, int n0=0, int nmax=10000, double tol=1e-12) → double

Return the value of the dimensionless enthalpy \(H(T)/RT\) at a given temperature T in K. The solution to the Schrodinger equation is given using functions energy and degeneracy that accept as argument a quantum number and return the corresponding energy in J/mol and degeneracy of that level. The quantum number always begins at n0 and increases by ones. You can also change the relative tolerance tol and the maximum allowed value of the quantum number nmax.

rmgpy.statmech.schrodinger.getEntropy(double T, energy, degeneracy=unitDegeneracy, int n0=0, int nmax=10000, double tol=1e-12) → double

Return the value of the dimensionless entropy \(S(T)/R\) at a given temperature T in K. The solution to the Schrodinger equation is given using functions energy and degeneracy that accept as argument a quantum number and return the corresponding energy in J/mol and degeneracy of that level. The quantum number always begins at n0 and increases by ones. You can also change the relative tolerance tol and the maximum allowed value of the quantum number nmax.

rmgpy.statmech.schrodinger.getHeatCapacity(double T, energy, degeneracy=unitDegeneracy, int n0=0, int nmax=10000, double tol=1e-12) → double

Return the value of the dimensionless heat capacity \(C_\mathrm{v}(T)/R\) at a given temperature T in K. The solution to the Schrodinger equation is given using functions energy and degeneracy that accept as argument a quantum number and return the corresponding energy in J/mol and degeneracy of that level. The quantum number always begins at n0 and increases by ones. You can also change the relative tolerance tol and the maximum allowed value of the quantum number nmax.

rmgpy.statmech.schrodinger.getPartitionFunction(double T, energy, degeneracy=unitDegeneracy, int n0=0, int nmax=10000, double tol=1e-12) → double

Return the value of the partition function \(Q(T)\) at a given temperature T in K. The solution to the Schrodinger equation is given using functions energy and degeneracy that accept as argument a quantum number and return the corresponding energy in J/mol and degeneracy of that level. The quantum number always begins at n0 and increases by ones. You can also change the relative tolerance tol and the maximum allowed value of the quantum number nmax.

rmgpy.statmech.schrodinger.getSumOfStates(ndarray Elist, energy, degeneracy=unitDegeneracy, int n0=0, ndarray sumStates0=None) → ndarray

Return the values of the sum of states \(N(E)\) for a given set of energies Elist in J/mol above the ground state using an initial sum of states sumStates0. The solution to the Schrodinger equation is given using functions energy and degeneracy that accept as argument a quantum number and return the corresponding energy in J/mol and degeneracy of that level. The quantum number always begins at n0 and increases by ones.

rmgpy.statmech.schrodinger.unitDegeneracy(n)