-
Notifications
You must be signed in to change notification settings - Fork 29
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
Comments
Trac update at |
Trac update at |
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)]]
|
Trac update at |
Trac update at |
[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:
This equation gives the same curve shape as the finite cylinder, but the scale is off. Instead use:
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:
This equation can't be right because the units don't match: in the first term |
Infinitely thin rod:
Infinitely thin disk:
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 |
Trac update at |
Trac update at |
Trac update at |
The formulas above give We could return |
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.
The text was updated successfully, but these errors were encountered: