Changeset 2c74c11 in sasmodels for sasmodels/models/two_power_law.py
- Timestamp:
- Jul 24, 2016 10:56:45 PM (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:
- a4280bd
- Parents:
- f1765a2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/models/two_power_law.py
rec45c4f r2c74c11 44 44 """ 45 45 46 from numpy import power 47 from numpy import sqrt 48 from numpy import inf 49 from numpy import concatenate 46 from numpy import inf, power, empty, errstate 50 47 51 48 name = "two_power_law" … … 92 89 :return: Calculated intensity 93 90 """ 94 95 #Two sub vectors are created to treat crossover values 96 q_lower = q[q <= crossover] 97 q_upper = q[q > crossover] 98 coefficent_2 = coefficent_1*power(crossover, -1.0*power_1)/power(crossover, -1.0*power_2) 99 intensity_lower = coefficent_1*power(q_lower, -1.0*power_1) 100 intensity_upper = coefficent_2*power(q_upper, -1.0*power_2) 101 intensity = concatenate((intensity_lower, intensity_upper), axis=0) 102 103 return intensity 91 iq = empty(q.shape, 'd') 92 idx = (q <= crossover) 93 with errstate(divide='ignore'): 94 coefficent_2 = coefficent_1 * power(crossover, power_2 - power_1) 95 iq[idx] = coefficent_1 * power(q[idx], -power_1) 96 iq[~idx] = coefficent_2 * power(q[~idx], -power_2) 97 return iq 104 98 105 99 Iq.vectorized = True # Iq accepts an array of q values 106 107 def Iqxy(qx, qy, *args):108 """109 :param qx: Input q_x-value110 :param qy: Input q_y-value111 :param args: Remaining arguments112 :return: 2D-Intensity113 """114 115 return Iq(sqrt(qx**2 + qy**2), *args)116 117 Iqxy.vectorized = True # Iqxy accepts an array of qx, qy values118 100 119 101 demo = dict(scale=1, background=0.0,
Note: See TracChangeset
for help on using the changeset viewer.