From 6144c6dcd9e0d58a9222d9d49124e35e6e0b04d5 Mon Sep 17 00:00:00 2001 From: Dave Goodwin Date: Thu, 21 Aug 2003 14:27:20 +0000 Subject: [PATCH] add support for surface chem --- Cantera/src/zeroD/Wall.cpp | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/Cantera/src/zeroD/Wall.cpp b/Cantera/src/zeroD/Wall.cpp index 4abb635e8..69597ec41 100644 --- a/Cantera/src/zeroD/Wall.cpp +++ b/Cantera/src/zeroD/Wall.cpp @@ -2,23 +2,48 @@ #include "Wall.h" #include "ReactorBase.h" #include "Func1.h" +#include "../InterfaceKinetics.h" +#include "../SurfPhase.h" namespace Cantera { - Wall::Wall() : m_left(0), m_right(0), m_area(0.0), m_k(0.0), m_rrth(0.0), - m_vf(0), m_qf(0) {} + Wall::Wall() : m_left(0), m_right(0), + m_area(0.0), m_k(0.0), m_rrth(0.0), + m_vf(0), m_qf(0) { + for (int n = 0; n < 2; n++) { + m_chem[n] = 0; + m_surf[n] = 0; + m_nsp[n] = 0; + } + } bool Wall::install(ReactorBase& rleft, ReactorBase& rright) { // check if wall is already installed if (m_left || m_right) return false; m_left = &rleft; m_right = &rright; - m_left->addWall(*this, 1); - m_right->addWall(*this, -1); + m_left->addWall(*this, 0); + m_right->addWall(*this, 1); return true; } + void Wall::setKinetics(Kinetics* left, + Kinetics* right) { + m_chem[0] = left; + m_chem[1] = right; + if (left) { + m_surf[0] = (SurfPhase*)&left->thermo(left->surfacePhaseIndex()); + m_nsp[0] = m_surf[0]->nSpecies(); + } + if (right) { + m_surf[1] = (SurfPhase*)&right->thermo(right->surfacePhaseIndex()); + m_nsp[1] = m_surf[1]->nSpecies(); + } + + } + + doublereal Wall::vdot(doublereal t) { double rate1 = m_k * m_area * (m_left->pressure() - m_right->pressure());