Changeset 3d40839 in sasmodels for doc/developer
- Timestamp:
- Oct 28, 2017 9:28:22 PM (7 years ago)
- Branches:
- master, core_shell_microgels, magnetic_model, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
- Children:
- 0db85af
- Parents:
- e964ab1
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/developer/overview.rst
re964ab1 r3d40839 180 180 should always be preceded by their definition." 181 181 182 We are using the z-y-z convention with extrinsic rotations $\Psi-\theta-\phi$183 for the particle orientation and $x-y-z$ convention with extrinsic rotations 184 $\psi-\theta-\phi$ for jitter, with jitter applied before particle 185 orientation.182 We are using the $z$-$y$-$z$ convention with extrinsic rotations 183 $\Psi$-$\theta$-$\phi$ for the particle orientation and $x$-$y$-$z$ 184 convention with extrinsic rotations $\Psi$-$\theta$-$\phi$ for jitter, with 185 jitter applied before particle orientation. 186 186 187 187 For numerical integration within form factors etc. sasmodels is mostly using … … 191 191 with $cos(\theta)$ which changes the limits of integration from 0 to $\pi/2$ 192 192 to 0 to 1 and also conveniently absorbs the $sin(\theta)$ scale factor in the 193 integration. This can cause confusion if checking equations to say include in194 a paper or thesis! Most models use the same core kernel code expressed in 195 terms of the rotated view (qa, qb, qc) for both the 1D and the 2D models, but 196 there are also historical quirks such as the parallelepiped model, which has 197 a useless transformation representing j0(a qa) as j0(b qa a/b).198 199 Useful testing routines include -193 integration. This can cause confusion if checking equations to include in a 194 paper or thesis! Most models use the same core kernel code expressed in terms 195 of the rotated view ($q_a$, $q_b$, $q_c$) for both the 1D and the 2D models, 196 but there are also historical quirks such as the parallelepiped model, which 197 has a useless transformation representing $j_0(a q_a)$ as $j_0(b q_a a/b)$. 198 199 Useful testing routines include: 200 200 201 201 :mod:`asymint` a direct implementation of the surface integral for certain … … 204 204 functions to arbitrary precision). It uses $\theta$ ranging from 0 to $\pi$ 205 205 and $\phi$ ranging from 0 to $2\pi$. It perhaps would benefit from including 206 the U-substitution for theta.206 the U-substitution for $\theta$. 207 207 208 208 :mod:`check1d` uses sasmodels 1D integration and compares that with a 209 209 rectangle distribution in $\theta$ and $\phi$, with $\theta$ limits set to 210 $\pm 90/\sqrt(3)$ and $\phi$ limits set to $\pm180/\sqrt(3)$ [The rectangle210 $\pm 90/\sqrt(3)$ and $\phi$ limits set to $\pm 180/\sqrt(3)$ [The rectangle 211 211 weight function uses the fact that the distribution width column is labelled 212 sigma to decide that the 1- sigmawidth of a rectangular distribution needs to212 sigma to decide that the 1-$\sigma$ width of a rectangular distribution needs to 213 213 be multiplied by $\sqrt(3)$ to get the corresponding gaussian equivalent, or 214 214 similar reasoning.] This should rotate the sample through the entire 215 $\theta -\phi$ surface according to the pattern that you see in jitter.py when215 $\theta$-$\phi$ surface according to the pattern that you see in jitter.py when 216 216 you modify it to use 'rectangle' rather than 'gaussian' for its distribution 217 without changing the viewing angle. When computing the dispersity integral, 218 weights are scaled by abs(cos(dtheta)) to account for the points in phi 219 getting closer together as dtheta increases. This integrated dispersion is 220 computed at a set of $(qx, qy)$ points $(q cos(\alpha), q sin(\alpha))$ at 221 some angle $\alpha$ (currently angle=0) for each q used in the 1-D 222 integration. The individual q points should be equivalent to asymint rect-n 223 when the viewing angle is set to (theta,phi,psi) = (90, 0, 0). Such tests can 224 help to validate that 2d intensity is consistent with 1d models. 225 226 :mod:`sascomp -sphere=n` uses the identical rectangular distribution to 227 compute the pattern of the qx-qy grid. You can see from triaxial_ellipsoid 228 that there may be something wrong conceptually since the pattern is no longer 229 circular when the view (theta,phi,psi) is not (90, phi, 0). check1d shows 230 that it is different from the sasmodels 1D integral even when at theta=0, 231 psi=0. Cross checking the values with asymint, the sasmodels 1D integral is 232 better at low q, though for very large structures there are not enough points 233 in the integration for sasmodels 1D to compute the high q 1D integral 234 correctly. [Some of that may now be fixed?] 217 without changing the viewing angle. In order to match the 1-D pattern for 218 an arbitrary viewing angle on triaxial shapes, we need to integrate 219 over $\theta$, $\phi$ and $\Psi$. 220 221 When computing the dispersity integral, weights are scaled by 222 $|\cos(\delta \theta)|$ to account for the points in $\phi$ getting closer 223 together as $\delta \theta$ increases. 224 [This will probably change so that instead of adjusting the weights, we will 225 adjust $\delta\theta$-$\delta\phi$ mesh so that the point density in 226 $\delta\phi$ is lower at larger $\delta\theta$. The flag USE_SCALED_PHI in 227 *kernel_iq.c* selects an alternative algorithm.] 228 229 The integrated dispersion is computed at a set of $(qx, qy)$ points $(q 230 \cos(\alpha), q \sin(\alpha))$ at some angle $\alpha$ (currently angle=0) for 231 each $q$ used in the 1-D integration. The individual $q$ points should be 232 equivalent to asymint rect-n when the viewing angle is set to 233 $(\theta,\phi,\Psi) = (90, 0, 0)$. Such tests can help to validate that 2d 234 models are consistent with 1d models. 235 236 :mod:`sascomp -sphere=n` uses the same rectangular distribution as check1d to 237 compute the pattern of the $q_x$-$q_y$ grid. 235 238 236 239 The :mod:`sascomp` utility can be used for 2d as well as 1d calculations to
Note: See TracChangeset
for help on using the changeset viewer.