Symmetrisation of the interpolated T-matrix
Former-commit-id: 1a136d1ea8e39aeee418daba0c944410fb7d786f
This commit is contained in:
parent
04923d0b45
commit
d07d37c5af
|
@ -7,6 +7,7 @@ from qpms_cdefs cimport *
|
||||||
cimport cython
|
cimport cython
|
||||||
from cython.parallel cimport parallel, prange
|
from cython.parallel cimport parallel, prange
|
||||||
import enum
|
import enum
|
||||||
|
import warnings
|
||||||
|
|
||||||
|
|
||||||
# Here will be enum and dtype definitions; maybe move these to a separate file
|
# Here will be enum and dtype definitions; maybe move these to a separate file
|
||||||
|
@ -1084,6 +1085,17 @@ cdef class TMatrixInterpolator:
|
||||||
&(self.nfreqs), &(self.freqs), &(self.freqs_su),
|
&(self.nfreqs), &(self.freqs), &(self.freqs_su),
|
||||||
&(self.tmatrices_array), &(self.tmdata)):
|
&(self.tmatrices_array), &(self.tmdata)):
|
||||||
raise IOError("Could not read T-matrix from %s" % filename)
|
raise IOError("Could not read T-matrix from %s" % filename)
|
||||||
|
if 'symmetrise' in kwargs:
|
||||||
|
sym = kwargs['symmetrise']
|
||||||
|
if isinstance(sym, FinitePointGroup):
|
||||||
|
if QPMS_SUCCESS != qpms_symmetrise_tmdata_finite_group(
|
||||||
|
self.tmdata, self.nfreqs, self.spec.rawpointer(),
|
||||||
|
(<FinitePointGroup?>sym).rawpointer()):
|
||||||
|
raise Exception("This should not happen.")
|
||||||
|
atol = kwargs['atol'] if 'atol' in kwargs else 1e-16
|
||||||
|
qpms_czero_roundoff_clean(self.tmdata, self.nfreqs * len(bspec)**2, atol)
|
||||||
|
else:
|
||||||
|
warnings.warn('symmetrise argument type not supported; ignoring.')
|
||||||
self.interp = qpms_tmatrix_interpolator_create(self.nfreqs,
|
self.interp = qpms_tmatrix_interpolator_create(self.nfreqs,
|
||||||
self.freqs, self.tmatrices_array, gsl_interp_cspline)
|
self.freqs, self.tmatrices_array, gsl_interp_cspline)
|
||||||
if not self.interp: raise Exception("Unexpected NULL at interpolator creation.")
|
if not self.interp: raise Exception("Unexpected NULL at interpolator creation.")
|
||||||
|
|
Loading…
Reference in New Issue