Author: bugman Date: Sun Apr 13 16:18:53 2008 New Revision: 5624 URL: http://svn.gna.org/viewcvs/relax?rev=5624&view=rev Log: Merged revisions 5622 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/1.3 ........ r5622 | bugman | 2008-04-13 16:17:09 +0200 (Sun, 13 Apr 2008) | 7 lines Bug fix for optimisation when order parameters of exactly zero are encountered. The steady-state NOE value, gradient, and Hessian is properly calculated when an order parameter of 0.0 is encountered. The 0.0/0.0 is avoided and instead the value, gradient, and Hessian components of 1.0, 0.0, and 0.0 respectively are set. ........ Modified: 1.2/ (props changed) 1.2/maths_fns/ri.py Propchange: 1.2/ ------------------------------------------------------------------------------ --- svnmerge-integrated (original) +++ svnmerge-integrated Sun Apr 13 16:18:53 2008 @@ -1,1 +1,1 @@ -/1.3:1-2505,2941,2947,2950,2974,2976,2979,2984,2988,3076,3083-3084,3087,3117,3299,3309,3312,3314,3318,3345,3372,4145,4473,4476,4939,5117,5255,5396-5398,5462-5465,5611-5612 +/1.3:1-2505,2941,2947,2950,2974,2976,2979,2984,2988,3076,3083-3084,3087,3117,3299,3309,3312,3314,3318,3345,3372,4145,4473,4476,4939,5117,5255,5396-5398,5462-5465,5611-5612,5622 Modified: 1.2/maths_fns/ri.py URL: http://svn.gna.org/viewcvs/relax/1.2/maths_fns/ri.py?rev=5624&r1=5623&r2=5624&view=diff ============================================================================== --- 1.2/maths_fns/ri.py (original) +++ 1.2/maths_fns/ri.py Sun Apr 13 16:18:53 2008 @@ -38,7 +38,9 @@ data.r1[i] = get_r1[i](data, i, frq_num, params) # Calculate the NOE. - if data.r1[i] == 0.0: + if data.r1[i] == 0.0 and data.ri_prime[i] == 0.0: + data.ri[i] = 1.0 + elif data.r1[i] == 0.0: data.ri[i] = 1e99 else: data.ri[i] = 1.0 + data.g_ratio*(data.ri_prime[i] / data.r1[i]) @@ -52,7 +54,9 @@ # Calculate the NOE derivative. data.dr1[j, i] = get_dr1[i](data, i, frq_num, params, j) - if data.r1[i] == 0.0: + if data.r1[i] == 0.0 and data.ri_prime[i] == 0.0: + data.dri[j, i] = 0.0 + elif data.r1[i] == 0.0: data.dri[j, i] = 1e99 else: data.dri[j, i] = data.g_ratio * (1.0 / data.r1[i]**2) * (data.r1[i] * data.dri_prime[j, i] - data.ri_prime[i] * data.dr1[j, i]) @@ -66,7 +70,9 @@ # Calculate the NOE second derivative. data.d2r1[j, k, i] = get_d2r1[i](data, i, frq_num, params, j, k) - if data.r1[i] == 0.0: + if data.r1[i] == 0.0 and data.ri_prime[i] == 0.0: + data.d2ri[j, k, i] = 0.0 + elif data.r1[i] == 0.0: data.d2ri[j, k, i] = 1e99 else: a = data.ri_prime[i] * (2.0 * data.dr1[j, i] * data.dr1[k, i] - data.r1[i] * data.d2r1[j, k, i])