Hi, I am testing this patch now. In the future, I would suggest to attach files to the task for this project at https://gna.org/task/?6397. This stops the patch from being amplified across the internet by being sent to many recipients and being archived across the web (i.e. at http://www.mail-archive.com/[email protected]/, https://mail.gna.org/public/relax-devel/, etc.).
Ok, trying to apply the patch failed. I received the following messages: [edw...@localhost cst]$ patch -p0 < patch00001 can't find file to patch at input line 4 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |diff -ur cst_orig/maths_fns/direction_cosine.py cst/maths_fns/direction_cosine.py |--- cst_orig/maths_fns/direction_cosine.py 2010-03-30 20:13:34.000000000 +0200 |+++ cst/maths_fns/direction_cosine.py 2010-03-30 21:12:32.000000000 +0200 -------------------------- File to patch: So I've manually specified the files to be patched. This is avoided by modifying a clean copy of your 'cst' branch. You can then type: $ svn diff > patch00002 This will result in a patch that is easier to apply. The second thing is that I would recommend splitting this into two patches - the first is simply the renaming of data.xh_unit_vector to data.unit_vector, the second being the looping over the 'data' data structure. Commits to the repository should be performed in small changes. That way if a better solution than looping over the 'data' data structure is found, that small change can be reverted without removing the data.xh_unit_vector change. I can also check each change with the relax test suite to find any problems with the code. Lastly, the relax test suite fails with this patch. This is caused by the 'data' data structure not being set up correctly for this new design. This will require an extra loop at about line 243 of the maths_fns/mf.py file (in the __init__() method). This loop is for looping over the physical interactions. A self.data.append([]) line above it will be required to turn 'self.data' into a list of lists, where the first dimension is the spins and the second is the physical interactions. I.e. 'self.data[0][2]' is the data for the first of the 3rd physical interaction. We should discuss how to set this up and how to pass the relevant data into the Mf class. Do you have any ideas? Cheers, Edward On 1 April 2010 18:17, Pavel Kaderavek <[email protected]> wrote: > Hi, I tried to make a patch of first already pre-discussed changes in CST > branch of 1.3 line . According to the manual I am sending the patch file and > I created commit-log message below this text (I hope I understood the > instructions correctly). > Pavel > > task#6397 > > kada _at_ chemi _dot_ muni _dot_ cz > > This is a first attempt of change in CST branch, it includes change of name > xh_unit_vector to more general name unit_vector > Added loop over loaded interaction vectors. > Discussed in > Message-ID: > <[email protected] > > > diff -ur cst_orig/maths_fns/direction_cosine.py > cst/maths_fns/direction_cosine.py > --- cst_orig/maths_fns/direction_cosine.py 2010-03-30 20:13:34.000000000 > +0200 > +++ cst/maths_fns/direction_cosine.py 2010-03-30 21:12:32.000000000 +0200 > @@ -61,7 +61,7 @@ > diff_data.dpar[2] = diff_data.cos_theta > > # Direction cosine. > - data.dz = dot(data.xh_unit_vector, diff_data.dpar) > + data.dz = dot(data.unit_vector, diff_data.dpar) > > > > @@ -97,8 +97,8 @@ > diff_data.dpar_dphi[2] = 0.0 > > # Direction cosine gradient. > - data.ddz_dO[0] = dot(data.xh_unit_vector, diff_data.dpar_dtheta) > - data.ddz_dO[1] = dot(data.xh_unit_vector, diff_data.dpar_dphi) > + data.ddz_dO[0] = dot(data.unit_vector, diff_data.dpar_dtheta) > + data.ddz_dO[1] = dot(data.unit_vector, diff_data.dpar_dphi) > > > > @@ -145,9 +145,9 @@ > diff_data.dpar_dphi2[2] = 0.0 > > # Direction cosine Hessian. > - data.d2dz_dO2[0, 0] = dot(data.xh_unit_vector, diff_data.dpar_dtheta2) > - data.d2dz_dO2[0, 1] = data.d2dz_dO2[1, 0] = dot(data.xh_unit_vector, > diff_data.dpar_dthetadphi) > - data.d2dz_dO2[1, 1] = dot(data.xh_unit_vector, diff_data.dpar_dphi2) > + data.d2dz_dO2[0, 0] = dot(data.unit_vector, diff_data.dpar_dtheta2) > + data.d2dz_dO2[0, 1] = data.d2dz_dO2[1, 0] = dot(data.unit_vector, > diff_data.dpar_dthetadphi) > + data.d2dz_dO2[1, 1] = dot(data.unit_vector, diff_data.dpar_dphi2) > > > > @@ -230,9 +230,9 @@ > diff_data.dz[2] = data.cos_b > > # Direction cosines. > - data.dx = dot(data.xh_unit_vector, diff_data.dx) > - data.dy = dot(data.xh_unit_vector, diff_data.dy) > - data.dz = dot(data.xh_unit_vector, diff_data.dz) > + data.dx = dot(data.unit_vector, diff_data.dx) > + data.dy = dot(data.unit_vector, diff_data.dy) > + data.dz = dot(data.unit_vector, diff_data.dz) > > > > @@ -360,16 +360,16 @@ > # Direction cosine gradients > ############################ > > - data.ddx_dO[0] = dot(data.xh_unit_vector, diff_data.ddx_dalpha) > - data.ddx_dO[1] = dot(data.xh_unit_vector, diff_data.ddx_dbeta) > - data.ddx_dO[2] = dot(data.xh_unit_vector, diff_data.ddx_dgamma) > - > - data.ddy_dO[0] = dot(data.xh_unit_vector, diff_data.ddy_dalpha) > - data.ddy_dO[1] = dot(data.xh_unit_vector, diff_data.ddy_dbeta) > - data.ddy_dO[2] = dot(data.xh_unit_vector, diff_data.ddy_dgamma) > + data.ddx_dO[0] = dot(data.unit_vector, diff_data.ddx_dalpha) > + data.ddx_dO[1] = dot(data.unit_vector, diff_data.ddx_dbeta) > + data.ddx_dO[2] = dot(data.unit_vector, diff_data.ddx_dgamma) > + > + data.ddy_dO[0] = dot(data.unit_vector, diff_data.ddy_dalpha) > + data.ddy_dO[1] = dot(data.unit_vector, diff_data.ddy_dbeta) > + data.ddy_dO[2] = dot(data.unit_vector, diff_data.ddy_dgamma) > > - data.ddz_dO[1] = dot(data.xh_unit_vector, diff_data.ddz_dbeta) > - data.ddz_dO[2] = dot(data.xh_unit_vector, diff_data.ddz_dgamma) > + data.ddz_dO[1] = dot(data.unit_vector, diff_data.ddz_dbeta) > + data.ddz_dO[2] = dot(data.unit_vector, diff_data.ddz_dgamma) > > > > @@ -581,20 +581,20 @@ > # Direction cosine Hessians > ########################### > > - data.d2dx_dO2[0, 0] = dot(data.xh_unit_vector, > diff_data.d2dx_dalpha2) > - data.d2dx_dO2[0, 1] = data.d2dx_dO2[1, 0] = dot(data.xh_unit_vector, > diff_data.d2dx_dalpha_dbeta) > - data.d2dx_dO2[0, 2] = data.d2dx_dO2[2, 0] = dot(data.xh_unit_vector, > diff_data.d2dx_dalpha_dgamma) > - data.d2dx_dO2[1, 1] = dot(data.xh_unit_vector, > diff_data.d2dx_dbeta2) > - data.d2dx_dO2[1, 2] = data.d2dx_dO2[2, 1] = dot(data.xh_unit_vector, > diff_data.d2dx_dbeta_dgamma) > - data.d2dx_dO2[2, 2] = dot(data.xh_unit_vector, > diff_data.d2dx_dgamma2) > - > - data.d2dy_dO2[0, 0] = dot(data.xh_unit_vector, > diff_data.d2dy_dalpha2) > - data.d2dy_dO2[0, 1] = data.d2dy_dO2[1, 0] = dot(data.xh_unit_vector, > diff_data.d2dy_dalpha_dbeta) > - data.d2dy_dO2[0, 2] = data.d2dy_dO2[2, 0] = dot(data.xh_unit_vector, > diff_data.d2dy_dalpha_dgamma) > - data.d2dy_dO2[1, 1] = dot(data.xh_unit_vector, > diff_data.d2dy_dbeta2) > - data.d2dy_dO2[1, 2] = data.d2dy_dO2[2, 1] = dot(data.xh_unit_vector, > diff_data.d2dy_dbeta_dgamma) > - data.d2dy_dO2[2, 2] = dot(data.xh_unit_vector, > diff_data.d2dy_dgamma2) > - > - data.d2dz_dO2[1, 1] = dot(data.xh_unit_vector, > diff_data.d2dz_dbeta2) > - data.d2dz_dO2[1, 2] = data.d2dz_dO2[2, 1] = dot(data.xh_unit_vector, > diff_data.d2dz_dbeta_dgamma) > - data.d2dz_dO2[2, 2] = dot(data.xh_unit_vector, > diff_data.d2dz_dgamma2) > + data.d2dx_dO2[0, 0] = dot(data.unit_vector, > diff_data.d2dx_dalpha2) > + data.d2dx_dO2[0, 1] = data.d2dx_dO2[1, 0] = dot(data.unit_vector, > diff_data.d2dx_dalpha_dbeta) > + data.d2dx_dO2[0, 2] = data.d2dx_dO2[2, 0] = dot(data.unit_vector, > diff_data.d2dx_dalpha_dgamma) > + data.d2dx_dO2[1, 1] = dot(data.unit_vector, > diff_data.d2dx_dbeta2) > + data.d2dx_dO2[1, 2] = data.d2dx_dO2[2, 1] = dot(data.unit_vector, > diff_data.d2dx_dbeta_dgamma) > + data.d2dx_dO2[2, 2] = dot(data.unit_vector, > diff_data.d2dx_dgamma2) > + > + data.d2dy_dO2[0, 0] = dot(data.unit_vector, > diff_data.d2dy_dalpha2) > + data.d2dy_dO2[0, 1] = data.d2dy_dO2[1, 0] = dot(data.unit_vector, > diff_data.d2dy_dalpha_dbeta) > + data.d2dy_dO2[0, 2] = data.d2dy_dO2[2, 0] = dot(data.unit_vector, > diff_data.d2dy_dalpha_dgamma) > + data.d2dy_dO2[1, 1] = dot(data.unit_vector, > diff_data.d2dy_dbeta2) > + data.d2dy_dO2[1, 2] = data.d2dy_dO2[2, 1] = dot(data.unit_vector, > diff_data.d2dy_dbeta_dgamma) > + data.d2dy_dO2[2, 2] = dot(data.unit_vector, > diff_data.d2dy_dgamma2) > + > + data.d2dz_dO2[1, 1] = dot(data.unit_vector, > diff_data.d2dz_dbeta2) > + data.d2dz_dO2[1, 2] = data.d2dz_dO2[2, 1] = dot(data.unit_vector, > diff_data.d2dz_dbeta_dgamma) > + data.d2dz_dO2[2, 2] = dot(data.unit_vector, > diff_data.d2dz_dgamma2) > diff -ur cst_orig/maths_fns/mf.py cst/maths_fns/mf.py > --- cst_orig/maths_fns/mf.py 2010-03-30 20:13:34.000000000 +0200 > +++ cst/maths_fns/mf.py 2010-03-30 21:28:16.000000000 +0200 > @@ -397,7 +397,9 @@ > > # Direction cosine calculations. > if self.diff_data.calc_di: > - self.diff_data.calc_di(data, self.diff_data) > + # loop over the interactions > + for i in range(len(data)): > + self.diff_data.calc_di(data[i], self.diff_data) > > # Diffusion tensor weight calculations. > self.diff_data.calc_ci(data, self.diff_data) > @@ -511,7 +513,9 @@ > > # Direction cosine calculations. > if self.diff_data.calc_di: > - self.diff_data.calc_di(data, self.diff_data) > + # loop over the interactions > + for i in range(len(data)): > + self.diff_data.calc_di(data[i], self.diff_data) > > # Diffusion tensor weight calculations. > self.diff_data.calc_ci(data, self.diff_data) > @@ -578,7 +582,9 @@ > > # Direction cosine calculations. > if self.diff_data.calc_di: > - self.diff_data.calc_di(data, self.diff_data) > + # loop over the interactions > + for i in range(len(data)): > + self.diff_data.calc_di(data[i], self.diff_data) > > # Diffusion tensor weight calculations. > self.diff_data.calc_ci(data, self.diff_data) > @@ -766,7 +772,9 @@ > > # Direction cosine calculations. > if self.diff_data.calc_ddi: > - self.diff_data.calc_ddi(data, self.diff_data) > + # loop over the interactions > + for i in range(len(data)): > + self.diff_data.calc_ddi(data[i], self.diff_data) > > # Diffusion tensor weight calculations. > if self.diff_data.calc_dci: > @@ -847,7 +855,9 @@ > > # Direction cosine calculations. > if self.diff_data.calc_ddi: > - self.diff_data.calc_ddi(data, self.diff_data) > + # loop over the interactions > + for i in range(len(data)): > + self.diff_data.calc_ddi(data[i], self.diff_data) > > # Diffusion tensor weight calculations. > if self.diff_data.calc_dci: > @@ -1031,7 +1041,9 @@ > > # Direction cosine calculations. > if self.diff_data.calc_d2di: > - self.diff_data.calc_d2di(data, self.diff_data) > + # loop over the interactions > + for i in range(len(data)): > + self.diff_data.calc_d2di(data[i], self.diff_data) > > # Diffusion tensor weight calculations. > if self.diff_data.calc_d2ci: > @@ -1105,7 +1117,9 @@ > > # Direction cosine calculations. > if self.diff_data.calc_d2di: > - self.diff_data.calc_d2di(data, self.diff_data) > + # loop over the interactions > + for i in range(len(data)): > + self.diff_data.calc_d2di(data[i], self.diff_data) > > # Diffusion tensor weight calculations. > if self.diff_data.calc_d2ci: > > > _______________________________________________ > relax (http://nmr-relax.com) > > This is the relax-devel mailing list > [email protected] > > 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-devel > > _______________________________________________ relax (http://nmr-relax.com) This is the relax-devel mailing list [email protected] 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-devel

