Author: bugman
Date: Thu Oct 23 11:34:29 2014
New Revision: 26365
URL: http://svn.gna.org/viewcvs/relax?rev=26365&view=rev
Log:
Updated the frame order analysis for the structure.load_spins user function
changes.
The minimise_setup_atomic_pos() function of the
specific_analyses.frame_order.optimisation module
now handles the mixed type spin.pos variable correctly.
Modified:
branches/frame_order_cleanup/specific_analyses/frame_order/optimisation.py
Modified:
branches/frame_order_cleanup/specific_analyses/frame_order/optimisation.py
URL:
http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/specific_analyses/frame_order/optimisation.py?rev=26365&r1=26364&r2=26365&view=diff
==============================================================================
--- branches/frame_order_cleanup/specific_analyses/frame_order/optimisation.py
(original)
+++ branches/frame_order_cleanup/specific_analyses/frame_order/optimisation.py
Thu Oct 23 11:34:29 2014
@@ -33,6 +33,7 @@
from warnings import warn
# relax module imports.
+from lib.check_types import is_float
from lib.float import isNaN, isInf
from lib.errors import RelaxError, RelaxInfError, RelaxNaNError,
RelaxNoPCSError, RelaxNoRDCError
from lib.frame_order.pseudo_ellipse import tmax_pseudo_ellipse_array
@@ -263,12 +264,8 @@
continue
# A single atomic position.
- if spin.pos.shape == (3,):
+ if (isinstance(spin.pos, list) or isinstance(spin.pos, ndarray)) and
len(spin.pos) == 3 and is_float(spin.pos[0]):
atomic_pos.append(spin.pos)
-
- # A single model (rank-2 array of a single position).
- elif spin.pos.shape == (1, 3):
- atomic_pos.append(spin.pos[0])
# Average multiple atomic positions.
else:
@@ -282,15 +279,19 @@
# The average position.
ave_pos = zeros(3, float64)
+ count = 0
for i in range(len(spin.pos)):
+ if spin.pos[i] == None:
+ continue
ave_pos += spin.pos[i]
- ave_pos = ave_pos / len(spin.pos)
+ count += 1
+ ave_pos = ave_pos / float(count)
# Store.
atomic_pos.append(ave_pos)
# Give a warning about the atomic position averaging.
- if verbosity and len(ave_warning_spin_ids):
+ if verbosity and ave_warning_num != 1 and len(ave_warning_spin_ids):
warn(RelaxWarning("Averaging the %s atomic positions for the PCS for
the spins %s." % (ave_warning_num, ave_warning_spin_ids)))
# Convert to numpy objects.
_______________________________________________
relax (http://www.nmr-relax.com)
This is the relax-commits 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-commits