From charlesreid1

(Created page with "<source lang="python"> from Cantera import * from Cantera.Reactor import * class ResidenceTimeReactor(Reactor): def __init__(self, g, tau): Reactor.__init__(self,g)...")
 
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
<source lang="python">
<pre>
from Cantera import *
from Cantera import *
from Cantera.Reactor import *
from Cantera.Reactor import *


class ResidenceTimeReactor(Reactor):
class ResidenceTimeReactorNet(ReactorNet):
     def __init__(self, g, tau):
     def __init__(self, g, tau):
        """
        Parameters:
        g = gas flowing into reactor
        tau = residence time of reactor [s]
        """
        self.tau = tau


         Reactor.__init__(self,g)
         # Build our reactors
 
         self.upstream = Reservoir(g)
         self.upstream = Reservoir(g)
         self.downstream = Reservoir(g)
         self.downstream = Reservoir(g)
        self.reactor = Reactor(g)
        # Compute mass flow going into reactor
        # by assuming a volume basis (1 L),
        # then specifying mass flow as X kg/s
        # per unit of reactor volume
        mdot = g.density() / tau
        # Put a flow controller at the inlet
        self.inlet = MassFlowController(self, upstream=self.upstream, downstream=self.reactor, mdot=mdot)
        # Put a pressure valve at the outlet
        self.outlet = Valve(self.reactor, self, Kv=100)


         self.inlet = Valve(self.upstream, self, Kv=100)
         # Call the ReactorNet constructor to build your ReactorNet
         self.outlet = MassFlowController(self, self.downstream)
        ReactorNet.__init__(self,[self.reactor])
   
    def run(self,dt=1.0e-4):
         """
        """
        t = 0
        while t < self.tau:
            t = t + dt
            self.advance(t)
 
        print "Run complete."




Line 18: Line 46:


     g = importPhase('h2o2.cti')
     g = importPhase('h2o2.cti')
     g.set(T=1200,P=OneAtm,X="H2:2.0, O2:1.0, H:0.000001")
     g.set(T=1000,P=OneAtm,X="H2:2.0, O2:1.0, H:0.000001")
 
    n = ResidenceTimeReactorNet(g,0.01)


     r = ResidenceTimeReactor(g,0.01)
     n.run()
    n = ReactorNet([r])


     t = 0
     print n.reactor
    dt = 1.0e-4
</pre>
    for step in range(100):
        t = t + dt
        n.advance(t)


    print r
{{CanteraFlag}}
</source>

Latest revision as of 07:58, 17 April 2017

from Cantera import *
from Cantera.Reactor import *

class ResidenceTimeReactorNet(ReactorNet):
    def __init__(self, g, tau):
        """
        Parameters:
        g = gas flowing into reactor
        tau = residence time of reactor [s]
        """
        self.tau = tau

        # Build our reactors
        self.upstream = Reservoir(g)
        self.downstream = Reservoir(g)
        self.reactor = Reactor(g)

        # Compute mass flow going into reactor
        # by assuming a volume basis (1 L), 
        # then specifying mass flow as X kg/s 
        # per unit of reactor volume 
        mdot = g.density() / tau

        # Put a flow controller at the inlet
        self.inlet = MassFlowController(self, upstream=self.upstream, downstream=self.reactor, mdot=mdot)

        # Put a pressure valve at the outlet 
        self.outlet = Valve(self.reactor, self, Kv=100)

        # Call the ReactorNet constructor to build your ReactorNet
        ReactorNet.__init__(self,[self.reactor])
    
    def run(self,dt=1.0e-4):
        """
        """
        t = 0
        while t < self.tau:
            t = t + dt
            self.advance(t)

        print "Run complete."


if __name__=="__main__":

    g = importPhase('h2o2.cti')
    g.set(T=1000,P=OneAtm,X="H2:2.0, O2:1.0, H:0.000001")

    n = ResidenceTimeReactorNet(g,0.01)

    n.run()

    print n.reactor