qpms/qpms/cymaterials.pxd

47 lines
1.6 KiB
Cython

from .qpms_cdefs cimport qpms_permittivity_interpolator_t, qpms_epsmu_generator_t, qpms_epsmu_t, qpms_ldparams_t
cdef extern from "materials.h":
const qpms_ldparams_t *const QPMS_LDPARAMS_AG
const qpms_ldparams_t *const QPMS_LDPARAMS_AU
const qpms_ldparams_t *const QPMS_LDPARAMS_CU
const qpms_ldparams_t *const QPMS_LDPARAMS_AL
const qpms_ldparams_t *const QPMS_LDPARAMS_CR
const qpms_ldparams_t *const QPMS_LDPARAMS_TI
const qpms_ldparams_t *const QPMS_LDPARAMS_BE
const qpms_ldparams_t *const QPMS_LDPARAMS_NI
const qpms_ldparams_t *const QPMS_LDPARAMS_PD
const qpms_ldparams_t *const QPMS_LDPARAMS_PT
const qpms_ldparams_t *const QPMS_LDPARAMS_W
cdef class MaterialInterpolator:
cdef qpms_permittivity_interpolator_t *interp
cdef readonly double omegamin
cdef readonly double omegamax
cdef inline void *rawpointer(self):
return <void *>(self.interp)
cdef class EpsMu:
cdef public qpms_epsmu_t em
cdef inline void *rawpointer(self):
return <void *>&(self.em)
cdef class LorentzDrudeModel:
cdef const qpms_ldparams_t *params
#cdef bint owns_params
cdef inline void *rawpointer(self):
return <void *>(self.params)
cdef class _CLorentzDrudeModel:
''' Drude-Lorentz parameters initialised from raw C structure. Private, do not use. '''
cdef const qpms_ldparams_t *params
cdef inline void *rawpointer(self):
return <void *>(self.params)
@staticmethod
cdef link(const qpms_ldparams_t *params) # The actual constructor
cdef class EpsMuGenerator:
cdef qpms_epsmu_generator_t g
cdef object holder
cdef qpms_epsmu_generator_t raw(self)