Changes in / [4cdc4b1:c9fc873] in sasmodels


Ignore:
Files:
3 edited

Legend:

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

    rd712a0f r29afc50  
    2020  P(q) = \text{scale} \langle F^* F \rangle / V + \text{background} 
    2121 
    22 where $F$ is the scattering amplitude and $\langle\cdot\rangle$ denotes an  
    23 average over the size distribution $f(x; \bar x, \sigma)$, giving 
    24  
    25 .. math:: 
    26  
    27   P(q) = \frac{\text{scale}}{V} \int_\mathbb{R}  
    28   f(x; \bar x, \sigma) F^2(q, x)\, dx + \text{background} 
     22where $F$ is the scattering amplitude and $\langle\cdot\rangle$ denotes an 
     23average over the size distribution. 
    2924 
    3025Each distribution is characterized by a center value $\bar x$ or 
     
    4641with larger values of $N_\sigma$ required for heavier tailed distributions. 
    4742The scattering in general falls rapidly with $qr$ so the usual assumption 
    48 that $f(r - 3\sigma_r)$ is tiny and therefore $f(r - 3\sigma_r)f(r - 3\sigma_r)$ 
     43that $G(r - 3\sigma_r)$ is tiny and therefore $f(r - 3\sigma_r)G(r - 3\sigma_r)$ 
    4944will not contribute much to the average may not hold when particles are large. 
    5045This, too, will require increasing $N_\sigma$. 
     
    6863 
    6964Additional distributions are under consideration. 
    70  
    71 .. note:: In 2009 IUPAC decided to introduce the new term 'dispersity' to replace  
    72            the term 'polydispersity' (see `Pure Appl. Chem., (2009), 81(2),  
    73            351-353 <http://media.iupac.org/publications/pac/2009/pdf/8102x0351.pdf>`_  
    74            in order to make the terminology describing distributions of properties  
    75            unambiguous. Throughout the SasView documentation we continue to use the  
    76            term polydispersity because one of the consequences of the IUPAC change is  
    77            that orientational polydispersity would not meet their new criteria (which  
    78            requires dispersity to be dimensionless). 
    7965 
    8066Suggested Applications 
  • sasmodels/compare.py

    r1e7b202a r65fbf7c  
    107107    -title="note" adds note to the plot title, after the model name 
    108108    -weights shows weights plots for the polydisperse parameters 
    109     -profile shows the sld profile if the model has a plottable sld profile 
    110109 
    111110    === output options === 
     
    776775            dim = base._kernel.dim 
    777776            plot_weights(model_info, get_mesh(model_info, base_pars, dim=dim)) 
    778         if opts['show_profile']: 
    779             import pylab 
    780             base, comp = opts['engines'] 
    781             base_pars, comp_pars = opts['pars'] 
    782             have_base = base._kernel.info.profile is not None 
    783             have_comp = ( 
    784                 comp is not None 
    785                 and comp._kernel.info.profile is not None 
    786                 and base_pars != comp_pars 
    787             ) 
    788             if have_base or have_comp: 
    789                 pylab.figure() 
    790             if have_base: 
    791                 plot_profile(base._kernel.info, **base_pars) 
    792             if have_comp: 
    793                 plot_profile(comp._kernel.info, label='comp', **comp_pars) 
    794                 pylab.legend() 
    795777    if opts['plot']: 
    796778        import matplotlib.pyplot as plt 
    797779        plt.show() 
    798780    return limits 
    799  
    800 def plot_profile(model_info, label='base', **args): 
    801     # type: (ModelInfo, List[Tuple[float, np.ndarray, np.ndarray]]) -> None 
    802     """ 
    803     Plot the profile returned by the model profile method. 
    804  
    805     *model_info* defines model parameters, etc. 
    806  
    807     *mesh* is a list of tuples containing (*value*, *dispersity*, *weights*) 
    808     for each parameter, where (*dispersity*, *weights*) pairs are the 
    809     distributions to be plotted. 
    810     """ 
    811     import pylab 
    812  
    813     args = dict((k, v) for k, v in args.items() 
    814                 if "_pd" not in k 
    815                    and ":" not in k 
    816                    and k not in ("background", "scale", "theta", "phi", "psi")) 
    817     args = args.copy() 
    818  
    819     args.pop('scale', 1.) 
    820     args.pop('background', 0.) 
    821     z, rho = model_info.profile(**args) 
    822     #pylab.interactive(True) 
    823     pylab.plot(z, rho, '-', label=label) 
    824     pylab.grid(True) 
    825     #pylab.show() 
    826  
    827  
    828781 
    829782def run_models(opts, verbose=False): 
     
    996949OPTIONS = [ 
    997950    # Plotting 
    998     'plot', 'noplot', 
    999     'weights', 'profile', 
     951    'plot', 'noplot', 'weights', 
    1000952    'linear', 'log', 'q4', 
    1001953    'rel', 'abs', 
     
    11511103        'count'     : '1', 
    11521104        'show_weights' : False, 
    1153         'show_profile' : False, 
    11541105        'sphere'    : 0, 
    11551106        'ngauss'    : '0', 
     
    12121163        elif arg == '-default': opts['use_demo'] = False 
    12131164        elif arg == '-weights': opts['show_weights'] = True 
    1214         elif arg == '-profile': opts['show_profile'] = True 
    12151165        elif arg == '-html':    opts['html'] = True 
    12161166        elif arg == '-help':    opts['html'] = True 
  • sasmodels/models/core_shell_sphere.py

    rdc76240 r2d81cfe  
    2121.. math:: 
    2222 
    23     F(q) = \frac{3}{V_s}\left[ 
     23    F^2(q) = \frac{3}{V_s}\left[ 
    2424       V_c(\rho_c-\rho_s)\frac{\sin(qr_c)-qr_c\cos(qr_c)}{(qr_c)^3} + 
    2525       V_s(\rho_s-\rho_\text{solv})\frac{\sin(qr_s)-qr_s\cos(qr_s)}{(qr_s)^3} 
Note: See TracChangeset for help on using the changeset viewer.