Changeset e187b25 in sasmodels


Ignore:
Timestamp:
Aug 5, 2016 10:48:52 AM (8 years ago)
Author:
Paul Kienzle <pkienzle@…>
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:
785cbec
Parents:
50ec515
Message:

onion, core multi shell: fix profile plots

Location:
sasmodels/models
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/models/core_multi_shell.py

    r42356c8 re187b25  
    105105def profile(sld_core, radius, sld_solvent, n, sld, thickness): 
    106106    """ 
    107     SLD profile 
    108      
    109     :return: (r, beta) where r is a list of radius of the transition points\ 
    110       and beta is a list of the corresponding SLD values. 
    111  
     107    Returns the SLD profile *r* (Ang), and *rho* (1e-6/Ang^2). 
    112108    """ 
    113     total_radius = 1.25*(sum(thickness[:n]) + radius + 1) 
    114  
    115109    r = [] 
    116     beta = [] 
     110    rho = [] 
    117111 
    118112    # add in the core 
    119113    r.append(0) 
    120     beta.append(sld) 
     114    rho.append(sld_core) 
    121115    r.append(radius) 
    122     beta.append(sld) 
     116    rho.append(sld_core) 
    123117 
    124118    # add in the shells 
    125119    for k in range(n): 
    126120        # Left side of each shells 
    127         r0 = r[-1] 
    128         r.append(r0) 
    129         beta.append(sld[k]) 
    130         r.append(r0 + thickness[k]) 
    131         beta.append(sld[k]) 
     121        r.append(r[-1]) 
     122        rho.append(sld[k]) 
     123        r.append(r[-1] + thickness[k]) 
     124        rho.append(sld[k]) 
    132125    # add in the solvent 
    133126    r.append(r[-1]) 
    134     beta.append(sld_solvent) 
    135     r.append(total_radius) 
    136     beta.append(sld_solvent) 
     127    rho.append(sld_solvent) 
     128    r.append(r[-1]*1.25) 
     129    rho.append(sld_solvent) 
    137130 
    138     return np.asarray(r), np.asarray(beta) 
     131    return np.asarray(r), np.asarray(rho) 
    139132 
    140133def ER(radius, n, thickness): 
  • sasmodels/models/onion.py

    rd119f34 re187b25  
    306306parameters = [["sld_core", "1e-6/Ang^2", 1.0, [-inf, inf], "sld", 
    307307               "Core scattering length density"], 
    308               ["core_radius", "Ang", 200., [0, inf], "volume", 
     308              ["radius_core", "Ang", 200., [0, inf], "volume", 
    309309               "Radius of the core"], 
    310310              ["sld_solvent", "1e-6/Ang^2", 6.4, [-inf, inf], "sld", 
     
    325325single = False 
    326326 
    327 #def Iq(q, *args, **kw): 
    328 #    return q 
    329  
    330327profile_axes = ['Radius (A)', 'SLD (1e-6/A^2)'] 
    331 def profile(core_sld, core_radius, solvent_sld, n_shells, 
    332             in_sld, out_sld, thickness, A): 
     328def profile(sld_core, radius_core, sld_solvent, n_shells, 
     329            sld_in, sld_out, thickness, A): 
    333330    """ 
    334331    Returns shape profile with x=radius, y=SLD. 
    335332    """ 
    336333 
    337     total_radius = 1.25*(sum(thickness[:n_shells]) + core_radius + 1) 
     334    total_radius = 1.25*(sum(thickness[:n_shells]) + radius_core + 1) 
    338335    dr = total_radius/400  # 400 points for a smooth plot 
    339336 
    340337    r = [] 
    341     beta = [] 
     338    rho = [] 
    342339 
    343340    # add in the core 
    344341    r.append(0) 
    345     beta.append(core_sld) 
    346     r.append(core_radius) 
    347     beta.append(core_sld) 
     342    rho.append(sld_core) 
     343    r.append(radius_core) 
     344    rho.append(sld_core) 
    348345 
    349346    # add in the shells 
     
    352349        r0 = r[-1] 
    353350        r.append(r0) 
    354         beta.append(in_sld[k]) 
     351        rho.append(sld_in[k]) 
    355352 
    356353        if fabs(A[k]) < 1.0e-16: 
    357354            # flat shell 
    358355            r.append(r0 + thickness[k]) 
    359             beta.append(out_sld[k]) 
     356            rho.append(sld_out[k]) 
    360357        else: 
    361358            # exponential shell 
     
    363360            # to protect against a thickness0. 
    364361            num_steps = np.floor(thickness[k]/dr) + 1 
    365             slope = (out_sld[k] - in_sld[k])/expm1(A[k]) 
    366             const = (in_sld[k] - slope) 
     362            slope = (sld_out[k] - sld_in[k]) / expm1(A[k]) 
     363            const = (sld_in[k] - slope) 
    367364            for rk in np.linspace(0, thickness[k], num_steps+1): 
    368365                r.append(r0+rk) 
    369                 beta.append(slope*exp(A[k]*rk/thickness[k]) + const) 
     366                rho.append(slope*exp(A[k]*rk/thickness[k]) + const) 
    370367 
    371368    # add in the solvent 
    372369    r.append(r[-1]) 
    373     beta.append(solvent_sld) 
     370    rho.append(sld_solvent) 
    374371    r.append(total_radius) 
    375     beta.append(solvent_sld) 
    376  
    377     return np.asarray(r), np.asarray(beta)*1e-6 
     372    rho.append(sld_solvent) 
     373 
     374    return np.asarray(r), np.asarray(rho) 
    378375 
    379376def ER(core_radius, n, thickness): 
Note: See TracChangeset for help on using the changeset viewer.