Changeset ead4bd5 in sasmodels
- Timestamp:
- Mar 18, 2016 3:13:16 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:
- c079f50
- Parents:
- eec5fd6 (diff), 5bb9c79 (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:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/genmodel.py
rc094758 r735507b 77 77 78 78 79 # Generate image (comment IF for 1D/2D for the moment) and generate only 1D79 # Generate image 80 80 fig_height = 3.0 # in 81 81 fig_left = 0.6 # in … … 109 109 fig = plt.figure(figsize=aspect) 110 110 ax1d = fig.add_axes([ax_left, ax_bottom, ax_width, ax_height]) 111 plot_1d(model, opts, ax1d)111 plot_1d(model, opts, ax1d) 112 112 113 113 # Save image in model/img -
example/sesansfit.py
r4554131 r5bb9c79 14 14 return model 15 15 16 def sesans_fit(file, model _name, initial_vals={}, custom_params={}, param_range=[], acceptance_angle=None):16 def sesans_fit(file, model, initial_vals={}, custom_params={}, param_range=[], acceptance_angle=None): 17 17 """ 18 18 -
sasmodels/sasview_model.py
rfcd7bbd r2622b3f 17 17 from copy import deepcopy 18 18 import warnings 19 import collections 19 20 20 21 import numpy as np … … 57 58 ## TODO: reorganize parameter handling 58 59 self.details = dict() 59 self.params = dict()60 self.params = collections.OrderedDict() 60 61 self.dispersion = dict() 61 62 partype = model.info['partype'] 63 62 64 for p in model.info['parameters']: 63 65 self.params[p.name] = p.default -
sasmodels/models/adsorbed_layer.py
rf10bc52 r4f4e0d5 6 6 7 7 r""" 8 This model describes the scattering from a layer of surfactant or polymer adsorbed on spherical particles under the conditions that (i) the particles (cores) are contrast-matched to the dispersion medium, (ii) *S(Q)* ~ 1 (ie, the particle volume fraction is dilute), (iii) the particle radius is >> layer thickness (ie, the interface is locally flat), and (iv) scattering from excess unadsorbed adsorbate in the bulk medium is absent or has been corrected for.8 This model describes the scattering from a layer of surfactant or polymer adsorbed on large, smooth, notionally spherical particles under the conditions that (i) the particles (cores) are contrast-matched to the dispersion medium, (ii) *S(Q)* ~ 1 (ie, the particle volume fraction is dilute), (iii) the particle radius is >> layer thickness (ie, the interface is locally flat), and (iv) scattering from excess unadsorbed adsorbate in the bulk medium is absent or has been corrected for. 9 9 10 10 Unlike many other core-shell models, this model does not assume any form for the density distribution of the adsorbed species normal to the interface (cf, a core-shell model normally assumes the density distribution to be a homogeneous step-function). For comparison, if the thickness of a (traditional core-shell like) step function distribution is *t*, the second moment about the mean of the density distribution (ie, the distance of the centre-of-mass of the distribution from the interface), |sigma| = sqrt((*t* :sup:`2` )/12). … … 34 34 35 35 description = """ 36 Evaluates the scattering from particles36 Evaluates the scattering from large particles 37 37 with an adsorbed layer of surfactant or 38 38 polymer, independent of the form of the … … 42 42 43 43 # ["name", "units", default, [lower, upper], "type", "description"], 44 parameters = [["second_moment", "Ang", 23.0, [0.0, inf], "", "Second moment "],45 ["adsorbed_amount", "mg/m2", 1.9, [0.0, inf], "", "Adsorbed amount "],46 ["density_ poly", "g/cm3", 0.7, [0.0, inf], "", "Polymer density"],47 ["radius", "Ang", 500.0, [0.0, inf], "", " Particle radius"],48 ["volfraction", "None", 0.14, [0.0, inf], "", " Particle volfraction"],49 [" polymer_sld", "1/Ang^2", 1.5e-06, [-inf, inf], "", "PolymerSLD"],50 ["s olvent_sld", "1/Ang^2", 6.3e-06, [-inf, inf], "", "Solvent SLD"]]44 parameters = [["second_moment", "Ang", 23.0, [0.0, inf], "", "Second moment of polymer distribution"], 45 ["adsorbed_amount", "mg/m2", 1.9, [0.0, inf], "", "Adsorbed amount of polymer"], 46 ["density_shell", "g/cm3", 0.7, [0.0, inf], "", "Bulk density of polymer in the shell"], 47 ["radius", "Ang", 500.0, [0.0, inf], "", "Core particle radius"], 48 ["volfraction", "None", 0.14, [0.0, inf], "", "Core particle volume fraction"], 49 ["sld_shell", "1e-6/Ang^2", 1.5, [-inf, inf], "sld", "Polymer shell SLD"], 50 ["sld_solvent", "1e-6/Ang^2", 6.3, [-inf, inf], "sld", "Solvent SLD"]] 51 51 52 52 # NB: Scale and Background are implicit parameters on every model 53 def Iq(q, second_moment, adsorbed_amount, density_ poly, radius,54 volfraction, polymer_sld, solvent_sld):53 def Iq(q, second_moment, adsorbed_amount, density_shell, radius, 54 volfraction, sld_shell, sld_solvent): 55 55 # pylint: disable = missing-docstring 56 deltarhosqrd = (polymer_sld - solvent_sld) * (polymer_sld - solvent_sld) 57 numerator = 6.0 * pi * volfraction * (adsorbed_amount * adsorbed_amount) 58 denominator = (q * q) * (density_poly * density_poly) * radius 59 eterm = exp(-1.0 * (q * q) * (second_moment * second_moment)) 60 #scale by 10^10 for units conversion to cm^-1 61 inten = 1.0e+10 * deltarhosqrd * ((numerator / denominator) * eterm) 56 # deltarhosqrd = (sld_shell - sld_solvent) * (sld_shell - sld_solvent) 57 # numerator = 6.0 * pi * volfraction * (adsorbed_amount * adsorbed_amount) 58 # denominator = (q * q) * (density_shell * density_shell) * radius 59 # eterm = exp(-1.0 * (q * q) * (second_moment * second_moment)) 60 # #scale by 10^-2 for units conversion to cm^-1 61 # inten = 1.0e-02 * deltarhosqrd * ((numerator / denominator) * eterm) 62 aa = (sld_shell - sld_solvent) * adsorbed_amount / q / density_shell 63 bb = q * second_moment 64 #scale by 10^-2 for units conversion to cm^-1 65 inten = 6.0e-02 * pi * volfraction * aa * aa * exp(-bb * bb) / radius 62 66 return inten 63 67 Iq.vectorized = True # Iq accepts an array of q values … … 71 75 second_moment = 23.0, 72 76 adsorbed_amount = 1.9, 73 density_ poly= 0.7,77 density_shell = 0.7, 74 78 radius = 500.0, 75 79 volfraction = 0.14, 76 polymer_sld = 1.5e-06,77 s olvent_sld = 6.3e-06,80 sld_shell = 1.5, 81 sld_solvent = 6.3, 78 82 background = 0.0) 79 83 … … 82 86 second_moment = 'second_moment', 83 87 adsorbed_amount = 'ads_amount', 84 density_ poly= 'density_poly',88 density_shell = 'density_poly', 85 89 radius = 'radius_core', 86 90 volfraction = 'volf_cores', 87 polymer_sld= 'sld_poly',88 s olvent_sld= 'sld_solv',91 sld_shell = 'sld_poly', 92 sld_solvent = 'sld_solv', 89 93 background = 'background') 90 94 … … 92 96 tests = [ 93 97 [{'scale': 1.0, 'second_moment': 23.0, 'adsorbed_amount': 1.9, 94 'density_ poly': 0.7, 'radius': 500.0, 'volfraction': 0.14,95 ' polymer_sld': 1.5e-06, 'solvent_sld': 6.3e-06, 'background': 0.0},98 'density_shell': 0.7, 'radius': 500.0, 'volfraction': 0.14, 99 'sld_shell': 1.5, 'sld_solvent': 6.3, 'background': 0.0}, 96 100 [0.0106939, 0.469418], [73.741, 9.65391e-53]], 97 101 ] 102 # ADDED by: SMK ON: 16Mar2016 convert from sasview, check vs SANDRA, 18Mar2016 RKH some edits & renaming
Note: See TracChangeset
for help on using the changeset viewer.