Ticket #2197 (closed: fixed)

Opened 10 years ago

Last modified 5 years ago

SANS: Improve Display tab to include inplace fitting and calculations

Reported by: Nick Draper Owned by: Steve Williams
Priority: major Milestone: Iteration 29
Component: Mantid Keywords:
Cc: stephen.king@…, doucetm@… Blocked By: #2420
Blocking: Tester: Martyn Gigg

Description

Requires ticket #2156

All of the plots in this tab linearalise some portion of the reduced data and allow various values to be calculated from the fit values (and some other user supplied values).

The mockup SANS\Display_with_inplace_fitting.bmml show a possible solution idea for this ticket that Steve King likes.

The values that can be calculated depend on the plot picked:

Rg = radius of gyration
Rg,xs = cross-sectional radius of gyration
R = equivalent spherical radius
T = thickness
Pi = 3.141592654...
C = concentration
Phi = volume fraction
Deltarho = difference in neutron scattering length densities (solute - solvent)
M = molecular weight
ML = mass per unit length
NA = Avogadro's number, 6.02214179(30)×10**23 mol−1
D = bulk density
n = Q-dependence
v = excluded volume exponent
zeta = characteristic length
(S/V) = surface area-to-volume ratio


    1: Guinier (spheres) - Ln(I)     v     Q**2    

Gradient = -(Rg**2)/3 = -(R**2)/5

Intercept = M.[(c.(deltarho**2) / (NA.d**2)] = M.[(phi.(deltarho**2) / (NA.d)]

                   
    2: Guinier (rods)    - Ln(IQ)    v     Q**2                        

Gradient = -(Rg,xs**2)/2  (note dividing by 2 this time)

Intercept (Q**2=0) = Ln[(pi.c.(deltarho**2).ML) / (NA.d**2)]   

                
    3: Guinier (sheets)  - Ln(IQ**2) v     Q**2                        

Gradient = -(T**2)/12  (note dividing by 12 this time)

                   
    4: Zimm              - 1/I       v     Q**2           

Gradient = (Rg**2)/3 = (R**2)/5  (no minuses this time!)

Intercept = (1/M).[(NA.d**2) / (c.(deltarho**2)] = (1/M).[(NA.d) / (phi.(deltarho**2)]
            

    5: Kratky            - IQ**2     v        Q       

Plateau Intercept = [(2.c.M.(deltarho**2)) / (NA.(d**2).(Rg**2))] = [(2.phi.M.(deltarho**2)) / (NA.d.(Rg**2))]

                
    6: Debye-Bueche      - 1/Sqrt(I) v     Q**2          

Zeta = (gradient / intercept)**0.5

             
    7: Log-Log           - Ln(I)     v    Ln(Q)  

Gradient = -n = 1/v

                      
    8: Porod             - IQ**4     v        Q      

Plateau Intercept = [(2.pi.c.(deltarho**2)) / d].(S / V)


So some of these can be expressed to terms of c or phi, for example, depending on what the experimenter knows about their sample.  The way I would see this working is that there would be a sort of circular calculation where the user can type in one set of cells and the algorithm populates others, if that makes sense.  Obviously the user would have to complete all the cells for a particular version of the expression for anything to happen!!!


Change History

comment:1 Changed 10 years ago by Nick Draper

  • Cc stephen.king@… added

comment:2 Changed 10 years ago by Mathieu Doucet

  • Cc doucetm@… added

comment:3 Changed 10 years ago by Nick Draper

  • Milestone changed from Iteration 27 to Iteration 28

Bulk move of tickets at the end of iteration 27

comment:4 Changed 10 years ago by Russell Taylor

  • Blocked By 2420 added

comment:4 Changed 10 years ago by Russell Taylor

  • Status changed from new to assigned
  • Owner changed from Russell Taylor to Nick Draper

This needs to go to someone else, along with #2420.

comment:5 Changed 9 years ago by Nick Draper

  • Milestone changed from Iteration 28 to Iteration 29

Bulk move of tickets at the end of iteration 28

comment:7 Changed 9 years ago by Nick Draper

  • Owner changed from Nick Draper to Michael Whitty

comment:8 Changed 9 years ago by Michael Whitty

  • Status changed from assigned to accepted

comment:9 Changed 9 years ago by Michael Whitty

(In [11978]) refs #2197 - isis sans display tab, in place fitting & calculation of values derived from gradient & intercept.

comment:10 Changed 9 years ago by Michael Whitty

(In [12166]) refs #2197 - isis sans display tab, minor fixes

comment:11 Changed 9 years ago by Michael Whitty

(In [12172]) refs #2197 - isis sans display tab

comment:12 Changed 9 years ago by Michael Whitty

(In [12297]) refs #2197 - isis sans display tab - prevent unhandled exception when selected input workspace is invalid.

comment:13 Changed 9 years ago by Michael Whitty

(In [12434]) refs #2197 - isis sans display tab - better control of fitting range.

comment:14 Changed 9 years ago by Michael Whitty

(In [12436]) refs #2197 - isis sans display tab - prevent an unhandled exception, add unit labels.

comment:15 Changed 9 years ago by Michael Whitty

(In [12437]) refs #2197

comment:16 Changed 9 years ago by Michael Whitty

(In [12473]) refs #2197 - changes to g-derived calculations based on feedback from Steve King

comment:17 Changed 9 years ago by Michael Whitty

(In [12504]) refs #2197 - sans display tab, changes to calculation of derived values.

comment:18 Changed 9 years ago by Michael Whitty

  • Status changed from accepted to verify
  • Resolution set to fixed

Steve King will likely have more requests on this in the future, but this ticket is satisfied I think.

comment:19 Changed 9 years ago by Michael Whitty

(In [12509]) fixes #2197 - more minor changes based on feedback from Steve King

comment:20 Changed 9 years ago by Michael Whitty

(In [12513]) fixes #2197 - as above (hopefully last one)

comment:21 Changed 9 years ago by Nick Draper

  • Owner changed from Michael Whitty to Martyn Gigg

Moved from Michael Whitty, ask Martyn if you have any questions during testing

comment:22 Changed 9 years ago by Nick Draper

  • Owner changed from Martyn Gigg to Nick Draper

Moved so they can be tested

comment:23 Changed 9 years ago by Steve Williams

  • Status changed from verify to verifying
  • Tester set to Steve Williams

comment:24 Changed 9 years ago by Steve Williams

  • Status changed from verifying to reopened
  • Resolution fixed deleted

Found unhandled expection when changing the range. It's because the min aren't getting changed at the sametime, but one after the other, and so there is an invalid range at one point.

comment:25 Changed 9 years ago by Steve Williams

  • Status changed from reopened to accepted
  • Owner changed from Nick Draper to Steve Williams

The fix seems more complicated than I thought and it could break things so I'm adding it to the next release (ticket #3275)

comment:26 Changed 9 years ago by Steve Williams

  • Status changed from accepted to verify
  • Resolution set to fixed

comment:27 Changed 9 years ago by Martyn Gigg

  • Status changed from verify to verifying
  • Tester changed from Steve Williams to Martyn Gigg

comment:28 Changed 9 years ago by Martyn Gigg

  • Status changed from verifying to closed

Apart from the exception noted when running log-log and then changing to another type the tab seems to function correctly. Given that the application does not crash and reset can be used to avoid the issue I am happy for the new ticket to stay in the next iteration.

comment:29 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 3044

Note: See TracTickets for help on using tickets.