[Python] Fix setting composition using arrays with singleton dimensions

This commit is contained in:
Ray Speth 2016-04-02 13:33:51 -04:00
parent deafbf8888
commit 69bec844fd
2 changed files with 9 additions and 0 deletions

View file

@ -112,6 +112,14 @@ class TestThermoPhase(utilities.CanteraTest):
self.assertEqual(list(X), list(Y))
def test_setComposition_singleton(self):
X = np.zeros((1,self.phase.n_species,1))
X[0,2,0] = 1.0
self.phase.X = X
Y = self.phase.Y
self.assertEqual(list(X[0,:,0]), list(Y))
def test_setCompositionString(self):
self.phase.X = 'H2:1.0, O2:1.0'
X = self.phase.X

View file

@ -465,6 +465,7 @@ cdef class ThermoPhase(_SolutionBase):
cdef void _setArray1(self, thermoMethod1d method, values) except *:
cdef np.ndarray[np.double_t, ndim=1] data
values = np.squeeze(values)
if len(values) == self.n_species:
data = np.ascontiguousarray(values, dtype=np.double)
elif len(values) == len(self._selected_species):