Changes in / [4c08e69:791281c] in sasmodels


Ignore:
Files:
2 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • doc/guide/pd/polydispersity.rst

    r22279a4 reda8b30  
    4242calculations are generally more robust with more data points or more angles. 
    4343 
    44 The following distribution functions are provided: 
     44The following five distribution functions are provided: 
    4545 
    4646*  *Rectangular Distribution* 
    47 *  *Uniform Distribution* 
    4847*  *Gaussian Distribution* 
    4948*  *Lognormal Distribution* 
    5049*  *Schulz Distribution* 
    5150*  *Array Distribution* 
    52 *  *Boltzmann Distribution* 
    5351 
    5452These are all implemented as *number-average* distributions. 
     
    8785    Rectangular distribution. 
    8886 
    89 Uniform Distribution 
    90 ^^^^^^^^^^^^^^^^^^^^^^^^ 
    91  
    92 The Uniform Distribution is defined as 
    93  
    94     .. math:: 
    95  
    96         f(x) = \frac{1}{\text{Norm}} 
    97         \begin{cases} 
    98           1 & \text{for } |x - \bar x| \leq \sigma \\ 
    99           0 & \text{for } |x - \bar x| > \sigma 
    100         \end{cases} 
    101  
    102     where $\bar x$ is the mean of the distribution, $\sigma$ is the half-width, and 
    103     *Norm* is a normalization factor which is determined during the numerical 
    104     calculation. 
    105  
    106     Note that the polydispersity is given by 
    107  
    108     .. math:: \text{PD} = \sigma / \bar x 
    109  
    110     .. figure:: pd_uniform.jpg 
    111  
    112         Uniform distribution. 
    113  
    11487.. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 
    11588 
     
    210183^^^^^^^^^^^^^^^^^^ 
    211184 
    212 This user-definable distribution should be given as a simple ASCII text 
     185This user-definable distribution should be given as as a simple ASCII text 
    213186file where the array is defined by two columns of numbers: $x$ and $f(x)$. 
    214187The $f(x)$ will be normalized to 1 during the computation. 
     
    229202given for the model will have no affect, and will be ignored when computing 
    230203the average.  This means that any parameter with an array distribution will 
    231 not be fitable. 
    232  
    233 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 
    234  
    235 Boltzmann Distribution 
    236 ^^^^^^^^^^^^^^^^^^^^^^ 
    237  
    238 The Boltzmann Distribution is defined as 
    239  
    240 .. math:: 
    241  
    242     f(x) = \frac{1}{\text{Norm}} 
    243            \exp\left(-\frac{ | x - \bar x | }{\sigma}\right) 
    244  
    245 where $\bar x$ is the mean of the distribution and *Norm* is a normalization 
    246 factor which is determined during the numerical calculation. 
    247 The width is defined as 
    248  
    249 .. math:: \sigma=\frac{k T}{E} 
    250  
    251 which is the inverse Boltzmann factor, 
    252 where $k$ is the Boltzmann constant, $T$ the temperature in Kelvin and $E$ a 
    253 characteristic energy per particle. 
    254  
    255 .. figure:: pd_boltzmann.jpg 
    256  
    257     Boltzmann distribution. 
     204not be fittable. 
    258205 
    259206.. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 
  • sasmodels/weights.py

    r34bbb9c r2d81cfe  
    9797        return x, px 
    9898 
    99 class UniformDispersion(Dispersion): 
    100     r""" 
    101     Uniform dispersion, with width $\sigma$. 
    102  
    103     .. math:: 
    104  
    105         w = 1 
    106     """ 
    107     type = "uniform" 
    108     default = dict(npts=35, width=0, nsigmas=1) 
    109     def _weights(self, center, sigma, lb, ub): 
    110         x = self._linspace(center, sigma, lb, ub) 
    111         x = x[np.fabs(x-center) <= np.fabs(sigma)] 
    112         return x, np.ones_like(x) 
    11399 
    114100class RectangleDispersion(Dispersion): 
     
    204190        return x, px 
    205191 
    206 class BoltzmannDispersion(Dispersion): 
    207     r""" 
    208     Boltzmann dispersion, with $\sigma=k T/E$. 
    209  
    210     .. math:: 
    211  
    212         w = \exp\left( -|x - c|/\sigma\right) 
    213     """ 
    214     type = "boltzmann" 
    215     default = dict(npts=35, width=0, nsigmas=3) 
    216     def _weights(self, center, sigma, lb, ub): 
    217         x = self._linspace(center, sigma, lb, ub) 
    218         px = np.exp(-np.abs(x-center) / np.abs(sigma)) 
    219         return x, px 
    220192 
    221193# dispersion name -> disperser lookup table. 
     
    224196MODELS = OrderedDict((d.type, d) for d in ( 
    225197    RectangleDispersion, 
    226     UniformDispersion, 
    227198    ArrayDispersion, 
    228199    LogNormalDispersion, 
    229200    GaussianDispersion, 
    230201    SchulzDispersion, 
    231     BoltzmannDispersion 
    232202)) 
    233203 
Note: See TracChangeset for help on using the changeset viewer.