Esempio n. 1
0
 def Iq_sphere(self, pars, resolution):
     from sasmodels import core
     kernel = core.make_kernel(self.model, [resolution.q_calc])
     theory = core.call_kernel(kernel, pars)
     result = resolution.apply(theory)
     kernel.release()
     return result
Esempio n. 2
0
 def Iq_sphere(self, pars, resolution):
     from sasmodels import core
     kernel = core.make_kernel(self.model, [resolution.q_calc])
     theory = core.call_kernel(kernel, pars)
     result = resolution.apply(theory)
     kernel.release()
     return result
Esempio n. 3
0
def _eval_demo_1d(resolution, title):
    import sys
    from sasmodels import core
    name = sys.argv[1] if len(sys.argv) > 1 else 'cylinder'

    if name == 'cylinder':
        pars = {'length': 210, 'radius': 500}
    elif name == 'teubner_strey':
        pars = {'a2': 0.003, 'c1': -1e4, 'c2': 1e10, 'background': 0.312643}
    elif name == 'sphere' or name == 'spherepy':
        pars = TEST_PARS_SLIT_SPHERE
    elif name == 'ellipsoid':
        pars = {
            'scale': 0.05,
            'rpolar': 500,
            'requatorial': 15000,
            'sld': 6,
            'solvent_sld': 1,
        }
    else:
        pars = {}
    defn = core.load_model_definition(name)
    model = core.load_model(defn)

    kernel = core.make_kernel(model, [resolution.q_calc])
    theory = core.call_kernel(kernel, pars)
    Iq = resolution.apply(theory)

    if isinstance(resolution, Slit1D):
        width, height = resolution.width, resolution.height
        Iq_romb = romberg_slit_1d(resolution.q, width, height, model, pars)
    else:
        dq = resolution.q_width
        Iq_romb = romberg_pinhole_1d(resolution.q, dq, model, pars)

    import matplotlib.pyplot as plt
    plt.loglog(resolution.q_calc, theory, label='unsmeared')
    plt.loglog(resolution.q, Iq, label='smeared', hold=True)
    plt.loglog(resolution.q, Iq_romb, label='romberg smeared', hold=True)
    plt.legend()
    plt.title(title)
    plt.xlabel("Q (1/Ang)")
    plt.ylabel("I(Q) (1/cm)")
Esempio n. 4
0
def _eval_demo_1d(resolution, title):
    import sys
    from sasmodels import core
    name = sys.argv[1] if len(sys.argv) > 1 else 'cylinder'

    if name == 'cylinder':
        pars = {'length':210, 'radius':500}
    elif name == 'teubner_strey':
        pars = {'a2':0.003, 'c1':-1e4, 'c2':1e10, 'background':0.312643}
    elif name == 'sphere' or name == 'spherepy':
        pars = TEST_PARS_SLIT_SPHERE
    elif name == 'ellipsoid':
        pars = {
            'scale':0.05,
            'rpolar':500, 'requatorial':15000,
            'sld':6, 'solvent_sld': 1,
            }
    else:
        pars = {}
    defn = core.load_model_definition(name)
    model = core.load_model(defn)

    kernel = core.make_kernel(model, [resolution.q_calc])
    theory = core.call_kernel(kernel, pars)
    Iq = resolution.apply(theory)

    if isinstance(resolution, Slit1D):
        width, height = resolution.width, resolution.height
        Iq_romb = romberg_slit_1d(resolution.q, width, height, model, pars)
    else:
        dq = resolution.q_width
        Iq_romb = romberg_pinhole_1d(resolution.q, dq, model, pars)

    import matplotlib.pyplot as plt
    plt.loglog(resolution.q_calc, theory, label='unsmeared')
    plt.loglog(resolution.q, Iq, label='smeared', hold=True)
    plt.loglog(resolution.q, Iq_romb, label='romberg smeared', hold=True)
    plt.legend()
    plt.title(title)
    plt.xlabel("Q (1/Ang)")
    plt.ylabel("I(Q) (1/cm)")
Esempio n. 5
0
def eval_form(q, form, pars):
    from sasmodels import core
    kernel = core.make_kernel(form, [q])
    theory = core.call_kernel(kernel, pars)
    kernel.release()
    return theory
Esempio n. 6
0
def eval_form(q, form, pars):
    from sasmodels import core
    kernel = core.make_kernel(form, [q])
    theory = core.call_kernel(kernel, pars)
    kernel.release()
    return theory