def sasview_rpa(q, pars): from sasmodels.models import rpa from sasmodels.compare import eval_sasview from sasmodels.data import empty_data1D data = empty_data1D(q, resolution=0.0) M = eval_sasview(rpa, data) return M(**pars)
def _sasmodels_Iq(kernel, q, pars): from sasmodels.data import empty_data1D from sasmodels.direct_model import DirectModel data = empty_data1D(q) calculator = DirectModel(data, kernel) Iq = calculator(**pars) return Iq
def call_ocl(self, x, dtype, platform='ocl'): """ Calculation using sasmodels ocl libraries. """ x = np.asarray(x, dtype) model = core.build_model(self.ocl_function, dtype=dtype) calculator = direct_model.DirectModel(data.empty_data1D(x), model) return calculator(background=0)
def sasmodels_fn(x, dtype, platform='ocl'): """ Calculation using pade approximant. """ from sasmodels import core, data, direct_model model = core.load_model('bessel', dtype=dtype) calculator = direct_model.DirectModel(data.empty_data1D(x), model) return calculator(background=0)
def sasmodels_rpa(q, pars): from sasmodels.models import rpa from sasmodels.core import load_model from sasmodels.direct_model import DirectModel from sasmodels.data import empty_data1D data = empty_data1D(q, resolution=0.0) model = load_model(rpa, dtype="double", platform="dll") #model = load_model(rpa, dtype="single", platform="ocl") M = DirectModel(data, model) return M(**pars)
def build_model(model_name, q, **pars): from sasmodels.core import load_model_info, build_model as build_sasmodel from sasmodels.data import empty_data1D from sasmodels.direct_model import DirectModel model_info = load_model_info(model_name) model = build_sasmodel(model_info, dtype='double!') data = empty_data1D(q) calculator = DirectModel(data, model, cutoff=0) calculator.pars = pars.copy() calculator.pars.setdefault('background', 0) return calculator
def plot_1d(model, opts, ax): q_min, q_max, nq = opts['q_min'], opts['q_max'], opts['nq'] q_min = math.log10(q_min) q_max = math.log10(q_max) q = np.logspace(q_min, q_max, nq) data = empty_data1D(q) calculator = DirectModel(data, model) Iq1D = calculator() ax.plot(q, Iq1D, color='blue', lw=2, label=model_info['name']) ax.set_xlabel(r'$Q \/(\AA^{-1})$') ax.set_ylabel(r'$I(Q) \/(\mathrm{cm}^{-1})$') ax.set_xscale(opts['xscale']) ax.set_yscale(opts['yscale'])
def fitFunction(x, *tmp_params): model = load_model(equation) data = empty_data1D(x) param_dict = dict(zip(param_names, tmp_params)) model_wrapper = Model(model, **param_dict) if value_ranges is not None: for name, values in value_ranges.items(): model_wrapper.__dict__[name].range(values[0], values[1]) func_wrapper = Experiment(data=data, model=model_wrapper) return func_wrapper.theory()
def plot_1d(model, opts, ax): # type: (KernelModel, Dict[str, Any], Axes) -> None """ Create a 1-D image. """ q_min, q_max, nq = opts['q_min'], opts['q_max'], opts['nq'] q_min = math.log10(q_min) q_max = math.log10(q_max) q = np.logspace(q_min, q_max, nq) data = empty_data1D(q) calculator = DirectModel(data, model) Iq1D = calculator() ax.plot(q, Iq1D, color='blue', lw=2, label=model.info.name) ax.set_xlabel(r'$Q \/(\AA^{-1})$') ax.set_ylabel(r'$I(Q) \/(\mathrm{cm}^{-1})$') ax.set_xscale(opts['xscale']) ax.set_yscale(opts['yscale'])