Author: tlinnet
Date: Wed Jun 11 10:08:05 2014
New Revision: 23819
URL: http://svn.gna.org/viewcvs/relax?rev=23819&view=rev
Log:
Replaced self.(ei,si,mi,oi,di) with self.(NE,NS,NM,NO,ND).
These numbers represents the maximum number of dimensions, instead of index.
Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion
models for Clustered analysis.
Modified:
branches/disp_spin_speed/target_functions/relax_disp.py
Modified: branches/disp_spin_speed/target_functions/relax_disp.py
URL:
http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/target_functions/relax_disp.py?rev=23819&r1=23818&r2=23819&view=diff
==============================================================================
--- branches/disp_spin_speed/target_functions/relax_disp.py (original)
+++ branches/disp_spin_speed/target_functions/relax_disp.py Wed Jun 11
10:08:05 2014
@@ -409,11 +409,12 @@
self.numpy_array_shape = back_calc_shape +
[self.max_num_disp_points]
# Set the dimensions to paramater.
- self.ei = self.numpy_array_shape[0]
- self.si = self.numpy_array_shape[1]
- self.mi = self.numpy_array_shape[2]
- self.oi = self.numpy_array_shape[3]
- self.di = self.numpy_array_shape[4]
+ # The total numbers of experiments, number of spins, number of
magnetic field strength, number of offsets, maximum number of dispersion
point.
+ self.NE = self.numpy_array_shape[0]
+ self.NS = self.numpy_array_shape[1]
+ self.NM = self.numpy_array_shape[2]
+ self.NO = self.numpy_array_shape[3]
+ self.ND = self.numpy_array_shape[4]
# Create zero and one numpy structure.
zeros_a = zeros(self.numpy_array_shape, float64)
@@ -439,17 +440,17 @@
self.dw_struct = deepcopy(zeros_a)
# Temporary storage to avoid memory allocations and garbage
collection.
- self.dw_temp = zeros([self.si] + self.numpy_array_shape,
float64)
+ self.dw_temp = zeros([self.NS] + self.numpy_array_shape,
float64)
# The structure for multiplication with dw to piecewise build
up the full dw structure.
self.dw_mask = deepcopy(self.dw_temp)
# Loop over the experiment types.
- for ei in range(self.num_exp):
+ for ei in range(self.NE):
# Loop over the spins.
- for si in range(self.num_spins):
+ for si in range(self.NS):
# Loop over the spectrometer frequencies.
- for mi in range(self.num_frq):
+ for mi in range(self.NM):
# Fill dw_mask with frequencies.
self.dw_mask[si, :, si, mi] = self.frqs[ei][si][mi]
@@ -558,7 +559,7 @@
"""
# Loop over the dw elements (one per spin).
- for si in range(self.si):
+ for si in range(self.NS):
# First multiply the spin specific dw with the spin specific
frequency mask, using temporary storage.
multiply(dw[si], self.dw_mask[si], self.dw_temp[si])
@@ -566,13 +567,13 @@
add(self.dw_struct, self.dw_temp[si], self.dw_struct)
# Reshape dw to per experiment and nr spins.
- dw_axis = asarray(dw).reshape(self.ei, self.si)
+ dw_axis = asarray(dw).reshape(self.NE, self.NS)
# Expand dw to number of axis for frequency, offset and dispersion
points.
dw_axis = dw_axis[:,:,None,None,None]
# Tile dw according to dimensions.
- dw_axis = tile(dw_axis, (1, 1, self.mi, self.oi, self.di))
+ dw_axis = tile(dw_axis, (1, 1, self.NM, self.NO, self.ND))
# Convert dw from ppm to rad/s.
dw_frq_a = dw_axis*self.disp_struct*self.frqs_a
@@ -585,16 +586,16 @@
#sys.exit()
# Reshape R20A and R20B to per experiment, spin and frequency.
- R20A_axis = R20A.reshape(self.ei, self.si, self.mi)
- R20B_axis = R20B.reshape(self.ei, self.si, self.mi)
+ R20A_axis = R20A.reshape(self.NE, self.NS, self.NM)
+ R20B_axis = R20B.reshape(self.NE, self.NS, self.NM)
# Expand R20A and R20B axis to offset and dispersion points.
R20A_axis = R20A_axis[:,:,:,None,None]
R20B_axis = R20B_axis[:,:,:,None,None]
# Tile R20A and R20B according to maximum of dispersion points.
Multiply with spin structure array.
- R20A_axis = tile(R20A_axis, (1, 1, 1, self.oi, self.di)) *
self.disp_struct
- R20B_axis = tile(R20B_axis, (1, 1, 1, self.oi, self.di)) *
self.disp_struct
+ R20A_axis = tile(R20A_axis, (1, 1, 1, self.NO, self.ND)) *
self.disp_struct
+ R20B_axis = tile(R20B_axis, (1, 1, 1, self.NO, self.ND)) *
self.disp_struct
## Back calculate the R2eff values.
r2eff_CR72(r20a=R20A_axis, r20b=R20B_axis, pA=pA, dw=dw_frq_a,
kex=kex, cpmg_frqs=self.cpmg_frqs_a, back_calc=self.back_calc_a,
num_points=self.num_disp_points_a)
_______________________________________________
relax (http://www.nmr-relax.com)
This is the relax-commits mailing list
relax-commits@xxxxxxx
To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-commits