Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Limiting cases of cylinder model (Trac #702) #109

Open
sasview-bot opened this issue Mar 30, 2019 · 11 comments
Open

Limiting cases of cylinder model (Trac #702) #109

sasview-bot opened this issue Mar 30, 2019 · 11 comments

Comments

@sasview-bot
Copy link

sasview-bot commented Mar 30, 2019

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

@pkienzle
Copy link
Contributor

Trac update at 2017/06/29 16:45:17: pkienzle changed attachment from "" to "I-q-theta.png"

@pkienzle
Copy link
Contributor

Trac update at 2017/06/29 16:45:41: pkienzle changed attachment from "" to "I-q-integrated.png"

@pkienzle
Copy link
Contributor

pkienzle commented Mar 30, 2019

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.

[[Image(I-q-theta.png, 700px)]]
[[Image(I-q-integrated.png, 700px)]]

  • pkienzle changed milestone from "sasmodels WishList" to "SasView 4.2.0"

@pkienzle
Copy link
Contributor

Trac update at 2017/06/30 15:57:44: pkienzle changed priority from "minor" to "major"

@pkienzle
Copy link
Contributor

Trac update at 2017/06/30 15:57:54: pkienzle changed type from "enhancement" to "defect"

@pkienzle
Copy link
Contributor

pkienzle commented Mar 30, 2019

[http://dx.doi.org/10.1246/cl.2005.524 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 V² because the polydispersity loop does volume weighted normalization, which still doesn't explain the 1/L vs. L difference.


[Update: 2024-09-05 PAK]

The above expression seems to be a simplified to a simple rod using ρ:shell = ρ:solvent. The full expression from the paper (Eq S2) is:

I(q) = π Lc / q { Vc/Vs (ρc - ρs) 2 J1(q rc)/(q rc) + Vs (ρs - ρsolvent) 2 J1(q(rc+ts)) / (q(rc + ts)) }²

where

Lc = length of cylinder
Vc, Vs = volume of core and shell+core
rc, ts = core radius and shell thickness
ρc, ρs, ρsolvent = SLD of core, shell and solvent

This equation can't be right because the units don't match: in the first term Vc/Vs is unitless, and the second term Vs has length cubed; it should probably be Vc. Also, the scale factor Lc/q has units of length squared where it should be unitless to form the correct dimensionality for I(q).

@pkienzle
Copy link
Contributor

pkienzle commented Mar 30, 2019

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

@butlerpd
Copy link
Member

Trac update at 2018/02/13 02:41:15: butler changed milestone from "SasView 4.2.0" to "SasView 4.3.0"

@butlerpd
Copy link
Member

Trac update at 2019/02/24 18:34:08: butler changed workpackage from "SasModels Redesign" to "SasModels New Model"

@butlerpd
Copy link
Member

Trac update at 2019/03/03 00:49:59: butler changed workpackage from "SasModels New Model" to "SasModels Model Issues"

@pkienzle
Copy link
Contributor

The formulas above give <F²>, but for β approximation we need <F> as well.

We could return <F> = NaN for the limiting cases since the usual structure factor models won't apply anyway.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants