The patch is based on upstream commits: https://github.com/Cantera/cantera/commit/7f7f37255dfa561c518061a816d9e4ed67dfe1a4 https://github.com/Cantera/cantera/commit/3d86636ee4c231def3097d117f9679e83a1f6dde The upstream issue: https://github.com/Cantera/cantera/issues/2114 diff '--color=auto' -Naur a/interfaces/cython/cantera/solutionbase.pyx b/interfaces/cython/cantera/solutionbase.pyx --- a/interfaces/cython/cantera/solutionbase.pyx +++ b/interfaces/cython/cantera/solutionbase.pyx @@ -54,7 +54,7 @@ cxx_soln.get().setKinetics(newKinetics(stringify("none"))) cxx_soln.get().setTransportModel(stringify("none")) _assign_Solution(self, cxx_soln, True) - self._selected_species = np.ndarray(0, dtype=np.uint64) + self._selected_species = np.ndarray(0, dtype=np.intp) def _cinit(self, infile="", name="", adjacent=(), origin=None, yaml=None, thermo=None, species=(), kinetics=None, reactions=(), **kwargs): @@ -82,7 +82,7 @@ _assign_Solution(self, CxxNewSolution(), True) self._init_parts(thermo, species, kinetics, transport, adjacent, reactions) - self._selected_species = np.ndarray(0, dtype=np.uint64) + self._selected_species = np.ndarray(0, dtype=np.intp) def __init__(self, *args, **kwargs): if isinstance(self, Transport) and kwargs.get("init", True): @@ -395,9 +395,8 @@ def __set__(self, species): if isinstance(species, (str, int)): species = (species,) - self._selected_species.resize(len(species)) - for i,spec in enumerate(species): - self._selected_species[i] = self.species_index(spec) + selection = [self.species_index(spec) for spec in species] + self._selected_species = np.array(selection, dtype=np.intp) def __getstate__(self): """Save complete information of the current phase for pickling.""" @@ -480,7 +479,7 @@ cdef _SolutionBase soln = cls(init=False) _assign_Solution(soln, cxx_soln, True) - soln._selected_species = np.ndarray(0, dtype=np.uint64) + soln._selected_species = np.ndarray(0, dtype=np.intp) cdef InterfacePhase iface if isinstance(soln, Interface):