source: mso/sample/reactors/sample_pfr.mso @ 46

Last change on this file since 46 was 46, checked in by Paula Bettio Staudt, 16 years ago

Fixed some sample files

File size: 1.8 KB
Line 
1#*---------------------------------------------------------------------
2* This file is property of the author and cannot be used, copyed
3* or modified without permission.
4*
5* Copyright (C) 2004  the author
6*----------------------------------------------------------------------
7* Author: Rafael de P. Soares
8*         Paula B. Staudt
9* $Id: sample_cstr_PG.mso 6 2005-01-11 17:06:06Z paula $
10*--------------------------------------------------------------------*#
11
12using "reactors/pfr";
13
14#*
15* Adiabatic Production of Acetic Anhydride with a PFR
16*
17* Based on Example 8-6 of Elements of Chemical Reaction Engineering
18* Second Edition H. Scott Fogler
19*
20*#
21FlowSheet PFR_AceticAnhydride
22        PARAMETERS
23        PP   as CalcObject(Brief="Physical Properties",File="vrpp");
24        NComp as Integer;
25
26        DEVICES
27        s1   as streamTP;
28        Reac as pfr;
29
30        SET
31        PP.Components = ["acetone", "acetic anhydride", "methane" ];
32        PP.LiquidModel = "PR";
33        PP.VapourModel = "PR";
34       
35        NComp = PP.NumberOfComponents;
36       
37        Reac.NDisc = 20;
38        Reac.Across = 0.7 * "in^2";
39        Reac.L = 2.28 * "m";
40        Reac.NReac = 1;
41
42        # Reaction 1: A -> B + C
43        Reac.stoic(:,1) = [-1, 1, 1];
44       
45        EQUATIONS
46
47        for z in [1:Reac.NDisc]
48                "Reaction Rate = k*C(1)"
49                Reac.r(1,z)  = exp(34.34 - (34222 * "K") / Reac.str(z).T)*"1/s" * Reac.C(1,z);
50
51                "Heat of reaction"
52                Reac.Hr(1,z) = -80.77 * "kJ/mol";
53
54                "Pressure Drop (no pressure drop)"
55                Reac.str(z+1).P = Reac.str(z).P;
56        end
57
58        SPECIFY
59        s1.F = 138/1000 * "kmol/h";
60        s1.T = 1035 * "K";
61        s1.P = 1.6  * "atm";
62        s1.z = [1, 0, 0];
63
64        "Adiabatic"
65        Reac.q     = 0     * "J/s";
66       
67        CONNECTIONS
68        s1  to  Reac.Inlet;
69       
70        INITIAL
71        for z in [2:Reac.NDisc+1]
72                Reac.str(z).T = Reac.Inlet.T;
73                Reac.str(z).z = Reac.Inlet.z;
74        end
75       
76        OPTIONS
77        # This model can be solved in both steady or dynamic
78        #mode = "steady";
79        time = [0:0.05:3] * "s";
80        NLASolver = "sundials";
81        #DAESolver = "dassl";
82end
Note: See TracBrowser for help on using the repository browser.