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
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)")
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)")
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