Changeset 108e70e in sasmodels for sasmodels/kernelpy.py
- Timestamp:
- Dec 14, 2017 1:08:45 PM (6 years ago)
- Branches:
- master, core_shell_microgels, magnetic_model, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
- Children:
- ef85a09
- Parents:
- df69efa
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/kernelpy.py
r2d81cfe r108e70e 26 26 # pylint: enable=unused-import 27 27 28 logger = logging.getLogger(__name__) 29 28 30 class PyModel(KernelModel): 29 31 """ … … 31 33 """ 32 34 def __init__(self, model_info): 33 # Make sure Iq and Iqxy areavailable and vectorized35 # Make sure Iq is available and vectorized 34 36 _create_default_functions(model_info) 35 37 self.info = model_info 36 38 self.dtype = np.dtype('d') 37 logg ing.info("load python model " + self.info.name)39 logger.info("load python model " + self.info.name) 38 40 39 41 def make_kernel(self, q_vectors): 40 42 q_input = PyInput(q_vectors, dtype=F64) 41 kernel = self.info.Iqxy if q_input.is_2d else self.info.Iq 42 return PyKernel(kernel, self.info, q_input) 43 return PyKernel(self.info, q_input) 43 44 44 45 def release(self): … … 89 90 Callable SAS kernel. 90 91 91 *kernel* is the DllKernel object to call.92 *kernel* is the kernel object to call. 92 93 93 94 *model_info* is the module information … … 104 105 Call :meth:`release` when done with the kernel instance. 105 106 """ 106 def __init__(self, kernel,model_info, q_input):107 def __init__(self, model_info, q_input): 107 108 # type: (callable, ModelInfo, List[np.ndarray]) -> None 108 109 self.dtype = np.dtype('d') … … 110 111 self.q_input = q_input 111 112 self.res = np.empty(q_input.nq, q_input.dtype) 112 self.kernel = kernel113 113 self.dim = '2d' if q_input.is_2d else '1d' 114 114 … … 159 159 # Generate a closure which calls the form_volume if it exists. 160 160 form_volume = model_info.form_volume 161 self._volume = ((lambda: form_volume(*volume_args)) if form_volume 162 else(lambda: 1.0))161 self._volume = ((lambda: form_volume(*volume_args)) if form_volume else 162 (lambda: 1.0)) 163 163 164 164 def __call__(self, call_details, values, cutoff, magnetic): … … 261 261 any functions that are not already marked as vectorized. 262 262 """ 263 # Note: must call create_vector_Iq before create_vector_Iqxy 263 264 _create_vector_Iq(model_info) 264 _create_vector_Iqxy(model_info) # call create_vector_Iq() first265 _create_vector_Iqxy(model_info) 265 266 266 267 … … 280 281 model_info.Iq = vector_Iq 281 282 283 282 284 def _create_vector_Iqxy(model_info): 283 285 """ 284 286 Define Iqxy as a vector function if it exists, or default it from Iq(). 285 287 """ 286 Iq , Iqxy = model_info.Iq, model_info.Iqxy288 Iqxy = getattr(model_info, 'Iqxy', None) 287 289 if callable(Iqxy): 288 290 if not getattr(Iqxy, 'vectorized', False): … … 295 297 vector_Iqxy.vectorized = True 296 298 model_info.Iqxy = vector_Iqxy 297 el if callable(Iq):299 else: 298 300 #print("defaulting Iqxy") 299 301 # Iq is vectorized because create_vector_Iq was already called. 302 Iq = model_info.Iq 300 303 def default_Iqxy(qx, qy, *args): 301 304 """
Note: See TracChangeset
for help on using the changeset viewer.