diff --git a/interfaces/cython/cantera/_cantera.pxd b/interfaces/cython/cantera/_cantera.pxd index a149fb764..09cac5e02 100644 --- a/interfaces/cython/cantera/_cantera.pxd +++ b/interfaces/cython/cantera/_cantera.pxd @@ -69,6 +69,7 @@ cdef extern from "cantera/thermo/ThermoPhase.h" namespace "Cantera": size_t nElements() size_t elementIndex(string) except + string elementName(size_t) except + + double atomicWeight(size_t) except + # species properties size_t nSpecies() diff --git a/interfaces/cython/cantera/thermo.pyx b/interfaces/cython/cantera/thermo.pyx index 85994a847..4669c1509 100644 --- a/interfaces/cython/cantera/thermo.pyx +++ b/interfaces/cython/cantera/thermo.pyx @@ -175,6 +175,15 @@ cdef class ThermoPhase(_SolutionBase): def __get__(self): return [self.element_name(m) for m in range(self.n_elements)] + def atomic_weight(self, m): + """Atomic weight [kg/kmol] of element *m*""" + return self.thermo.atomicWeight(self.element_index(m)) + + property atomic_weights: + """Array of atomic weight [kg/kmol] for each element in the mixture.""" + def __get__(self): + return np.array([self.thermo.atomicWeight(m) for m in range(self.n_elements)]) + property n_species: """Number of species.""" def __get__(self):