Changeset 68532f3 in sasmodels


Ignore:
Timestamp:
Nov 1, 2015 4:10:22 PM (4 years ago)
Author:
ajj
Branches:
gh-pages
Children:
4a9a316
Parents:
d1fe925
Message:

Adding docs

Files:
117 added
80 deleted
55 moved

Legend:

Unmodified
Added
Removed
  • _sources/model/barbell.txt

    rd1fe925 r68532f3  
    1 #barbell model 
    2 # cylinder model 
    3 # Note: model title and parameter table are inserted automatically 
    4 r""" 
     1.. _barbell: 
     2 
     3Barbell 
     4======================================================= 
     5 
     6Cylinder with spherical end caps 
     7 
     8=========== ================================= ============ ============= 
     9Parameter   Description                       Units        Default value 
     10=========== ================================= ============ ============= 
     11scale       Source intensity                  None                     1 
     12background  Source background                 |cm^-1|                  0 
     13sld         Barbell scattering length density |1e-6Ang^-2|             4 
     14solvent_sld Solvent scattering length density |1e-6Ang^-2|             1 
     15bell_radius Spherical bell radius             |Ang|                   40 
     16radius      Cylindrical bar radius            |Ang|                   20 
     17length      Cylinder bar length               |Ang|                  400 
     18theta       In plane angle                    degree                  60 
     19phi         Out of plane angle                degree                  60 
     20=========== ================================= ============ ============= 
     21 
     22The returned value is scaled to units of |cm^-1|. 
     23 
     24 
    525 
    626Calculates the scattering from a barbell-shaped cylinder (This model simply 
     
    110130H Kaya and N R deSouza, *J. Appl. Cryst.*, 37 (2004) 508-509 (addenda and errata) 
    111131 
    112 """ 
    113 from numpy import inf 
    114132 
    115 name = "barbell" 
    116 title = "Cylinder with spherical end caps" 
    117 description = """ 
    118         Calculates the scattering from a barbell-shaped cylinder. That is a sphereocylinder with spherical end caps that have a radius larger than that of the cylinder and the center of the end cap 
    119         radius lies outside of the cylinder. 
    120         Note: As the length of cylinder(bar) -->0,it becomes a dumbbell. And when rad_bar = rad_bell, it is a spherocylinder. 
    121         It must be that rad_bar <(=) rad_bell. 
    122 """ 
    123 category = "shape:cylinder" 
    124  
    125 #             ["name", "units", default, [lower, upper], "type","description"], 
    126 parameters = [["sld", "1e-6/Ang^2", 4, [-inf, inf], "", "Barbell scattering length density"], 
    127               ["solvent_sld", "1e-6/Ang^2", 1, [-inf, inf], "", "Solvent scattering length density"], 
    128               ["bell_radius", "Ang", 40, [0, inf], "volume", "Spherical bell radius"], 
    129               ["radius", "Ang", 20, [0, inf], "volume", "Cylindrical bar radius"], 
    130               ["length", "Ang", 400, [0, inf], "volume", "Cylinder bar length"], 
    131               ["theta", "degrees", 60, [-inf, inf], "orientation", "In plane angle"], 
    132               ["phi", "degrees", 60, [-inf, inf], "orientation", "Out of plane angle"], 
    133              ] 
    134  
    135 source = ["lib/J1.c", "lib/gauss76.c", "barbell.c"] 
    136  
    137 # parameters for demo 
    138 demo = dict(scale=1, background=0, 
    139             sld=6, solvent_sld=1, 
    140             bell_radius=40, radius=20, length=400, 
    141             theta=60, phi=60, 
    142             radius_pd=.2, radius_pd_n=5, 
    143             length_pd=.2, length_pd_n=5, 
    144             theta_pd=15, theta_pd_n=0, 
    145             phi_pd=15, phi_pd_n=0, 
    146            ) 
    147  
    148 # For testing against the old sasview models, include the converted parameter 
    149 # names and the target sasview model name. 
    150 oldname = 'BarBellModel' 
    151 oldpars = dict(sld='sld_barbell', 
    152                solvent_sld='sld_solv', bell_radius='rad_bell', 
    153                radius='rad_bar', length='len_bar') 
  • _sources/model/bcc.txt

    rd1fe925 r68532f3  
    1 #bcc paracrystal model 
    2 #note model title and parameter table are automatically inserted 
    3 #note - calculation requires double precision 
    4 r""" 
     1.. _bcc-paracrystal: 
     2 
     3Bcc paracrystal 
     4======================================================= 
     5 
     6Body-centred cubic lattic with paracrystalline distortion 
     7 
     8=========== ================================== ============ ============= 
     9Parameter   Description                        Units        Default value 
     10=========== ================================== ============ ============= 
     11scale       Source intensity                   None                     1 
     12background  Source background                  |cm^-1|                  0 
     13dnn         Nearest neighbour distance         |Ang|                  220 
     14d_factor    Paracrystal distortion factor      None                  0.06 
     15radius      Particle radius                    |Ang|                   40 
     16sld         Particle scattering length density |1e-6Ang^-2|             4 
     17solvent_sld Solvent scattering length density  |1e-6Ang^-2|             1 
     18theta       In plane angle                     degree                  60 
     19phi         Out of plane angle                 degree                  60 
     20psi         Out of plane angle                 degree                  60 
     21=========== ================================== ============ ============= 
     22 
     23The returned value is scaled to units of |cm^-1|. 
     24 
     25 
    526Calculates the scattering from a **body-centered cubic lattice** with 
    627paracrystalline distortion. Thermal vibrations are considered to be negligible, 
     
    102123Hideki Matsuoka et. al. *Physical Review B*, 41 (1990) 3854 -3856 
    103124(Corrections to FCC and BCC lattice structure calculation) 
    104 """ 
    105125 
    106 from numpy import inf 
    107  
    108 name = "bcc_paracrystal" 
    109 title = "Body-centred cubic lattic with paracrystalline distortion" 
    110 description = """ 
    111     Calculates the scattering from a **body-centered cubic lattice** with paracrystalline distortion. Thermal vibrations 
    112     are considered to be negligible, and the size of the paracrystal is infinitely large. Paracrystalline distortion is 
    113     assumed to be isotropic and characterized by a Gaussian distribution. 
    114     """ 
    115 category = "shape:paracrystal" 
    116  
    117 #             ["name", "units", default, [lower, upper], "type","description" ], 
    118 parameters = [["dnn", "Ang", 220, [-inf, inf], "", "Nearest neighbour distance"], 
    119               ["d_factor", "", 0.06, [-inf, inf], "", "Paracrystal distortion factor"], 
    120               ["radius", "Ang", 40, [0, inf], "volume", "Particle radius"], 
    121               ["sld", "1e-6/Ang^2", 4, [-inf, inf], "", "Particle scattering length density"], 
    122               ["solvent_sld", "1e-6/Ang^2", 1, [-inf, inf], "", "Solvent scattering length density"], 
    123               ["theta", "degrees", 60, [-inf, inf], "orientation", "In plane angle"], 
    124               ["phi", "degrees", 60, [-inf, inf], "orientation", "Out of plane angle"], 
    125               ["psi", "degrees", 60, [-inf, inf], "orientation", "Out of plane angle"] 
    126              ] 
    127  
    128 source = ["lib/J1.c", "lib/gauss150.c", "bcc.c"] 
    129  
    130 # parameters for demo 
    131 demo = dict( 
    132     scale=1, background=0, 
    133     dnn=220, d_factor=0.06, sld=4, solvent_sld=1, 
    134     radius=40, 
    135     theta=60, phi=60, psi=60, 
    136     radius_pd=.2, radius_pd_n=0.2, 
    137     theta_pd=15, theta_pd_n=0, 
    138     phi_pd=15, phi_pd_n=0, 
    139     psi_pd=15, psi_pd_n=0, 
    140     ) 
    141  
    142 # For testing against the old sasview models, include the converted parameter 
    143 # names and the target sasview model name. 
    144 oldname = 'BCCrystalModel' 
    145 oldpars = dict(sld='sldSph', solvent_sld='sldSolv') 
  • _sources/model/capped_cylinder.txt

    rd1fe925 r68532f3  
    1 r""" 
     1.. _capped-cylinder: 
     2 
     3Capped cylinder 
     4======================================================= 
     5 
     6Right circular cylinder with spherical end caps and uniform SLD 
     7 
     8=========== ================================== ============ ============= 
     9Parameter   Description                        Units        Default value 
     10=========== ================================== ============ ============= 
     11scale       Source intensity                   None                     1 
     12background  Source background                  |cm^-1|                  0 
     13sld         Cylinder scattering length density |1e-6Ang^-2|             4 
     14solvent_sld Solvent scattering length density  |1e-6Ang^-2|             1 
     15radius      Cylinder radius                    |Ang|                   20 
     16cap_radius  Cap radius                         |Ang|                   20 
     17length      Cylinder length                    |Ang|                  400 
     18theta       In plane angle                     degree                  60 
     19phi         Out of plane angle                 degree                  60 
     20=========== ================================== ============ ============= 
     21 
     22The returned value is scaled to units of |cm^-1|. 
     23 
     24 
    225Calculates the scattering from a cylinder with spherical section end-caps. 
    326This model simply becomes the a convex lens when the length of the cylinder 
     
    109132 
    110133H Kaya and N-R deSouza, *J. Appl. Cryst.*, 37 (2004) 508-509 (addenda and errata) 
    111 """ 
    112 from numpy import inf 
    113134 
    114 name = "capped_cylinder" 
    115 title = "Right circular cylinder with spherical end caps and uniform SLD" 
    116 description = """That is, a sphereocylinder 
    117     with end caps that have a radius larger than 
    118     that of the cylinder and the center of the 
    119     end cap radius lies within the cylinder. 
    120     Note: As the length of cylinder -->0, 
    121     it becomes a ConvexLens. 
    122     It must be that radius <(=) cap_radius. 
    123     [Parameters]; 
    124     scale: volume fraction of spheres, 
    125     background:incoherent background, 
    126     radius: radius of the cylinder, 
    127     length: length of the cylinder, 
    128     cap_radius: radius of the semi-spherical cap, 
    129     sld: SLD of the capped cylinder, 
    130     solvent_sld: SLD of the solvent. 
    131 """ 
    132 category = "shape:cylinder" 
    133  
    134 #             ["name", "units", default, [lower, upper], "type", "description"], 
    135 parameters = [["sld", "1e-6/Ang^2", 4, [-inf, inf], "", 
    136                "Cylinder scattering length density"], 
    137               ["solvent_sld", "1e-6/Ang^2", 1, [-inf, inf], "", 
    138                "Solvent scattering length density"], 
    139               ["radius", "Ang", 20, [0, inf], "volume", "Cylinder radius"], 
    140               # TODO: use an expression for cap radius with fixed bounds. 
    141               # The current form requires cap radius R bigger than cylinder radius r. 
    142               # Could instead use R/r in [1,inf], r/R in [0,1], or the angle between 
    143               # cylinder and cap in [0,90].  The problem is similar for the barbell 
    144               # model.  Propose r/R in [0,1] in both cases, with the model specifying 
    145               # cylinder radius in the capped cylinder model and sphere radius in the 
    146               # barbell model.  This leads to the natural value of zero for no cap 
    147               # in the capped cylinder, and zero for no bar in the barbell model.  In 
    148               # both models, one would be a pill. 
    149               ["cap_radius", "Ang", 20, [0, inf], "volume", "Cap radius"], 
    150               ["length", "Ang", 400, [0, inf], "volume", "Cylinder length"], 
    151               ["theta", "degrees", 60, [-inf, inf], "orientation", "In plane angle"], 
    152               ["phi", "degrees", 60, [-inf, inf], "orientation", "Out of plane angle"], 
    153              ] 
    154  
    155 source = ["lib/J1.c", "lib/gauss76.c", "capped_cylinder.c"] 
    156  
    157 demo = dict(scale=1, background=0, 
    158             sld=6, solvent_sld=1, 
    159             radius=260, cap_radius=290, length=290, 
    160             theta=30, phi=15, 
    161             radius_pd=.2, radius_pd_n=1, 
    162             cap_radius_pd=.2, cap_radius_pd_n=1, 
    163             length_pd=.2, length_pd_n=10, 
    164             theta_pd=15, theta_pd_n=45, 
    165             phi_pd=15, phi_pd_n=1) 
    166 oldname = 'CappedCylinderModel' 
    167 oldpars = dict(sld='sld_capcyl', solvent_sld='sld_solv', 
    168                length='len_cyl', radius='rad_cyl', cap_radius='rad_cap') 
  • _sources/model/core_shell_cylinder.txt

    rd1fe925 r68532f3  
    1 # core shell cylinder model 
    2 # Note: model title and parameter table are inserted automatically 
    3 r""" 
     1.. _core-shell-cylinder: 
     2 
     3Core shell cylinder 
     4======================================================= 
     5 
     6Right circular cylinder with a core-shell scattering length density profile. 
     7 
     8=========== ======================================== ============ ============= 
     9Parameter   Description                              Units        Default value 
     10=========== ======================================== ============ ============= 
     11scale       Source intensity                         None                     1 
     12background  Source background                        |cm^-1|                  0 
     13core_sld    Cylinder core scattering length density  |1e-6Ang^-2|             4 
     14shell_sld   Cylinder shell scattering length density |1e-6Ang^-2|             4 
     15solvent_sld Solvent scattering length density        |1e-6Ang^-2|             1 
     16radius      Cylinder core radius                     |Ang|                   20 
     17thickness   Cylinder shell thickness                 |Ang|                   20 
     18length      Cylinder length                          |Ang|                  400 
     19theta       In plane angle                           degree                  60 
     20phi         Out of plane angle                       degree                  60 
     21=========== ======================================== ============ ============= 
     22 
     23The returned value is scaled to units of |cm^-1|. 
     24 
     25 
    426The form factor is normalized by the particle volume. 
    527 
     
    102124 
    1031252013/11/26 - Description reviewed by Heenan, R. 
    104 """ 
    105126 
    106 from numpy import pi, inf 
    107  
    108 name = "core_shell_cylinder" 
    109 title = "Right circular cylinder with a core-shell scattering length density profile." 
    110 description = """ 
    111 P(q,alpha)= scale/Vs*f(q)^(2) + background, 
    112       where: f(q)= 2(core_sld - solvant_sld) 
    113         * Vc*sin[qLcos(alpha/2)] 
    114         /[qLcos(alpha/2)]*J1(qRsin(alpha)) 
    115         /[qRsin(alpha)]+2(shell_sld-solvent_sld) 
    116         *Vs*sin[q(L+T)cos(alpha/2)][[q(L+T) 
    117         *cos(alpha/2)]*J1(q(R+T)sin(alpha)) 
    118         /q(R+T)sin(alpha)] 
    119  
    120     alpha:is the angle between the axis of 
    121         the cylinder and the q-vector 
    122     Vs: the volume of the outer shell 
    123     Vc: the volume of the core 
    124     L: the length of the core 
    125         shell_sld: the scattering length density of the shell 
    126     solvent_sld: the scattering length density of the solvent 
    127     background: the background 
    128     T: the thickness 
    129         R+T: is the outer radius 
    130      L+2T: The total length of the outershell 
    131     J1: the first order Bessel function 
    132      theta: axis_theta of the cylinder 
    133      phi: the axis_phi of the cylinder 
    134 """ 
    135 category = "shape:cylinder" 
    136  
    137 #             ["name", "units", default, [lower, upper], "type", "description"], 
    138 parameters = [["core_sld", "1e-6/Ang^2", 4, [-inf, inf], "", 
    139                "Cylinder core scattering length density"], 
    140               ["shell_sld", "1e-6/Ang^2", 4, [-inf, inf], "", 
    141                "Cylinder shell scattering length density"], 
    142               ["solvent_sld", "1e-6/Ang^2", 1, [-inf, inf], "", 
    143                "Solvent scattering length density"], 
    144               ["radius", "Ang", 20, [0, inf], "volume", 
    145                "Cylinder core radius"], 
    146               ["thickness", "Ang", 20, [0, inf], "volume", 
    147                "Cylinder shell thickness"], 
    148               ["length", "Ang", 400, [0, inf], "volume", 
    149                "Cylinder length"], 
    150               ["theta", "degrees", 60, [-inf, inf], "orientation", 
    151                "In plane angle"], 
    152               ["phi", "degrees", 60, [-inf, inf], "orientation", 
    153                "Out of plane angle"], 
    154              ] 
    155  
    156 source = ["lib/J1.c", "lib/gauss76.c", "core_shell_cylinder.c"] 
    157  
    158 def ER(radius, thickness, length): 
    159     radius = radius + thickness 
    160     length = length + 2 * thickness 
    161     ddd = 0.75 * radius * (2 * radius * length + (length + radius) * (length + pi * radius)) 
    162     return 0.5 * (ddd) ** (1. / 3.) 
    163  
    164 def VR(radius, thickness, length): 
    165     whole = pi * (radius + thickness) ** 2 * (length + 2 * thickness) 
    166     core = pi * radius ** 2 * length 
    167     return whole, whole - core 
    168  
    169 demo = dict(scale=1, background=0, 
    170             core_sld=6, shell_sld=8, solvent_sld=1, 
    171             radius=45, thickness=25, length=340, 
    172             theta=30, phi=15, 
    173             radius_pd=.2, radius_pd_n=1, 
    174             length_pd=.2, length_pd_n=10, 
    175             thickness_pd=.2, thickness_pd_n=10, 
    176             theta_pd=15, theta_pd_n=45, 
    177             phi_pd=15, phi_pd_n=1) 
    178 oldname = 'CoreShellCylinderModel' 
    179 oldpars = dict(theta='axis_theta', phi='axis_phi') 
  • _sources/model/cylinder.txt

    rd1fe925 r68532f3  
    1 # cylinder model 
    2 # Note: model title and parameter table are inserted automatically 
    3 r""" 
     1.. _cylinder: 
     2 
     3Cylinder 
     4======================================================= 
     5 
     6Right circular cylinder with uniform scattering length density. 
     7 
     8=========== ================================== ============ ============= 
     9Parameter   Description                        Units        Default value 
     10=========== ================================== ============ ============= 
     11scale       Source intensity                   None                     1 
     12background  Source background                  |cm^-1|                  0 
     13sld         Cylinder scattering length density |1e-6Ang^-2|             4 
     14solvent_sld Solvent scattering length density  |1e-6Ang^-2|             1 
     15radius      Cylinder radius                    |Ang|                   20 
     16length      Cylinder length                    |Ang|                  400 
     17theta       In plane angle                     degree                  60 
     18phi         Out of plane angle                 degree                  60 
     19=========== ================================== ============ ============= 
     20 
     21The returned value is scaled to units of |cm^-1|. 
     22 
     23 
    424The form factor is normalized by the particle volume. 
    525 
     
    106126    *length* = 400 |Ang|, *contrast* = 3e-6 |Ang^-2|, and 
    107127    *background* = 0.0 |cm^-1|. 
    108 """ 
    109128 
    110 import numpy as np 
    111 from numpy import pi, inf 
    112  
    113 name = "cylinder" 
    114 title = "Right circular cylinder with uniform scattering length density." 
    115 description = """ 
    116      f(q,alpha) = 2*(sld - solvent_sld)*V*sin(qLcos(alpha/2)) 
    117                 /[qLcos(alpha/2)]*J1(qRsin(alpha/2))/[qRsin(alpha)] 
    118  
    119             P(q,alpha)= scale/V*f(q,alpha)^(2)+background 
    120             V: Volume of the cylinder 
    121             R: Radius of the cylinder 
    122             L: Length of the cylinder 
    123             J1: The bessel function 
    124             alpha: angle between the axis of the 
    125             cylinder and the q-vector for 1D 
    126             :the ouput is P(q)=scale/V*integral 
    127             from pi/2 to zero of... 
    128             f(q,alpha)^(2)*sin(alpha)*dalpha + background 
    129 """ 
    130 category = "shape:cylinder" 
    131  
    132 #             [ "name", "units", default, [lower, upper], "type", "description"], 
    133 parameters = [["sld", "1e-6/Ang^2", 4, [-inf, inf], "", 
    134                "Cylinder scattering length density"], 
    135               ["solvent_sld", "1e-6/Ang^2", 1, [-inf, inf], "", 
    136                "Solvent scattering length density"], 
    137               ["radius", "Ang", 20, [0, inf], "volume", 
    138                "Cylinder radius"], 
    139               ["length", "Ang", 400, [0, inf], "volume", 
    140                "Cylinder length"], 
    141               ["theta", "degrees", 60, [-inf, inf], "orientation", 
    142                "In plane angle"], 
    143               ["phi", "degrees", 60, [-inf, inf], "orientation", 
    144                "Out of plane angle"], 
    145              ] 
    146  
    147 source = ["lib/J1.c", "lib/gauss76.c", "cylinder.c"] 
    148  
    149 def ER(radius, length): 
    150     ddd = 0.75 * radius * (2 * radius * length + (length + radius) * (length + pi * radius)) 
    151     return 0.5 * (ddd) ** (1. / 3.) 
    152  
    153 # parameters for demo 
    154 demo = dict(scale=1, background=0, 
    155             sld=6, solvent_sld=1, 
    156             radius=20, length=300, 
    157             theta=60, phi=60, 
    158             radius_pd=.2, radius_pd_n=9, 
    159             length_pd=.2, length_pd_n=10, 
    160             theta_pd=10, theta_pd_n=5, 
    161             phi_pd=10, phi_pd_n=5) 
    162  
    163 # For testing against the old sasview models, include the converted parameter 
    164 # names and the target sasview model name. 
    165 oldname = 'CylinderModel' 
    166 oldpars = dict(theta='cyl_theta', phi='cyl_phi', sld='sldCyl', solvent_sld='sldSolv') 
    167  
    168  
    169 qx, qy = 0.2 * np.cos(2.5), 0.2 * np.sin(2.5) 
    170 tests = [[{}, 0.2, 0.041761386790780453], 
    171          [{}, [0.2], [0.041761386790780453]], 
    172          [{'theta':10.0, 'phi':10.0}, (qx, qy), 0.03414647218513852], 
    173          [{'theta':10.0, 'phi':10.0}, [(qx, qy)], [0.03414647218513852]], 
    174         ] 
    175 del qx, qy  # not necessary to delete, but cleaner 
  • _sources/model/dab.txt

    rd1fe925 r68532f3  
    1 r""" 
     1.. _dab: 
     2 
     3Dab 
     4======================================================= 
     5 
     6DAB (Debye Anderson Brumberger) Model 
     7 
     8========== ================== ======= ============= 
     9Parameter  Description        Units   Default value 
     10========== ================== ======= ============= 
     11scale      Source intensity   None                1 
     12background Source background  |cm^-1|             0 
     13length     correlation length |Ang|              50 
     14========== ================== ======= ============= 
     15 
     16The returned value is scaled to units of |cm^-1|. 
     17 
     18 
    219 
    320Scattering model class for the DAB (Debye Anderson Brumberger) Model 
     
    5572*2013/09/09 - Description reviewed by King, S and Parker, P.* 
    5673 
    57 """ 
    5874 
    59 from numpy import inf 
    60  
    61 name = "dab" 
    62 title = "DAB (Debye Anderson Brumberger) Model" 
    63 description = """\ 
    64  
    65 F(q)= scale * L^3/(1 + (q*L)^2)^2 
    66  
    67 L: the correlation length 
    68  
    69 """ 
    70 category = "shape-independent" 
    71  
    72 #             ["name", "units", default, [lower, upper], "type", "description"], 
    73 parameters = [["length", "Ang", 50.0, [0, inf], "", "correlation length"], 
    74              ] 
    75  
    76 Iq = """ 
    77     double numerator   = pow(length, 3); 
    78     double denominator = pow(1 + pow(q*length,2), 2); 
    79      
    80     return numerator / denominator ; 
    81     """ 
    82  
    83 Iqxy = """ 
    84     // never called since no orientation or magnetic parameters. 
    85     //return -1.0; 
    86     return Iq(sqrt(qx*qx + qy*qy), length); 
    87     """ 
    88  
    89 # ER defaults to 1.0 
    90  
    91 # VR defaults to 1.0 
    92  
    93 demo = dict(scale=1, background=0, length=50) 
    94 oldname = "DABModel" 
    95 oldpars = dict(length='length') 
  • _sources/model/ellipsoid.txt

    rd1fe925 r68532f3  
    1 # ellipsoid model 
    2 # Note: model title and parameter table are inserted automatically 
    3 r""" 
     1.. _ellipsoid: 
     2 
     3Ellipsoid 
     4======================================================= 
     5 
     6Ellipsoid of revolution with uniform scattering length density. 
     7 
     8=========== =================================== ============ ============= 
     9Parameter   Description                         Units        Default value 
     10=========== =================================== ============ ============= 
     11scale       Source intensity                    None                     1 
     12background  Source background                   |cm^-1|                  0 
     13sld         Ellipsoid scattering length density |1e-6Ang^-2|             4 
     14solvent_sld Solvent scattering length density   |1e-6Ang^-2|             1 
     15rpolar      Polar radius                        |Ang|                   20 
     16requatorial Equatorial radius                   |Ang|                  400 
     17theta       In plane angle                      degree                  60 
     18phi         Out of plane angle                  degree                  60 
     19=========== =================================== ============ ============= 
     20 
     21The returned value is scaled to units of |cm^-1|. 
     22 
     23 
    424The form factor is normalized by the particle volume. 
    525 
     
    114134L A Feigin and D I Svergun. *Structure Analysis by Small-Angle X-Ray and Neutron Scattering*, Plenum, 
    115135New York, 1987. 
    116 """ 
    117136 
    118 from numpy import inf 
    119  
    120 name = "ellipsoid" 
    121 title = "Ellipsoid of revolution with uniform scattering length density." 
    122  
    123 description = """\ 
    124 P(q.alpha)= scale*f(q)^2 + background, where f(q)= 3*(sld 
    125         - solvent_sld)*V*[sin(q*r(Rp,Re,alpha)) 
    126         -q*r*cos(qr(Rp,Re,alpha))] 
    127         /[qr(Rp,Re,alpha)]^3" 
    128  
    129      r(Rp,Re,alpha)= [Re^(2)*(sin(alpha))^2 
    130         + Rp^(2)*(cos(alpha))^2]^(1/2) 
    131  
    132         sld: SLD of the ellipsoid 
    133         solvent_sld: SLD of the solvent 
    134         V: volume of the ellipsoid 
    135         Rp: polar radius of the ellipsoid 
    136         Re: equatorial radius of the ellipsoid 
    137 """ 
    138 category = "shape:ellipsoid" 
    139  
    140 #             ["name", "units", default, [lower, upper], "type","description"], 
    141 parameters = [["sld", "1e-6/Ang^2", 4, [-inf, inf], "", 
    142                "Ellipsoid scattering length density"], 
    143               ["solvent_sld", "1e-6/Ang^2", 1, [-inf, inf], "", 
    144                "Solvent scattering length density"], 
    145               ["rpolar", "Ang", 20, [0, inf], "volume", 
    146                "Polar radius"], 
    147               ["requatorial", "Ang", 400, [0, inf], "volume", 
    148                "Equatorial radius"], 
    149               ["theta", "degrees", 60, [-inf, inf], "orientation", 
    150                "In plane angle"], 
    151               ["phi", "degrees", 60, [-inf, inf], "orientation", 
    152                "Out of plane angle"], 
    153              ] 
    154  
    155 source = ["lib/J1.c", "lib/gauss76.c", "ellipsoid.c"] 
    156  
    157 def ER(rpolar, requatorial): 
    158     import numpy as np 
    159  
    160     ee = np.empty_like(rpolar) 
    161     idx = rpolar > requatorial 
    162     ee[idx] = (rpolar[idx] ** 2 - requatorial[idx] ** 2) / rpolar[idx] ** 2 
    163     idx = rpolar < requatorial 
    164     ee[idx] = (requatorial[idx] ** 2 - rpolar[idx] ** 2) / requatorial[idx] ** 2 
    165     idx = rpolar == requatorial 
    166     ee[idx] = 2 * rpolar[idx] 
    167     valid = (rpolar * requatorial != 0) 
    168     bd = 1.0 - ee[valid] 
    169     e1 = np.sqrt(ee[valid]) 
    170     b1 = 1.0 + np.arcsin(e1) / (e1 * np.sqrt(bd)) 
    171     bL = (1.0 + e1) / (1.0 - e1) 
    172     b2 = 1.0 + bd / 2 / e1 * np.log(bL) 
    173     delta = 0.75 * b1 * b2 
    174  
    175     ddd = np.zeros_like(rpolar) 
    176     ddd[valid] = 2.0 * (delta + 1.0) * rpolar * requatorial ** 2 
    177     return 0.5 * ddd ** (1.0 / 3.0) 
    178  
    179  
    180 demo = dict(scale=1, background=0, 
    181             sld=6, solvent_sld=1, 
    182             rpolar=50, requatorial=30, 
    183             theta=30, phi=15, 
    184             rpolar_pd=.2, rpolar_pd_n=15, 
    185             requatorial_pd=.2, requatorial_pd_n=15, 
    186             theta_pd=15, theta_pd_n=45, 
    187             phi_pd=15, phi_pd_n=1) 
    188 oldname = 'EllipsoidModel' 
    189 oldpars = dict(theta='axis_theta', phi='axis_phi', 
    190                sld='sldEll', solvent_sld='sldSolv', 
    191                rpolar='radius_a', requatorial='radius_b') 
  • _sources/model/fcc.txt

    rd1fe925 r68532f3  
    1 #fcc paracrystal model 
    2 #note model title and parameter table are automatically inserted 
    3 #note - calculation requires double precision 
    4 r""" 
     1.. _fcc-paracrystal: 
     2 
     3Fcc paracrystal 
     4======================================================= 
     5 
     6Face-centred cubic lattic with paracrystalline distortion 
     7 
     8=========== ================================== ============ ============= 
     9Parameter   Description                        Units        Default value 
     10=========== ================================== ============ ============= 
     11scale       Source intensity                   None                     1 
     12background  Source background                  |cm^-1|                  0 
     13dnn         Nearest neighbour distance         |Ang|                  220 
     14d_factor    Paracrystal distortion factor      None                  0.06 
     15radius      Particle radius                    |Ang|                   40 
     16sld         Particle scattering length density |1e-6Ang^-2|             4 
     17solvent_sld Solvent scattering length density  |1e-6Ang^-2|             1 
     18theta       In plane angle                     degree                  60 
     19phi         Out of plane angle                 degree                  60 
     20psi         Out of plane angle                 degree                  60 
     21=========== ================================== ============ ============= 
     22 
     23The returned value is scaled to units of |cm^-1|. 
     24 
     25 
    526Calculates the scattering from a **face-centered cubic lattice** with 
    627paracrystalline distortion. Thermal vibrations are considered to be 
     
    85106Hideki Matsuoka et. al. *Physical Review B*, 41 (1990) 3854 -3856 
    86107(Corrections to FCC and BCC lattice structure calculation) 
    87 """ 
    88108 
    89 from numpy import inf 
    90  
    91 name = "fcc_paracrystal" 
    92 title = "Face-centred cubic lattic with paracrystalline distortion" 
    93 description = """ 
    94     Calculates the scattering from a **face-centered cubic lattice** with paracrystalline distortion. Thermal vibrations 
    95     are considered to be negligible, and the size of the paracrystal is infinitely large. Paracrystalline distortion is 
    96     assumed to be isotropic and characterized by a Gaussian distribution. 
    97     """ 
    98 category = "shape:paracrystal" 
    99  
    100 #             ["name", "units", default, [lower, upper], "type","description"], 
    101 parameters = [["dnn", "Ang", 220, [-inf, inf], "", "Nearest neighbour distance"], 
    102               ["d_factor", "", 0.06, [-inf, inf], "", "Paracrystal distortion factor"], 
    103               ["radius", "Ang", 40, [0, inf], "volume", "Particle radius"], 
    104               ["sld", "1e-6/Ang^2", 4, [-inf, inf], "", "Particle scattering length density"], 
    105               ["solvent_sld", "1e-6/Ang^2", 1, [-inf, inf], "", "Solvent scattering length density"], 
    106               ["theta", "degrees", 60, [-inf, inf], "orientation", "In plane angle"], 
    107               ["phi", "degrees", 60, [-inf, inf], "orientation", "Out of plane angle"], 
    108               ["psi", "degrees", 60, [-inf, inf], "orientation", "Out of plane angle"] 
    109              ] 
    110  
    111 source = ["lib/J1.c", "lib/gauss150.c", "fcc.c"] 
    112  
    113 # parameters for demo 
    114 demo = dict(scale=1, background=0, 
    115             dnn=220, d_factor=0.06, sld=4, solvent_sld=1, 
    116             radius=40, 
    117             theta=60, phi=60, psi=60, 
    118             radius_pd=.2, radius_pd_n=0.2, 
    119             theta_pd=15, theta_pd_n=0, 
    120             phi_pd=15, phi_pd_n=0, 
    121             psi_pd=15, psi_pd_n=0, 
    122            ) 
    123  
    124 # For testing against the old sasview models, include the converted parameter 
    125 # names and the target sasview model name. 
    126 oldname = 'FCCrystalModel' 
    127 oldpars = dict(sld='sldSph', solvent_sld='sldSolv') 
  • _sources/model/lamellarCaille.txt

    rd1fe925 r68532f3  
    1 # Note: model title and parameter table are inserted automatically 
    2 r""" 
     1.. _lamellarPS: 
     2 
     3Lamellarps 
     4======================================================= 
     5 
     6Random lamellar sheet with Caille structure factor 
     7 
     8================ ================================= ============ ============= 
     9Parameter        Description                       Units        Default value 
     10================ ================================= ============ ============= 
     11scale            Source intensity                  None                     1 
     12background       Source background                 |cm^-1|                  0 
     13thickness        sheet thickness                   |Ang|                   30 
     14Nlayers          Number of layers                  None                    20 
     15spacing          d-spacing of Caille S(Q)          |Ang|                  400 
     16Caille_parameter Caille parameter                  |Ang^-2|               0.1 
     17sld              layer scattering length density   |1e-6Ang^-2|           6.3 
     18solvent_sld      Solvent scattering length density |1e-6Ang^-2|             1 
     19================ ================================= ============ ============= 
     20 
     21The returned value is scaled to units of |cm^-1|. 
     22 
     23 
    324This model provides the scattering intensity, $I(q) = P(q) S(q)$, for a 
    425lamellar phase where a random distribution in solution are assumed. 
     
    6990 
    7091also in J. Phys. Chem. B, 105, (2001) 11081-11088 
    71 """ 
    72 from numpy import inf 
    7392 
    74 name = "lamellarPS" 
    75 title = "Random lamellar sheet with Caille structure factor" 
    76 description = """\ 
    77         [Random lamellar phase with Caille  structure factor] 
    78         randomly oriented stacks of infinite sheets 
    79                 with Caille S(Q), having polydisperse spacing. 
    80         sld = sheet scattering length density 
    81                 sld_solvent = solvent scattering length density 
    82                 background = incoherent background 
    83                 scale = scale factor 
    84 """ 
    85 category = "shape:lamellae" 
    86  
    87 #             ["name", "units", default, [lower, upper], "type","description"], 
    88 parameters = [["thickness", "Ang",  30.0, [0, inf], "volume", "sheet thickness"], 
    89               ["Nlayers", "",  20, [0, inf], "", "Number of layers"], 
    90               ["spacing", "Ang", 400., [0.0,inf], "volume", "d-spacing of Caille S(Q)"], 
    91               ["Caille_parameter", "1/Ang^2", 0.1, [0.0,0.8], "", "Caille parameter"], 
    92               ["sld", "1e-6/Ang^2", 6.3, [-inf,inf], "", 
    93                "layer scattering length density"], 
    94               ["solvent_sld", "1e-6/Ang^2", 1.0, [-inf,inf], "", 
    95                "Solvent scattering length density"], 
    96              ] 
    97  
    98 source = ["lamellarCaille_kernel.c"] 
    99  
    100 # No volume normalization despite having a volume parameter 
    101 # This should perhaps be volume normalized? 
    102 form_volume = """ 
    103     return 1.0; 
    104     """ 
    105  
    106 Iqxy = """ 
    107     return Iq(sqrt(qx*qx+qy*qy), IQ_PARAMETERS); 
    108     """ 
    109  
    110 # ER defaults to 0.0 
    111 # VR defaults to 1.0 
    112  
    113 demo = dict(scale=1, background=0, 
    114             thickness=67.,Nlayers=3.75,spacing=200., 
    115             Caille_parameter=0.268,sld=1.0, solvent_sld=6.34, 
    116             thickness_pd= 0.1, thickness_pd_n=100, 
    117             spacing_pd= 0.05, spacing_pd_n=40) 
    118  
    119 oldname = 'LamellarPSModel' 
    120 oldpars = dict(thickness='delta', Nlayers='N_plates', Caille_parameter='caille', 
    121                sld='sld_bi',solvent_sld='sld_sol') 
  • _sources/model/lamellarPC.txt

    rd1fe925 r68532f3  
    1 # Note: model title and parameter table are inserted automatically 
    2 r""" 
     1.. _lamellarPC: 
     2 
     3Lamellarpc 
     4======================================================= 
     5 
     6Random lamellar sheet with paracrystal structure factor 
     7 
     8================ ================================= ============ ============= 
     9Parameter        Description                       Units        Default value 
     10================ ================================= ============ ============= 
     11scale            Source intensity                  None                     1 
     12background       Source background                 |cm^-1|                  0 
     13thickness        sheet thickness                   |Ang|                   33 
     14Nlayers          Number of layers                  None                    20 
     15spacing          d-spacing of paracrystal stack    |Ang|                  250 
     16spacing_polydisp d-spacing of paracrystal stack    |Ang|                    0 
     17sld              layer scattering length density   |1e-6Ang^-2|             1 
     18solvent_sld      Solvent scattering length density |1e-6Ang^-2|          6.34 
     19================ ================================= ============ ============= 
     20 
     21The returned value is scaled to units of |cm^-1|. 
     22 
     23 
    324This model calculates the scattering from a stack of repeating lamellar 
    425structures. The stacks of lamellae (infinite in lateral dimension) are 
     
    6586*J. Phys. Chem. B*, 103 (1999) 9888-9897 
    6687 
    67 """ 
    6888 
    69 from numpy import inf 
    70  
    71 name = "lamellarPC" 
    72 title = "Random lamellar sheet with paracrystal structure factor" 
    73 description = """\ 
    74     [Random lamellar phase with paracrystal structure factor] 
    75         randomly oriented stacks of infinite sheets 
    76         with paracrytal S(Q), having polydisperse spacing. 
    77         sld = sheet scattering length density 
    78         sld_solvent = solvent scattering length density 
    79         background = incoherent background 
    80         scale = scale factor 
    81 """ 
    82 category = "shape:lamellae" 
    83  
    84 #             ["name", "units", default, [lower, upper], "type","description"], 
    85 parameters = [["thickness", "Ang", 33.0, [0, inf], "volume", 
    86                "sheet thickness"], 
    87               ["Nlayers", "", 20, [0, inf], "", 
    88                "Number of layers"], 
    89               ["spacing", "Ang", 250., [0.0, inf], "", 
    90                "d-spacing of paracrystal stack"], 
    91               ["spacing_polydisp", "Ang", 0.0, [0.0, inf], "", 
    92                "d-spacing of paracrystal stack"], 
    93               ["sld", "1e-6/Ang^2", 1.0, [-inf, inf], "", 
    94                "layer scattering length density"], 
    95               ["solvent_sld", "1e-6/Ang^2", 6.34, [-inf, inf], "", 
    96                "Solvent scattering length density"], 
    97              ] 
    98  
    99  
    100 source = ["lamellarPC_kernel.c"] 
    101  
    102 form_volume = """ 
    103     return 1.0; 
    104     """ 
    105  
    106 Iqxy = """ 
    107     return Iq(sqrt(qx*qx+qy*qy), IQ_PARAMETERS); 
    108     """ 
    109  
    110 # ER defaults to 0.0 
    111 # VR defaults to 1.0 
    112  
    113 demo = dict(scale=1, background=0, 
    114             thickness=33, Nlayers=20, spacing=250, spacing_polydisp=0.2, 
    115             sld=1.0, solvent_sld=6.34, 
    116             thickness_pd=0.2, thickness_pd_n=40) 
    117  
    118 oldname = 'LamellarPCrystalModel' 
    119 oldpars = dict(spacing_polydisp='pd_spacing', sld='sld_layer', 
    120                solvent_sld='sld_solvent') 
  • _sources/model/parallelepiped.txt

    rd1fe925 r68532f3  
    1 # parallelepiped model 
    2 # Note: model title and parameter table are inserted automatically 
    3 r""" 
     1.. _parallelepiped: 
     2 
     3Parallelepiped 
     4======================================================= 
     5 
     6Rectangular parallelepiped with uniform scattering length density. 
     7 
     8=========== ==================================================== ============ ============= 
     9Parameter   Description                                          Units        Default value 
     10=========== ==================================================== ============ ============= 
     11scale       Source intensity                                     None                     1 
     12background  Source background                                    |cm^-1|                  0 
     13sld         Parallelepiped scattering length density             |1e-6Ang^-2|             4 
     14solvent_sld Solvent scattering length density                    |1e-6Ang^-2|             1 
     15a_side      Shorter side of the parallelepiped                   |Ang|                   35 
     16b_side      Second side of the parallelepiped                    |Ang|                   75 
     17c_side      Larger side of the parallelepiped                    |Ang|                  400 
     18theta       In plane angle                                       degree                  60 
     19phi         Out of plane angle                                   degree                  60 
     20psi         Rotation angle around its own c axis against q plane degree                  60 
     21=========== ==================================================== ============ ============= 
     22 
     23The returned value is scaled to units of |cm^-1|. 
     24 
     25 
    426The form factor is normalized by the particle volume. 
    527 
     
    99121provided by the NIST Center for Neutron Research (Kline, 2006). 
    100122 
    101 """ 
    102123 
    103 from numpy import pi, inf, sqrt 
    104  
    105 name = "parallelepiped" 
    106 title = "Rectangular parallelepiped with uniform scattering length density." 
    107 description = """ 
    108      P(q)= scale/V*integral from 0 to 1 of ... 
    109            phi(mu*sqrt(1-sigma^2),a) * S(mu*c*sigma/2)^2 * dsigma 
    110  
    111             phi(mu,a) = integral from 0 to 1 of .. 
    112         (S((mu/2)*cos(pi*u/2))*S((mu*a/2)*sin(pi*u/2)))^2 * du 
    113             S(x) = sin(x)/x 
    114         mu = q*B 
    115 """ 
    116 category = "shape:parallelpiped" 
    117  
    118 #             ["name", "units", default, [lower, upper], "type","description"], 
    119 parameters = [["sld", "1e-6/Ang^2", 4, [-inf, inf], "", 
    120                "Parallelepiped scattering length density"], 
    121               ["solvent_sld", "1e-6/Ang^2", 1, [-inf, inf], "", 
    122                "Solvent scattering length density"], 
    123               ["a_side", "Ang", 35, [0, inf], "volume", 
    124                "Shorter side of the parallelepiped"], 
    125               ["b_side", "Ang", 75, [0, inf], "volume", 
    126                "Second side of the parallelepiped"], 
    127               ["c_side", "Ang", 400, [0, inf], "volume", 
    128                "Larger side of the parallelepiped"], 
    129               ["theta", "degrees", 60, [-inf, inf], "orientation", 
    130                "In plane angle"], 
    131               ["phi", "degrees", 60, [-inf, inf], "orientation", 
    132                "Out of plane angle"], 
    133               ["psi", "degrees", 60, [-inf, inf], "orientation", 
    134                "Rotation angle around its own c axis against q plane"], 
    135              ] 
    136  
    137 source = ["lib/J1.c", "lib/gauss76.c", "parallelepiped.c"] 
    138  
    139 def ER(a_side, b_side, c_side): 
    140  
    141     # surface average radius (rough approximation) 
    142     surf_rad = sqrt(a_side * b_side / pi) 
    143  
    144     # DiamCyl recoded here (to check and possibly put in a library?) 
    145     a = surf_rad 
    146     b = 0.5 * c_side 
    147     t1 = a * a * b 
    148     t2 = 1.0 + (b / a) * (1.0 + a / b / 2.0) * (1.0 + pi * a / b / 2.0) 
    149     ddd = 3.0 * t1 * t2 
    150  
    151     return 0.5 * (ddd) ** (1. / 3.) 
    152  
    153 # parameters for demo 
    154 demo = dict(scale=1, background=0, 
    155             sld=6.3e-6, solvent_sld=1.0e-6, 
    156             a_side=35, b_side=75, c_side=400, 
    157             theta=45, phi=30, psi=15, 
    158             a_side_pd=0.1, a_side_pd_n=10, 
    159             b_side_pd=0.1, b_side_pd_n=1, 
    160             c_side_pd=0.1, c_side_pd_n=10, 
    161             theta_pd=10, theta_pd_n=1, 
    162             phi_pd=10, phi_pd_n=1, 
    163             psi_pd=10, psi_pd_n=10) 
    164  
    165 # For testing against the old sasview models, include the converted parameter 
    166 # names and the target sasview model name. 
    167 oldname = 'ParallelepipedModel' 
    168 oldpars = dict(theta='parallel_theta', phi='parallel_phi', psi='parallel_psi', 
    169                a_side='short_a', b_side='short_b', c_side='long_c', 
    170                sld='sldPipe', solvent_sld='sldSolv') 
    171  
  • _sources/model/sphere.txt

    rd1fe925 r68532f3  
    1 r""" 
     1.. _sphere: 
     2 
     3Sphere 
     4======================================================= 
     5 
     6Spheres with uniform scattering length density 
     7 
     8=========== ================================= ============ ============= 
     9Parameter   Description                       Units        Default value 
     10=========== ================================= ============ ============= 
     11scale       Source intensity                  None                     1 
     12background  Source background                 |cm^-1|                  0 
     13sld         Layer scattering length density   |1e-6Ang^-2|             1 
     14solvent_sld Solvent scattering length density |1e-6Ang^-2|             6 
     15radius      Sphere radius                     |Ang|                   50 
     16=========== ================================= ============ ============= 
     17 
     18The returned value is scaled to units of |cm^-1|. 
     19 
     20 
    221For information about polarised and magnetic scattering, click here_. 
    322 
     
    5675 
    5776*2013/09/09 and 2014/01/06 - Description reviewed by S King and P Parker.* 
    58 """ 
    5977 
    60 from numpy import inf 
    61  
    62 name = "sphere" 
    63 title = "Spheres with uniform scattering length density" 
    64 description = """\ 
    65 P(q)=(scale/V)*[3V(sld-solvent_sld)*(sin(qR)-qRcos(qR)) 
    66                 /(qR)^3]^2 + background 
    67     R: radius of sphere 
    68     V: The volume of the scatter 
    69     sld: the SLD of the sphere 
    70     solvent_sld: the SLD of the solvent 
    71 """ 
    72 category = "shape:sphere" 
    73  
    74 #             ["name", "units", default, [lower, upper], "type","description"], 
    75 parameters = [["sld", "1e-6/Ang^2", 1, [-inf, inf], "", 
    76                "Layer scattering length density"], 
    77               ["solvent_sld", "1e-6/Ang^2", 6, [-inf, inf], "", 
    78                "Solvent scattering length density"], 
    79               ["radius", "Ang", 50, [0, inf], "volume", 
    80                "Sphere radius"], 
    81              ] 
    82  
    83  
    84 # No volume normalization despite having a volume parameter 
    85 # This should perhaps be volume normalized? 
    86 form_volume = """ 
    87     return 1.333333333333333*M_PI*radius*radius*radius; 
    88     """ 
    89  
    90 Iq = """ 
    91     const double qr = q*radius; 
    92     double sn, cn; 
    93     SINCOS(qr, sn, cn); 
    94     const double bes = qr==0.0 ? 1.0 : 3.0*(sn-qr*cn)/(qr*qr*qr); 
    95     const double fq = bes * (sld - solvent_sld) * form_volume(radius); 
    96     return 1.0e-4*fq*fq; 
    97     """ 
    98  
    99  
    100 Iqxy = """ 
    101     // never called since no orientation or magnetic parameters. 
    102     //return -1.0; 
    103     return Iq(sqrt(qx*qx + qy*qy), sld, solvent_sld, radius); 
    104     """ 
    105  
    106 def ER(radius): 
    107     return radius 
    108  
    109 # VR defaults to 1.0 
    110  
    111 demo = dict(scale=1, background=0, 
    112             sld=6, solvent_sld=1, 
    113             radius=120, 
    114             radius_pd=.2, radius_pd_n=45) 
    115 oldname = "SphereModel" 
    116 oldpars = dict(sld='sldSph', solvent_sld='sldSolv', radius='radius') 
  • _sources/model/triaxial_ellipsoid.txt

    rd1fe925 r68532f3  
    1 # triaxial ellipsoid model 
    2 # Note: model title and parameter table are inserted automatically 
    3 r""" 
     1.. _triaxial-ellipsoid: 
     2 
     3Triaxial ellipsoid 
     4======================================================= 
     5 
     6Ellipsoid of uniform scattering length density with three independent axes. 
     7 
     8=========== =================================== ============ ============= 
     9Parameter   Description                         Units        Default value 
     10=========== =================================== ============ ============= 
     11scale       Source intensity                    None                     1 
     12background  Source background                   |cm^-1|                  0 
     13sld         Ellipsoid scattering length density |1e-6Ang^-2|             4 
     14solvent_sld Solvent scattering length density   |1e-6Ang^-2|             1 
     15req_minor   Minor equitorial radius             |Ang|                   20 
     16req_major   Major equatorial radius             |Ang|                  400 
     17rpolar      Polar radius                        |Ang|                   10 
     18theta       In plane angle                      degree                  60 
     19phi         Out of plane angle                  degree                  60 
     20psi         Out of plane angle                  degree                  60 
     21=========== =================================== ============ ============= 
     22 
     23The returned value is scaled to units of |cm^-1|. 
     24 
     25 
    426All three axes are of different lengths with $R_a \le R_b <= R_c$ 
    527**Users should maintain this inequality for all calculations**. 
     
    88110L A Feigin and D I Svergun, *Structure Analysis by Small-Angle X-Ray and Neutron Scattering*, Plenum, 
    89111New York, 1987. 
    90 """ 
    91112 
    92 from numpy import inf 
    93  
    94 name = "triaxial_ellipsoid" 
    95 title = "Ellipsoid of uniform scattering length density with three independent axes." 
    96  
    97 description = """\ 
    98 Note: During fitting ensure that the inequality ra<rb<rc is not 
    99         violated. Otherwise the calculation will 
    100         not be correct. 
    101 """ 
    102 category = "shape:ellipsoid" 
    103  
    104 #             ["name", "units", default, [lower, upper], "type","description"], 
    105 parameters = [["sld", "1e-6/Ang^2", 4, [-inf, inf], "", 
    106                "Ellipsoid scattering length density"], 
    107               ["solvent_sld", "1e-6/Ang^2", 1, [-inf, inf], "", 
    108                "Solvent scattering length density"], 
    109               ["req_minor", "Ang", 20, [0, inf], "volume", 
    110                "Minor equitorial radius"], 
    111               ["req_major", "Ang", 400, [0, inf], "volume", 
    112                "Major equatorial radius"], 
    113               ["rpolar", "Ang", 10, [0, inf], "volume", 
    114                "Polar radius"], 
    115               ["theta", "degrees", 60, [-inf, inf], "orientation", 
    116                "In plane angle"], 
    117               ["phi", "degrees", 60, [-inf, inf], "orientation", 
    118                "Out of plane angle"], 
    119               ["psi", "degrees", 60, [-inf, inf], "orientation", 
    120                "Out of plane angle"], 
    121              ] 
    122  
    123 source = ["lib/J1.c", "lib/gauss76.c", "triaxial_ellipsoid.c"] 
    124  
    125 def ER(req_minor, req_major, rpolar): 
    126     import numpy as np 
    127     from .ellipsoid import ER as ellipsoid_ER 
    128     return ellipsoid_ER(rpolar, np.sqrt(req_minor * req_major)) 
    129  
    130 demo = dict(scale=1, background=0, 
    131             sld=6, solvent_sld=1, 
    132             theta=30, phi=15, psi=5, 
    133             req_minor=25, req_major=36, rpolar=50, 
    134             req_minor_pd=0, req_minor_pd_n=1, 
    135             req_major_pd=0, req_major_pd_n=1, 
    136             rpolar_pd=.2, rpolar_pd_n=30, 
    137             theta_pd=15, theta_pd_n=45, 
    138             phi_pd=15, phi_pd_n=1, 
    139             psi_pd=15, psi_pd_n=1) 
    140 oldname = 'TriaxialEllipsoidModel' 
    141 oldpars = dict(theta='axis_theta', phi='axis_phi', psi='axis_psi', 
    142                sld='sldEll', solvent_sld='sldSolv', 
    143                req_minor='semi_axisA', req_major='semi_axisB', 
    144                rpolar='semi_axisC') 
Note: See TracChangeset for help on using the changeset viewer.