Changeset dcdf29d in sasmodels for sasmodels/models/broad_peak.py
- Timestamp:
- Feb 2, 2016 5:51:27 AM (8 years ago)
- Branches:
- master, core_shell_microgels, costrafo411, magnetic_model, release_v0.94, release_v0.95, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
- Children:
- 7f47777, 8007311
- Parents:
- 577912b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/models/broad_peak.py
reb69cce rdcdf29d 60 60 category = "shape-independent" 61 61 62 # pylint: disable=bad-whitespace, line-too-long 62 63 # ["name", "units", default, [lower, upper], "type", "description"], 63 parameters = [["porod_scale", "",1.0e-05, [-inf, inf], "", "Power law scale factor"],64 ["porod_exp", "",3.0, [-inf, inf], "", "Exponent of power law"],65 ["lorentz_scale", "",10.0, [-inf, inf], "", "Scale factor for broad Lorentzian peak"],66 ["lorentz_length", "Ang", 50.0, [-inf, inf], "", "Lorentzian screening length"],67 ["peak_pos", "1/Ang", 0.1, [-inf, inf], "", "Peak postion in q"],68 ["lorentz_exp", "", 2.0, [-inf, inf], "", "exponent of Lorentz function"],64 parameters = [["porod_scale", "", 1.0e-05, [-inf, inf], "", "Power law scale factor"], 65 ["porod_exp", "", 3.0, [-inf, inf], "", "Exponent of power law"], 66 ["lorentz_scale", "", 10.0, [-inf, inf], "", "Scale factor for broad Lorentzian peak"], 67 ["lorentz_length", "Ang", 50.0, [-inf, inf], "", "Lorentzian screening length"], 68 ["peak_pos", "1/Ang", 0.1, [-inf, inf], "", "Peak position in q"], 69 ["lorentz_exp", "", 2.0, [-inf, inf], "", "Exponent of Lorentz function"], 69 70 ] 71 # pylint: enable=bad-whitespace, line-too-long 70 72 71 def Iq(q, porod_scale, porod_exp, lorentz_scale, lorentz_length, peak_pos, lorentz_exp): 73 def Iq(q, 74 porod_scale=1.0e-5, 75 porod_exp=3.0, 76 lorentz_scale=10.0, 77 lorentz_length=50.0, 78 peak_pos=0.1, 79 lorentz_exp=2.0): 80 """ 81 :param q: Input q-value 82 :param porod_scale: Power law scale factor 83 :param porod_exp: Exponent of power law 84 :param lorentz_scale: Scale factor for broad Lorentzian peak 85 :param lorentz_length: Lorentzian screening length 86 :param peak_pos: Peak position in q 87 :param lorentz_exp: Exponent of Lorentz function 88 :return: Calculated intensity 89 """ 90 72 91 inten = (porod_scale / q ** porod_exp + lorentz_scale 73 92 / (1.0 + (abs(q - peak_pos) * lorentz_length) ** lorentz_exp)) … … 76 95 77 96 def Iqxy(qx, qy, *args): 97 """ 98 :param qx: Input q_x-value 99 :param qy: Input q_y-value 100 :param args: Remaining arguments 101 :return: 2D-Intensity 102 """ 78 103 return Iq(sqrt(qx ** 2 + qy ** 2), *args) 104 79 105 Iqxy.vectorized = True # Iqxy accepts an array of qx, qy values 80 81 106 82 107 demo = dict(scale=1, background=0,
Note: See TracChangeset
for help on using the changeset viewer.