[Python] Wall coverages can be set using a dict or string
This commit is contained in:
parent
0562f18100
commit
c1fda5ca3c
3 changed files with 13 additions and 8 deletions
|
|
@ -472,6 +472,7 @@ cdef extern from "cantera/zeroD/Wall.h":
|
|||
void setHeatFlux(CxxFunc1*)
|
||||
void setKinetics(CxxKinetics*, CxxKinetics*)
|
||||
void setCoverages(int, double*)
|
||||
void setCoverages(int, Composition&) except +
|
||||
void syncCoverages(int)
|
||||
double vdot(double)
|
||||
double Q(double)
|
||||
|
|
|
|||
|
|
@ -324,6 +324,11 @@ cdef class WallSurface:
|
|||
def __set__(self, coverages):
|
||||
if self._kinetics is None:
|
||||
raise Exception("Can't set coverages before assigning kinetics manager.")
|
||||
|
||||
if isinstance(coverages, (dict, str, unicode, bytes)):
|
||||
self.cxxwall.setCoverages(self.side, comp_map(coverages))
|
||||
return
|
||||
|
||||
if len(coverages) != self._kinetics.n_species:
|
||||
raise ValueError('Incorrect number of site coverages specified')
|
||||
cdef np.ndarray[np.double_t, ndim=1] data = \
|
||||
|
|
|
|||
|
|
@ -814,12 +814,10 @@ class TestWallKinetics(utilities.CanteraTest):
|
|||
self.make_reactors()
|
||||
self.w.left.kinetics = self.interface
|
||||
|
||||
C = np.zeros(self.interface.n_species)
|
||||
C[0] = 0.3
|
||||
C[4] = 0.7
|
||||
|
||||
self.w.left.coverages = C
|
||||
self.assertArrayNear(self.w.left.coverages, C)
|
||||
self.w.left.coverages = {'c6HH':0.3, 'c6HM':0.7}
|
||||
self.assertNear(self.w.left.coverages[0], 0.3)
|
||||
self.assertNear(self.w.left.coverages[1], 0.0)
|
||||
self.assertNear(self.w.left.coverages[4], 0.7)
|
||||
self.net.advance(1e-5)
|
||||
C_left = self.w.left.coverages
|
||||
|
||||
|
|
@ -829,8 +827,9 @@ class TestWallKinetics(utilities.CanteraTest):
|
|||
|
||||
self.make_reactors()
|
||||
self.w.right.kinetics = self.interface
|
||||
self.w.right.coverages = C
|
||||
self.assertArrayNear(self.w.right.coverages, C)
|
||||
self.w.right.coverages = 'c6HH:0.3, c6HM:0.7'
|
||||
self.assertNear(self.w.right.coverages[0], 0.3)
|
||||
self.assertNear(self.w.right.coverages[4], 0.7)
|
||||
self.assertEqual(self.w.left.kinetics, None)
|
||||
with self.assertRaises(Exception):
|
||||
self.w.left.coverages
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue