Opened 3 years ago

Closed 2 years ago

#332 closed defect (fixed)

fix normalization for angular dispersion

Reported by: pkienzle Owned by: pkienzle
Priority: blocker Milestone: SasView 4.0.0
Component: SasView Keywords:
Cc: Work Package: SasView Bug Fixing


sasview 2D models have an issue with the theta parameter. If there is angular dispersion on theta, then the calculated pattern is weighted by cos(theta). This means that as the 2D pattern is rotated through 90 degrees, the overall scattering intensity decreases and increases again. Furthermore, if there is no angular dispersion, the "correction" is not applied.

It is perhaps the case that the definition of theta and phi in the models does not match theta and phi in the documentation, and that the correction should be applied on the basis of phi, or alternatively, phi and theta should be swapped and the correction continue to apply to theta.

Change History (8)

comment:1 Changed 3 years ago by butler

  • Milestone changed from SasView Next Release +1 to SasView 4.0.0

comment:2 Changed 2 years ago by pkienzle

Guinier and Fournet (1955) give the following equation 2.36 (pg 24):

<F2(h)> = ∫ ∫ F2(h,θ,ϕ)P1(h,θ)P2(h,phi) dθ dϕ

SasView is using:

<I(q)> = pi/2 ∫ ∫ I(q,θ,ϕ)P1(q,θ)P2(q,ϕ)|cos(θ)| dθ dϕ

I can't find a reference that includes the cosine term, or the pi/2

Perhaps the confusion arose from the different forms of the ellipsoid of revolution. Eq 2.32 gives the ellipsoid of revolution as:

i(h) = ∫0pi/2 Phi2(h a √(cos2 θ + v2 sin2 θ) cos θ dθ

but the 1-D ellipsoid kernel employs the substitution u = sin theta so it is evaluated as

i(h) = ∫01 Phi2(h a √(1 + u2(v2 - 1)) du

[Note: the u variable above is incorrectly named as cos_alpha in the code.]

Last edited 2 years ago by pkienzle (previous) (diff)

comment:3 Changed 2 years ago by pkienzle

… comment removed …

Last edited 2 years ago by pkienzle (previous) (diff)

comment:4 Changed 2 years ago by butler

  • Priority changed from major to blocker

This should be part of sasmodels project and therefore core of 4.0 Thus making this blocker

Last edited 2 years ago by butler (previous) (diff)

comment:5 Changed 2 years ago by butler

  • Owner set to pkienzle
  • Status changed from new to assigned

comment:6 Changed 2 years ago by butler

  • Owner changed from pkienzle to richardh

comment:7 Changed 2 years ago by richardh

  • Owner changed from richardh to pkienzle

This possibly resolved, PAK need to test code. cos(theta) in sasview likely the same as sin(theta) in Hayter & Penfold etc. We might still consider changing all the axes?

comment:8 Changed 2 years ago by pkienzle

  • Resolution set to fixed
  • Status changed from assigned to closed
Note: See TracTickets for help on using tickets.