PRO/II 10.2 INP File Validator
Overview
Provides expert knowledge for creating and validating PRO/II 10.2 keyword input
(INP) files. Rules are verified against the official PRO/II 10.2 Keyword Manual
(E:\Program Files\SIMSCI\PROII102\Manual\keyword\Keyword Manual.pdf, 1201
pages) and 54 official example INP files
(E:\Program Files\SIMSCI\PROII102\User\Applib\*.inp).
This skill was created after 5 rounds of debugging a coal-to-methanol shift unit
simulation INP file, resolving issues from wrong keywords to file encoding.
When to Use
- Creating a new PRO/II INP file from scratch
- Debugging an INP file that fails to import into PRO/II GUI
- Validating existing INP files for syntax correctness
- Understanding PRO/II keyword syntax and conventions
Quick Start
- Run validation:
proii validate myfile.inp - Fix format issues:
proii validate myfile.inp --fix - Analyze errors and fix according to the rules below
Core Rules — Sorted by Danger Level
CRITICAL (causes abort/import failure)
| Rule | Error Code | Description |
|---|---|---|
| Section ordering | E150 | Sections must follow: General → Component → Thermo → Stream → RXDATA → Unit Ops. RXDATA AFTER Stream, not before. |
| Missing HORX | E160 | Both EQUREACTOR and CONREACTOR require HORX HEAT={val}, REFCOMP={n}, REFTEMP={t} in RXDATA for adiabatic heat balance |
| Missing EQUILIBRIUM | E161 | EQUREACTOR requires EQUILIBRIUM(units) A={a}, B={b} in RXDATA. Does NOT trigger for CONREACTOR (fixed conversion model). |
| Illegal DIMENSION keywords | E180 | RATE=, TEMP=, PRESSURE=, PRES=, ENTHALPY= are NOT valid in DIMENSION. Use PRINT ...,RATE=M for rate units. Valid DIMENSION: METRIC/ENGLISH, BASIS=, MDUTY=, LIQVOL=, XDENSITY=. (Ref: A5.inp line 4) |
| Missing OVHD guess value | E190 | COLUMN PRODUCT line must include numeric rate estimate after stream ID: OVHD(M)=Sxxx,2900 not OVHD(M)=Sxxx,. (Ref: A5.inp line 102) |
| Missing BTMS guess value | E191 | COLUMN PRODUCT line must include numeric rate estimate after stream ID: BTMS(M)=Syyy,400 not BTMS(M)=Syyy,. |
| UTF-8 BOM | E170 | File must not have BOM. PRO/II FORTRAN runtime chokes. Use --fix to remove. |
| Wrong reactor type | E070 | Must use EQUREACTOR, not EREA |
| Wrong reaction section | E040 | Must use RXDATA, not REACTION DATA |
| STOIC + MOLEFRACTION | E140 | MODEL=STOIC requires PARTIALPRESSURE basis (not MOLEFRACTION) |
| CTEMP2 keyword | E090 | Use CTEMP, not CTEMP2. CTEMP2 does not exist in PRO/II 10.2. |
| ESTIMATE format | E200 | COLUMN ESTIMATE supports only: MODEL=, CTEMP=, TTEMP=, BTEMP=, RTEMP=, RRATIO=. TTEMP for no-condenser columns, CTEMP for columns with condenser. ESTIMATE does NOT support TEMP/RATE/ESTIMATE-as-temperatures. Product rate guesses go in PRODUCT statement. (Ref: Manual §12.1 pp 413, 420-421) |
| PSPEC format | E210 | PSPEC uses PTOP=val, DPCOL=val or DPTRAY=val format, NOT PSPEC 1,val/ N,val. For per-stage values, use PRESSURE(KPA) 1,val/ N,val. (Ref: Manual §12.1 page 438) |
| CONDENSER TYPE=NONE | E220 | PRO/II 10.2 does NOT support CONDENSER TYPE=NONE. For columns without condenser, omit the CONDENSER line entirely. Valid types: PART/MIXED/BUBB/TFIX/DTBB. (Ref: Manual §12.1 page 430) |
| HX DTEMP keyword | E230 | DTEMP does NOT exist in HX (simple heat exchanger). Use HTEMP/CTEMP for outlet temperatures, or HDTBB/CDTBB/HDTAD/CDTAD for temperature approaches. SDTEMP/TDTEMP are only in HXRIG (rigorous). (Ref: Manual §13.1 page 638-639) |
| Missing COMPOSITION in streams | E240 | PRO/II 10.2 requires COMPOSITION for every stream. Empty composition defaults to all zeros, triggering "INVALID COMPOSITIONS ≤ 0". |
| COMP ID= syntax in COMPONENT DATA | E250 | 🔴 ABORT! COMP ID=H2 / ID=CO / ... is NOT valid in PRO/II 10.2 keyword mode. Must use LIBID 1,H2/2,CO/..., BANK=CURRENT. Using COMP ID= causes "Data in the input file is out of order" abort. (2026-06-12 Shell气化验证) |
| HEATER keyword as unit operation | E260 | 🔴 ABORT! PRO/II 10.2 keyword mode does NOT support HEATER UID=... unit operation. Use FLASH UID=... with OPERATION ISOTHERMAL, TEMPERATURE=..., DP=... instead. (2026-06-12 Shell气化验证) |
| FLASH standalone TEMP/PRES | E270 | FLASH unit temperature/pressure must be in OPERATION line: OPERATION ISOTHERMAL, TEMPERATURE=40, PRESSURE=3700. Standalone TEMPERATURE 40 / PRESSURE 3700 lines inside FLASH block are not valid. (2026-06-12 Shell气化验证) |
| TITLE NAME= keyword | E280 | 🔴 ABORT! TITLE PROJECT=X, NAME=Y — NAME= is NOT recognized in PRO/II 10.2 TITLE statement. Causes "Keyword 'NAME' is not recognized" abort. TITLE only supports PROJECT=, PROBLEM=, USER=. Use PROBLEM= instead of NAME=. (2026-06-12 Shell气化v2验证) |
| Missing PROPERTY in stream data | E290 | 🔴 Error! Stream definitions must start with PROPERTY STREAM=S1, ..., not just STREAM=S1, .... Missing PROPERTY keyword causes "Statement must begin with a keyword" error. (2026-06-12 Shell气化v2验证) |
| Stream missing PHASE or RATE | E300 | Feed streams must specify PHASE=V/L/M and RATE(M)=value or RATE(WT)=value. Without PHASE, PRO/II cannot determine feed phase; without RATE, flow defaults to zero. (2026-06-12 Shell气化v2验证) |
| RXSET LOCAL= in RXDATA | E310 | 🔴 Error! RXDATA must use RXSET ID=WGS01, not RXSET LOCAL=WGS01. LOCAL is only for COLUMN internal reaction distillation (RXTRAY). (2026-06-12 Shell气化v2验证) |
| HORX missing HEAT= keyword | E320 | 🔴 Error! HORX must use HORX HEAT=-41100, REFCOMP=2, REFTEMP=25. Bare number HORX -41100 is not recognized. (2026-06-12 Shell气化v2验证) |
| CONREACTOR inline RXSET | E330 | 🔴 Error! CONREACTOR cannot define RXSET/REACTION/STOICHIOMETRY inline. Must use RXCALCULATION MODEL=STOIC + RXSTOIC RXSET=external_set_name + REACTION id + BASE COMPONENT=n + CONVERSION value. Reactions defined in RXDATA block, CONREACTOR references them. (2026-06-12 Shell气化v2验证, ref: A5.INP) |
| Missing O2 in gasification model | E340 | 🔴 Model Error! Gasification models feeding oxygen must include O2 as a component. Without O2, the gasification reaction cannot be simulated. Component number must match S2 stream COMPOSITION reference. (2026-06-12 Shell气化v2验证) |
WARNING (may cause issues)
| Rule | Error Code | Description |
|---|---|---|
| LF line endings | W180 | Use CRLF on Windows. LF-only may misparse continuation lines. |
| Non-ASCII chars | W172 | ASCII only. CJK/comments use English. |
| Chinese comments | W190 | FORTRAN cp437 may garble non-ASCII comments. |
! comment lines |
W191 | 🔴 PRO/II 10.2 does NOT support ! as comment character! Causes "Statement '!' is not recognized" or "Statement must begin with a keyword". Use no comments (official examples have none), or NOTES TEXT=... keyword. |
| PROJECT >12 chars | W010 | FORTRAN buffer limit; will be truncated. |
| RXCALC abbreviation | W200 | Use full RXCALCULATION (as in official A6AG.INP). |
| APPROACH DT(C) | W210 | No unit qualifier needed; DIMENSION TEMP= inherited. |
| STOICHIOMETRY names | W060 | Use numeric component IDs (1,-1/2,-1), not names. |
| SETID= instead of RXSET ID= | W050 | Use RXSET ID={name} format. |
| TEMPERATURE APPROACH | W080 | Use APPROACH DT={value}. |
| Missing BANK= | W020 | LIBID requires BANK=SIMSCI,PROCESS since v8.0.1. |
| Missing PHASE in reactor | W100 | ADIABATIC operation should include PHASE=V, DP={val}. |
| No EQUILIBRIUM with CONREACTOR | W161 | CONREACTOR uses fixed conversion; EQUILIBRIUM data not needed. Safe to ignore (informational). |
| Stream name >8 chars | W220 | Stream names must be ≤8 characters. E.g., SHIFT-STM (9 chars) is too long; use SHFTSTM (8 chars) instead. (2026-06-12 Shell气化验证) |
| Incomplete DIMENSION | W230 | DIMENSION METRIC alone is incomplete. Should include MDUTY=ON, BASIS=MOLE, PRES=KPA, TEMP=C, DUTY=KW, STDTEMP=0, STDPRES=101.325. (2026-06-12 Shell气化验证) |
| Missing General section keywords | W240 | PRINT, TOLERANCE, SEQUENCE, CALCULATION should be present in the General section. Official examples all include these. (2026-06-12 Shell气化验证) |
| MIXER FEED using / separator | W250 | MIXER multiple feeds should use commas: FEED S1, QWATER, not slashes: FEED S1/QWATER. / is for component/tray separation, not feed separation. (2026-06-12 Shell气化验证) |
| COMPOSITION as percentages without NORMALIZE | W260 | When COMPOSITION values sum to ~100 (percentage format), must add , NORMALIZE. Without it, PRO/II expects fractions summing to 1.0. (2026-06-12 Shell气化验证) |
| GIBBS ELEMENTS missing O2 | W270 | GIBBS ELEMENTS REACTANTS= must include all reactive species (including O2). Excluding O2 prevents gasification equilibrium from occurring. Only inert components (AR, ASH) should be excluded. (2026-06-12 Shell气化v2验证) |
| ASH not in CURRENT bank | W280 | ASH is not a standard PRO/II library component. LIBID N,ASH, BANK=CURRENT will fail. Use NONLIBRARY N, ASH, MW, SG, NBP or simplify model by removing ASH. (2026-06-12 Shell气化v2验证) |
TITLE/PROBLEM value contains / |
W290 | 🔴 ABORT! / in TITLE/PROBLEM values is parsed as a field separator by PRO/II. E.g., 2000T/D gets truncated to 2000T, causing "Misplaced or invalid character" abort. Use 2000TPD instead. (2026-06-12 Shell气化v2验证) |
| NAME value >8 chars in unit ops | W300 | NAME keyword values in unit operations (GIBBS, MIXER, FLASH, etc.) should be ≤8 characters for safety. E.g., INTERSTAGE→INTSTG. (2026-06-12 Shell气化v2验证) |
| TOLERANCE FLASH= or COLUMN= | E350 | 🔴 ERROR! TOLERANCE does not accept FLASH= or COLUMN= as keyword parameters. COLUMN causes "Keyword 'COLUMN' is not recognized" error. Use TOLERANCE DEFAULT=V94 instead. Valid: DEFAULT, STREAM, COMPONENT, EQUILIBRIUM, KVALUE, ENTHALPY, DUTY, MISCELLANEOUS, MBAL, UAMBAL. (2026-06-12 Shell气化v3验证, 117 official examples) |
| COMPOSITION数值规则 | E360 | 🔴 Error! COMPOSITION(WT)= uses percentages (0-100), sum must =100.0; COMPOSITION(M)= uses fractions (0.0-1.0), sum must =1.0. Wrong: COMPOSITION(WT)=1,0.33/2,0.33/3,0.34 (WT must be %, not fractions). PRO/II 10.2 does NOT support NORMALIZE keyword in COMPOSITION line. (2026-06-11 CDU验证) |
| RATE+COMPOSITION配对 | E361 | 🔴 Error! RATE(KG/H)= must pair with COMPOSITION(WT)=; RATE(M)= must pair with COMPOSITION(M)=. Wrong: RATE(KG/H)=100000, COMPOSITION(M)=1,0.333 (KG/H pairs with WT, not M). |
| SIDE关键字不在PRODUCT中 | E362 | 🔴 Error! SIDE is NOT a standalone keyword for side-draw. Must use PRODUCT SIDE(L)=sid, trayno, value or LDRAW(M)=sid, trayno, value inside COLUMN. Wrong: SIDE KERO,12,150 → "Keyword 'SIDE' is not recognized". (2026-06-19 VDU验证) |
| LDRAW+SUPERSEDE+SPEC冲突 | W320 | SUPERSEDE=ON only applies to OVHD/BTMS rates, NOT to LDRAW. Cannot use SPEC to constrain LDRAW flow rate with SUPERSEDE=ON. Need additional VARY (DUTY SIDEHC) for side-draw constraints. (2026-06-19 VDU验证) |
| VDU FLASH压力单位 | W330 | DIMENSION METRIC: PRESSURE=20 → 20 KG/CM2 ≈ 20 bar (NOT 20 kPa!). For vacuum (VDU), use PRESSURE(KPA)=10 to explicitly specify kPa units. (2026-06-19 VDU验证) |
| NC40不在SIMSCI库 | W340 | NC4-NC30 are available in SIMSCI CURRENT bank, but NC40 is NOT. Use NONLIBRARY or PETRO for heavier components. (2026-06-19验证) |
| 塔底温度初值过高 | W350 | VDU/COLUMN BTEMP >320°C may cause "Tray LIQUID has DRIED UP" error. Reduce to 200-280°C for heavy component columns. (2026-06-19 VDU验证) |
Verified Keyword Syntax
File Format Requirements
Encoding: ASCII (no BOM)
Line endings: CRLF (\r\n), not LF
Comments: No comment lines (official 60+ examples have none). `!` is NOT supported in PRO/II 10.2!
Use `NOTES TEXT=...` keyword if needed.
Project name: ≤12 chars (e.g., PROJECT=COAL2MEOH)
EQUREACTOR — Equilibrium Reactor (Ch. 14.1)
EQUREACTOR UID=R1, NAME=SHIFT_STAGE1
FEED S3
PRODUCT V=S6
OPERATION ADIABATIC, PHASE=V, DP=50, TEMP=460
RXCALCULATION PARTIALPRESSURE, MODEL=STOIC
RXSTOIC RXSET=RXN1
APPROACH DT=20
TEMP=in ADIABATIC is initial estimate (verified by A6AG.INP)RXCALCULATION(full form), not RXCALCAPPROACH DT=inherits units from DIMENSION TEMP=RXSTOIC RXSET=references reaction set in RXDATA
CONREACTOR — Conversion Reactor (Ch. 14.2)
CONREACTOR UID=R101, NAME=WCR
FEED S5
PRODUCT V=S6
OPERATION ADIABATIC, PHASE=V, DP=250, TEMP=250
RXCALCULATION MODEL=STOIC
RXSTOIC RXSET=M1
REACTION 1
BASE COMPONENT=3
CONVERSION 0.55
REACTION 2
BASE COMPONENT=4
CONVERSION 0.38
- Uses fixed conversion per reaction (percentage as decimal: 0.55 = 55%)
- Multiple reactions in one RXSET supported; each gets its own BASE COMPONENT + CONVERSION
TEMP=in ADIABATIC is initial temperature estimate (heat balance from HORX)- Does NOT require EQUILIBRIUM in RXDATA — uses specified conversions
- HORX in RXDATA still needed for adiabatic temperature calculation
- Verified by official alkylation example A5.inp (4-stage CONREACTOR with RXSET=ALKY)
RXDATA — Reaction Data (Ch. 14)
RXDATA
RXSET ID=RXN1
REACTION ID=1
STOICHIOMETRY 1,-1/4,-1/3,1/2,1
HORX HEAT=-41.2, REFCOMP=1, REFTEMP=25
EQUILIBRIUM(K,M3,KPA) A=-3.5, B=4030
- STOICHIOMETRY: numeric IDs with '/' between pairs
- HORX: heat of reaction (kJ/mol), REFCOMP=stoichiometric reference component
- EQUILIBRIUM: ln(K) = A + B/T. Units specify temp(K/C), volume, pressure.
- For WGS (CO+H2O→CO2+H2): HEAT=-41.2 kJ/mol, REFCOMP=1 (CO)
- EQUILIBRIUM only required for EQUREACTOR; CONREACTOR uses fixed conversion
HX — Simple Heat Exchanger (Ch. 13.1)
HX UID=HX1, NAME=FEHE
HOT FEED=S2, V=S9, DP=30
COLD FEED=S4, V=S4, DP=30
CONFIGURE COUNTER
OPER CTEMP=370
- Product phase (L=/V=/M=) must match actual outlet state
CONFIGURE COUNTER(default counter-current)OPER CTEMP=value(no unit qualifier; inherited from DIMENSION)CTEMPcontrols cold-side outlet temperatureHTEMPcontrols hot-side outlet temperature
Stream Data
PROPERTY STREAM=S1, TEMPERATURE=240, PRESSURE=3500, PHASE=V, &
RATE(M)=7200, COMPOSITION(M)=1,57.2/2,24.5/3,2.2/4,12.2/5,3.6/6,0.4
- COMPOSITION(M) for mole fractions; COMPOSITION(W) for weight fractions
- Use '/' between (component_id, value) pairs
Common Pitfall Checklist
When an INP file fails to import, check in this order:
- [ ] Section order: RXDATA after STREAM DATA? (E150)
- [ ] UTF-8 BOM:
proii validate --fixremoves it (E170) - [ ] Line endings: CRLF, not LF?
proii validate --fixconverts (W180) - [ ] HORX + EQUILIBRIUM: Both present in RXDATA? (E160, E161). NOTE: EQUILIBRIUM only needed for EQUREACTOR; CONREACTOR uses fixed conversion.
- [ ] Keywords: RXDATA, EQUREACTOR, APPROACH DT, CTEMP (not REACTION DATA, EREA, CTEMP2)
- [ ] STOICHIOMETRY: Numeric IDs with '/' between pairs
- [ ] RXCALCULATION: Full form, PARTIALPRESSURE basis for STOIC
- [ ] PROJECT name: ≤12 chars
- [ ] HX phase specs: L=/V=/M= match actual phase
- [ ] OPER CTEMP: No unit qualifier needed
- [ ] DIMENSION keywords: No
RATE=,TEMP=,PRESSURE=in DIMENSION. UseDIMENSION METRIConly. (E180) - [ ] PRODUCT guess values: COLUMN PRODUCT must include rate estimates:
OVHD(M)=Sxxx,2900, BTMS(M)=Syyy,400(E190/E191) - [ ] No
!comment lines: PRO/II 10.2 does NOT support!as comment character. Remove all!lines. (W191) - [ ] REBOILER TYPE: When using
DUTY name=REBOILER, must declareREBOILER TYPE=KETTLE. "REBOILER" is a reserved name for side-heater/cooler. - [ ] DUTY segno: Reboiler DUTY segno=TRAY (not TRAY+2). Verified across 50+ official examples.
- [ ] COMP ID= syntax: Must use
LIBIDin COMPONENT DATA, notCOMP ID=(E250) - [ ] HEATER keyword: Not supported in keyword mode; use
FLASH ISOTHERMALinstead (E260) - [ ] Stream name length: Must be ≤8 characters (W220)
- [ ] DIMENSION completeness: Include all parameters (MDUTY, BASIS, PRES, TEMP, DUTY, STDTEMP, STDPRES) (W230)
- [ ] FLASH OPERATION: Temperature/pressure must be in
OPERATION ISOTHERMAL, TEMPERATURE=..., PRESSURE=...line (E270) - [ ] MIXER FEED: Use commas between feeds, not
/(W250) - [ ] COMPOSITION NORMALIZE: Add
, NORMALIZEwhen values sum to ~100 (percentage format) (W260) - [ ] TITLE keywords: Only
PROJECT=,PROBLEM=,USER=allowed in TITLE.NAME=causes ABORT (E280) - [ ] PROPERTY STREAM=: Stream definitions must start with
PROPERTY STREAM=, not justSTREAM=(E290) - [ ] Stream PHASE and RATE: All feed streams must have
PHASE=V/L/MandRATE(M)=orRATE(WT)=(E300) - [ ] RXSET ID=: RXDATA must use
RXSET ID=name, notRXSET LOCAL=name(E310) - [ ] HORX HEAT=: HORX requires
HEAT=value, REFCOMP=n, REFTEMP=tformat, not bare number (E320) - [ ] CONREACTOR RXSTOIC: CONREACTOR must use
RXCALCULATION MODEL=STOIC+RXSTOIC RXSET=+REACTION+BASE COMPONENT+CONVERSION. No inline RXSET definitions (E330) - [ ] Gasification O2: Gasification models must include O2 component if feeding oxygen (E340)
- [ ] GIBBS ELEMENTS: Include all reactive species (O2, H2, CO, etc.) in ELEMENTS REACTANTS. Exclude inert (AR, ASH) (W270)
- [ ] ASH component: ASH not in CURRENT bank. Use NONLIBRARY or remove from model (W280)
- [ ] TITLE/PROBLEM no
/: TITLE and PROBLEM values must not contain/character, which is parsed as field separator. UseTPDinstead ofT/Detc. (W290) - [ ] NAME value ≤8 chars: Unit operation NAME values should be ≤8 characters (W300)
- [ ] TOLERANCE keywords: TOLERANCE only accepts DEFAULT, STREAM, COMPONENT, EQUILIBRIUM, KVALUE, ENTHALPY, DUTY, MISCELLANEOUS, MBAL, UAMBAL. NOT: FLASH, COLUMN (E350)
- [ ] PROBLEM value short: Keep PROBLEM value short and simple (≤16 chars, no spaces preferred) to avoid truncation WARNING (W310)
- [ ] COMPOSITION数值: WT=百分比(总和100.0), M=分数(总和1.0). PRO/II 10.2不支持COMPOSITION行中NORMALIZE (E360)
- [ ] RATE+COMPOSITION配对: KG/H配WT, M配M. 不能KG/H配M (E361)
- [ ] SIDE关键字: 侧线用
PRODUCT SIDE(L)=或LDRAW(M)=, 不能用独立SIDE(E362) - [ ] LDRAW+SUPERSEDE: SUPERSEDE=ON只对OVHD/BTMS, 不对LDRAW (W320)
- [ ] VDU压力单位: 真空用
PRESSURE(KPA)=10, 不是PRESSURE=10→10KG/CM2 (W330) - [ ] NC40: SIMSCI库中NC4-NC30可用, NC40不可用 (W340)
- [ ] VDU温度: BTEMP>320°C可能导致"LIQUID DRIED UP", 降到200-280°C (W350)
CLI Commands
# Validate an INP file
proii validate myfile.inp
# Strict mode: warnings → errors
proii validate myfile.inp --strict
# Auto-fix BOM and line endings
proii validate myfile.inp --fix
# JSON output for scripting
proii --json validate myfile.inp
# Validate + auto-open in PRO/II GUI
proii validate myfile.inp --open
v2.0 New: COM/ActiveX Interactive Modeling
Model Command
# Build methanol model in real-time GUI
proii model --methanol --visible
# Build + solve + export
proii model --methanol --run -e solved.inp -r report.txt
# Import existing INP for real-time editing
proii model --inp-file model.inp --visible
# INP generation mode (no PRO/II needed)
proii model --methanol --mode inp -e model.inp
COM Discovery
# Explore PRO/II COM Server API
proii com-discover --verbose
# Save discovered API to JSON
proii com-discover -o com_api.json
COM Solve Pipeline
# Full automated solve (Import -> RunCalcs -> Export)
proii solve model.inp
# Open PRO/II GUI with INP loaded
proii gui model.inp
# Test COM connectivity
proii com-test
Python API (PROIIModel)
from proii_model import PROIIModel
# Real-time COM modeling with GUI
with PROIIModel(visible=True, mode="com") as model:
model.add_components(["MEOH", "H2O", "H2", "CO", "CO2"])
model.set_thermo("SRK")
model.create_stream("S1", T=25, P=3000, rate=23222,
comp={"H2": 0.68, "CO": 0.28})
model.create_compressor("C101", feed="S1", product="S2",
p_out=8400, efficiency=0.82, stages=3)
model.create_reactor("R101", feed="S5", product="S6",
type="con", T=250, DP=250)
model.run()
model.export("solved.inp")
# INP generation mode (no PRO/II required)
model = PROIIModel(mode="inp")
model.add_components(["MEOH", "H2O"])
model.set_thermo("SRK")
model.create_stream("S1", T=25, P=101.325, rate=100)
model.create_flash("F101", feed="S1", vapor="V1", liquid="L1", T=80)
model.write_inp("flash_test.inp")
Two-Phase COM API
| Phase | Purpose | Key Methods |
|---|---|---|
| Phase 1 (Modeling) | Build model programmatically | CreateObject, PutAttributeValue, PutStreamData, GetObjectCount |
| Phase 2 (Solving) | Import + run + export | Import, RunCalcs, Export, GenerateReport |
COM Attribute Maps (ProgID: SimSciDbs.Database.102)
11 key classes with documented attribute names:
Stream, ConReactor, EquReactor, Hx, Flash, Compressor, Pump, Mixer, Splitter, Valve, Column
COM Explorer (proii com-discover) performs runtime introspection to verify
attribute availability on the actual installation.
Reference
- Official examples:
E:\Program Files\SIMSCI\PROII102\User\Applib\*.inp - A6AG.INP — ammonia synthesis (EQUREACTOR example)
- Casebook_Ammonia_Synthesis.inp — full ammonia flowsheet
- Keyword Manual:
E:\Program Files\SIMSCI\PROII102\Manual\keyword\Keyword Manual.pdf - Casebook Manual:
E:\Program Files\SIMSCI\PROII102\Manual\casebook\Ammonia.pdf