Author: bugman Date: Sun Oct 19 17:09:26 2008 New Revision: 7825 URL: http://svn.gna.org/viewcvs/relax?rev=7825&view=rev Log: Commented the new model-free minimisation code. Modified: branches/multi_processor_merge/specific_fns/model_free/mf_minimise.py Modified: branches/multi_processor_merge/specific_fns/model_free/mf_minimise.py URL: http://svn.gna.org/viewcvs/relax/branches/multi_processor_merge/specific_fns/model_free/mf_minimise.py?rev=7825&r1=7824&r2=7825&view=diff ============================================================================== --- branches/multi_processor_merge/specific_fns/model_free/mf_minimise.py (original) +++ branches/multi_processor_merge/specific_fns/model_free/mf_minimise.py Sun Oct 19 17:09:26 2008 @@ -1109,43 +1109,63 @@ processor_box = Processor_box() processor = processor_box.processor + # Parallelised grid search for the diffusion parameter space. #FIXME??? strange contraints if match('^[Gg]rid', min_algor) and model_type == 'diff' : + # Determine the number of processors. processors = processor.processor_size() + + # Split up the grid into chunks for each processor. full_grid_info = Grid_info(min_options) sub_grid_list = full_grid_info.sub_divide(processor.processor_size()) + + # Set up the constrained super grid memo. if constraints: super_grid_memo = MF_super_grid_memo(model_free=self, index=index, sim_index=sim_index, model_type=model_type, scaling=scaling, scaling_matrix=scaling_matrix, full_output=True, verbosity=verbosity, print_prefix="", grid_size=self.grid_size, A=A, b=b) + + # Set up the unconstrained super grid memo. else: super_grid_memo = MF_super_grid_memo(model_free=self, index=index, sim_index=sim_index, model_type=model_type, scaling=scaling, scaling_matrix=scaling_matrix, full_output=True, verbosity=verbosity, print_prefix="", grid_size=self.grid_size) + # Loop over each grid sub-division. for sub_grid_index, sub_grid_info in enumerate(sub_grid_list): + # Grid search initialisation. command = MF_grid_command() command.set_mf(init_params=param_vector, model_type=model_type, diff_type=diff_type, diff_params=diff_params, scaling_matrix=scaling_matrix, num_spins=num_spins, equations=equations, param_types=param_types, param_values=param_values, relax_data=relax_data, errors=relax_error, bond_length=r, csa=csa, num_frq=num_frq, frq=frq, num_ri=num_ri, remap_table=remap_table, noe_r1_table=noe_r1_table, ri_labels=ri_labels, gx=gx, gh=gh, h_bar=h_bar, mu0=mu0, num_params=num_params, vectors=xh_unit_vectors) + + # Constrained optimisation. if constraints: command.set_minimise(args=(), x0=param_vector, min_algor=min_algor, min_options=min_options, func_tol=func_tol, grad_tol=grad_tol, maxiter=max_iterations, A=A, b=b, full_output=True, verbosity=verbosity) + + # Unconstrained optimisation. else: command.set_minimise(args=(), x0=param_vector, min_algor=min_algor, min_options=min_options, func_tol=func_tol, grad_tol=grad_tol, maxiter=max_iterations, full_output=True, verbosity=verbosity) - + # Set up the model-free memo and add it to the processor queue. memo = MF_grid_memo(super_grid_memo) processor.add_to_queue(command, memo) - else: + # Minimisation of all other model types. + else: + # Minimisation initialisation. command = MF_minimise_command() command.set_mf(init_params=param_vector, model_type=model_type, diff_type=diff_type, diff_params=diff_params, scaling_matrix=scaling_matrix, num_spins=num_spins, equations=equations, param_types=param_types, param_values=param_values, relax_data=relax_data, errors=relax_error, bond_length=r, csa=csa, num_frq=num_frq, frq=frq, num_ri=num_ri, remap_table=remap_table, noe_r1_table=noe_r1_table, ri_labels=ri_labels, gx=gx, gh=gh, h_bar=h_bar, mu0=mu0, num_params=num_params, vectors=xh_unit_vectors) + # Back calculation. #FIXME could be neater? if min_algor == 'back_calc': return command.build_mf().calc_ri() + # Constrained optimisation. if constraints: command.set_minimise(args=(), x0=param_vector, min_algor=min_algor, min_options=min_options, func_tol=func_tol, grad_tol=grad_tol, maxiter=max_iterations, A=A, b=b, full_output=True, verbosity=verbosity) + + # Unconstrained optimisation. else: command.set_minimise(args=(), x0=param_vector, min_algor=min_algor, min_options=min_options, func_tol=func_tol, grad_tol=grad_tol, maxiter=max_iterations, full_output=True, verbosity=verbosity) + # Set up the model-free memo and add it to the processor queue. memo = MF_memo(model_free=self, spin=spin, sim_index=sim_index, model_type=model_type, scaling=scaling, scaling_matrix=scaling_matrix) - processor.add_to_queue(command, memo)