Closed mducle closed 4 months ago
Just checking - have all of these been fixed by v0.1.5 of libpymcr
https://github.com/pace-neutrons/libpymcr/pull/20
I've just updated the description. The call_python
stuff is not in libpymcr-0.1.5
but is needed more for pace-python
than for us. Still working on something there (I got it to work but it causes a segfault when you exit Python).
The LuMnO3.cif
might be broken but I haven't checked and is not a libpymcr
issue...
- Issue with using a CIF file: lmo = spinw('LuMnO3.cif'); lmo.gencoupling will give a Symmetry error!. The LuMnO3.cif file is in the tutorials folder
This is actually just a tolerance issue as the error message suggests. The 'tolDist'
default is 1e-3
Angstrom, but the accuracy of the c lattice coordinate of the Mn ion is 1e-4
(it is 0.99923
in the file). If this is changed to 0.99
or 'tolDist'
is tightened to 1e-4
then no error occurs.
We'll probably just leave the code as is rather than change the defaults or the cif.
All other issues have been fixed.
Bugs discovered during RAL-India workshop on neutron scattering data analysis.
sw_egrid
invalid handling of half-polarized mode~ (Fixed in #130)call_python
mex file to distribution (need CI modifications to compile it for all platforms). This would allow helper functions in Python to be used (e.g. forgenmagstr
, instead of the the providedgmplanar
etc.)nargout
incall.m
(e.g.m.axis([0,1,0,2])
) [aMATLAB:nargoutchk:tooManyOutputs
error]~ (Fixed in libpymcr#20Other minor bugs identified by users
lmo = spinw('LuMnO3.cif'); lmo.gencoupling
will give aSymmetry error!
. TheLuMnO3.cif
file is in the tutorials folder~###
sw_egrid
: invalid handling of half-polarized mode~~To reproduce: calculate a spectrum, compute the polarised intensities and then try to plot the half-polarised cross-sections with
Pa
(a=x,y,z) component:~~This gives an error
Matrix dimensions must agree.
in line 424 ofsw_egrid.m
- which is due to the incorrect reshaping of theintP
property of the input spectra (computed fromsw_neutron
in line 388 which should be:intP{ii} = reshape(intP{ii},3,nMode,[]);
~