Hi Edward,
thank you for the exhaustive answer.
I have saved the script as a filename.py file in the
/relax/Contents/Resources/user_functions directory and tried to run in from
within relax using the menu user functions (n-z) -> script
However, it does not appear to do anything.
Any hint?
Stefano
On Mar 18, 2014, at 10:04 AM, Edward d'Auvergne wrote:
# Python module imports.
from numpy import float64, zeros
# relax module imports.
from lib.auto_relaxation.ri_comps import calc_fixed_csa,
calc_fixed_dip, comp_csa_const_func, comp_dip_const_func
from lib.physical_constants import h_bar, mu0, return_gyromagnetic_ratio
class Data:
"""Dummy class for storing data."""
# Initialise the data container.
data = Data()
# The spectrometer frequency (Hz).
frq = 500e6
# The dynamically averaged bond length (m) and chemical shift tensor
anisotropy.
r = 1.02e-10
csa = -172e-6
# Add the needed physical constants to the data storage.
data.gx = return_gyromagnetic_ratio('15N')
data.gh = return_gyromagnetic_ratio('1H')
data.mu0 = mu0
data.h_bar = h_bar
# The number of frequencies.
data.num_frq = 1
# Initialise dipolar and CSA data structures.
data.dip_const_fixed = 0.0
data.csa_const_fixed = [0.0]
data.dip_const_func = 0.0
data.csa_const_func = zeros(1, float64)
# Nuclear frequencies.
frq = frq * 2 * pi
frqX = frq * data.gx / data.gh
# Calculate the five frequencies which cause R1, R2, and NOE relaxation.
data.frq_list = zeros((1, 5), float64)
data.frq_list[0, 1] = frqX
data.frq_list[0, 2] = frq - frqX
data.frq_list[0, 3] = frq
data.frq_list[0, 4] = frq + frqX
data.frq_sqrd_list = data.frq_list ** 2
# Calculate the fixed component of the dipolar and CSA constants.
calc_fixed_dip(data)
calc_fixed_csa(data)
# Calculate the dipolar and CSA constants.
comp_dip_const_func(data, r)
comp_csa_const_func(data, csa)
# Rename the dipolar and CSA constants.
d = data.dip_const_func
c = data.csa_const_func[0]
# Printout.
print("d: %s" % d)
print("c: %s" % c)