Author: tlinnet Date: Thu Jul 31 17:53:48 2014 New Revision: 24888 URL: http://svn.gna.org/viewcvs/relax?rev=24888&view=rev Log: Merged revisions 24679,24684-24685,24702-24704,24707,24714,24718,24720,24722-24723,24725,24727,24729,24736-24737,24739-24743,24751-24752,24755-24757,24788,24796-24797,24837,24841,24843,24857,24866,24873-24875,24880-24883 via svnmerge from svn+ssh://tlinnet@xxxxxxxxxxx/svn/relax/trunk ................ r24679 | bugman | 2014-07-23 16:09:01 +0200 (Wed, 23 Jul 2014) | 6 lines Updated the minfx version number to 1.0.9 in the release checklist document. This as of yet unreleased version contains an important fix for parallelised grid searches when the number of increments is set to one (i.e. a preset parameter). ................ r24684 | bugman | 2014-07-23 17:40:34 +0200 (Wed, 23 Jul 2014) | 5 lines Bug fix for the lib.arg_check.is_num_tuple() function. There was a typo in two of the RelaxError objects so that non-existent errors were being raised. ................ r24685 | bugman | 2014-07-23 18:09:27 +0200 (Wed, 23 Jul 2014) | 6 lines Fix for the _prompt.test_align_tensor.Test_align_tensor.test_init_argfail_params unit test. As the alignment tensor can now be initialised as None, the None value can be accepted and a different RelaxError is raised when the params argument is incorrectly supplied. ................ r24702 | bugman | 2014-07-24 13:12:55 +0200 (Thu, 24 Jul 2014) | 3 lines Initialized merge tracking via "svnmerge" with revisions "1-24540" from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/branches/zooming_grid_search ................ r24703 | bugman | 2014-07-24 13:26:12 +0200 (Thu, 24 Jul 2014) | 667 lines Merged revisions 24542,24545-24548,24552-24559,24564-24584,24587-24595,24597-24611,24616-24618,24640,24649,24671,24674-24678,24680-24683,24688-24701 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/branches/zooming_grid_search ........ r24542 | bugman | 2014-07-16 17:35:02 +0200 (Wed, 16 Jul 2014) | 7 lines Added a new set of icons for use with the minimisation user functions. These are of the Rosenbrock function and are much better suited for small icons than the current OpenDX 3D isosurface plots. The matplotlib figure originates from public domain code at http://commons.wikimedia.org/wiki/File:Rosenbrock_function.svg. ........ r24545 | bugman | 2014-07-16 20:57:03 +0200 (Wed, 16 Jul 2014) | 12 lines Redesign of the optimisation user functions calculate, grid_search, and minimise. In preparation for expanding the number of optimisation user functions, these three current user functions have been shifted into the new minimise user function class. The calculate user function is now accessed as minimise.calculate. The grid search as minimise.grid_search. And minimisation is via the minimise.execute user function. The icon used for the new user function class is the Rosenbrock function or the banana optimisation problem. As this is such a radical change, a huge number of changes in the relax source code, the sample scripts, the user manual, and the test suite were required. ........ r24546 | bugman | 2014-07-17 14:27:50 +0200 (Thu, 17 Jul 2014) | 6 lines Created the new minimise.grid_zoom user function. This allows the grid zoom level to be set. The value is stored in the current data pipe and will be used later by the minimise.grid_search user function. ........ r24547 | bugman | 2014-07-17 14:36:15 +0200 (Thu, 17 Jul 2014) | 3 lines The minimise.grid_zoom user function now uses the zoom-in Oxygen icon. ........ r24548 | bugman | 2014-07-17 14:46:53 +0200 (Thu, 17 Jul 2014) | 6 lines Created the Relax_fit.test_zooming_grid_search system test. This will be used to test the implementation of the zooming grid search. The relaxation curve-fitting analysis should be one of the fastest for testing this. ........ r24552 | bugman | 2014-07-17 16:22:36 +0200 (Thu, 17 Jul 2014) | 5 lines Added the print_model_title() method to the specific analysis base API class. This will be used to format and print out the information returned by the model_info() API method. ........ r24553 | bugman | 2014-07-17 16:29:14 +0200 (Thu, 17 Jul 2014) | 3 lines Implemented the print_model_title() specific analysis API method for the dispersion analysis. ........ r24554 | bugman | 2014-07-17 16:45:06 +0200 (Thu, 17 Jul 2014) | 6 lines Modified the specific analysis API _model_loop_spin() common method. This now additionally returns the spin ID string to allow the corresponding spin container to be identified. ........ r24555 | bugman | 2014-07-17 16:46:57 +0200 (Thu, 17 Jul 2014) | 6 lines Implemented the specific analysis API common method _print_model_title_spin(). This is for the corresponding _model_loop_spin() method. It can be aliased in the specific analyses to provide the print_model_title() API method. ........ r24556 | bugman | 2014-07-17 16:49:26 +0200 (Thu, 17 Jul 2014) | 6 lines Aliased the _print_model_title_spin() specific analysis API common method in a few analyses. This provides the print_model_title() API method for the J(w) mapping, consistency testing, and relaxation curve fitting analyses. ........ r24557 | bugman | 2014-07-17 17:13:34 +0200 (Thu, 17 Jul 2014) | 6 lines Updated all the specific analysis methods affected by the _model_info_spin() API method change. This is for the change whereby the common API method now returns the spin ID string as well (r24554). ........ r24558 | bugman | 2014-07-17 17:24:09 +0200 (Thu, 17 Jul 2014) | 3 lines Fix for a number of docstring typos from r24557. ........ r24559 | bugman | 2014-07-17 17:31:50 +0200 (Thu, 17 Jul 2014) | 5 lines Implemented get_param_names() and get_param_values() for the relaxation curve-fitting analysis. These are part of the specific analysis API. ........ r24564 | bugman | 2014-07-18 11:02:52 +0200 (Fri, 18 Jul 2014) | 6 lines Created the specific analysis API return_parameter_object() function. This is used by the non-specific analysis code to obtain the parameter object (a singleton object). It will allow for more direct access to the parameter information. ........ r24565 | bugman | 2014-07-18 11:05:51 +0200 (Fri, 18 Jul 2014) | 8 lines Created the parameter object infrastructure for adding the grid search lower and upper bounds. The _add() method now accepts the grid_lower and grid_upper keyword arguments, which can be either values or functions. These are then stored in the _grid_lower and _grid_upper class dictionaries. The public methods grid_lower() and grid_upper() have been added to return the value corresponding to the given parameter. ........ r24566 | bugman | 2014-07-18 11:51:54 +0200 (Fri, 18 Jul 2014) | 8 lines Modified the specific analysis parameter object grid_lower() and grid_upper() methods. These now accept the model information from the model_loop() API method and send that into an grid lower and upper functions. These functions will require the information to pull out the correct spin, spin cluster, or other information from the current data pipe to determine what the bounds should be. ........ r24567 | bugman | 2014-07-18 13:47:59 +0200 (Fri, 18 Jul 2014) | 12 lines Implemented infrastructure in the grid_search user function in preparation for the zooming grid. The grid search backend now calls the new grid_bounds() function. This takes the lower and upper bounds as arguments, uses the specific API to determine the per-model parameter grid search bounds, and then returns a per model list of lower and upper bounds. The specific API get_param_names() and get_param_values() are called to obtain the current model parameter names and values, and then the parameter names and model info are used in the new parameter object grid_lower() and grid_upper() methods to obtain the bounds. This shifts all of the grid search bounds logic out of the specific analyses and into the grid search backend, so it should allow the specific analysis code to be simplified. ........ r24568 | bugman | 2014-07-18 14:43:07 +0200 (Fri, 18 Jul 2014) | 11 lines More modifications of the minimise.grid_search user function backend. The grid_bounds() function has been renamed to grid_setup(), and it now accepts and processes the inc user function argument. The error checking code of the relaxation curve-fitting grid_search_setup() optimisation function has been shifted into this analysis independent grid_setup() function to shift the minimise.grid_search user function error checking out of the specific analyses. The function now scales the parameter bounds, using the yet-to-be implemented scaling() method of the parameter object. And the grid search increments are converted into a per-model list of lists. ........ r24569 | bugman | 2014-07-18 15:03:54 +0200 (Fri, 18 Jul 2014) | 7 lines Created the parameter object infrastructure for registering parameter scalings. The _add() method now accepts the scaling keyword argument, which can be either a value or function. This is then stored in the _scaling dictionary. The public method scaling() has been added to return the scaling factor corresponding to the given parameter. ........ r24570 | bugman | 2014-07-18 15:51:10 +0200 (Fri, 18 Jul 2014) | 12 lines Modified the analysis specific API optimisation method. The base calculate(), grid_search() and minimise() methods now all accept the scaling_matrix argument, and the minimise() scaling argument has been removed. This scaling_matrix argument should be a per-model list of scaling matrices. To handle the change, the pipe_control.minimise.assemble_scaling_matrix() function has been created. This uses the new parameter object scaling values to create the list of scaling matrices. This will in the end replace all of the analysis specific assemble_scaling_matrix() functions and simplify their optimisation code paths. ........ r24571 | bugman | 2014-07-18 16:13:11 +0200 (Fri, 18 Jul 2014) | 7 lines Changed the order of operations in the minimisation user function backends. The specific analysis API overfit_deselect() method needs to be called before any grid bounds, increments, or the scaling matrices are assembled. This is for the cases when the grid bounds or scaling factors are functions rather than values. ........ r24572 | bugman | 2014-07-18 16:26:29 +0200 (Fri, 18 Jul 2014) | 15 lines Converted the relaxation curve-fitting analysis to the new grid bounds and scaling factor design. The parameter object now registers the grid bounds and scaling factors for all of the curve-fitting parameters. This includes three functions i_scaling(), i0() and iinf() in the specific_analyses.relax_fit.parameter_object module for calculating some of these values. The specific_analyses.relax_fit.parameters.assemble_scaling_matrix() function has been deleted as this is now provided by the upstream code in pipe_control.minimise. And the API methods grid_search() and minimise() has been modified to accept the list of scaling matrices. As the grid bounds and increments are now handled by the upstream pipe_control.minimise.grid_setup() function, the specific_analyses.relax_fit.optimisation.grid_search_setup() function was redundant and was deleted. ........ r24573 | bugman | 2014-07-18 16:43:39 +0200 (Fri, 18 Jul 2014) | 7 lines Created the consistency testing specific API method get_param_names(). This is now required for the minimise.calculate user function, specifically for the analysis independent assemble_scaling_matrix() function. The get_param_names() method simply returns the fixed list of parameter names. ........ r24574 | bugman | 2014-07-18 19:43:23 +0200 (Fri, 18 Jul 2014) | 7 lines Standardisation of the specific analysis API with respect to the model_loop() and base_data_loop(). The model information arguments for the data returned by model_loop(), and the data arguments for the data arguments for the data returned by base_data_loop() have been standardised throughout the API. ........ r24575 | bugman | 2014-07-21 08:57:55 +0200 (Mon, 21 Jul 2014) | 3 lines Epydoc parameter order rearrangement in the specific analysis API base class. ........ r24576 | bugman | 2014-07-21 09:01:54 +0200 (Mon, 21 Jul 2014) | 3 lines Updated the specific analysis API common methods for the recent model_info argument changes. ........ r24577 | bugman | 2014-07-21 09:07:47 +0200 (Mon, 21 Jul 2014) | 7 lines Updated all of the specific API calculate() methods to accept the scaling_matrix argument. The list of per-model scaling matrices is now created independently of the analysis type by the pipe_control.minimise methods for the minimise.calculate, minimise.grid_search and minimise.execute user functions and sent into the specific analysis backend. ........ r24578 | bugman | 2014-07-21 09:14:00 +0200 (Mon, 21 Jul 2014) | 10 lines Updated all of the specific API grid_search() methods to accept the scaling_matrix argument. The list of per-model scaling matrices is now created independently of the analysis type by the pipe_control.minimise methods for the minimise.calculate, minimise.grid_search and minimise.execute user functions and sent into the specific analysis backend. The argument is also passed into the minimise() API method from the grid_search() method when that is used. ........ r24579 | bugman | 2014-07-21 09:17:44 +0200 (Mon, 21 Jul 2014) | 7 lines Updated all of the specific API minimise() methods to accept the scaling_matrix argument. The list of per-model scaling matrices is now created independently of the analysis type by the pipe_control.minimise methods for the minimise.calculate, minimise.grid_search and minimise.execute user functions and sent into the specific analysis backend. ........ r24580 | bugman | 2014-07-21 09:23:37 +0200 (Mon, 21 Jul 2014) | 3 lines Fix for the Monte Carlo simulations for the model_info argument changes in the specific API. ........ r24581 | bugman | 2014-07-21 09:28:44 +0200 (Mon, 21 Jul 2014) | 5 lines Fixes for the consistency testing and J(w) mapping calculate() methods. This is for the changes to the data_init() specific analysis API method. ........ r24582 | bugman | 2014-07-21 09:30:43 +0200 (Mon, 21 Jul 2014) | 3 lines More fixes for the Monte Carlo simulations for the model_info argument changes in the specific API. ........ r24583 | bugman | 2014-07-21 09:50:45 +0200 (Mon, 21 Jul 2014) | 3 lines Updated all of the data_init() specific API calls where the spin ID is expected. ........ r24584 | bugman | 2014-07-21 09:59:34 +0200 (Mon, 21 Jul 2014) | 6 lines Fixes for the _data_init_spin() specific API common method. The data returned from _base_data_loop_spin() is just the spin ID, the spin container is not included. ........ r24587 | bugman | 2014-07-21 18:57:56 +0200 (Mon, 21 Jul 2014) | 3 lines Updated the elminate user function backend to work with the model_info argument changes in the specific API. ........ r24588 | bugman | 2014-07-21 18:59:58 +0200 (Mon, 21 Jul 2014) | 6 lines The new pipe_control.minimise module functions can now handle models with no parameters. The new assemble_scaling_matrix() and grid_setup() functions will now handle models with no parameters, as this is required for the relaxation dispersion analysis. ........ r24589 | bugman | 2014-07-21 19:18:06 +0200 (Mon, 21 Jul 2014) | 6 lines More fixes for the elminate user function backend. This is for the model_info argument changes in the specific API. ........ r24590 | bugman | 2014-07-22 10:15:15 +0200 (Tue, 22 Jul 2014) | 9 lines Fixes for the grid search backend for a recent breakage and expansion of its capabilities. The user supplied lower and upper bounds for the grid search were no longer being scaled via the scaling matrix. In addition, the code has been refactored to be simpler and more flexible. The user can now supply just the lower or just the upper bounds and the grid search will work. ........ r24591 | bugman | 2014-07-22 10:43:19 +0200 (Tue, 22 Jul 2014) | 7 lines The grid search setup function now prints out the grid search bounds to be used. This is in the pipe_control.minimise.grid_setup() function, hence it is analysis independent. This is useful feedback for the user to know what the grid search is doing. And it will be even more useful for the zooming grid search to understand what is happening. ........ r24592 | bugman | 2014-07-22 10:45:28 +0200 (Tue, 22 Jul 2014) | 3 lines The grid search setup printout now also included the number of increments for each parameter. ........ r24593 | bugman | 2014-07-22 10:49:33 +0200 (Tue, 22 Jul 2014) | 6 lines Modified the new print_model_title() specific analysis API method. This now accepts the prefix argument for creating different titles independently of the specific analysis. ........ r24594 | bugman | 2014-07-22 10:51:23 +0200 (Tue, 22 Jul 2014) | 5 lines The grid search setup function now uses the prefix argument to the print_model_title() API function. This is simply set to 'Grid search setup:'. ........ r24595 | bugman | 2014-07-22 11:22:56 +0200 (Tue, 22 Jul 2014) | 3 lines The relaxation dispersion API now uses the MODEL_R2EFF variable for identifying the R2eff model. ........ r24597 | bugman | 2014-07-22 13:06:50 +0200 (Tue, 22 Jul 2014) | 5 lines Changes to the minimise.grid_search user function front end. The Boolean constraints argument has been shifted to the end, and empty lines have been removed. ........ r24598 | bugman | 2014-07-22 13:11:50 +0200 (Tue, 22 Jul 2014) | 3 lines Epydoc docstring fixes for the keyword arguments of the pipe_control.minimise module. ........ r24599 | bugman | 2014-07-22 13:12:40 +0200 (Tue, 22 Jul 2014) | 3 lines Shifted the constraints boolean argument to the end of the grid_search() function argument list. ........ r24600 | bugman | 2014-07-22 13:36:33 +0200 (Tue, 22 Jul 2014) | 12 lines Major change to the grid search user function. The minimise.grid_search user function now accepts the skip_preset flag. When True, the grid search will skip any parameters with a preset value. This allows the user to set parameters via the value.set user function and then have these parameters skipped in the grid search. The new skip_preset argument is passed into the pipe_control.minimise.grid_setup() function in the backend. This then sets both the grid lower and upper bounds to the preset parameter value and sets the number of increments to 1 for that parameter so that it is essentially skipped in the grid search. ........ r24601 | bugman | 2014-07-22 13:44:40 +0200 (Tue, 22 Jul 2014) | 7 lines Increased the amount of user feedback for the minimise.grid_search user function. [... 1375 lines stripped ...]