Author: bugman Date: Mon Oct 14 14:39:35 2013 New Revision: 21092 URL: http://svn.gna.org/viewcvs/relax?rev=21092&view=rev Log: Added a printout for the pre-set dispersion parameter skipping in grid search. Modified: branches/relax_disp/specific_analyses/relax_disp/api.py branches/relax_disp/specific_analyses/relax_disp/optimisation.py Modified: branches/relax_disp/specific_analyses/relax_disp/api.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_disp/specific_analyses/relax_disp/api.py?rev=21092&r1=21091&r2=21092&view=diff ============================================================================== --- branches/relax_disp/specific_analyses/relax_disp/api.py (original) +++ branches/relax_disp/specific_analyses/relax_disp/api.py Mon Oct 14 14:39:35 2013 @@ -342,7 +342,7 @@ # Get the grid search minimisation options. lower_new, upper_new = None, None if match('^[Gg]rid', min_algor): - grid_size, inc_new, lower_new, upper_new = grid_search_setup(spins=[spin], param_vector=param_vector, lower=lower, upper=upper, inc=inc, scaling_matrix=scaling_matrix) + grid_size, inc_new, lower_new, upper_new = grid_search_setup(spins=[spin], spin_ids=[spin_id], param_vector=param_vector, lower=lower, upper=upper, inc=inc, scaling_matrix=scaling_matrix) # Linear constraints. A, b = None, None Modified: branches/relax_disp/specific_analyses/relax_disp/optimisation.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_disp/specific_analyses/relax_disp/optimisation.py?rev=21092&r1=21091&r2=21092&view=diff ============================================================================== --- branches/relax_disp/specific_analyses/relax_disp/optimisation.py (original) +++ branches/relax_disp/specific_analyses/relax_disp/optimisation.py Mon Oct 14 14:39:35 2013 @@ -41,11 +41,13 @@ from target_functions.relax_disp import Dispersion -def grid_search_setup(spins=None, param_vector=None, lower=None, upper=None, inc=None, scaling_matrix=None): +def grid_search_setup(spins=None, spin_ids=None, param_vector=None, lower=None, upper=None, inc=None, scaling_matrix=None): """The grid search setup function. @keyword spins: The list of spin data containers for the block. @type spins: list of SpinContainer instances + @keyword spin_ids: The corresponding spin ID strings. + @type spin_ids: list of str @keyword param_vector: The parameter vector. @type param_vector: numpy array @keyword lower: The lower bounds of the grid search which must be equal to the number of parameters in the model. This optional argument is only used when doing a grid search. @@ -150,14 +152,18 @@ # Pre-set parameters. index = 0 - for spin in spins: - for param in spin.params: + for spin_index in range(len(spins)): + for param in spins[spin_index].params: # Get the parameter. - if hasattr(spin, param): - val = getattr(spin, param) + if hasattr(spins[spin_index], param): + val = getattr(spins[spin_index], param) # Value already set. if is_float(val) and val != 0.0: + # Printout. + print("The spin '%s' parameter '%s' is pre-set to %s, skipping it in the grid search." % (spin_ids[spin_index], param, val)) + + # Turn of the grid search for this parameter. inc[index] = 1 lower[index] = val upper[index] = val @@ -279,7 +285,7 @@ # Get the grid search minimisation options. self.lower_new, self.upper_new = None, None if search('^[Gg]rid', min_algor): - self.grid_size, self.inc_new, self.lower_new, self.upper_new = grid_search_setup(spins=spins, param_vector=self.param_vector, lower=lower, upper=upper, inc=inc, scaling_matrix=self.scaling_matrix) + self.grid_size, self.inc_new, self.lower_new, self.upper_new = grid_search_setup(spins=spins, spin_ids=spin_ids, param_vector=self.param_vector, lower=lower, upper=upper, inc=inc, scaling_matrix=self.scaling_matrix) # Linear constraints. self.A, self.b = None, None