Author: bugman Date: Thu Jan 7 17:59:00 2010 New Revision: 10144 URL: http://svn.gna.org/viewcvs/relax?rev=10144&view=rev Log: Simplification of the model-free target function class initialisation. This has been shifted back into specific_fns/model_free/mf_minimise.py! This does not need to be done by the multi-processing code. Silencing can be performed later by modifying the 'verbosity' variable in this class. Modified: branches/multi_processor_merge/specific_fns/model_free/mf_minimise.py branches/multi_processor_merge/specific_fns/model_free/multi_processor_commands.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=10144&r1=10143&r2=10144&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 Thu Jan 7 17:59:00 2010 @@ -1542,6 +1542,12 @@ relax_data, relax_error, equations, param_types, param_values, r, csa, num_frq, frq, num_ri, remap_table, noe_r1_table, ri_labels, gx, gh, num_params, xh_unit_vectors, diff_type, diff_params = self._minimise_data_setup(model_type, min_algor, num_data_sets, min_options, spin=spin, sim_index=sim_index) + # Initialise the function to minimise. + ###################################### + + self.mf = 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) + + # Setup the minimisation algorithm when constraints are present. ################################################################ @@ -1606,15 +1612,14 @@ 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) + command.set_minimise(mf=self.mf, model_type=model_type, 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) + command.set_minimise(mf=self.mf, model_type=model_type, 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) @@ -1625,11 +1630,8 @@ # Minimisation initialisation. command = MF_minimise_command() - # Set up the model-free data. - 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) - # Set up for optimisation. - 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, spin_id=spin_id, sim_index=sim_index, full_output=True, print_flag=verbosity) + command.set_minimise(mf=self.mf, model_type=model_type, 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, spin_id=spin_id, sim_index=sim_index, full_output=True, print_flag=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) Modified: branches/multi_processor_merge/specific_fns/model_free/multi_processor_commands.py URL: http://svn.gna.org/viewcvs/relax/branches/multi_processor_merge/specific_fns/model_free/multi_processor_commands.py?rev=10144&r1=10143&r2=10144&view=diff ============================================================================== --- branches/multi_processor_merge/specific_fns/model_free/multi_processor_commands.py (original) +++ branches/multi_processor_merge/specific_fns/model_free/multi_processor_commands.py Thu Jan 7 17:59:00 2010 @@ -163,11 +163,8 @@ # The minimisation map containing the minimisation information. self.minimise_map = {'args':(), 'x0':None, 'min_algor':None, 'min_options':None, 'func_tol':1e-25, 'grad_tol':None, 'maxiter':1e6, 'A':None, 'b':None, 'l':None, 'u':None, 'c':None, 'dc':None, 'd2c':None, 'dc':None, 'd2c':None, 'full_output':0, 'print_flag':0, 'print_prefix':""} - # The map containing the model-free information. - self.mf_map = {'init_params':None, 'model_type':None, 'diff_type':None, 'diff_params':None, 'scaling_matrix':None, 'num_spins':None, 'equations':None, 'param_types':None, 'param_values':None, 'relax_data':None, 'errors':None, 'bond_length':None, 'csa':None, 'num_frq':0, 'frq':None, 'num_ri':None, 'remap_table':None, 'noe_r1_table':None, 'ri_labels':None, 'gx':0, 'gh':0, 'h_bar':0, 'mu0':0, 'num_params':None, 'vectors':None} - # A map containing generic information. - self.info_map = {'spin_id':None, 'sim_index':None, 'grid_size':1} + self.info_map = {'mf':None, 'model_type':None, 'spin_id':None, 'sim_index':None, 'grid_size':1} # A flag for silencing output. self.silence = False @@ -183,7 +180,7 @@ print('Simulation '+ repr(self.info_map['sim_index'])+ '\n') # Individual spin print out. - if self.mf_map['model_type'] == 'mf' or self.mf_map['model_type'] == 'local_tm': + if self.model_type == 'mf' or self.model_type == 'local_tm': if self.minimise_map['print_flag'] >= 2: print("\n\n") string = "Fitting to spin: " + self.info_map['spin_id'] @@ -220,9 +217,6 @@ # Initial print outs. self.initial_printout() - # Initialise the function to minimise. - self.mf = Mf(**self.mf_map) - # Minimisation. results = generic_minimise(func=self.mf.func, dfunc=self.mf.dfunc, d2func=self.mf.d2func, **self.minimise_map) @@ -237,16 +231,16 @@ raise Capturing_exception(rank=processor.rank(), name=processor.get_name()) - #FIXME: bad names - def set_mf(self, **kwargs): - """Place the model-free information into the mf_map.""" - - # Fill out the mf_map using the keyword args. - self.mf_map.update(kwargs) - - def set_minimise(self, **kwargs): """Place the minimisation and other information into the appropriate maps.""" + + # The optimisation class. + self.mf = kwargs['mf'] + del kwargs['mf'] + + # The model type. + self.model_type = kwargs['model_type'] + del kwargs['model_type'] # Strip out and store special arguments into the info_map. if 'spin_id' in kwargs: