Changeset 6824af5 in sasmodels
- Timestamp:
- Mar 17, 2016 10:48:04 AM (9 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:
- 8898d0f, bdb653c
- Parents:
- 84db7a5 (diff), 54954e1 (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. - Files:
-
- 1 added
- 2 deleted
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
example/sesansfit.sh
- Property mode changed from 100644 to 100755
r5be92e8 r15bd6e7 8 8 set -x 9 9 10 python -m bumps.cli $*10 pythonw -m bumps.cli $* -
sasmodels/models/adsorbed_layer.py
rcb97bff r54954e1 17 17 I(q) = \text{scale} \cdot(\rho_\text{poly}-\rho_\text{solvent})^2 \left[\frac{6\pi\phi_\text{core}}{Q^2}\frac{\Gamma^2}{\delta_\text{poly}^2R_\text{core}} \exp(-Q^2\sigma^2)\right] + \text{background} 18 18 19 where *scale* is a scale factor, |rho|\ :sub:`poly` is the sld of the polymer (or surfactant) layer, |rho|\ :sub:`solv` is the sld of the solvent/medium and cores, |phi|\ :sub:`core` is the volume fraction of the core par aticles, |delta|\ :sub:`poly` is the bulk density of the polymer, |biggamma| is the adsorbed amount, and |sigma| is the second moment of the thickness distribution.19 where *scale* is a scale factor, |rho|\ :sub:`poly` is the sld of the polymer (or surfactant) layer, |rho|\ :sub:`solv` is the sld of the solvent/medium and cores, |phi|\ :sub:`core` is the volume fraction of the core particles, |delta|\ :sub:`poly` is the bulk density of the polymer, |biggamma| is the adsorbed amount, and |sigma| is the second moment of the thickness distribution. 20 20 21 21 Note that all parameters except the |sigma| are correlated so fitting more than one of these parameters will generally fail. Also note that unlike other shape models, no volume normalization is applied to this model (the calculation is exact). … … 46 46 ["density_poly", "g/cm3", 0.7, [0.0, inf], "", "Polymer density"], 47 47 ["radius", "Ang", 500.0, [0.0, inf], "", "Particle radius"], 48 ["vol _frac", "None", 0.14, [0.0, inf], "", "Particle vol fraction"],48 ["volfraction", "None", 0.14, [0.0, inf], "", "Particle vol fraction"], 49 49 ["polymer_sld", "1/Ang^2", 1.5e-06, [-inf, inf], "", "Polymer SLD"], 50 50 ["solvent_sld", "1/Ang^2", 6.3e-06, [-inf, inf], "", "Solvent SLD"]] … … 52 52 # NB: Scale and Background are implicit parameters on every model 53 53 def Iq(q, second_moment, adsorbed_amount, density_poly, radius, 54 vol _frac, polymer_sld, solvent_sld):54 volfraction, polymer_sld, solvent_sld): 55 55 # pylint: disable = missing-docstring 56 56 deltarhosqrd = (polymer_sld - solvent_sld) * (polymer_sld - solvent_sld) 57 numerator = 6.0 * pi * vol _frac* (adsorbed_amount * adsorbed_amount)57 numerator = 6.0 * pi * volfraction * (adsorbed_amount * adsorbed_amount) 58 58 denominator = (q * q) * (density_poly * density_poly) * radius 59 59 eterm = exp(-1.0 * (q * q) * (second_moment * second_moment)) … … 73 73 density_poly = 0.7, 74 74 radius = 500.0, 75 vol _frac= 0.14,75 volfraction = 0.14, 76 76 polymer_sld = 1.5e-06, 77 77 solvent_sld = 6.3e-06, … … 84 84 density_poly = 'density_poly', 85 85 radius = 'radius_core', 86 vol _frac= 'volf_cores',86 volfraction = 'volf_cores', 87 87 polymer_sld = 'sld_poly', 88 88 solvent_sld = 'sld_solv', … … 91 91 tests = [ 92 92 [{'scale': 1.0, 'second_moment': 23.0, 'adsorbed_amount': 1.9, 93 'density_poly': 0.7, 'radius': 500.0, 'vol _frac': 0.14,93 'density_poly': 0.7, 'radius': 500.0, 'volfraction': 0.14, 94 94 'polymer_sld': 1.5e-06, 'solvent_sld': 6.3e-06, 'background': 0.0}, 95 95 [0.0106939, 0.469418], [73.741, 9.65391e-53]], -
sasmodels/models/hayter_msa.py
rd529d93 r54954e1 51 51 # dp[2] = volfraction(); 52 52 # dp[3] = temperature(); 53 # dp[4] = salt conc();53 # dp[4] = salt_concentration(); 54 54 # dp[5] = dielectconst(); 55 55 … … 76 76 ["volfraction", "None", 0.0192, [0, 0.74], "", "volume fraction of spheres"], 77 77 ["temperature", "K", 318.16, [0, inf], "", "temperature, in Kelvin, for Debye length calculation"], 78 ["salt conc", "M", 0.0, [-inf, inf], "", "conc of salt, moles/litre, 1:1 electolyte, for Debye length"],78 ["salt_concentration", "M", 0.0, [-inf, inf], "", "conc of salt, moles/litre, 1:1 electolyte, for Debye length"], 79 79 ["dielectconst", "None", 71.08, [-inf, inf], "", "dielectric constant (relative permittivity) of solvent, default water, for Debye length"] 80 80 ] … … 96 96 oldname = 'HayterMSAStructure' 97 97 #oldpars = dict(effect_radius="radius_effective",effect_radius_pd="radius_effective_pd",effect_radius_pd_n="radius_effective_pd_n") 98 oldpars = dict(radius_effective="effect_radius",radius_effective_pd="effect_radius_pd",radius_effective_pd_n="effect_radius_pd_n" )98 oldpars = dict(radius_effective="effect_radius",radius_effective_pd="effect_radius_pd",radius_effective_pd_n="effect_radius_pd_n",salt_concentration="saltconc") 99 99 #oldpars = dict( ) 100 100 # default parameter set, use compare.sh -midQ -linear 101 101 # note the calculation varies in different limiting cases so a wide range of 102 102 # parameters will be required for a thorough test! 103 # odd that the default st has salt conczero103 # odd that the default st has salt_concentration zero 104 104 demo = dict(radius_effective=20.75, 105 105 charge=19.0, 106 106 volfraction=0.0192, 107 107 temperature=318.16, 108 salt conc=0.05,108 salt_concentration=0.05, 109 109 dielectconst=71.08, 110 110 radius_effective_pd=0.1, … … 120 120 'volfraction': 0.0192, 121 121 'temperature': 298.0, 122 'salt conc': 0,122 'salt_concentration': 0, 123 123 'dielectconst': 78.0, 124 124 'radius_effective_pd': 0}, … … 130 130 'volfraction': 0.0192, 131 131 'temperature': 298.0, 132 'salt conc': 0.05,132 'salt_concentration': 0.05, 133 133 'dielectconst': 78.0, 134 134 'radius_effective_pd': 0.1, -
sasmodels/models/mono_gauss_coil.py
raa2edb2 r15bd6e7 14 14 15 15 *I(q)* = *scale* |cdot| *I* \ :sub:`0` |cdot| *P(q)* + *background* 16 16 17 17 where 18 18 … … 20 20 21 21 *P(q)* = 2 [exp(-Z) + Z - 1] / Z \ :sup:`2` 22 23 22 23 *Z* = (*q R* \ :sub:`g`)\ :sup:`2` 24 24 25 25 and 26 26 27 28 27 *V* = *M* / (*N*\ :sub:`A` |delta|) 28 29 29 Here, |phi|\ :sub:`poly` is the volume fraction of polymer, *V* is the volume of a polymer coil, *M* is the molecular weight of the polymer, *N*\ :sub:`A` is Avogadro's Number, |delta| is the bulk density of the polymer, |rho|\ :sub:`poly` is the sld of the polymer, |rho|\ :sub:`solv` is the sld of the solvent, and *R*\ :sub:`g` is the radius of gyration of the polymer coil. 30 30 … … 52 52 description = """ 53 53 Evaluates the scattering from 54 54 monodisperse polymer chains. 55 55 """ 56 56 category = "shape-independent" 57 57 58 58 # ["name", "units", default, [lower, upper], "type", "description"], 59 parameters = [["i_zero", "1/cm", 1.0, [-inf, inf], "", "Intensity at q=0"],60 ["radius_gyration", "Ang", 50.0, [0.0, inf], "", "Radius of gyration"]]59 parameters = [["i_zero", "1/cm", 70.0, [0.0, inf], "", "Intensity at q=0"], 60 ["radius_gyration", "Ang", 75.0, [0.0, inf], "", "Radius of gyration"]] 61 61 62 62 # NB: Scale and Background are implicit parameters on every model 63 63 def Iq(q, i_zero, radius_gyration): 64 64 # pylint: disable = missing-docstring 65 z = (q * radius_gyration) * * 266 if q == 0:67 inten = 1.065 z = (q * radius_gyration) * (q * radius_gyration) 66 if (q == 0).any(): 67 inten = i_zero 68 68 else: 69 69 inten = i_zero * 2.0 * (exp(-z) + z - 1.0 ) / (z * z) … … 77 77 78 78 demo = dict(scale = 1.0, 79 i_zero = 1.0,80 radius_gyration = 50.0,79 i_zero = 70.0, 80 radius_gyration = 75.0, 81 81 background = 0.0) 82 82 … … 87 87 88 88 tests = [ 89 [{'scale': 1.0, 'radius_gyration': 50.0, 'background': 0.0},90 [0.0106939, 0.469418], [ 0.911141, 0.00362394]],89 [{'scale': 70.0, 'radius_gyration': 75.0, 'background': 0.0}, 90 [0.0106939, 0.469418], [57.1241, 0.112859]], 91 91 ] -
sasmodels/models/poly_gauss_coil.py
raa2edb2 r15bd6e7 14 14 15 15 *I(q)* = *scale* |cdot| *I* \ :sub:`0` |cdot| *P(q)* + *background* 16 16 17 17 where 18 18 … … 20 20 21 21 *P(q)* = 2 [(1 + UZ)\ :sup:`-1/U` + Z - 1] / [(1 + U) Z\ :sup:`2`] 22 23 24 25 22 23 *Z* = [(*q R*\ :sub:`g`)\ :sup:`2`] / (1 + 2U) 24 25 *U* = (Mw / Mn) - 1 = (*polydispersity ratio*) - 1 26 26 27 27 and 28 28 29 30 29 *V* = *M* / (*N*\ :sub:`A` |delta|) 30 31 31 Here, |phi|\ :sub:`poly`, is the volume fraction of polymer, *V* is the volume of a polymer coil, *M* is the molecular weight of the polymer, *N*\ :sub:`A` is Avogadro's Number, |delta| is the bulk density of the polymer, |rho|\ :sub:`poly` is the sld of the polymer, |rho|\ :sub:`solv` is the sld of the solvent, and *R*\ :sub:`g` is the radius of gyration of the polymer coil. 32 32 … … 57 57 description = """ 58 58 Evaluates the scattering from 59 59 polydisperse polymer chains. 60 60 """ 61 61 category = "shape-independent" 62 62 63 63 # ["name", "units", default, [lower, upper], "type", "description"], 64 parameters = [["i_zero", "1/cm", 1.0, [-inf, inf], "", "Intensity at q=0"],65 ["radius_gyration", "Ang", 50.0, [0.0, inf], "", "Radius of gyration"],64 parameters = [["i_zero", "1/cm", 70.0, [0.0, inf], "", "Intensity at q=0"], 65 ["radius_gyration", "Ang", 75.0, [0.0, inf], "", "Radius of gyration"], 66 66 ["polydispersity", "None", 2.0, [1.0, inf], "", "Polymer Mw/Mn"]] 67 67 … … 69 69 def Iq(q, i_zero, radius_gyration, polydispersity): 70 70 # pylint: disable = missing-docstring 71 # need to trap the case of the polydispersity being 1 (ie, monodispersity) 71 72 u = polydispersity - 1.0 72 # TO DO 73 # should trap the case of polydispersity = 1 by switching to a taylor expansion 74 minusoneonu = -1.0 / u 75 z = (q * radius_gyration) ** 2 / (1.0 + 2.0 * u) 76 if q == 0: 77 inten = i_zero * 1.0 73 if polydispersity == 1: 74 minusoneonu = -1.0 / u 78 75 else: 79 inten = i_zero * 2.0 * (power((1.0 + u * z),minusoneonu) + z - 1.0 ) / ((1.0 + u) * (z * z)) 76 minusoneonu = -1.0 / u 77 z = ((q * radius_gyration) * (q * radius_gyration)) / (1.0 + 2.0 * u) 78 if (q == 0).any(): 79 inten = i_zero 80 else: 81 inten = i_zero * 2.0 * (power((1.0 + u * z),minusoneonu) + z - 1.0 ) / ((1.0 + u) * (z * z)) 80 82 return inten 81 #Iq.vectorized = True# Iq accepts an array of q values83 Iq.vectorized = True # Iq accepts an array of q values 82 84 83 85 def Iqxy(qx, qy, *args): … … 87 89 88 90 demo = dict(scale = 1.0, 89 i_zero = 1.0,90 radius_gyration = 50.0,91 i_zero = 70.0, 92 radius_gyration = 75.0, 91 93 polydispersity = 2.0, 92 94 background = 0.0) … … 99 101 100 102 tests = [ 101 [{'scale': 1.0, 'radius_gyration': 50.0, 'polydispersity': 2.0, 'background': 0.0},102 [0.0106939, 0.469418], [ 0.912993, 0.0054163]],103 [{'scale': 70.0, 'radius_gyration': 75.0, 'polydispersity': 2.0, 'background': 0.0}, 104 [0.0106939, 0.469418], [57.6405, 0.169016]], 103 105 ] -
sasmodels/models/stickyhardsphere.py
r0784c18 r54954e1 88 88 # [ "name", "units", default, [lower, upper], "type", 89 89 # "description" ], 90 [" effect_radius", "Ang", 50.0, [0, inf], "volume",90 ["radius_effective", "Ang", 50.0, [0, inf], "volume", 91 91 "effective radius of hard sphere"], 92 92 ["volfraction", "", 0.2, [0, 0.74], "", … … 113 113 eta = volfraction/onemineps/onemineps/onemineps; 114 114 115 sig = 2.0 * effect_radius;115 sig = 2.0 * radius_effective; 116 116 aa = sig/onemineps; 117 117 etam1 = 1.0 - eta; … … 179 179 180 180 oldname = 'StickyHSStructure' 181 oldpars = dict( )182 demo = dict( effect_radius=200, volfraction=0.2, perturb=0.05,183 stickiness=0.2, effect_radius_pd=0.1, effect_radius_pd_n=40)181 oldpars = dict(radius_effective="effect_radius",radius_effective_pd="effect_radius_pd",radius_effective_pd_n="effect_radius_pd_n") 182 demo = dict(radius_effective=200, volfraction=0.2, perturb=0.05, 183 stickiness=0.2, radius_effective_pd=0.1, radius_effective_pd_n=40) 184 184 # 185 185 tests = [ 186 [ {'scale': 1.0, 'background' : 0.0, ' effect_radius' : 50.0, 'perturb' : 0.05, 'stickiness' : 0.2, 'volfraction' : 0.1,187 ' effect_radius_pd' : 0}, [0.001, 0.003], [1.09718, 1.087830]]186 [ {'scale': 1.0, 'background' : 0.0, 'radius_effective' : 50.0, 'perturb' : 0.05, 'stickiness' : 0.2, 'volfraction' : 0.1, 187 'radius_effective_pd' : 0}, [0.001, 0.003], [1.09718, 1.087830]] 188 188 ] 189 189 -
example/sesans_parameters_css-hs.py
ra98958b r84db7a5 8 8 # Enter the model name to use 9 9 model_name = "core_shell_sphere*hardsphere" 10 11 # DO NOT MODIFY THIS LINE 12 model = sesansfit.get_bumps_model(model_name) 10 13 11 14 # Enter any custom parameters … … 19 22 # Initial parameter values (if other than defaults) 20 23 initial_vals = { 21 "scale" : 0.09,22 24 "core_sld" : 1.0592, 23 25 "solvent_sld" : 2.88, 24 "shell_sld" : 2.88,25 26 "radius" : 890, 26 "thickness" : 130, 27 "volfraction" : 0.45 27 "thickness" : 130 28 28 } 29 29 … … 36 36 } 37 37 38 # Constraints 39 # model.param_name = f(other params) 40 # EXAMPLE: model.scale = model.radius*model.radius*(1 - phi) - where radius and scale are model functions and phi is 41 # a custom parameter 42 model.scale = phi*(1-phi) 43 model.volfraction = phi 44 model.shell_sld = pen*2.88 45 38 46 # Send to the fitting engine 39 47 problem = sesansfit.sesans_fit(sesans_file, model_name, initial_vals, custom_params, param_range) -
example/sesans_parameters_sphere.py
ra98958b r84db7a5 9 9 model_name = "sphere" 10 10 11 # DO NOT MODIFY THIS LINE 12 model = sesansfit.get_bumps_model(model_name) 13 11 14 # Enter any custom parameters 15 # name = Parameter(initial_value, name='name') 12 16 phi = Parameter(0.10, name='phi') 17 # Add the parameters to this list that should be displayed in the fitting window 13 18 custom_params = {"phi" : phi} 14 19 15 # SESANS data file 20 # SESANS data file name 16 21 sesans_file = "sphere.ses" 17 22 18 23 # Initial parameter values (if other than defaults) 24 # "model_parameter_name" : value 19 25 initial_vals = { 20 "scale" : phi*(1 - phi),21 26 "sld" : 7.0, 27 "radius" : 1000, 22 28 "solvent_sld" : 1.0, 23 "radius" : 1000,24 29 } 25 30 26 31 # Ranges for parameters if other than default 32 # "model_parameter_name" : [min, max] 27 33 param_range = { 28 34 "phi" : [0.001, 0.5], … … 30 36 } 31 37 38 # Constraints 39 # model.param_name = f(other params) 40 # EXAMPLE: model.scale = model.radius*model.radius*(1 - phi) - where radius and scale are model functions and phi is 41 # a custom parameter 42 model.scale = phi*(1-phi) 43 32 44 # Send to the fitting engine 33 problem = sesansfit.sesans_fit(sesans_file, model_name, initial_vals, custom_params, param_range) 45 # DO NOT MODIFY THIS LINE 46 problem = sesansfit.sesans_fit(sesans_file, model, initial_vals, custom_params, param_range) 47 -
example/sesansfit.py
ra98958b r84db7a5 1 #TODO: Convert units properly (nm -> A)2 #TODO: Implement constraints3 4 1 from bumps.names import * 5 from sasmodels import core, bumps_model 2 from sasmodels import core, bumps_model, sesans 6 3 7 4 HAS_CONVERTER = True … … 11 8 HAS_CONVERTER = False 12 9 13 def sesans_fit(file, model_name, initial_vals={}, custom_params={}, param_range=[]): 10 def get_bumps_model(model_name): 11 kernel = core.load_model(model_name) 12 model = bumps_model.Model(kernel) 13 return model 14 15 def sesans_fit(file, model, initial_vals={}, custom_params={}, param_range=[]): 14 16 """ 15 16 17 @param file: SESANS file location 17 @param model _name: model name string- can be model, model_1 * model_2, and/or model_1 + model_218 @param model: Bumps model object or model name - can be model, model_1 * model_2, and/or model_1 + model_2 18 19 @param initial_vals: dictionary of {param_name : initial_value} 19 20 @param custom_params: dictionary of {custom_parameter_name : Parameter() object} 20 21 @param param_range: dictionary of {parameter_name : [minimum, maximum]} 22 @param constraints: dictionary of {parameter_name : constraint} 21 23 @return: FitProblem for Bumps usage 22 24 """ … … 29 31 default_unit = "A" 30 32 data_conv_q = Converter(data._xunit) 33 for x in data.x: 34 print x 31 35 data.x = data_conv_q(data.x, units=default_unit) 36 for x in data.x: 37 print x 32 38 data._xunit = default_unit 33 39 … … 51 57 data = SESANSData1D() 52 58 53 radius = 1000 59 if "radius" in initial_vals: 60 radius = initial_vals.get("radius") 61 else: 62 radius = 1000 54 63 data.Rmax = 3*radius # [A] 55 64 56 kernel = core.load_model(model_name)57 model = bumps_model.Model(kernel)65 if isinstance(model, basestring): 66 model = get_bumps_model(model) 58 67 59 # Load custom parameters, initial values and parameter constraints68 # Load custom parameters, initial values and parameter ranges 60 69 for k, v in custom_params.items(): 61 70 setattr(model, k, v) … … 69 78 setattr(param.bounds, "limits", v) 70 79 71 if False: # have sans data80 if False: # for future implementation 72 81 M_sesans = bumps_model.Experiment(data=data, model=model) 73 82 M_sans = bumps_model.Experiment(data=sans_data, model=model) -
sasmodels/data.py
r7824276 r84db7a5 440 440 441 441 if use_data or use_theory: 442 is_tof = np.any(data.lam!=data.lam[0]) 442 443 if num_plots > 1: 443 444 plt.subplot(1, num_plots, 1) 444 445 if use_data: 445 plt.errorbar(data.x, data.y, yerr=data.dy) 446 if is_tof: 447 plt.errorbar(data.x, np.log(data.y)/(data.lam*data.lam), yerr=data.dy/data.y/(data.lam*data.lam)) 448 else: 449 plt.errorbar(data.x, data.y, yerr=data.dy) 446 450 if theory is not None: 447 plt.plot(data.x, theory, '-', hold=True) 451 if is_tof: 452 plt.plot(data.x, np.log(theory)/(data.lam*data.lam), '-', hold=True) 453 else: 454 plt.plot(data.x, theory, '-', hold=True) 448 455 if limits is not None: 449 456 plt.ylim(*limits) 450 plt.xlabel('spin echo length (nm)') 451 plt.ylabel('polarization (P/P0)') 457 458 plt.xlabel('spin echo length ({})'.format(data._xunit)) 459 if is_tof: 460 plt.ylabel('(Log (P/P$_0$))/$\lambda^2$') 461 else: 462 plt.ylabel('polarization (P/P0)') 463 452 464 453 465 if resid is not None: … … 455 467 plt.subplot(1, num_plots, (use_data or use_theory) + 1) 456 468 plt.plot(data.x, resid, 'x') 457 plt.xlabel('spin echo length ( nm)')469 plt.xlabel('spin echo length ({})'.format(data._xunit)) 458 470 plt.ylabel('residuals (P/P0)') 459 471 -
sasmodels/models/hardsphere.py
raa2edb2 r84db7a5 7 7 the maths needs to be modified (no \Beta(Q) correction yet in sasview). 8 8 9 radius_effectiveis the effective hard sphere radius.9 effect_radius is the effective hard sphere radius. 10 10 volfraction is the volume fraction occupied by the spheres. 11 11 … … 53 53 systems. Though strictly the maths needs to be modified - 54 54 which sasview does not do yet. 55 radius_effectiveis the hard sphere radius55 effect_radius is the hard sphere radius 56 56 volfraction is the volume fraction occupied by the spheres. 57 57 """ … … 60 60 61 61 # ["name", "units", default, [lower, upper], "type","description"], 62 parameters = [[" radius_effective", "Ang", 50.0, [0, inf], "volume",62 parameters = [["effect_radius", "Ang", 50.0, [0, inf], "volume", 63 63 "effective radius of hard sphere"], 64 64 ["volfraction", "", 0.2, [0, 0.74], "", … … 75 75 double D,A,B,G,X,X2,X4,S,C,FF,HARDSPH; 76 76 77 if(fabs( radius_effective) < 1.E-12) {77 if(fabs(effect_radius) < 1.E-12) { 78 78 HARDSPH=1.0; 79 79 return(HARDSPH); … … 84 84 A= (1.+2.*volfraction)*D; 85 85 A *=A; 86 X=fabs(q* radius_effective*2.0);86 X=fabs(q*effect_radius*2.0); 87 87 88 88 if(X < 5.E-06) { … … 147 147 # VR defaults to 1.0 148 148 149 demo = dict( radius_effective=200, volfraction=0.2, radius_effective_pd=0.1, radius_effective_pd_n=40)149 demo = dict(effect_radius=200, volfraction=0.2, effect_radius_pd=0.1, effect_radius_pd_n=40) 150 150 oldname = 'HardsphereStructure' 151 oldpars = dict( radius_effective="effect_radius",radius_effective_pd="effect_radius_pd",radius_effective_pd_n="effect_radius_pd_n")151 oldpars = dict(effect_radius="effect_radius",effect_radius_pd="effect_radius_pd",effect_radius_pd_n="effect_radius_pd_n") 152 152 # Q=0.001 is in the Taylor series, low Q part, so add Q=0.1, assuming double precision sasview is correct 153 153 tests = [ 154 [ {'scale': 1.0, 'background' : 0.0, ' radius_effective' : 50.0, 'volfraction' : 0.2,155 ' radius_effective_pd' : 0}, [0.001,0.1], [0.209128,0.930587]]154 [ {'scale': 1.0, 'background' : 0.0, 'effect_radius' : 50.0, 'volfraction' : 0.2, 155 'effect_radius_pd' : 0}, [0.001,0.1], [0.209128,0.930587]] 156 156 ] 157 157 # ADDED by: RKH ON: 16Mar2016 using equations from FISH as better than orig sasview, see notes above. Added Taylor expansions at small Q,
Note: See TracChangeset
for help on using the changeset viewer.