diff --git a/interfaces/cython/cantera/onedim.pyx b/interfaces/cython/cantera/onedim.pyx index 764f33c1a..0358de3b2 100644 --- a/interfaces/cython/cantera/onedim.pyx +++ b/interfaces/cython/cantera/onedim.pyx @@ -208,12 +208,9 @@ cdef class Boundary1D(Domain1D): return self.phase.X def __set__(self, X): - cdef np.ndarray[np.double_t, ndim=1] data - if isinstance(X, (str, unicode)): - self.boundary.setMoleFractions(stringify(X)) - else: - data = np.ascontiguousarray(X, dtype=np.double) - self.boundary.setMoleFractions(&data[0]) + self.phase.TPX = None, None, X + cdef np.ndarray[np.double_t, ndim=1] data = self.phase.X + self.boundary.setMoleFractions(&data[0]) property Y: """ diff --git a/interfaces/cython/cantera/test/test_onedim.py b/interfaces/cython/cantera/test/test_onedim.py index e3febd7e8..38b479daa 100644 --- a/interfaces/cython/cantera/test/test_onedim.py +++ b/interfaces/cython/cantera/test/test_onedim.py @@ -47,6 +47,9 @@ class TestOnedim(utilities.CanteraTest): self.assertArrayNear(inlet.X, Xref) self.assertArrayNear(inlet.Y, Yref) + inlet.X = {'H2':0.3, 'O2':0.5, 'AR':0.2} + self.assertNear(inlet.X[gas2.species_index('H2')], 0.3) + def test_unpicklable(self): import pickle gas = ct.Solution('h2o2.xml')