Known bugs

From Horace
Revision as of 08:40, 17 April 2012 by Russell Ewings (Talk | contribs)

Jump to: navigation, search

We will endeavour to ensure that Horace reaches you in a fully usable state. However, as more people start to use Horace it is inevitable that bugs will be discovered. If you find a bug please email Horace Help so that we can ensure it is fixed in subsequent versions of Horace.

Current issues

Symmetrisation problem with dnd data

We have found that if you symmetrise a dnd dataset by specifying a mirror plane through which the data should be folded, the results are not always correct. In particular, this seems to occur for samples where the crystallographic axes are non-orthogonal. Our recommended solution to this is only to perform symmetrisation operations on sqw data objects, and not on dnd data objects, since the sqw routines work differently to the dnd ones and do not display the same problem.

Error messages when plotting data

The symptom of this problem is that you get an error message in the Matlab command window when you try to plot some data, and instead of your data you get an empty figure window. This seems to occur if, earlier in your session, you have had a Libisis error or have interrupted a process which involves Libisis. At present the only solution we can suggest is to save your session, and then restart Matlab. If you do not especially need Libisis to run in the same Matlab session as Horace, consider using Herbert instead.

Not all projection axes and bin boundaries are identical

During generation of an SQW file, it is possible for all of the tmp files to be generated, but then an error saying "Not all projection axes and bin boundaries are identical" to be given when they come to be combined. This error arises when the mex files that normally do this job cannot be used for some reason (e.g. you have manually disabled the use of mex files by typing set(hor_config,'use_mex',0), or you are using a student version of Matlab, which does not support the use of mex files).

This bug has now been fixed for versions of Horace later than version 550. The version of Horace you currently have is indicated on startup of your Matlab session. NB - if information about Horace is not displayed on startup then either you have not correctly set up Horace, or you are using a very old version (in which case you should update immediately).

Broken pipe error

During the generation of particularly large SQW datasets, which is a computationally intensive process, MS Windows can sometimes just give up. This is evidenced in a so-called 'broken pipe' error, whereby low-level Matlab functions fail to execute due to the failure of very low-level Windows operations. At present we do not have a full fix for this, however it has been found that the following can help rectify the problem:

1. Run your Horace command again, after typing

>> fclose 'all'

This command ensures that all open files are closed, as there is a limit on the number of open files Matlab can deal with. You should then run your gen_sqw again. Sometimes it will fail again, having got slightly further than the previous time (e.g. 80% of the files dealt with, as opposed to 65% before). In these cases you should use the procedure described above several times. With each iteration the command gets closer to finishing. If the command does not get any closer to finishing, even after trying the above several times, then try step 2.

2. Save your work, close Matlab, and then re-open Matlab. Note that when you have closed Matlab you should check that all Matlab processes have finished by opening the Windows Task Manager (Ctrl-alt-delete) and checking that no processes involving Matlab are still running. In your new Matlab session try running your command again. Again, you may have to try this several times before things start to work... If you still have not success, then try step 3.

3. Restart Windows. If the two procedures detailed above do not work then try rebooting and starting again.

Fatal Read Error

Similarly, this sometimes occurs during the writing of data into the SQW file. There are a variety of causes, some understood and some not.

1. One or more of the TMP files has been corrupted. In this case there is little you can do other than to redo the gen_sqw command. If only one TMP file is corrupted then you may wish to consider re-writing the SQW file without that dataset. To do this use the write_nsqw_to_sqw command, described here.

2. We have found that if you combine SPE files using, for example, add_spe in Mslice then you can get an inconsistency in the TMP files. We have not yet tracked down the cause of this problem, so at present the solution we propose is DO NOT combine SPE files and then make an SQW file out of them. Rather keep the files separate and assign the same values of Ei and psi to them, as Horace will combine the data and recalculate the errorbars internally.