Opened 2 years ago

Last modified 9 months ago

#702 new defect

Limiting cases of cylinder model

Reported by: dirk Owned by: dirk
Priority: major Milestone: SasView 4.3.0
Component: sasmodels Keywords:
Cc: Work Package: SasModels Redesign

Description

The cylinder model should give the formfactor of a long, infinitely thin rod or thin disk if diameter or lengh is set to zero, respectively.

Attachments (2)

I-q-theta.png (104.8 KB) - added by pkienzle 17 months ago.
I-q-integrated.png (107.8 KB) - added by pkienzle 17 months ago.

Download all attachments as: .zip

Change History (8)

Changed 17 months ago by pkienzle

Changed 17 months ago by pkienzle

comment:1 Changed 17 months ago by pkienzle

  • Milestone changed from sasmodels WishList to SasView 4.2.0

More practically, the cylinder model does not support carbon nanotubes, with length 10 um and diameter 1 nm.

Calculations for different numbers of integration steps attached. First image shows the highly oscillatory function that we are integrating at several q points. The second image shows the results for a few different optimization strategies. Trapezoidal method for 65000 points and 525000 points are indistinguishable on the graph, and so that is likely the true value.

Repeating the tests with different lengths, it seems that the current code with the 76 point Gaussian integration supports lengths up to 0.1 um. Switching to a 150 point Gaussian will allow up to 1-2 um. Using Gaussian integration with 1024 points (not shown) gives results within 1.5% of the 525000 point trapz. [1024 is a nicer number for GPUs to work with, though any multiple of 4 ought to be fine.]

Simulations were run with explore/symint.py in the ticket-776-orientation branch.



Last edited 17 months ago by pkienzle (previous) (diff)

comment:2 Changed 17 months ago by pkienzle

  • Priority changed from minor to major

comment:3 Changed 17 months ago by pkienzle

  • Type changed from enhancement to defect

comment:4 Changed 17 months ago by pkienzle

Inada 2005 (supplemental) gives the following for an infinite core-shell cylinder with core radius=0:

    I(q) = pi L/q [drho V 2 J1(q r)/(q r)]^2 

This equation gives the same curve shape as the finite cylinder, but the scale is off. Instead use:

    I(q) = pi/L V/q [drho 2 J1(q r)/(q r)]^2

This matches the peaks well, but underestimates the dips. With minimal polydispersity or resolution the precise value of the dips won't matter and this approximation will be good enough. It breaks down at low q for shorter cylinder lengths.

Note: sasmodels kernels use V rather than V2 because the polydispersity loop does volume weighted normalization, which still doesn't explain the 1/L vs. L difference.

Last edited 16 months ago by pkienzle (previous) (diff)

comment:5 Changed 17 months ago by pkienzle

Infinitely thin rod:

2Si(qL)/(qL) - [sin(qL/2)/(qL/2)]^2

Infinitely thin disk:

2/(qR)^2 [ 1 - 2 J1(2qR)/2qR ]

Pedersen, J.S., 1997. Analysis of small-angle scattering data from colloids and polymer solutions: modeling and least-squares fitting. Advances in Colloid and Interface Science 70, 171–210. doi:10.1016/S0001-8686(97)00312-6

comment:6 Changed 9 months ago by butler

  • Milestone changed from SasView 4.2.0 to SasView 4.3.0
Note: See TracTickets for help on using tickets.