Changeset a7684e5 in sasmodels for sasmodels/models/cylinder.c
- Timestamp:
- Aug 26, 2014 7:07:44 AM (10 years ago)
- Branches:
- master, core_shell_microgels, costrafo411, magnetic_model, release_v0.94, release_v0.95, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
- Children:
- ff7119b
- Parents:
- 13d86bc
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/models/cylinder.c
r1f21edf ra7684e5 1 /* PARAMETERS2 {3 name: "cylinder",4 title: "Cylinder with uniform scattering length density",5 include: [ "lib/J1.c", "lib/gauss76.c", "lib/cylkernel.c" ],6 parameters: [7 // [ "name", "units", default, [lower, upper], "type", "description" ],8 [ "sld", "1e-6/Ang^2", 4, [-Infinity,Infinity], "",9 "Cylinder scattering length density" ],10 [ "solvent_sld", "1e-6/Ang^2", 1, [-Infinity,Infinity], "",11 "Solvent scattering length density" ],12 [ "radius", "Ang", 20, [0, Infinity], "volume",13 "Cylinder radius" ],14 [ "length", "Ang", 400, [0, Infinity], "volume",15 "Cylinder length" ],16 [ "theta", "degrees", 60, [-Infinity, Infinity], "orientation",17 "In plane angle" ],18 [ "phi", "degrees", 60, [-Infinity, Infinity], "orientation",19 "Out of plane angle" ],20 ],21 }22 PARAMETERS END23 24 DOCUMENTATION25 .. _CylinderModel:26 27 CylinderModel28 =============29 30 This model provides the form factor for a right circular cylinder with uniform31 scattering length density. The form factor is normalized by the particle volume.32 33 For information about polarised and magnetic scattering, click here_.34 35 Definition36 ----------37 38 The output of the 2D scattering intensity function for oriented cylinders is39 given by (Guinier, 1955)40 41 .. math::42 43 P(q,\alpha) = \frac{\text{scale}}{V}f^2(q) + \text{bkg}44 45 where46 47 .. math::48 49 f(q) = 2 (\Delta \rho) V50 \frac{\sin (q L/2 \cos \alpha)}{q L/2 \cos \alpha}51 \frac{J_1 (q r \sin \alpha)}{q r \sin \alpha}52 53 and $\alpha$ is the angle between the axis of the cylinder and $\vec q$, $V$54 is the volume of the cylinder, $L$ is the length of the cylinder, $r$ is the55 radius of the cylinder, and $d\rho$ (contrast) is the scattering length density56 difference between the scatterer and the solvent. $J_1$ is the first order57 Bessel function.58 59 To provide easy access to the orientation of the cylinder, we define the60 axis of the cylinder using two angles $\theta$ and $\phi$. Those angles61 are defined in Figure :num:`figure #CylinderModel-orientation`.62 63 .. _CylinderModel-orientation:64 65 .. figure:: img/image061.JPG66 67 Definition of the angles for oriented cylinders.68 69 .. figure:: img/image062.JPG70 71 Examples of the angles for oriented pp against the detector plane.72 73 NB: The 2nd virial coefficient of the cylinder is calculated based on the74 radius and length values, and used as the effective radius for $S(Q)$75 when $P(Q) \cdot S(Q)$ is applied.76 77 The returned value is scaled to units of |cm^-1| and the parameters of78 the CylinderModel are the following:79 80 %(parameters)s81 82 The output of the 1D scattering intensity function for randomly oriented83 cylinders is then given by84 85 .. math::86 87 P(q) = \frac{\text{scale}}{V}88 \int_0^{\pi/2} f^2(q,\alpha) \sin \alpha d\alpha + \text{background}89 90 The *theta* and *phi* parameters are not used for the 1D output. Our91 implementation of the scattering kernel and the 1D scattering intensity92 use the c-library from NIST.93 94 Validation of the CylinderModel95 -------------------------------96 97 Validation of our code was done by comparing the output of the 1D model98 to the output of the software provided by the NIST (Kline, 2006).99 Figure :num:`figure #CylinderModel-compare` shows a comparison of100 the 1D output of our model and the output of the NIST software.101 102 .. _CylinderModel-compare:103 104 .. figure:: img/image065.JPG105 106 Comparison of the SasView scattering intensity for a cylinder with the107 output of the NIST SANS analysis software.108 The parameters were set to: *Scale* = 1.0, *Radius* = 20 |Ang|,109 *Length* = 400 |Ang|, *Contrast* = 3e-6 |Ang^-2|, and110 *Background* = 0.01 |cm^-1|.111 112 In general, averaging over a distribution of orientations is done by113 evaluating the following114 115 .. math::116 117 P(q) = \int_0^{\pi/2} d\phi118 \int_0^\pi p(\theta, \phi) P_0(q,\alpha) \sin \theta d\theta119 120 121 where $p(\theta,\phi)$ is the probability distribution for the orientation122 and $P_0(q,\alpha)$ is the scattering intensity for the fully oriented123 system. Since we have no other software to compare the implementation of124 the intensity for fully oriented cylinders, we can compare the result of125 averaging our 2D output using a uniform distribution $p(\theta, \phi) = 1.0$.126 Figure :num:`figure #CylinderModel-crosscheck` shows the result of127 such a cross-check.128 129 .. _CylinderModel-crosscheck:130 131 .. figure:: img/image066.JPG132 133 Comparison of the intensity for uniformly distributed cylinders134 calculated from our 2D model and the intensity from the NIST SANS135 analysis software.136 The parameters used were: *Scale* = 1.0, *Radius* = 20 |Ang|,137 *Length* = 400 |Ang|, *Contrast* = 3e-6 |Ang^-2|, and138 *Background* = 0.0 |cm^-1|.139 140 DOCUMENTATION END141 */142 1 real form_volume(real radius, real length); 143 2 real Iq(real q, real sld, real solvent_sld, real radius, real length); 144 3 real Iqxy(real qx, real qy, real sld, real solvent_sld, real radius, real length, real theta, real phi); 145 146 4 147 5 real form_volume(real radius, real length)
Note: See TracChangeset
for help on using the changeset viewer.