spinw icon indicating copy to clipboard operation
spinw copied to clipboard

Bug related to swpref when updating SpinW

Open henrikjacobsenfys opened this issue 8 years ago • 4 comments

Hi Sandor

I get the following error message after updating to the latest version: Error using swpref.pref (line 86) The requested SpinW preference does not exists!

Error in swpref.getpref (line 33) rPref = swpref.pref(prefName,'get',varargin{:});

Error in spinw/spinwave (line 175) useMex = swpref.getpref('usemex',[]);

Error in CuO_AFM (line 403) CuOSpec = CuO.spinwave({ Gamma, X, N, Gamma, M, X, 200},'hermit',false);

I assume it's related to me running SpinW on Linux. If needed, I can provide a minimal example of the bug, but it's probably something general. I tried bug hunting a bit, but it's not easy.. What I know is that in getpref, the input variables when it fails are

prefName =

usemex

varargin =

cell

{[]}

Cheers,

Henrik

henrikjacobsenfys avatar Feb 13 '17 17:02 henrikjacobsenfys

Hi @henrikjacobsenfys,

I got this bug on Windows too, but it was because I was updating within a Matlab session, and for some reason, matlab still used an old version of swpref. I solved it using clear classes (but restarting Matlab should also work). E.g. do

clear classes
swpref.getpref('usemex')

If you still get the The requested SpinW preference does not exists! error, then could you do a which swpref.pref to find out which +swpref/pref.m file is being used and paste its contents here (or send it to us).

Note that clear classes will also clear all your variables, so you might want to save everything first...

Duc.

mducle avatar Feb 13 '17 18:02 mducle

Hi Duc Thanks a lot, this worked. I'm so used to getting bugs because of mex in Linux that I jumped to conclusions.. Henrik

henrikjacobsenfys avatar Feb 14 '17 08:02 henrikjacobsenfys

The problem is that swpref uses mlock to avoid reinitialisation of persistent variables that store the settings. I am surprised that clear classes actually worked. I might have to add a piece of code into install_spinw to update swpref. @mducle any insight?

tsdev avatar Feb 14 '17 08:02 tsdev

I actually decided to just restart matlab right away, since I found out I had several versions of spinw lying around anywhere, and my computer could use a reboot in any case. So it may be that clear classes wouldn't have worked...

henrikjacobsenfys avatar Feb 14 '17 08:02 henrikjacobsenfys