Hi, GSAS-II. I'm not asking for help with the singular refinement error itself. Instead, I wanted to share a small fix that allows sequential refinement to exit gracefully instead of throwing an unhandled exception. This is for version 4415 (reported as latest version by help/check for updates).
If an error occurs during sequential refinement (in this case, a
singular matrix), the *SeqRefine* function still tries to read the
results but fails because some of the parameters are not set. This
happens on line 514::
Refining with PWDR nmc811_350_nioh_bn_1_LH_00150.csv
Warning: **** Refinement failed - singular matrix ****
Bad parameter: 0:150:Size;i
Traceback (most recent call last):
File "/home/mwolf/miniconda3/envs/gsas/GSASII/GSASIIdataGUI.py", line 4957,
in OnRefine
self.OnSeqRefine(event)
File "/home/mwolf/miniconda3/envs/gsas/GSASII/GSASIIdataGUI.py", line 5140,
in OnSeqRefine
OK,Msg = G2stMn.SeqRefine(self.GSASprojectfile,dlg,refPlotUpdate) #Msg is
Rvals dict if Ok=True
File "/home/mwolf/miniconda3/envs/gsas/GSASII/GSASIIstrMain.py", line 514,
in SeqRefine
Rvals['Rwp'],Rvals['chisq'],Rvals['GOF']**2,Rvals['DelChi2'],Rvals['Max
shft/sig']))
KeyError: 'Max shft/sig'
An easy fix is to replace the last ``Rvals['Max shft/sig']`` with a
``Rvals.get('Max shft/sig', np.nan)``. Not sure if *np.nan* is the
right choice, but at least the SeqRefine function can now stop
gracefully and load the partial results.
Cheers,
Mark
--
This message is signed with Pretty Good Privacy (PGP) key BE1E3158.
http://pool.sks-keyservers.net/pks/lookup?op=get&search=0x457826FCBE1E3158
signature.asc
Description: PGP signature
_______________________________________________ GSAS-II mailing list [email protected] https://mailman.aps.anl.gov/mailman/listinfo/gsas-ii
