Hi,

I'll have to look at this patch later.  The Gna! website
(http://gna.org) looks like it has been hacked, so I can't reach the
task to download the patch :S  Hopefully I can have it applied
tomorrow, but the next 2 days will be almost impossible for me due to
a day long meeting.

Cheers,

Edward



On 29 November 2010 23:28, Pavel Kaderavek <pavel.kadera...@gmail.com> wrote:
> This change is related to the task #6397 (https://gna.org/task/?6397)
>
> kada _at_ chemi _dot_ muni _dot_ cz
>
> https://mail.gna.org/public/relax-devel/2010-11/msg00001.html
> https://gna.org/task/download.php?file_id=11449
>
> This patch includes change in  func_mf, func_local_tm, func_diff, func_all,
> dfunc_mf, dfunc_local_tm, dfunc_diff, dfunc_all, d2func_mf, d2func_local_tm,
> d2func_diff, d2func_all functions of class Mf in a file maths_fns/mf.py.
> Functions were modified in order to handle data for more interactions.
>
> On 27 November 2010 09:25, Edward d'Auvergne <edw...@nmr-relax.com> wrote:
>>
>> Hi,
>>
>> First make a backup copy just in case, then simply perform an 'svn up'
>> and then 'svn diff'.  This should work without clashes.  If there is a
>> clash, this is a normal part of software development.  This really
>> shouldn't be necessary.  But if you need to resolve a clash, you need
>> to edit the file and find the '<<<<<', '=====', and '>>>>>' marks.
>> This separates code from the old file and the new file for you to
>> manually edit and merge.  If it's too confusing, just ask again.
>>
>> Cheers,
>>
>> Edward
>>
>>
>> On 25 November 2010 19:25, Pavel Kaderavek <pavel.kadera...@gmail.com>
>> wrote:
>> > Hi,
>> >
>> > We prepared another set of changes according to discussion in:
>> > https://mail.gna.org/public/relax-devel/2010-11/msg00001.html
>> > and previous.
>> >
>> > Normally, we use command "svn diff" to create a patch by comparing new
>> > code
>> > and code of our branch in the repository. As the current changes are
>> > applied
>> > on the already patched version of the code (not present in the current
>> > repository revision of our branch obtained by "svn up"), we would like
>> > to
>> > ask you how the patch should be created.
>> >
>> > Regards,
>> > Pavel
>> >
>> >
>> > On 15 November 2010 19:21, Edward d'Auvergne <edw...@nmr-relax.com>
>> > wrote:
>> >>
>> >> Hi,
>> >>
>> >> I'm now back from a few weeks holidays.  This is correct, a double
>> >> looping will be required.  I think this will still be efficient as the
>> >> "for k in xrange(self.num_interactions[0])" loops are not very
>> >> expensive.  The alternative is to bring the "for j in
>> >> xrange(data.total_num_params):" loop, but this would duplicate
>> >> calculations and hence be even more expensive.  This will also be
>> >> required in the d2func_* methods as well.
>> >>
>> >> On a different note, as the code is becoming more complex, I would
>> >> recommend for a future patch that "data = self.data[0]" so that we
>> >> always use "self.data[0][k].dri_prime[j]" for each element rather than
>> >> "data..dri_prime[j]".  This will help with debugging in the future as
>> >> we could end up mixing the self.data elements.
>> >>
>> >> Also for the Rex interaction, there are plans for the future to allow
>> >> for it to be non-quadratic for situations closer to slow exchange or
>> >> intermediate.  For slow exchange the interaction is then linear with
>> >> field strength, and the value ranges from linear (alpha=1) to
>> >> quadratic (alpha=2).  So the alpha value between 1 and 2 might become
>> >> an optimisable parameter and hence this interaction type will become
>> >> more complex and require its own code paths.  So if this branch
>> >> separates out the Rex interaction, this would be of benefit to the
>> >> rest of relax.  Though the separation might be essential for the
>> >> powerful code restructuring currently anyway.
>> >>
>> >> Cheers,
>> >>
>> >> Edward
>> >>
>> >>
>> >>
>> >>
>> >> On 27 October 2010 20:45, Pavel Kaderavek <pavel.kadera...@gmail.com>
>> >> wrote:
>> >> > Hi,
>> >> > sorry for a late response. Your suggestions seem reasonable. I would
>> >> > add
>> >> > just a two comments.
>> >> > 1) We should keep as before not only ri_prime but probably also chi2,
>> >> > dchi2
>> >> > and d2chi2 as well.
>> >> > .
>> >> > 2)The consideration of Rex as an additional interaction is a one of
>> >> > the
>> >> > suitable approaches and it fits the general idea. We have to consider
>> >> > that
>> >> > it requires to add new interaction into the list of the interactions
>> >> > (
>> >> > __init__ function in class Mf, file maths_fns/mf.py).
>> >> > It might be done just within the __init__ function (class Mf, file
>> >> > maths_fns/mf.py). It will be based on the presence of Rex term within
>> >> > the
>> >> > loaded variable param_types. The other possibility is to do it before
>> >> > calling this __init__ function (number of interactions is one of its
>> >> > arguments).
>> >> >
>> >> > Then I address to discussion one additional problem related to the
>> >> > patch
>> >> > in
>> >> > the preparation. Within the  functions related to the derivations:
>> >> > dfunc_mf,
>> >> > dfunc_local_tm, dfunc_all, dfunc_diff (class Mf, maths_fns/mf.py)
>> >> > there
>> >> > is a
>> >> > small complication. It will be illustrated using  "dfunc_mf" function
>> >> > as
>> >> > an
>> >> > example. The original code is following:
>> >> >
>> >> >         data = self.data[0]
>> >> >
>> >> >         # Calculate the spectral density gradient components.
>> >> >         if data.calc_djw_comps:
>> >> >             data.calc_djw_comps(data, params)
>> >> >
>> >> >         # Diffusion tensor correlation times.
>> >> >         self.diff_data.calc_dti(data, self.diff_data)
>> >> >
>> >> >         # Loop over the gradient.
>> >> >         for j in xrange(data.total_num_params):
>> >> >             # Calculate the spectral density gradients.
>> >> >             if data.calc_djw[j]:
>> >> >                 data.djw = data.calc_djw[j](data, params, j)
>> >> >             else:
>> >> >                 data.djw = data.djw * 0.0
>> >> >
>> >> >             # Calculate the relaxation gradient components.
>> >> >             data.create_dri_comps(data, params)
>> >> >
>> >> >             # Calculate the R1, R2, and sigma_noe gradients.
>> >> >             data.dri_prime[j] = data.create_dri_prime[j](data)
>> >> >
>> >> >             # Loop over the relaxation values and modify the NOE
>> >> > gradients.
>> >> >             data.dri[j] = data.dri_prime[j]
>> >> >             for m in xrange(data.num_ri):
>> >> >                 if data.create_dri[m]:
>> >> >                     data.create_dri[m](data, m, data.remap_table[m],
>> >> > data.get_dr1, params, j)
>> >> >
>> >> >             # Calculate the chi-squared gradient.
>> >> >             data.dchi2[j] = dchi2_element(data.relax_data, data.ri,
>> >> > data.dri[j], data.errors)
>> >> >
>> >> > If  the loop over interactions is incorporated, it is necessary to do
>> >> > it
>> >> > before "data.calc_djw_comps" is calculated. However then we get into
>> >> > the
>> >> > conflict with calculation of "modification of NOE gradients" and also
>> >> > calculation of "dchi2". These quantities can be calculated only when
>> >> > contributions from all interactions has been already evaluated (it is
>> >> > similar to already discussed ri_prime). In this case it is
>> >> > complicated
>> >> > by
>> >> > the presence of loop over fitted parameters. The possible solution
>> >> > would
>> >> > be
>> >> > to make the loop over the interactions the inner one. However this
>> >> > seems
>> >> > to
>> >> > require repeating the loop over interactions twice within the code:
>> >> >
>> >> >         data = self.data[0]
>> >> >
>> >> >         # Loop over the interactions
>> >> >         for k in xrange(self.num_interactions[0]):
>> >> >             # Calculate the spectral density gradient components.
>> >> >             if data[k].calc_djw_comps:
>> >> >                 data[k].calc_djw_comps(data[k], params)
>> >> >
>> >> >             # Diffusion tensor correlation times.
>> >> >             self.diff_data.calc_dti(data[k], self.diff_data)
>> >> >
>> >> >         # Loop over the gradient.
>> >> >         for j in xrange(data.total_num_params):
>> >> >             # Loop over the interactions
>> >> >             for k in xrange(self.num_interactions[0])
>> >> >                 # Calculate the spectral density gradients.
>> >> >                 if data[k].calc_djw[j]:
>> >> >                     data[k].djw = data[k].calc_djw[j](data[k],
>> >> > params,
>> >> > j)
>> >> >                 else:
>> >> >                     data[k].djw = data[k].djw * 0.0
>> >> >
>> >> >                     # Calculate the relaxation gradient components.
>> >> >                     data[k].create_dri_comps(data[k], params)
>> >> >
>> >> >                 # Calculate the R1, R2, and sigma_noe gradients.
>> >> >                 data[k].dri_prime[j] =
>> >> > data[k].create_dri_prime[j](data[k])                              #
>> >> > later
>> >> > data[k].dri_prime[j] will be replaced by data.dri_prime[j]
>> >> >
>> >> >                                                    # but you suggest
>> >> > not
>> >> > to
>> >> > include both changes into the following patch together
>> >> >
>> >> >
>> >> >             # Loop over the relaxation values and modify the NOE
>> >> > gradients.
>> >> >             data.dri[j] = data.dri_prime[j]
>> >> >             for m in xrange(data.num_ri):
>> >> >                 if data.create_dri[m]:
>> >> >                     data.create_dri[m](data, m, data.remap_table[m],
>> >> > data.get_dr1, params, j)
>> >> >
>> >> >                 # Calculate the chi-squared gradient.
>> >> >                 data.dchi2[j] = dchi2_element(data.relax_data,
>> >> > data.ri,
>> >> > data.dri[j], data.errors)
>> >> >
>> >> > Additionally I would notify that variable "total_num_params" needs to
>> >> > be
>> >> > kept at the position self.data[0] (similar to your suggestion in your
>> >> > last
>> >> > mail, concerning ri_prime)
>> >> > What do you think about this?
>> >> > Regards
>> >> > Pavel
>> >> >
>> >> > On 22 October 2010 19:46, Edward d'Auvergne <edw...@nmr-relax.com>
>> >> > wrote:
>> >> >>
>> >> >> Hi,
>> >> >>
>> >> >> This is a good idea.  First I would suggest putting this into 2
>> >> >> patches, as this is easier to check and apply.  Don't worry about
>> >> >> breaking the code at this point - it is in your own special branch
>> >> >> so
>> >> >> as long as it works in the end, you can smash it into a million
>> >> >> pieces
>> >> >> and put it back together again if you like.  Commits to the
>> >> >> repository
>> >> >> are better when they are many small ones, as they can be more easily
>> >> >> managed.  For example if something is found to be designed not
>> >> >> ideally, or there is a fatal bug, that patch/commit can be reverted
>> >> >> and then new code can be worked on.  And small patches make it much
>> >> >> easier for the other relax developers to read and catch potential
>> >> >> hidden bugs or design issues.
>> >> >>
>> >> >> This is an intriguing problem, as the data flow hits a fork here.
>> >> >> ri_prime is the correct target for the merging of the data from all
>> >> >> the interactions, as this needs to occur before the calculation of
>> >> >> the
>> >> >> NOE using sigma_noe and the R1.  The relaxation rates R1, R2, and
>> >> >> sigma_noe add.  However the NOE does not.  I just thought I'd
>> >> >> explain
>> >> >> the logic for others to follow ;)
>> >> >>
>> >> >> I would suggest we store ri_prime somewhere else.  What I can do is
>> >> >> to
>> >> >> apply a patch for the first change to accommodate for the multiple
>> >> >> relaxation interactions.  Then I could make a change myself,
>> >> >> creating
>> >> >> a special Python object for 'data[i]'.  We can store the ri_prime
>> >> >> data
>> >> >> this special object.  Essentially, it will be like the current code
>> >> >> base.  We could have specific interaction data in say:
>> >> >>
>> >> >> self.data[10][0].jw  (or self.data[0].jw if data = self.data[i])
>> >> >>
>> >> >> This is new.  But as before we could have:
>> >> >>
>> >> >> self.data[10].ri_prime (or data.ri_prime if data = self.data[i])
>> >> >>
>> >> >> So the forking can all be managed within the self.data[i] data
>> >> >> structures.  What do you think?  Also, we will have to work out how
>> >> >> to
>> >> >> modify or replace func_ri_prime and func_ri_prime_rex in the
>> >> >> maths_fns.ri_prime module.  This is where the merging of data
>> >> >> streams
>> >> >> currently occurs.  Maybe Rex needs to be considered as its own
>> >> >> interaction, as this is added to produce ri_prime?
>> >> >>
>> >> >> Regards,
>> >> >>
>> >> >> Edward
>> >> >>
>> >> >>
>> >> >> P. S.  I just talked to Kathleen Hall and she seemed very interested
>> >> >> in what you are doing here!
>> >> >>
>> >> >>
>> >> >>
>> >> >> On 22 October 2010 18:26, Pavel Kaderavek
>> >> >> <pavel.kadera...@gmail.com>
>> >> >> wrote:
>> >> >> > Hi,
>> >> >> > I am continuing in the discussion started in my post
>> >> >> > https://mail.gna.org/public/relax-devel/2010-09/msg00020.html
>> >> >> > It covers changes of functions func_mf.py, func_local_tm ,
>> >> >> > func_diff,
>> >> >> > func_all and their equivalents for a first and second derivatives
>> >> >> > (class
>> >> >> > Mf,
>> >> >> > file maths_fns/mf.py).
>> >> >> >
>> >> >> > I would like to include into next patch also treatment of the
>> >> >> > fact,
>> >> >> > that
>> >> >> > it
>> >> >> > is necessary to sum together contributions of all interactions. It
>> >> >> > seems
>> >> >> > to
>> >> >> > me that the most suitable way is to do that by the modification
>> >> >> > just
>> >> >> > revised
>> >> >> > functions (func_mf.py, func_local_tm ...)
>> >> >> > I would suggest to initialize ri_prime before loop over
>> >> >> > interactions
>> >> >> > and
>> >> >> > then step by step add the contributions into the ri_prime:
>> >> >> >
>> >> >> >         data = self.data[i]                                  # the
>> >> >> > cases
>> >> >> > when `i` is replaced by `0` were discussed in your last mail
>> >> >> >         ri_prime=0
>> >> >> >
>> >> >> >
>> >> >> >         for j in xrange(self.num_interactions[i]):
>> >> >> >
>> >> >> >               ...
>> >> >> >               ...
>> >> >> >
>> >> >> >               # Calculate the R1, R2, and sigma_noe values.
>> >> >> >               ri_prime = ri_prime +
>> >> >> > data[j].create_ri_prime(data[j])
>> >> >> >
>> >> >> >          data[0].ri_prime = ri_prime
>> >> >> >
>> >> >> >
>> >> >> > When the loop over interactions is finished the accumulated
>> >> >> > relaxation
>> >> >> > rate
>> >> >> > is copied into the data storage of the first interaction. Then it
>> >> >> > is
>> >> >> > possible to call functions, where total ri_prime is needed:
>> >> >> >
>> >> >> >         # Calculate the NOE values.
>> >> >> >         data[0].ri = data[0].ri_prime * 1.0
>> >> >> >         for m in xrange(data[0].num_ri):
>> >> >> >             if data[0].create_ri[m]:
>> >> >> >                 data[0].create_ri[m](data[0], m,
>> >> >> > data[0].remap_table[m],
>> >> >> > data[0].get_r1, params)
>> >> >> >
>> >> >> >         # Calculate the chi-squared value.
>> >> >> >         data[0].chi2 = chi2(data[0].relax_data, data[0].ri,
>> >> >> > data[0].errors)
>> >> >> >
>> >> >> > Regards,
>> >> >> > Pavel
>> >> >> >
>> >> >> > On 19 October 2010 13:49, Edward d'Auvergne <edw...@nmr-relax.com>
>> >> >> > wrote:
>> >> >> >>
>> >> >> >> Hi,
>> >> >> >>
>> >> >> >> Sorry for the delay, I just came back from a 2 week holiday.
>> >> >> >>  This
>> >> >> >> is
>> >> >> >> correct, the func_mf, func_local_tm, etc. methods are working on
>> >> >> >> a
>> >> >> >> single spin.  This is stored in self.data[0].  The other
>> >> >> >> functions
>> >> >> >> work on multiple spin data located in self.data[0], self.data[1],
>> >> >> >> etc.
>> >> >> >>
>> >> >> >> Regards,
>> >> >> >>
>> >> >> >> Edward
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >> On 14 October 2010 19:38, Pavel Kaderavek
>> >> >> >> <pavel.kadera...@gmail.com>
>> >> >> >> wrote:
>> >> >> >> > Hi,
>> >> >> >> >
>> >> >> >> > I would like to announce a small clarification of my previous
>> >> >> >> > mail
>> >> >> >> > about
>> >> >> >> > changes in functions func_mf, func_local_tm, func_diff,
>> >> >> >> > func_all,
>> >> >> >> > and
>> >> >> >> > their
>> >> >> >> > derivatives (class Mf, file maths_fns/mf.py). Loop suggested in
>> >> >> >> > my
>> >> >> >> > last
>> >> >> >> > post:
>> >> >> >> >
>> >> >> >> > https://mail.gna.org/public/relax-devel/2010-09/msg00020.html
>> >> >> >> >
>> >> >> >> > is valid just for the functions func_diff, func_all, and their
>> >> >> >> > equivalents
>> >> >> >> > for a first and second derivatives.
>> >> >> >> > While for the functions  func_mf, func_local_tm, and
>> >> >> >> > corresponding
>> >> >> >> > derivatives the index of self.num_interactions should be set to
>> >> >> >> > `0`
>> >> >> >> > instead
>> >> >> >> > of index `i`
>> >> >> >> >
>> >> >> >> >         for j in xrange(self.num_interactions[0]):
>> >> >> >> >
>> >> >> >> > (The rest of the loop remains the same)
>> >> >> >> > That comes from the fact that these functions (func_mf,
>> >> >> >> > func_local_tm,
>> >> >> >> > ...
>> >> >> >> > ) are called for each spin separately. As it is indicated by
>> >> >> >> > the
>> >> >> >> > preceding
>> >> >> >> > statement:
>> >> >> >> >
>> >> >> >> >         data = self.data[0]
>> >> >> >> >
>> >> >> >> > Regards,
>> >> >> >> > Pavel
>> >> >> >> >
>> >> >> >> > On 29 September 2010 10:53, Edward d'Auvergne
>> >> >> >> > <edw...@nmr-relax.com>
>> >> >> >> > wrote:
>> >> >> >> >>
>> >> >> >> >> Hi,
>> >> >> >> >>
>> >> >> >> >> This is the perfect approach.  It will abstract the
>> >> >> >> >> calculations
>> >> >> >> >> so
>> >> >> >> >> that we will not need to touch many of maths_fns modules.
>> >> >> >> >>  With
>> >> >> >> >> this
>> >> >> >> >> code in place, I would aim at then making the test suite pass
>> >> >> >> >> again
>> >> >> >> >> by
>> >> >> >> >> having the correct data structures pass into maths_fns.mf.
>> >> >> >> >>  The
>> >> >> >> >> last
>> >> >> >> >> step would be to input CSA tensors and the multi-dipole
>> >> >> >> >> interactions
>> >> >> >> >> via user functions.  If you make a patch for all of the
>> >> >> >> >> func_*(),
>> >> >> >> >> dfunc_*(), and d2func_*() methods, I can check and apply it
>> >> >> >> >> quickly.
>> >> >> >> >>
>> >> >> >> >> Regards,
>> >> >> >> >>
>> >> >> >> >> Edward
>> >> >> >> >>
>> >> >> >> >>
>> >> >> >> >> On 28 September 2010 12:07, Pavel Kaderavek
>> >> >> >> >> <pavel.kadera...@gmail.com>
>> >> >> >> >> wrote:
>> >> >> >> >> > Hi,
>> >> >> >> >> > we were thinking about next necessary changes in the CST
>> >> >> >> >> > branch.
>> >> >> >> >> >
>> >> >> >> >> > Now we need to break through the problem, which implies the
>> >> >> >> >> > fact
>> >> >> >> >> > we
>> >> >> >> >> > split
>> >> >> >> >> > the relaxation rate calculation into contributions of
>> >> >> >> >> > individual
>> >> >> >> >> > interactions. Each of them has its own data class to store
>> >> >> >> >> > its
>> >> >> >> >> > parameters
>> >> >> >> >> > (so far called data[i][j], where the [i] was a spin index
>> >> >> >> >> > and
>> >> >> >> >> > [j]
>> >> >> >> >> > was
>> >> >> >> >> > the
>> >> >> >> >> > interaction index).
>> >> >> >> >> >
>> >> >> >> >> > It seems to us, that it the best way to deal with it is to
>> >> >> >> >> > edit
>> >> >> >> >> > functions:
>> >> >> >> >> > func_mf, func_local_tm , func_diff, func_all and their
>> >> >> >> >> > equivalents
>> >> >> >> >> > for a
>> >> >> >> >> > first and second derivatives (defined in mf.py file).
>> >> >> >> >> >
>> >> >> >> >> > Within these functions the calculations of direction
>> >> >> >> >> > cosines,
>> >> >> >> >> > diffusion
>> >> >> >> >> > tensor weight calculations, components of the spectral
>> >> >> >> >> > densities
>> >> >> >> >> > and
>> >> >> >> >> > so
>> >> >> >> >> > on
>> >> >> >> >> > are performed. All these must be calculated for each
>> >> >> >> >> > interaction
>> >> >> >> >> > separately,
>> >> >> >> >> > because each interaction has its own data storage (which
>> >> >> >> >> > replaced
>> >> >> >> >> > previously
>> >> >> >> >> > used one data class container for the whole IS spin system).
>> >> >> >> >> >
>> >> >> >> >> > Instead of:
>> >> >> >> >> >
>> >> >> >> >> >
>> >> >> >> >> >         # Direction cosine calculations.
>> >> >> >> >> >         if self.diff_data.calc_di:
>> >> >> >> >> >             self.diff_data.calc_di(data, self.diff_data)
>> >> >> >> >> >
>> >> >> >> >> >         # Diffusion tensor weight calculations.
>> >> >> >> >> >         self.diff_data.calc_ci(data, self.diff_data)
>> >> >> >> >> >
>> >> >> >> >> >         # Diffusion tensor correlation times.
>> >> >> >> >> >         self.diff_data.calc_ti(data, self.diff_data)
>> >> >> >> >> >
>> >> >> >> >> >         # Calculate the components of the spectral
>> >> >> >> >> > densities.
>> >> >> >> >> >         if data.calc_jw_comps:
>> >> >> >> >> >             data.calc_jw_comps(data, params)
>> >> >> >> >> >
>> >> >> >> >> >         # Calculate the R1, R2, and sigma_noe values.
>> >> >> >> >> >         data.ri_prime = data.create_ri_prime(data)
>> >> >> >> >> >
>> >> >> >> >> >
>> >> >> >> >> > we would suggest to introduce a loop over interacations
>> >> >> >> >> >         for j in xrange(self.num_interactions[i]):
>> >> >> >> >> >             # Direction cosine calculations.
>> >> >> >> >> >             if self.diff_data.calc_di:
>> >> >> >> >> >                 self.diff_data.calc_di(data[j],
>> >> >> >> >> > self.diff_data)
>> >> >> >> >> >
>> >> >> >> >> >             # Diffusion tensor weight calculations.
>> >> >> >> >> >             self.diff_data.calc_ci(data[j], self.diff_data)
>> >> >> >> >> >
>> >> >> >> >> >             # Diffusion tensor correlation times.
>> >> >> >> >> >             self.diff_data.calc_ti(data[j], self.diff_data)
>> >> >> >> >> >
>> >> >> >> >> >             # Calculate the components of the spectral
>> >> >> >> >> > densities.
>> >> >> >> >> >             if data.calc_jw_comps:
>> >> >> >> >> >                 data.calc_jw_comps(data[j], params)
>> >> >> >> >> >
>> >> >> >> >> >             # Calculate the R1, R2, and sigma_noe
>> >> >> >> >> > components.
>> >> >> >> >> >             data.ri_prime = data.create_ri_prime(data[j])
>> >> >> >> >> >
>> >> >> >> >> >
>> >> >> >> >> > It must be accompanied in the next step by a change the
>> >> >> >> >> > ri_prime
>> >> >> >> >> > function so
>> >> >> >> >> > that it just calculate only a product of specific
>> >> >> >> >> > interaction
>> >> >> >> >> > constant
>> >> >> >> >> > and
>> >> >> >> >> > corresponding linear combination of spectral densities.
>> >> >> >> >> > While
>> >> >> >> >> > the
>> >> >> >> >> > final
>> >> >> >> >> > sumation over all interactions should be done in a separate
>> >> >> >> >> > step.
>> >> >> >> >> >
>> >> >> >> >> > Moreover it will be also necessary to distinguish within the
>> >> >> >> >> > function
>> >> >> >> >> > setup_equation the type of equation used for contribution of
>> >> >> >> >> > individual
>> >> >> >> >> > interactions according to their type.
>> >> >> >> >> >
>> >> >> >> >> > Best
>> >> >> >> >> > Pavel
>> >> >> >> >> >
>> >> >> >> >> >
>> >> >> >> >> > On 10 September 2010 15:43, Edward d'Auvergne
>> >> >> >> >> > <edw...@nmr-relax.com>
>> >> >> >> >> > wrote:
>> >> >> >> >> >>
>> >> >> >> >> >> Hi Pavel,
>> >> >> >> >> >>
>> >> >> >> >> >> I missed it in the patches, but there were tab characters
>> >> >> >> >> >> '\t'
>> >> >> >> >> >> causing
>> >> >> >> >> >> problems.  These are now fixed.  relax requires that a tab
>> >> >> >> >> >> is
>> >> >> >> >> >> replaced
>> >> >> >> >> >> by 4 spaces.  I have also added you to the copyright
>> >> >> >> >> >> notices
>> >> >> >> >> >> (http://svn.gna.org/viewcvs/relax?view=rev&revision=11543)
>> >> >> >> >> >> of
>> >> >> >> >> >> the
>> >> >> >> >> >> files you have modified.
>> >> >> >> >> >>
>> >> >> >> >> >> Regards,
>> >> >> >> >> >>
>> >> >> >> >> >> Edward
>> >> >> >> >> >>
>> >> >> >> >> >> On 10 September 2010 15:36, Edward d'Auvergne
>> >> >> >> >> >> <edw...@nmr-relax.com>
>> >> >> >> >> >> wrote:
>> >> >> >> >> >> > Hi,
>> >> >> >> >> >> >
>> >> >> >> >> >> > I've carefully checked the patches and committed them
>> >> >> >> >> >> > with
>> >> >> >> >> >> > the
>> >> >> >> >> >> > messages you wrote.  Sorry again for the delays.  It
>> >> >> >> >> >> > should
>> >> >> >> >> >> > be
>> >> >> >> >> >> > faster
>> >> >> >> >> >> > now that I am no longer in the tropical wilderness of far
>> >> >> >> >> >> > north
>> >> >> >> >> >> > Australia.
>> >> >> >> >> >> >
>> >> >> >> >> >> > Regards,
>> >> >> >> >> >> >
>> >> >> >> >> >> > Edward
>> >> >> >> >> >> >
>> >> >> >> >> >> >
>> >> >> >> >> >> > On 6 September 2010 13:23, Edward d'Auvergne
>> >> >> >> >> >> > <edw...@nmr-relax.com>
>> >> >> >> >> >> > wrote:
>> >> >> >> >> >> >> Hi Pavel,
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> Sorry for the delayed response.  I was at the ICMRBS
>> >> >> >> >> >> >> conference
>> >> >> >> >> >> >> in
>> >> >> >> >> >> >> Australia and then travelled through the tropical north
>> >> >> >> >> >> >> end
>> >> >> >> >> >> >> of
>> >> >> >> >> >> >> Australia afterwards.  I came back yesterday out of the
>> >> >> >> >> >> >> remote
>> >> >> >> >> >> >> wilderness and can soon start looking at this patches.
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> Regards,
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> Edward
>> >> >> >> >> >> >>
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> On 31 August 2010 18:00, Pavel Kaderavek
>> >> >> >> >> >> >> <pavel.kadera...@gmail.com>
>> >> >> >> >> >> >> wrote:
>> >> >> >> >> >> >>> Hi,
>> >> >> >> >> >> >>>
>> >> >> >> >> >> >>> some time ago, we submitted two patches regarding CST
>> >> >> >> >> >> >>> branch.
>> >> >> >> >> >> >>> We
>> >> >> >> >> >> >>> are
>> >> >> >> >> >> >>> not
>> >> >> >> >> >> >>> sure if we should wait for some additional comment from
>> >> >> >> >> >> >>> your
>> >> >> >> >> >> >>> side,
>> >> >> >> >> >> >>> or
>> >> >> >> >> >> >>> we can
>> >> >> >> >> >> >>> continue with introducing further changes in the code.
>> >> >> >> >> >> >>> Next step would be a splitting of the relaxation
>> >> >> >> >> >> >>> equation
>> >> >> >> >> >> >>> so
>> >> >> >> >> >> >>> that
>> >> >> >> >> >> >>> contribution to the relaxation due to the individual
>> >> >> >> >> >> >>> types
>> >> >> >> >> >> >>> of
>> >> >> >> >> >> >>> interaction
>> >> >> >> >> >> >>> (dipole-dipole, CSA) can be calculated separately.
>> >> >> >> >> >> >>>
>> >> >> >> >> >> >>>
>> >> >> >> >> >> >>> Regars,
>> >> >> >> >> >> >>>
>> >> >> >> >> >> >>> Pavel, Petr
>> >> >> >> >> >> >>>
>> >> >> >> >> >> >>
>> >> >> >> >> >> >
>> >> >> >> >> >
>> >> >> >> >> >
>> >> >> >> >
>> >> >> >> >
>> >> >> >
>> >> >> >
>> >> >
>> >> >
>> >
>> >
>
>

_______________________________________________
relax (http://nmr-relax.com)

This is the relax-devel mailing list
relax-devel@gna.org

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

Reply via email to