From 210ddaa527487a46e934cd44fd57fe24b8050894 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ne=C4=8Dada?= Date: Thu, 19 Nov 2020 04:37:57 +0200 Subject: [PATCH] ScatteringSystem, ... definitions to pxd file --- qpms/qpms_c.pxd | 31 ++++++++++++++++++++++++++++++- qpms/qpms_c.pyx | 18 ------------------ 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/qpms/qpms_c.pxd b/qpms/qpms_c.pxd index a0fb85a..55b3dd0 100644 --- a/qpms/qpms_c.pxd +++ b/qpms/qpms_c.pxd @@ -1,4 +1,6 @@ -from .qpms_cdefs cimport qpms_finite_group_t +from .qpms_cdefs cimport qpms_finite_group_t, qpms_scatsys_t, qpms_iri_t,\ + qpms_scatsys_at_omega_t, qpms_scatsys_at_omega_k_t +from .cymaterials cimport EpsMuGenerator cdef class FinitePointGroup: cdef readonly bint owns_data @@ -6,3 +8,30 @@ cdef class FinitePointGroup: cdef inline qpms_finite_group_t *rawpointer(self): return self.G + + +cdef class ScatteringSystem: + cdef list tmgobjs # here we keep the references to occuring TMatrixFunctions (and hence BaseSpecs and TMatrixGenerators) + #cdef list Tmatrices # Here we keep the references to occuring T-matrices + cdef EpsMuGenerator medium_holder # Here we keep the reference to medium generator + cdef qpms_scatsys_t *s + cdef FinitePointGroup sym + + cdef qpms_iri_t iri_py2c(self, iri, allow_None=?) + + +cdef class _ScatteringSystemAtOmegaK: + cdef qpms_scatsys_at_omega_k_t sswk + cdef _ScatteringSystemAtOmega ssw_pyref + + cdef inline qpms_scatsys_at_omega_k_t *rawpointer(self): + return &self.sswk + + +cdef class _ScatteringSystemAtOmega: + cdef qpms_scatsys_at_omega_t *ssw + cdef ScatteringSystem ss_pyref + + cdef inline qpms_scatsys_at_omega_t *rawpointer(self): + return self.ssw + diff --git a/qpms/qpms_c.pyx b/qpms/qpms_c.pyx index 780f8a9..ac54bad 100644 --- a/qpms/qpms_c.pyx +++ b/qpms/qpms_c.pyx @@ -369,12 +369,6 @@ cdef class ScatteringSystem: Currently, it does not have a standard constructor. Use the ScatteringSystem.create() method instead. ''' - cdef list tmgobjs # here we keep the references to occuring TMatrixFunctions (and hence BaseSpecs and TMatrixGenerators) - #cdef list Tmatrices # Here we keep the references to occuring T-matrices - cdef EpsMuGenerator medium_holder # Here we keep the reference to medium generator - cdef qpms_scatsys_t *s - cdef FinitePointGroup sym - cdef qpms_iri_t iri_py2c(self, iri, allow_None = True): if iri is None and allow_None: return QPMS_NO_IRREP @@ -1009,12 +1003,6 @@ cdef class _ScatteringSystemAtOmegaK: This represents an infinite periodic system with a given (fixed) frequency and Bloch vector. ''' - cdef qpms_scatsys_at_omega_k_t sswk - cdef _ScatteringSystemAtOmega ssw_pyref - - cdef qpms_scatsys_at_omega_k_t *rawpointer(self): - return &self.sswk - property eta: """Ewald parameter η""" def __get__(self): @@ -1121,9 +1109,6 @@ cdef class _ScatteringSystemAtOmega: that keeps the T-matrix and background data evaluated at specific frequency. ''' - cdef qpms_scatsys_at_omega_t *ssw - cdef ScatteringSystem ss_pyref - def check(self): # cdef instead? if not self.ssw: raise ValueError("_ScatteringSystemAtOmega's ssw-pointer not set. You must not use the default constructor; ScatteringSystem.create() instead") @@ -1152,9 +1137,6 @@ cdef class _ScatteringSystemAtOmega: qpms_scatsysw_apply_Tmatrices_full(&target_view[0], &a_view[0], self.ssw) return target_np - cdef qpms_scatsys_at_omega_t *rawpointer(self): - return self.ssw - def scatter_solver(self, iri=None, k=None): self.check() cdef _ScatteringSystemAtOmegaK sswk # used only for periodic systems