Changeset d57b06c in sasmodels for sasmodels/models/cylinder.py


Ignore:
Timestamp:
Mar 30, 2019 2:06:15 PM (5 years ago)
Author:
Paul Kienzle <pkienzle@…>
Branches:
master
Children:
be0942c
Parents:
a42b091 (diff), e15a822 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge remote-tracking branch 'origin/master' into ticket-1263-source-link

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/models/cylinder.py

    rc1e44e5 rd57b06c  
    147147source = ["lib/polevl.c", "lib/sas_J1.c", "lib/gauss76.c", "cylinder.c"] 
    148148have_Fq = True 
    149 effective_radius_type = [ 
     149radius_effective_modes = [ 
    150150    "excluded volume", "equivalent volume sphere", "radius", 
    151151    "half length", "half min dimension", "half max dimension", "half diagonal", 
     
    176176            phi_pd=10, phi_pd_n=5) 
    177177 
    178 # pylint: disable=bad-whitespace, line-too-long 
     178# Test 1-D and 2-D models 
    179179qx, qy = 0.2 * np.cos(2.5), 0.2 * np.sin(2.5) 
    180 # After redefinition of angles, find new tests values.  Was 10 10 in old coords 
     180theta, phi = 80.1534480601659, 10.1510817110481  # (10, 10) in sasview 3.x 
    181181tests = [ 
    182182    [{}, 0.2, 0.042761386790780453], 
    183183    [{}, [0.2], [0.042761386790780453]], 
    184     #  new coords 
    185     [{'theta':80.1534480601659, 'phi':10.1510817110481}, (qx, qy), 0.03514647218513852], 
    186     [{'theta':80.1534480601659, 'phi':10.1510817110481}, [(qx, qy)], [0.03514647218513852]], 
    187     # old coords 
    188     #[{'theta':10.0, 'phi':10.0}, (qx, qy), 0.03514647218513852], 
    189     #[{'theta':10.0, 'phi':10.0}, [(qx, qy)], [0.03514647218513852]], 
     184    [{'theta': theta, 'phi': phi}, (qx, qy), 0.03514647218513852], 
     185    [{'theta': theta, 'phi': phi}, [(qx, qy)], [0.03514647218513852]], 
    190186] 
    191 del qx, qy  # not necessary to delete, but cleaner 
    192  
    193 # Default radius and length 
    194 def calc_volume(radius, length): 
    195     """Return form volume for cylinder.""" 
    196     return pi*radius**2*length 
    197 def calc_r_effs(radius, length): 
    198     """Return effective radii for modes 0-7 of cylinder.""" 
    199     return [ 
     187del qx, qy, theta, phi  # not necessary to delete, but cleaner 
     188 
     189def _extend_with_reff_tests(radius, length): 
     190    """Test R_eff and form volume calculations""" 
     191    # V and Vr are the same for each R_eff mode 
     192    V = pi*radius**2*length  # shell volume = form volume for solid objects 
     193    Vr = 1.0  # form:shell volume ratio 
     194    # Use test value for I(0.2) from above to check Fsq value.  Need to 
     195    # remove scale and background before testing. 
     196    q = 0.2 
     197    scale, background = V, 0.001 
     198    Fsq = (0.042761386790780453 - background)*scale 
     199    F = None  # Need target value for <F> 
     200    # Various values for R_eff, depending on mode 
     201    r_effs = [ 
    200202        0., 
    201203        0.5*(0.75*radius*(2.0*radius*length 
     
    208210        np.sqrt(4*radius**2 + length**2)/2., 
    209211    ] 
    210 r_effs = calc_r_effs(parameters[2][2], parameters[3][2]) 
    211 cyl_vol = calc_volume(parameters[2][2], parameters[3][2]) 
    212 tests.extend([ 
    213     ({'radius_effective_mode': 0}, 0.1, None, None, r_effs[0], cyl_vol, 1.0), 
    214     ({'radius_effective_mode': 1}, 0.1, None, None, r_effs[1], None, None), 
    215     ({'radius_effective_mode': 2}, 0.1, None, None, r_effs[2], None, None), 
    216     ({'radius_effective_mode': 3}, 0.1, None, None, r_effs[3], None, None), 
    217     ({'radius_effective_mode': 4}, 0.1, None, None, r_effs[4], None, None), 
    218     ({'radius_effective_mode': 5}, 0.1, None, None, r_effs[5], None, None), 
    219     ({'radius_effective_mode': 6}, 0.1, None, None, r_effs[6], None, None), 
    220     ({'radius_effective_mode': 7}, 0.1, None, None, r_effs[7], None, None), 
    221 ]) 
    222 del r_effs, cyl_vol 
    223 # pylint: enable=bad-whitespace, line-too-long 
     212    tests.extend([ 
     213        ({'radius_effective_mode': 0}, q, F, Fsq, r_effs[0], V, Vr), 
     214        ({'radius_effective_mode': 1}, q, F, Fsq, r_effs[1], V, Vr), 
     215        ({'radius_effective_mode': 2}, q, F, Fsq, r_effs[2], V, Vr), 
     216        ({'radius_effective_mode': 3}, q, F, Fsq, r_effs[3], V, Vr), 
     217        ({'radius_effective_mode': 4}, q, F, Fsq, r_effs[4], V, Vr), 
     218        ({'radius_effective_mode': 5}, q, F, Fsq, r_effs[5], V, Vr), 
     219        ({'radius_effective_mode': 6}, q, F, Fsq, r_effs[6], V, Vr), 
     220        ({'radius_effective_mode': 7}, q, F, Fsq, r_effs[7], V, Vr), 
     221    ]) 
     222 
     223# Test Reff and volume with default model parameters 
     224_extend_with_reff_tests(parameters[2][2], parameters[3][2]) 
     225del _extend_with_reff_tests 
    224226 
    225227# ADDED by:  RKH  ON: 18Mar2016 renamed sld's etc 
Note: See TracChangeset for help on using the changeset viewer.