From 81a8274e990d2a714dadd515df92832f60e83ab7 Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Tue, 12 Nov 2013 23:44:46 +0000 Subject: [PATCH] [Cython] Add 'atomic_weight' method and 'atomic_weights' property Resolves Issue 185. --- interfaces/cython/cantera/_cantera.pxd | 1 + interfaces/cython/cantera/thermo.pyx | 9 +++++++++ 2 files changed, 10 insertions(+) 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):