Changeset a7684e5 in sasmodels for sasmodels/models/cylinder.c


Ignore:
Timestamp:
Aug 26, 2014 7:07:44 AM (10 years ago)
Author:
Paul Kienzle <pkienzle@…>
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
Message:

docu updates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/models/cylinder.c

    r1f21edf ra7684e5  
    1 /* PARAMETERS 
    2 { 
    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 END 
    23  
    24 DOCUMENTATION 
    25 .. _CylinderModel: 
    26  
    27 CylinderModel 
    28 ============= 
    29  
    30 This model provides the form factor for a right circular cylinder with uniform 
    31 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 Definition 
    36 ---------- 
    37  
    38 The output of the 2D scattering intensity function for oriented cylinders is 
    39 given by (Guinier, 1955) 
    40  
    41 .. math:: 
    42  
    43     P(q,\alpha) = \frac{\text{scale}}{V}f^2(q) + \text{bkg} 
    44  
    45 where 
    46  
    47 .. math:: 
    48  
    49     f(q) = 2 (\Delta \rho) V 
    50            \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 the 
    55 radius of the cylinder, and $d\rho$ (contrast) is the scattering length density 
    56 difference between the scatterer and the solvent. $J_1$ is the first order 
    57 Bessel function. 
    58  
    59 To provide easy access to the orientation of the cylinder, we define the 
    60 axis of the cylinder using two angles $\theta$ and $\phi$. Those angles 
    61 are defined in Figure :num:`figure #CylinderModel-orientation`. 
    62  
    63 .. _CylinderModel-orientation: 
    64  
    65 .. figure:: img/image061.JPG 
    66  
    67     Definition of the angles for oriented cylinders. 
    68  
    69 .. figure:: img/image062.JPG 
    70  
    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 the 
    74 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 of 
    78 the CylinderModel are the following: 
    79  
    80 %(parameters)s 
    81  
    82 The output of the 1D scattering intensity function for randomly oriented 
    83 cylinders is then given by 
    84  
    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. Our 
    91 implementation of the scattering kernel and the 1D scattering intensity 
    92 use the c-library from NIST. 
    93  
    94 Validation of the CylinderModel 
    95 ------------------------------- 
    96  
    97 Validation of our code was done by comparing the output of the 1D model 
    98 to the output of the software provided by the NIST (Kline, 2006). 
    99 Figure :num:`figure #CylinderModel-compare` shows a comparison of 
    100 the 1D output of our model and the output of the NIST software. 
    101  
    102 .. _CylinderModel-compare: 
    103  
    104 .. figure:: img/image065.JPG 
    105  
    106     Comparison of the SasView scattering intensity for a cylinder with the 
    107     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|, and 
    110     *Background* = 0.01 |cm^-1|. 
    111  
    112 In general, averaging over a distribution of orientations is done by 
    113 evaluating the following 
    114  
    115 .. math:: 
    116  
    117     P(q) = \int_0^{\pi/2} d\phi 
    118         \int_0^\pi p(\theta, \phi) P_0(q,\alpha) \sin \theta d\theta 
    119  
    120  
    121 where $p(\theta,\phi)$ is the probability distribution for the orientation 
    122 and $P_0(q,\alpha)$ is the scattering intensity for the fully oriented 
    123 system. Since we have no other software to compare the implementation of 
    124 the intensity for fully oriented cylinders, we can compare the result of 
    125 averaging our 2D output using a uniform distribution $p(\theta, \phi) = 1.0$. 
    126 Figure :num:`figure #CylinderModel-crosscheck` shows the result of 
    127 such a cross-check. 
    128  
    129 .. _CylinderModel-crosscheck: 
    130  
    131 .. figure:: img/image066.JPG 
    132  
    133     Comparison of the intensity for uniformly distributed cylinders 
    134     calculated from our 2D model and the intensity from the NIST SANS 
    135     analysis software. 
    136     The parameters used were: *Scale* = 1.0, *Radius* = 20 |Ang|, 
    137     *Length* = 400 |Ang|, *Contrast* = 3e-6 |Ang^-2|, and 
    138     *Background* = 0.0 |cm^-1|. 
    139  
    140 DOCUMENTATION END 
    141 */ 
    1421real form_volume(real radius, real length); 
    1432real Iq(real q, real sld, real solvent_sld, real radius, real length); 
    1443real Iqxy(real qx, real qy, real sld, real solvent_sld, real radius, real length, real theta, real phi); 
    145  
    1464 
    1475real form_volume(real radius, real length) 
Note: See TracChangeset for help on using the changeset viewer.