Changes in / [e4d8726:97e6d3c] in sasmodels


Ignore:
Files:
2 added
31 deleted
28 edited

Legend:

Unmodified
Added
Removed
  • .gitignore

    r4a82d4d r66ebdd6  
    11/build/ 
    22/dist/ 
    3 /logs/ 
    43/*.csv 
    54*.pyc 
     
    1716/.project 
    1817/.pydevproject 
    19 /.idea 
    20 /sasmodels.egg-info/ 
  • doc/_extensions/dollarmath.py

    r103ea45 r19dcb933  
    1212import re 
    1313 
    14 _dollar = re.compile(r"(?:^|(?<=\s|[(]))[$]([^\n]*?)(?<![\\])[$](?:$|(?=\s|[.,;)\\]))") 
     14_dollar = re.compile(r"(?:^|(?<=\s))[$]([^\n]*?)(?<![\\])[$](?:$|(?=\s|[.,;\\]))") 
    1515_notdollar = re.compile(r"\\[$]") 
    1616 
     
    5151    assert replace_dollar(u"dollar\$ escape")==u"dollar$ escape" 
    5252    assert replace_dollar(u"dollar \$escape\$ too")==u"dollar $escape$ too" 
    53     assert replace_dollar(u"spaces $in the$ math")==u"spaces :math:`in the` math" 
    5453    assert replace_dollar(u"emb\ $ed$\ ed")==u"emb\ :math:`ed`\ ed" 
    5554    assert replace_dollar(u"$first$a")==u"$first$a" 
    5655    assert replace_dollar(u"a$last$")==u"a$last$" 
    57     assert replace_dollar(u"$37")==u"$37" 
    58     assert replace_dollar(u"($37)")==u"($37)" 
    59     assert replace_dollar(u"$37 - $43")==u"$37 - $43" 
    60     assert replace_dollar(u"($37, $38)")==u"($37, $38)" 
    6156    assert replace_dollar(u"a $mid$dle a")==u"a $mid$dle a" 
    62     assert replace_dollar(u"a ($in parens$) a")==u"a (:math:`in parens`) a" 
    63     assert replace_dollar(u"a (again $in parens$) a")==u"a (again :math:`in parens`) a" 
    6457 
    6558if __name__ == "__main__": 
  • doc/rst_prolog

    r0a4628d r19dcb933  
    6060.. |g/cm^3| replace:: g\ |cdot|\ cm\ :sup:`-3` 
    6161.. |fm^2| replace:: fm\ :sup:`2` 
    62 .. |Ang*cm^-1| replace:: |Ang|\ |cdot|\ cm\ :sup:`-1` 
  • multi_compare.sh

    r0a4628d r5753e4e  
    1 #!/bin/bash 
     1#!/bin/sh 
    22 
    33sasview=( ../sasview/build/lib.* ) 
  • sasmodels/convert.py

    r34d6cab r3964f92  
    1010    'broad_peak', 
    1111    'two_lorentzian', 
    12     "two_power_law", 
    1312    'gel_fit', 
    1413    'gauss_lorentz_gel', 
     
    152151        pars['string_thickness_pd_n'] = 0 
    153152        pars['number_of_pearls_pd_n'] = 0 
    154     elif name == 'line': 
    155         pars['scale'] = 1 
    156         pars['background'] = 0 
    157153    elif name == 'rpa': 
    158154        pars['case_num'] = int(pars['case_num']) 
  • sasmodels/generate.py

    rfa8011eb reafc9fa  
    191191The function :func:`make` loads the metadata from the module and returns 
    192192the kernel source.  The function :func:`doc` extracts the doc string 
    193 and adds the parameter table to the top.  The function :func:`model_sources` 
     193and adds the parameter table to the top.  The function :func:`sources` 
    194194returns a list of files required by the model. 
    195195""" 
     
    206206import numpy as np 
    207207 
    208 #__all__ = ["make", "doc", "model_sources", "convert_type"] 
     208__all__ = ["make", "doc", "sources", "convert_type"] 
    209209 
    210210C_KERNEL_TEMPLATE_PATH = joinpath(dirname(__file__), 'kernel_template.c') 
     
    233233    "degrees": "degree", 
    234234    "1/cm": "|cm^-1|", 
    235     "Ang/cm": "|Ang*cm^-1|", 
    236235    "": "None", 
    237236    } 
  • sasmodels/kernel_template.c

    r960cd80 r840b859  
    1212#ifndef USE_OPENCL 
    1313#  ifdef __cplusplus 
    14       #include <cstdio> 
    15       #include <cmath> 
    16       using namespace std; 
    17       #if defined(_MSC_VER) 
     14     #include <cstdio> 
     15     #include <cmath> 
     16     using namespace std; 
     17     #if defined(_MSC_VER) 
    1818         #include <limits> 
    1919         #include <float.h> 
    2020         #define kernel extern "C" __declspec( dllexport ) 
    2121         inline double trunc(double x) { return x>=0?floor(x):-floor(-x); } 
    22          inline double fmin(double x, double y) { return x>y ? y : x; } 
    23          inline double fmax(double x, double y) { return x<y ? y : x; } 
    24          inline double isnan(double x) { return _isnan(x); } 
    25          #define NAN (std::numeric_limits<double>::quiet_NaN()) // non-signalling NaN 
    26          static double cephes_expm1(double x) { 
    27             // Adapted from the cephes math library. 
    28             // Copyright 1984 - 1992 by Stephen L. Moshier 
    29             if (x != x || x == 0.0) { 
    30                return x; // NaN and +/- 0 
    31             } else if (x < -0.5 || x > 0.5) { 
    32                return exp(x) - 1.0; 
    33             } else { 
    34                const double xsq = x*x; 
    35                const double p = ((( 
    36                   +1.2617719307481059087798E-4)*xsq 
    37                   +3.0299440770744196129956E-2)*xsq 
    38                   +9.9999999999999999991025E-1); 
    39                const double q = (((( 
    40                   +3.0019850513866445504159E-6)*xsq 
    41                   +2.5244834034968410419224E-3)*xsq 
    42                   +2.2726554820815502876593E-1)*xsq 
    43                   +2.0000000000000000000897E0); 
    44                double r = x * p; 
    45                r =  r / (q - r); 
    46                return r+r; 
    47              } 
    48          } 
    49          #define expm1 cephes_expm1 
     22             inline double fmin(double x, double y) { return x>y ? y : x; } 
     23             inline double fmax(double x, double y) { return x<y ? y : x; } 
     24             inline double isnan(double x) { return _isnan(x); } 
     25             #define NAN (std::numeric_limits<double>::quiet_NaN()) // non-signalling NaN 
     26             static double cephes_expm1(double x) { 
     27                 // Adapted from the cephes math library. 
     28                 // Copyright 1984 - 1992 by Stephen L. Moshier 
     29                 if (x != x || x == 0.0) { 
     30                     return x; // NaN and +/- 0 
     31                 } else if (x < -0.5 || x > 0.5) { 
     32                     return exp(x) - 1.0; 
     33                 } else { 
     34                     const double xsq = x*x; 
     35                     const double p = ((( 
     36                          +1.2617719307481059087798E-4)*xsq 
     37                      +3.0299440770744196129956E-2)*xsq 
     38                      +9.9999999999999999991025E-1); 
     39                 const double q = (((( 
     40                      +3.0019850513866445504159E-6)*xsq 
     41                      +2.5244834034968410419224E-3)*xsq 
     42                      +2.2726554820815502876593E-1)*xsq 
     43                      +2.0000000000000000000897E0); 
     44                 double r = x * p; 
     45                     r =  r / (q - r); 
     46                     return r+r; 
     47                 } 
     48             } 
     49             #define expm1 cephes_expm1 
    5050     #else 
    5151         #define kernel extern "C" 
     
    260260        const double vol_weight = VOLUME_WEIGHT_PRODUCT; 
    261261        vol += vol_weight*form_volume(VOLUME_PARAMETERS); 
     262      #endif 
    262263        norm_vol += vol_weight; 
    263       #endif 
    264264      } 
    265265      //else { printf("exclude qx,qy,I:%%g,%%g,%%g\n",qi,scattering); } 
  • sasmodels/models/be_polyelectrolyte.py

    r0e86967 r168052c  
    127127    :return:     2D-Intensity 
    128128    """ 
    129     intensity = Iq(sqrt(qx**2 + qy**2), *args) 
    130     return intensity 
     129    iq = Iq(sqrt(qx**2 + qy**2), *args) 
     130    return iq 
    131131 
    132132Iqxy.vectorized = True  # Iqxy accepts an array of qx, qy values 
  • sasmodels/models/core_shell_bicelle.py

    rfa8011eb r8007311  
    77The form factor is normalized by the particle volume. 
    88 
    9 .. _core-shell-bicelle-geometry: 
     9.. _core-shell-cylinder-geometry: 
    1010 
    1111.. figure:: img/core_shell_bicelle_geometry.png 
  • sasmodels/models/core_shell_cylinder.py

    rf0aa7f8 reb69cce  
    155155 
    156156def ER(radius, thickness, length): 
    157     """ 
    158         Returns the effective radius used in the S*P calculation 
    159     """ 
    160157    radius = radius + thickness 
    161158    length = length + 2 * thickness 
     
    164161 
    165162def VR(radius, thickness, length): 
    166     """ 
    167         Returns volume ratio 
    168     """ 
    169163    whole = pi * (radius + thickness) ** 2 * (length + 2 * thickness) 
    170164    core = pi * radius ** 2 * length 
  • sasmodels/models/correlation_length.py

    r3e6c5c1 r5054e80  
    7878# names and the target sasview model name. 
    7979oldname = 'CorrLengthModel' 
     80# pylint: disable=bad-continuation 
     81oldpars = dict( 
     82               lorentz_scale='scale_l', porod_scale='scale_p', 
     83               cor_length='length_l', exponent_p='exponent_p', 
     84               exponent_l='exponent_l' 
     85               ) 
    8086 
    81 oldpars = dict(lorentz_scale='scale_l', porod_scale='scale_p', 
    82                cor_length='length_l', exponent_p='exponent_p', 
    83                exponent_l='exponent_l') 
    84  
    85 tests = [[{}, 0.001, 1009.98], 
     87tests = [ 
     88         [{}, 0.001, 1009.98], 
    8689         [{}, 0.150141, 0.174645], 
    87          [{}, 0.442528, 0.0203957]] 
     90         [{}, 0.442528, 0.0203957] 
     91         ] 
     92# pylint: enable=bad-continuation 
  • sasmodels/models/cylinder.py

    r0c3a226 reb69cce  
    144144 
    145145def ER(radius, length): 
    146     """ 
    147         Return equivalent radius (ER) 
    148     """ 
    149146    ddd = 0.75 * radius * (2 * radius * length + (length + radius) * (length + pi * radius)) 
    150147    return 0.5 * (ddd) ** (1. / 3.) 
  • sasmodels/models/dab.py

    r94bd809 reb69cce  
    11r""" 
     2 
    23Calculates the scattering from a randomly distributed, two-phase system based on 
    34the Debye-Anderson-Brumberger (DAB) model for such systems. The two-phase system 
  • sasmodels/models/ellipsoid.py

    r431caae r9c461c7  
    111111---------- 
    112112 
    113 L A Feigin and D I Svergun. 
    114 *Structure Analysis by Small-Angle X-Ray and Neutron Scattering*, 
    115 Plenum Press, New York, 1987. 
     113L A Feigin and D I Svergun. *Structure Analysis by Small-Angle X-Ray and Neutron Scattering*, Plenum, 
     114New York, 1987. 
    116115""" 
    117116 
  • sasmodels/models/fcc.py

    rc0ccea8 r9aac25d  
    114114single = False 
    115115 
    116 # pylint: disable=bad-whitespace, line-too-long 
    117116#             ["name", "units", default, [lower, upper], "type","description"], 
    118117parameters = [["dnn", "Ang", 220, [-inf, inf], "", "Nearest neighbour distance"], 
     
    125124              ["psi", "degrees", 60, [-inf, inf], "orientation", "Out of plane angle"] 
    126125             ] 
    127 # pylint: enable=bad-whitespace, line-too-long 
    128126 
    129127source = ["lib/J1.c", "lib/gauss150.c", "lib/sphere_form.c", "fcc.c"] 
  • sasmodels/models/guinier.py

    r723cebe reb69cce  
    3636 
    3737#             ["name", "units", default, [lower, upper], "type","description"], 
    38 parameters = [["rg", "Ang", 60.0, [0, inf], "", "Radius of Gyration"]] 
     38parameters = [ 
     39              ["rg", "Ang", 60.0, [0, inf], "", "Radius of Gyration"], 
     40              ] 
    3941 
    4042Iq = """ 
     
    4951 
    5052# parameters for demo 
    51 demo = dict(scale=1.0, rg=60.0) 
     53demo = dict(scale=1.0,rg=60.0) 
    5254 
    5355# For testing against the old sasview models, include the converted parameter 
     
    5759 
    5860# parameters for unit tests 
    59 tests = [[{'rg' : 31.5}, 0.005, 0.991756]] 
     61tests = [ 
     62         [{'rg' : 31.5}, 0.005, 0.991756] 
     63         ] 
  • sasmodels/models/hollow_cylinder.py

    re0fd913 rec2ca99  
    9393source = ["lib/J1.c", "lib/gauss76.c", "hollow_cylinder.c"] 
    9494 
    95 # pylint: disable=W0613 
    9695def ER(radius, core_radius, length): 
    9796    """ 
  • sasmodels/models/lamellarCailleHG.py

    r652a78a r13ed84c  
    146146    solvent_sld='sld_solvent') 
    147147# 
    148 tests = [[{'scale': 1.0, 'background': 0.0, 'tail_length': 10.0, 'head_length': 2.0, 
    149            'Nlayers': 30.0, 'spacing': 40., 'Caille_parameter': 0.001, 'sld': 0.4, 
    150            'head_sld': 2.0, 'solvent_sld': 6.0, 'tail_length_pd': 0.0, 
    151            'head_length_pd': 0.0, 'spacing_pd': 0.0}, [0.001], [6838238.571488]]] 
     148tests = [ 
     149        [ {'scale': 1.0, 'background' : 0.0, 'tail_length' : 10.0, 'head_length' : 2.0,'Nlayers' : 30.0, 'spacing' : 40., 
     150            'Caille_parameter' : 0.001, 'sld' : 0.4, 'head_sld' : 2.0, 'solvent_sld' : 6.0, 
     151            'tail_length_pd' : 0.0, 'head_length_pd' : 0.0, 'spacing_pd' : 0.0 }, [0.001], [6838238.571488]] 
     152        ] 
  • sasmodels/models/lamellarFFHG.py

    r3eb6b90 r7f47777  
    6868category = "shape:lamellae" 
    6969 
    70 # pylint: disable=bad-whitespace, line-too-long 
    7170#             ["name", "units", default, [lower, upper], "type","description"], 
    72 parameters = [["tail_length", "Ang",       15,   [0, inf],  "volume",  "Tail thickness"], 
    73               ["head_length", "Ang",       10,   [0, inf],  "volume",  "head thickness"], 
    74               ["sld",         "1e-6/Ang^2", 0.4, [-inf,inf], "",       "Tail scattering length density"], 
    75               ["head_sld",    "1e-6/Ang^2", 3.0, [-inf,inf], "",       "Head scattering length density"], 
    76               ["solvent_sld", "1e-6/Ang^2", 6,   [-inf,inf], "",       "Solvent scattering length density"]] 
    77 # pylint: enable=bad-whitespace, line-too-long 
     71parameters = [["tail_length", "Ang",  15, [0, inf], "volume", 
     72               "Tail thickness"], 
     73              ["head_length", "Ang",  10, [0, inf], "volume", 
     74               "head thickness"], 
     75              ["sld", "1e-6/Ang^2", 0.4, [-inf,inf], "", 
     76               "Tail scattering length density"], 
     77              ["head_sld", "1e-6/Ang^2", 3.0, [-inf,inf], "", 
     78               "Head scattering length density"], 
     79              ["solvent_sld", "1e-6/Ang^2", 6, [-inf,inf], "", 
     80               "Solvent scattering length density"], 
     81             ] 
    7882 
    7983# No volume normalization despite having a volume parameter 
     
    109113 
    110114demo = dict(scale=1, background=0, 
    111             tail_length=15, head_length=10, 
     115            tail_length=15,head_length=10, 
    112116            sld=0.4, head_sld=3.0, solvent_sld=6.0, 
    113             tail_length_pd=0.2, tail_length_pd_n=40, 
    114             head_length_pd=0.01, head_length_pd_n=40) 
     117            tail_length_pd= 0.2, tail_length_pd_n=40, 
     118            head_length_pd= 0.01, head_length_pd_n=40) 
    115119 
    116120oldname = 'LamellarFFHGModel' 
     
    118122               sld='sld_tail', head_sld='sld_head', solvent_sld='sld_solvent') 
    119123# 
    120 tests = [[{'scale': 1.0, 'background': 0.0, 'tail_length': 15.0, 'head_length': 10.0, 
    121            'sld': 0.4, 'head_sld': 3.0, 'solvent_sld': 6.0}, [0.001], [653143.9209]]] 
     124tests = [ 
     125        [ {'scale': 1.0, 'background' : 0.0, 'tail_length' : 15.0, 'head_length' : 10.0,'sld' : 0.4, 
     126         'head_sld' : 3.0, 'solvent_sld' : 6.0, }, [0.001], [653143.9209]] 
     127        ] 
     128 
     129 
  • sasmodels/models/lib/gauss76.c

    r66d119f r994d77f  
    77 * 
    88 */ 
    9 #define N_POINTS_76 76 
    109 
    1110// Gaussians 
    12 constant double Gauss76Wt[N_POINTS_76]={ 
     11constant double Gauss76Wt[76]={ 
    1312        .00126779163408536,             //0 
    1413        .00294910295364247, 
     
    8988}; 
    9089 
    91 constant double Gauss76Z[N_POINTS_76]={ 
     90constant double Gauss76Z[76]={ 
    9291        -.999505948362153,              //0 
    9392        -.997397786355355, 
  • sasmodels/models/lorentz.py

    reb5901b reb69cce  
    5656 
    5757# parameters for demo 
    58 demo = dict(scale=1.0, background=0.0, cor_length=50.0) 
     58demo = dict(scale=1.0,background=0.0,cor_length=50.0) 
    5959 
    6060# For testing against the old sasview models, include the converted parameter 
     
    6464 
    6565# parameters for unit tests 
    66 tests = [[{'cor_length': 250}, 0.01, 0.137931]] 
     66tests = [ 
     67         [{'cor_length' : 250},0.01,0.137931] 
     68         ] 
  • sasmodels/models/peak_lorentz.py

    r04b0b30 r14ba6f6  
    1111    I(q) = \frac{scale}{\bigl(1+\bigl(\frac{q-q_0}{B}\bigr)^2\bigr)} + background 
    1212 
    13 with the peak having height of $I_0$ centered at $q_0$ and having 
    14 a HWHM (half-width half-maximum) of B. 
     13with the peak having height of $I_0$ centered at $q_0$ and having a HWHM (half-width half-maximum) of B. 
    1514 
    1615For 2D data the scattering intensity is calculated in the same way as 1D, 
     
    5655 
    5756def Iq(q, peak_pos, peak_hwhm): 
    58     """ 
    59         Return I(q) 
    60     """ 
    6157    inten = (1/(1+((q-peak_pos)/peak_hwhm)**2)) 
    6258    return inten 
     
    6460 
    6561def Iqxy(qx, qy, *args): 
    66     """ 
    67         Return I(qx, qy) 
    68     """ 
    6962    return Iq(sqrt(qx ** 2 + qy ** 2), *args) 
    7063Iqxy.vectorized = True # Iqxy accepts an array of qx, qy values 
  • sasmodels/models/rpa.py

    rfa8011eb r82c299f  
    4343component. 
    4444 
    45 .. figure:: img/rpa_1d.jpg 
     45.. figure:: img/image215.jpg 
    4646 
    4747    1D plot using the default values (w/500 data points). 
     
    8989#   ["name", "units", default, [lower, upper], "type","description"], 
    9090parameters = [ 
    91     ["case_num", CASES, 0, [0, 10], "", "Component organization"], 
     91    ["case_num", CASES, 0, [0, 10], "", "Component organization" ], 
    9292 
    9393    ["Na", "", 1000.0, [1, inf], "", "Degree of polymerization"], 
  • sasmodels/models/sphere.py

    rc691551 r9c461c7  
    100100 
    101101def ER(radius): 
    102     """ 
    103         Return equivalent radius (ER) 
    104     """ 
    105102    return radius 
    106103 
  • sasmodels/models/spherepy.py

    rd2950f4 reb69cce  
    118118    g[low] = sqrt(1 - dlow2 / 4.) * (1 + dlow2 / 8.) + dlow2 / 2.*(1 - dlow2 / 16.) * log(dlow / (2. + sqrt(4. - dlow2))) 
    119119    return g 
    120 sesans.vectorized = True  # sesans accepts an array of z values 
     120sesans.vectorized = True  # sesans accepts and array of z values 
    121121 
    122122def ER(radius): 
  • sasmodels/models/triaxial_ellipsoid.py

    r469e763 r9c461c7  
    8282---------- 
    8383 
    84 L A Feigin and D I Svergun, *Structure Analysis by Small-Angle X-Ray 
    85 and Neutron Scattering*, Plenum, New York, 1987. 
     84L A Feigin and D I Svergun, *Structure Analysis by Small-Angle X-Ray and Neutron Scattering*, Plenum, 
     85New York, 1987. 
    8686""" 
    8787 
     
    120120 
    121121def ER(req_minor, req_major, rpolar): 
    122     """ 
    123         Returns the effective radius used in the S*P calculation 
    124     """ 
    125122    import numpy as np 
    126123    from .ellipsoid import ER as ellipsoid_ER 
  • sasmodels/models/vesicle.py

    rfa8011eb r216fa6d  
    2424is a flat background level (due for example to incoherent scattering in the 
    2525case of neutrons), and $j_1$ is the spherical bessel function 
    26 $j_1 = (\sin(x) - x \cos(x))/ x^2$. 
     26$j_1 = (sin(x) - x cos(x))/ x^2$. 
    2727 
    2828The functional form is identical to a "typical" core-shell structure, except 
     
    3535thickness = $R_{\text{tot}} - R_{\text{core}}$. 
    3636 
    37 .. figure:: img/vesicle_geometry.jpg 
    38  
    39     Vesicle geometry. 
     37.. figure: img/vesicle_geometry.jpg 
    4038 
    4139The 2D scattering intensity is the same as *P(q)* above, regardless of the 
     
    5048radius for *S(Q)* when *P(Q)* \* *S(Q)* is applied. 
    5149 
    52 .. figure:: img/vesicle_1d.jpg 
     50.. image:: img/vesicle_1d.jpg 
    5351 
    54     1D plot using the default values given in the table (w/200 data point). 
    55     Polydispersity and instrumental resolution normally will smear out most 
    56     of the rapidly oscillating features. 
     52*Figure. 1D plot using the default values given in the table 
     53(w/200 data point). Polydispersity and instrumental resolution normally 
     54will smear out most of the rapidly oscillating features.* 
    5755 
    5856REFERENCE 
     
    6260""" 
    6361 
     62import numpy as np 
    6463from numpy import pi, inf 
    6564 
     
    132131# NOTE: test results taken from values returned by SasView 3.1.2 
    133132tests = [[{}, 0.0010005303255, 17139.8268799], 
    134          [{}, 0.200027832249, 0.130387268704], 
     133         [{}, 0.200027832249, 0.130387268704 ], 
    135134         [{}, 'ER', 130.], 
    136135         [{}, 'VR', 0.54483386436], 
  • setup.py

    r3eb3312 r040575f  
    1111    version = "1.0.0a", 
    1212    description = "sasmodels package", 
    13     long_description=open('README.md').read(), 
     13    long_description=open('README.rst').read(), 
    1414    author = "SasView Collaboration", 
    1515    author_email = "management@sasview.org", 
Note: See TracChangeset for help on using the changeset viewer.