[Python] Convert both dicts and strings to compositionMap

This commit is contained in:
Ray Speth 2015-04-30 23:11:04 -04:00
parent f4715c671f
commit 9e4e73da90
3 changed files with 12 additions and 5 deletions

View file

@ -31,6 +31,9 @@ cdef extern from "cantera/base/xml.h" namespace "Cantera":
XML_Node* findID(string) XML_Node* findID(string)
int nChildren() int nChildren()
cdef extern from "cantera/base/stringUtils.h" namespace "Cantera":
cdef Composition parseCompString(string) except +
cdef extern from "cantera/base/global.h" namespace "Cantera": cdef extern from "cantera/base/global.h" namespace "Cantera":
cdef void CxxAddDirectory "Cantera::addDirectory" (string) cdef void CxxAddDirectory "Cantera::addDirectory" (string)
cdef size_t CxxNpos "Cantera::npos" cdef size_t CxxNpos "Cantera::npos"

View file

@ -677,8 +677,8 @@ class TestReaction(utilities.CanteraTest):
def test_falloff(self): def test_falloff(self):
r = ct.FalloffReaction() r = ct.FalloffReaction()
r.reactants = {'OH':2} r.reactants = 'OH:2'
r.products = {'H2O2':1} r.products = 'H2O2:1'
r.high_rate = ct.Arrhenius(7.4e10, -0.37, 0.0) r.high_rate = ct.Arrhenius(7.4e10, -0.37, 0.0)
r.low_rate = ct.Arrhenius(2.3e12, -0.9, -1700*1000*4.184) r.low_rate = ct.Arrhenius(2.3e12, -0.9, -1700*1000*4.184)
r.falloff = ct.TroeFalloff((0.7346, 94, 1756, 5182)) r.falloff = ct.TroeFalloff((0.7346, 94, 1756, 5182))
@ -724,8 +724,8 @@ class TestReaction(utilities.CanteraTest):
species = ct.Species.listFromFile('pdep-test.cti') species = ct.Species.listFromFile('pdep-test.cti')
r = ct.ChebyshevReaction() r = ct.ChebyshevReaction()
r.reactants = {'R5': 1, 'H': 1} r.reactants = 'R5:1, H:1'
r.products = {'P5A': 1, 'P5B': 1} r.products = 'P5A:1, P5B:1'
r.set_parameters(Tmin=300.0, Tmax=2000.0, Pmin=1000, Pmax=10000000, r.set_parameters(Tmin=300.0, Tmax=2000.0, Pmin=1000, Pmax=10000000,
coeffs=[[ 5.28830e+00, -1.13970e+00, -1.20590e-01, 1.60340e-02], coeffs=[[ 5.28830e+00, -1.13970e+00, -1.20590e-01, 1.60340e-02],
[ 1.97640e+00, 1.00370e+00, 7.28650e-03, -3.04320e-02], [ 1.97640e+00, 1.00370e+00, 7.28650e-03, -3.04320e-02],

View file

@ -35,7 +35,11 @@ def appdelete():
""" Delete all global Cantera C++ objects """ """ Delete all global Cantera C++ objects """
CxxAppdelete() CxxAppdelete()
cdef Composition comp_map(dict X) except *: cdef Composition comp_map(X) except *:
if isinstance(X, (str, unicode, bytes)):
return parseCompString(stringify(X))
# assume X is dict-like
cdef Composition m cdef Composition m
for species,value in X.items(): for species,value in X.items():
m[stringify(species)] = value m[stringify(species)] = value