0% found this document useful (0 votes)
47 views

AspenAdsim 2004.1 LibraryReferenceGuide

Uploaded by

Mojtaba Dehghani
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views

AspenAdsim 2004.1 LibraryReferenceGuide

Uploaded by

Mojtaba Dehghani
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 171

Aspen Adsim

2004.1
Library Reference Guide

General Information 1
Who Should Read this Guide

This guide contains reference information for use by experienced users of the
Aspen Adsim application and describes the models, streams, procedures and
submodels available in Aspen Adsim.

Who Should Read this Guide 2


General Information

This section provides Copyright details and lists any other documentation
related to the Aspen Adsim 2004.1 release.

Copyright
Version: 2004.1

April 2005
Copyright © 1991-2005 Aspen Technology, Inc, and its applicable
subsidiaries, affiliates, and suppliers. All rights reserved. This Software is a
proprietary product of Aspen Technology, Inc., its applicable subsidiaries,
affiliates and suppliers and may be used only under agreement with
AspenTech.
Aspen ACOL™, Aspen Adsim®, Aspen Advisor™, Aspen Aerotran®, Aspen
Alarm & Event™, Aspen APLE™, Aspen Apollo Desktop™, Aspen Apollo
Online™, Aspen AssetBuilder™, Aspen ATOMS™, Aspen Automated Stock
Replenishment™, Aspen Batch Plus®, Aspen Batch.21™, Aspen BatchCAD™,
Aspen BatchSep™, Aspen Calc™, Aspen Capable-to-Promise®, Aspen
CatRef®, Aspen Chromatography®, Aspen Cim-IO for ACS™, Aspen Cim-IO
for Csi VXL™, Aspen Cim-IO for Dow MIF™, Aspen Cim-IO for G2™, Aspen
Cim-IO for GSE D/3™, Aspen Cim-IO for Hewlett-Packard RTAP™, Aspen Cim-
IO for Hitachi PLC (H04E)™, Aspen Cim-IO for Intellution Fix™, Aspen Cim-IO
for Melsec™, Aspen Cim-IO for WonderWare InTouch™, Aspen Cim-IO for
Yokogawa Centum CS™, Aspen Cim-IO for Yokogawa Centum XL™, Aspen
Cim-IO for Yokogawa EW3™, Aspen Cim-IO Interfaces™, Aspen Cim-IO
Monitor™, Aspen Cim-IO™, Aspen Collaborative Demand Management™,
Aspen Collaborative Forecasting™, Aspen Compliance.21™, Aspen
COMThermo TRC Database™, Aspen COMThermo®, Aspen Cost Factor
Manual™, Aspen Crude Manager™, Aspen Crude Margin Evaluation™, Aspen
Custom Modeler®, Aspen Data Source Architecture™, Aspen Decision
Analyzer™, Aspen Demand Manager™, Aspen DISTIL™, Aspen Distribution
Scheduler™, Aspen DMCplus® Composite, Aspen DMCplus® Desktop, Aspen
DMCplus® Online, Aspen DPO™, Aspen Dynamics®, Aspen eBRS™, Aspen
Enterprise Model™, Aspen ERP Connect™, Aspen FCC®, Aspen FIHR™, Aspen
FLARENET™, Aspen Fleet Operations Management™, Aspen Framework™,
Aspen FRAN™, Aspen Fuel Gas Optimizer Desktop™, Aspen Fuel Gas
Optimizer Online™, Aspen General Construction Standards™, Aspen Hetran®,
Aspen HX-Net®, Aspen Hydrocracker®, Aspen Hydrotreater™, Aspen HYSYS

General Information 3
Amines™, Aspen HYSYS Crude™, Aspen HYSYS Dynamics™, Aspen HYSYS
OLGAS 3-Phase™, Aspen HYSYS OLGAS™, Aspen HYSYS OLI Interface™,
Aspen HYSYS Tacite™, Aspen HYSYS Upstream Dynamics™, Aspen HYSYS
Upstream™, Aspen HYSYS®, Aspen Icarus Process Evaluator®, Aspen Icarus
Project Manager®, Aspen InfoPlus.21®, Aspen Inventory Balancing™, Aspen
IQ Desktop™, Aspen IQ Online™, Aspen IQmodel Powertools™, Aspen
Kbase®, Aspen LIMS Interface™, Aspen Local Security™, Aspen LPIMS™,
Aspen MBO™, Aspen MIMI®, Aspen MPIMS™, Aspen Multivariate Server™,
Aspen MUSE™, Aspen NPIMS™, Aspen OnLine®, Aspen Operations Manager -
Event Management™, Aspen Operations Manager - Integration
Infrastructure™, Aspen Operations Manager - Peformance Scorecarding™,
Aspen Operations Manager - Role Based Visualization™, Aspen Order Credit
Management™, Aspen Orion Planning™, Aspen Orion™, Aspen PEP Process
Library™, Aspen PIMS Blend Model Library™, Aspen PIMS Distributed
Processing™, Aspen PIMS Enterprise Edition™, Aspen PIMS Mixed Integer
Programming™, Aspen PIMS Simulator Interface™, Aspen PIMS Solution
Ranging™, Aspen PIMS Submodel Calculator™, Aspen PIMS XNLP
Optimizer™, Aspen PIMS™, Aspen PIPESYS™, Aspen PIPE™, Aspen Planning
Accuracy™, Aspen Plant Planner & Scheduler™, Aspen Plant Scheduler Lite™,
Aspen Plant Scheduler™, Aspen Plus OLI Interface™, Aspen Plus®, Aspen
Polymers Plus®, Aspen PPIMS™, Aspen Process Data™, Aspen Process
Explorer™, Aspen Process Manual™, Aspen Process Order™, Aspen Process
Plant Construction Standards™, Aspen Process Recipe®, Aspen Process
Tools™, Aspen Product Margin & Blending Evaluation™, Aspen Production
Control Web Server™, Aspen ProFES® 2P Tran, Aspen ProFES® 2P Wax,
Aspen ProFES® 3P Tran, Aspen ProFES® Tranflo, Aspen Properties®, Aspen
Pumper Log™, Aspen Q Server™, Aspen RateSep™, Aspen RefSYS
CatCracker™, Aspen RefSYS Spiral™, Aspen RefSYS™, Aspen Report Writer™,
Aspen Resource Scheduling Optimization™, Aspen RTO Watch Cim-IO
Server™, Aspen RTO Watch Server™, Aspen Scheduling & Inventory
Management™, Aspen SmartStep Desktop™, Aspen SmartStep Online™,
Aspen SQLplus™, Aspen Supply Chain Analytics™, Aspen Supply Chain
Connect™, Aspen Supply Planner™, Aspen Tank Management™, Aspen TASC-
Mechanical™, Aspen TASC™, Aspen Teams®, Aspen Terminals
Management™, Aspen TICP™, Aspen Transition Manager™, Aspen Turbo
PIMS™, Aspen Utilities™, Aspen Voice Fulfillment Management™, Aspen
Watch Desktop™, Aspen Watch Server™, Aspen Water™, Aspen Web
Fulfillment Management™, Aspen WinRace Database™, Aspen XPIMS™,
Aspen Zyqad Development Version™, Aspen Zyqad™, SLM™, SLM
Commute™, SLM Config Wizard™, the aspen leaf logo, and Plantelligence are
trademarks or registered trademarks of Aspen Technology, Inc., Cambridge,
MA.
All other brand and product names are trademarks or registered trademarks
of their respective companies.
This document is intended as a guide to using AspenTech's software. This
documentation contains AspenTech proprietary and confidential information
and may not be disclosed, used, or copied without the prior consent of
AspenTech or as set forth in the applicable license.

Corporate
Aspen Technology, Inc. Phone: (1) (617) 949-1000

General Information 4
Ten Canal Park Toll Free: (1) (888) 996-7001
Cambridge, MA 02141-2201 Fax: (1) (617) 949-1030
USA URL: http://www.aspentech.com

General Information 5
Related Documentation
In addition to this document, the following documents are provided to help
users learn and use the Aspen Adsim applications.

Title Content
Aspen Adsim 2004.1 Adsorption Reference Contains information on how the
Guide product handles gas, liquid and ion-
exchange processes and also
describes: numerical methods for
solving partial differential equations;
the estimation module; the cyclic
organizer and flowsheeting strategies.

Aspen Engineering Suite 2004.1 Installation Full installation procedures for both
Guide server and client.

Aspen Engineering Suite 2004.1 What's New An overview of new features and
Guide functionality within this release.

General Information 6
Technical Support

Online Technical Support


Center
AspenTech customers with a valid license and software maintenance
agreement can register to access the Online Technical Support Center at:
http://support.aspentech.com
You use the Online Technical Support Center to:
• Access current product documentation.
• Search for technical tips, solutions, and frequently asked questions
(FAQs).
• Search for and download application examples.
• Search for and download service packs and product updates.
• Submit and track technical issues.
• Search for and review known limitations.
• Send suggestions.
Registered users can also subscribe to our Technical Support
e-Bulletins. These e-Bulletins proactively alert you to important technical
support information such as:
• Technical advisories.
• Product updates.
• Service Pack announcements.
• Product release announcements.

Technical Support 7
Phone and E-mail
Customer support is also available by phone, fax, and e-mail for customers
who have a current support contract for their product(s). Toll-free charges are
listed where available; otherwise local and international rates apply.
For the most up-to-date phone listings; please see the Online Technical
Support Center at:
http://support.aspentech.com

Support Centers Operating Hours


North America 8:00 – 20:00 Eastern time

South America 9:00 – 17:00 Local time

Europe 8:30 – 18:00 Central European time

Asia and Pacific Region 9:00 – 17:30 Local time

Technical Support 8
Contents
GENERAL INFORMATION................................................................................. 3
Related Documentation............................................................................................. 6

TECHNICAL SUPPORT...................................................................................... 7
Online Technical Support Center ................................................................................ 7
Phone and E-mail..................................................................................................... 8

INTRODUCING ASPEN ADSIM ....................................................................... 14

1 MODEL LIBRARY ........................................................................................ 15


Gas Models ........................................................................................................... 15
gas_bed Model ................................................................................................. 16
gas_buffer_interaction Model .............................................................................. 17
gas_feed Model................................................................................................. 20
gas_heat_exchanger Model ................................................................................ 23
gas_interaction Model ........................................................................................ 24
gas_node Model ................................................................................................ 27
gas_pipe Model................................................................................................. 28
gas_product Model ............................................................................................ 29
gas_pump Model............................................................................................... 32
gas_ramp Model ............................................................................................... 33
gas_tank_void Model ......................................................................................... 35
gas_valve Model ............................................................................................... 38
Ion-Exchange Models.............................................................................................. 40
ionx_bed Model ................................................................................................ 41
ionx_feed Model................................................................................................ 42
ionx_feed_distrib Model ..................................................................................... 43
ionx_interaction Model ....................................................................................... 44
ionx_mix_multi_nr Model ................................................................................... 46
ionx_mix_nr2 Model .......................................................................................... 47
ionx_mix_nr3 Model .......................................................................................... 48
ionx_prod_distrib Model ..................................................................................... 49
ionx_product Model ........................................................................................... 50
ionx_split_nr2 Model ......................................................................................... 51
ionx_valve_nr Model.......................................................................................... 52

Contents 9
Liquid Models ........................................................................................................ 53
liq_bed Model ................................................................................................... 54
liq_feed Model .................................................................................................. 55
liq_feed_distrib Model ........................................................................................ 57
liq_interaction Model ......................................................................................... 58
liq_mix_multi Model .......................................................................................... 60
liq_prod_distrib Model........................................................................................ 60
liq_product Model.............................................................................................. 62
liq_split Model .................................................................................................. 64
liq_tank Model .................................................................................................. 65
liq_valve Model ................................................................................................. 66
Miscellaneous Models.............................................................................................. 67
Dynamics_Inlet_ Connect Model.......................................................................... 68
Dynamics_Outlet_ Connect Model........................................................................ 70
p_control model................................................................................................ 72
PID Model ........................................................................................................ 74
ratio Model....................................................................................................... 74
Static_Isotherm Model ....................................................................................... 75
universal_block Model........................................................................................ 77

2 WRITING COMPLIANT USER MODELS ........................................................ 80


Common Elements for All User Models ...................................................................... 80
Standard Template for User Models .......................................................................... 81
Gas Specific User Models......................................................................................... 81
Ion-Exchange Specific User Models ........................................................................... 82
Liquid Specific User Models...................................................................................... 82

3 MATERIAL STREAMS AND CONNECTIONS .................................................. 83


Stream gas_Material_Connection ............................................................................. 83
Stream ionx_Material_Connection ............................................................................ 84
Stream liq_Material_Connection ............................................................................... 85

4 USER PROCEDURES.................................................................................... 87
About the Procedure Organizer ................................................................................ 87
Launching the Procedure Organizer...................................................................... 87
Adding Procedures ............................................................................................ 88
Editing Procedures ............................................................................................ 88
Building the Procedure Library ............................................................................ 88
Gas Procedures...................................................................................................... 90
Procedure pUser_Act_Coeff ................................................................................ 91

Contents 10
Procedure pUser_g_Avg_Mole_Weight.................................................................. 92
Procedure pUser_g_Cat_RX_Heat ........................................................................ 92
Procedure pUser_g_Cat_RX_Rate_C .................................................................... 93
Procedure pUser_g_Cat_RX_ Rate_C_Sol ............................................................. 94
Procedure pUser_g_Cat_RX_Rate_Pp ................................................................... 95
Procedure pUser_g_Cat_RX_Rate_Pp_Sol ............................................................. 96
Procedure pUser_g_Compressibility ..................................................................... 97
Procedure pUser_g_Cpa ..................................................................................... 97
Procedure pUser_g_De ...................................................................................... 98
Procedure pUser_g_DH ...................................................................................... 99
Procedure pUser_g_Diffusivity ...........................................................................100
Procedure pUser_g_Dispersion ...........................................................................100
Procedure pUser_g_Enthalpy_Mol.......................................................................101
Procedure pUser_g_Entropy_Mol ........................................................................102
Procedure pUser_g_Gas_RX_Heat ......................................................................102
Procedure pUser_g_Gas_RX_Rate_C ...................................................................103
Procedure pUser_g_Gas_RX_Rate_Pp .................................................................104
Procedure pUser_g_Gibbs .................................................................................105
Procedure pUser_g_Heat_Capacity_Cv ................................................................106
Procedure pUser_g_Heat_Capacity_Mol ...............................................................106
Procedure pUser_g_Henry .................................................................................107
Procedure pUser_g_HTC....................................................................................108
Procedure pUser_g_Isotherm_C .........................................................................109
Procedure pUser_g_Isotherm_P .........................................................................110
Procedure pUser_g_Isotherm_Poi .......................................................................110
Procedure pUser_g_Isotherm_W ........................................................................111
Procedure pUser_g_Kg......................................................................................112
Procedure pUser_g_Kinetic ................................................................................113
Procedure pUser_g_KmacKmic ...........................................................................114
Procedure pUser_g_Mole_Weights ......................................................................115
Procedure pUser_g_MTC ...................................................................................115
Procedure pUser_g_Pump_Performance ..............................................................116
Procedure pUser_g_Viscosity .............................................................................117
Ion-Exchange Procedures .......................................................................................118
Procedure pUser_i_Dispersion ............................................................................118
Procedure pUser_i_Isotherm_C ..........................................................................119
Procedure pUser_i_Isotherm_W .........................................................................119
Procedure pUser_i_Kinetic .................................................................................120
Procedure pUser_i_MTC ....................................................................................121
Liquid Procedures..................................................................................................122
Procedure pUser_l_Avg_Mole_Weight..................................................................123
Procedure pUser_l_Density_Mass .......................................................................123

Contents 11
Procedure pUser_l_DH ......................................................................................124
Procedure pUser_l_Dispersion ............................................................................125
Procedure pUser_l_Enthalpy_Mol........................................................................126
Procedure pUser_l_Gibbs ..................................................................................126
Procedure pUser_l_Heat_Capacity_Mol ................................................................127
Procedure pUser_l_HTC.....................................................................................128
Procedure pUser_l_Isotherm_C ..........................................................................129
Procedure pUser_l_Isotherm_W .........................................................................129
Procedure pUser_l_Kinetic .................................................................................130
Procedure pUser_l_Kl........................................................................................131
Procedure pUser_l_KmacKmic ............................................................................132
Procedure pUser_l_Mole_Weights .......................................................................133
Procedure pUser_l_MTC ....................................................................................133
Procedure pUser_l_Viscosity ..............................................................................134
Miscellaneous Procedures .......................................................................................135
Procedure pUser_Flash......................................................................................135
Procedure pUser_KValues..................................................................................136

5 USER SUBMODELS ....................................................................................138


Determining Submodels In Use ...............................................................................138
Defining Equations for User Submodels ....................................................................139
Direct Insertion into Submodel...........................................................................140
Using Flowsheet Constraints: Overview of Procedure .............................................141
Gas User Submodels .............................................................................................145
User Submodel gUserCompressibilty ...................................................................145
User Submodel gUserCompressibilty2 .................................................................146
User Submodel gUserCpa ..................................................................................146
User Submodel gUserDH ...................................................................................146
User Submodel gUserDispersion .........................................................................147
User Submodel gUserEffDiff ...............................................................................147
User Submodel gUserGibbs................................................................................147
User Submodel gUserHenryCoeff ........................................................................148
User Submodel gUserHTC..................................................................................148
User Submodel gUserIsothermC .........................................................................149
User Submodel gUserIsothermPoi.......................................................................149
User Submodel gUserIsothermPp .......................................................................150
User Submodel gUserKg....................................................................................150
User Submodel gUserKineticModel ......................................................................151
User Submodel gUserKmacKmic .........................................................................151
User Submodel gUserMTC .................................................................................152
Ion-Exchange User Submodels................................................................................152

Contents 12
User Submodel iUserDispersion ..........................................................................152
User Submodel iUserIsotherm............................................................................153
User Submodel iUserKinetic ...............................................................................153
User Submodel iUserMTC ..................................................................................153
Liquid User Submodels...........................................................................................154
User Submodel lUserDH ....................................................................................154
User Submodel lUserDispersion ..........................................................................155
User Submodel lUserGibbs ................................................................................155
User Submodel lUserHTC...................................................................................156
User Submodel lUserIsotherm............................................................................156
User Submodel lUserKinetic ...............................................................................157
User Submodel lUserKl......................................................................................157
User Submodel lUserKmacKmic ..........................................................................158
User Submodel lUserMTC ..................................................................................158

INDEX ..........................................................................................................161

Contents 13
Introducing Aspen Adsim

Aspen Adsim simulates gas processes with adsorption only, or adsorptive


reaction gas processes where both reaction and adsorption occur
simultaneously.
Gas-phase adsorption is widely used for the large-scale purification or bulk
separation of air, natural gas, chemicals and petrochemicals.

Introducing Aspen Adsim 14


1 Model Library

This chapter describes the five main groups of library models in the Aspen
Adsim library. These are:

Group Description
Adsim_Gas Gas phase flowsheet models.

Adsim_IonX Ion-exchange flowsheet models.

Adsim_Liquid Liquid phase flowsheet models.

Miscellaneous Additional flowsheet models that require no


connectivity.

Gas Models
The table lists the gas phase models available in Aspen Adsim. You connect
these models using the gas_Material Connection stream.

Model Description
gas_bed Adsorbent bed layers.

gas_buffer_interaction Tank with inlet delay capabilities.

gas_feed Feed/inlet boundary terminator.

gas_heat_exchanger General instantaneous heat exchanger


(optional liquid condensate stream).

gas_interaction Pseudo-bed for single bed approach.

gas_node Simple multi-stream meeting point.

gas_pipe Simple instantaneous pipe.

gas_product Product/outlet boundary terminator.

gas_pump Compressor or vacuum pump.

gas_ramp Special model for forced pressure profiles.

gas_tank_void General purpose model to account for


spaces and holdup.

gas_valve Relates pressure drop to flowrate.

1 Model Library 15
gas_bed Model
The gas_bed model simulates an adsorption bed unit in a gas flowsheet. It
acts like a container model for the bed layers and their interconnections.

gas_bed Model: Connectivity


These are the available connections for the gas-bed model:

Port name Type Valid connection


Process_In g_material_port (single) gas_Material_Connection

Process_Out g_material_port (single) gas_Material_Connection

gas_bed Model: Configuration


These are the configuration options available for the gas_bed model:

Option Valid values Description


Number of layers Integer (1 or higher) Number of independent
adsorbent layers with the
bed.

Bed type Vertical Orientation and configuration


of the adsorbent layer/s.
Horizontal
Radial

Spatial Dimensions 1-D Number of spatial dimensions


to account for within each
2-D adsorbent layer (valid only
for vertical geometries).

Internal heat exchanger None Heat exchange equipment


within the adsorbent layers,
1-Phase, internal or at the external surface.
1-Phase, jacket
Steam-Water, internal
Steam-Water, jacket

gas_bed Model: Specifications


Depending on how the gas_bed model has been configured, you need to
specify one or more of these variables in the Specify table:

Variable Description
MFlow Mass flowrate of heating/cooling medium.

Cp Specific heat capacity of heating/cooling medium.

Taux_In Inlet temperature of heating/cooling medium.

Taux_Out Outlet temperature of Heating/cooling medium.

MFlowcw Mass flowrate of cooling water.

Cpcw Heat capacity of cooling water.

1 Model Library 16
Tcw_In Inlet temperature of cooling water.

MFlowst_in Mass flowrate of steam.

Cpst Heat capacity of steam.

Tst_In Steam inlet temperature.

Lambda Steam heat of condensation.

Note: Each adsorbent layer within the bed has its own
specifications.

gas_bed Model: Initialization


No initialization method is required for the gas_bed model. Each contained
layer, however, needs to be initialized accordingly.

gas_bed Model: User Procedures Used


There are no user procedures available for the gas_bed model.

gas_bed Model: Results


Typical variables in the Results table for the gas_bed model are:

Variable Description
E Total energy transferred to the environment.

ECyc Total energy transferred to the environment for the last


cycle.

EHx Total heat exchanged to single phase medium.

EHxCyc Total heat exchanged to single phase medium for the last
cycle.

Ecw Total heat exchanged to cooling water.

EcwCyc Total heat exchanged to cooling water for the last cycle.

Est Total heat exchanged to steam.

EstCyc Total heat exchanged to steam for the last cycle.

gas_bed Model: Additional Notes


Note the following information when using the gas_bed model:
• You can give a label or ID number for each adsorbent layer in the bed.
• The gas_bed model does not include any inlet or outlet dead space. Use a
gas_tank_void model at each end to simulate dead space.
• The gas_bed model behaves as a reversible flow setter. Ideally, it expects
a reversible pressure setter to be connected at each end.

gas_buffer_interaction Model
The gas_buffer_interaction model simulates a void or tank where material can
accumulate. Use the model as part of the single bed modeling approach to

1 Model Library 17
simulate, for example, material recovered from a pseudo-bed whilst the
actual modeled bed undergoes a regenerative step.

gas_buffer_interaction Model: Connectivity


These are the available connections for the gas-buffer_interaction model:

Port name Type Valid connection


Process_In g_material_port (single) gas_Material_Connection

Process_Out g_material_port (multiport) gas_Material_Connection

gas_buffer_interaction Model: Configuration


These are the configuration options available for the gas_buffer_interaction
model:

Option Valid values Description


Model type Reversible Pressure Setter Mode of flowsheet
interactivity.
Non-Reversible

Gas model assumption Ideal Gas Is the gas contained an


ideal gas? If not ,how
Fixed Compressibility is the compressibility
User Procedure factor supplied?
Compressibility
User Submodel
Compressibility

Include compression Yes Is the heat of


term compression included
No in the energy balance?

Heat effect assumption Adiabatic Is there heat exchange


with the external
Non-Adiabatic environment?

Shape assumption Spherical If there is heat


exchange with the
Cylindrical external environment,
Hemispherical what shape is the heat
transfer area?
Cap
Unknown

gas_buffer_interaction Model: Specifications


Depending on how the gas_buffer_interaction model has been configured, you
need to specify one or more of these variables in the Specify table:

Variable Description
Tank_Volume Total volume of the tank/void.

Height Height of a cylindrical void/tank.

Tank_Height Height from cap seam to apex.

1 Model Library 18
Diameter Diameter of cylinder/sphere/cap/hemisphere.

Surface_Area Overall surface area through which heat is


exchanged.

Z Constant gas compressibility factor.

Mass_Shell Mass of void/tank wall.

Cp_Shell Heat capacity of the shell wall.

HTC_Shell Heat transfer coefficient between internal gas


and wall.

HTC_Env Heat transfer coefficient between wall and the


environment.

T_Shell Shell wall temperature.

T_Env Environment temperature.

Delay_Initial_Reverse_F For a reverse interaction, the estimated flowrate


to use for the first cycle.

Delay_Initial_Reverse_Y For a reverse interaction, the estimated


composition to use for the first cycle.

Delay_Initial_Reverse_H For a reverse interaction, the estimated enthalpy


to use for the first cycle.

gas_buffer_interaction Model: Initialization


The recommended variables to preset and initialize for the
gas_buffer_interaction model are:

Variable Specification Description


Y Free (preset) Internal molefraction
composition.

T Initial Internal temperature.

P Free (preset) Internal pressure.

Mc Initial Internal molar holdup (found in


Results table).

A valid alternative specification is:

Variable Specification Description


Y Initial (ncomps-1) Internal molefraction
composition.
Free (preset, 1 comp)

T Initial Internal temperature.

P Initial Internal pressure.

Mc Free (preset) Internal molar holdup (found


in Results table).

To run the initialization script contained within the model, click the Initialize
button or select Check & Initial from the Flowsheet menu. This calculates the
appropriate molar holdup for the conditions provided.

1 Model Library 19
gas_buffer_interaction Model: User Procedures Used
Depending on how the gas_buffer_interaction model is configured, the user
procedures available are:

User procedure Description


pUser_g_Enthalpy_Mol Molar enthalpy (user Fortran physical properties).

pUser_g_Compressibility Compressibility factor (user Fortran physical


properties).

gas_buffer_interaction Model: Results


Typical variables in the Results table for the gas_buffer_interaction model
are:

Variable Description
Y Internal holdup composition.

Mc Internal component holdup.

T Internal temperature.

P Internal pressure.

H Internal enthalpy.

gas_buffer_interaction Model: Additional Notes


Note the following information when using the gas_buffer_interaction model:
• Use the Cycle Organizer to define the interactions between steps.
• By default, the model behaves as a reversible pressure setter.

gas_feed Model
The gas_feed model terminates an inlet/feed flowsheet boundary. Use it to
specify the material composition, temperature and pressure. If configured as
reversible, the model acts as a product sink should the flow reverse.

gas_feed Model: Connectivity


This is the available connection for the gas_feed model:

Port name Type Valid connection


Process_Out g_material_port (single) gas_Material_Connection

gas_feed Model: Configuration


These are the configuration options available for the gas_feed model:

Option Valid values Description


Model type Reversible Pressure Mode of flowsheet interactivity.
Setter

1 Model Library 20
Non-Reversible

Enable True Enable boundary accumulation


reporting terms for material balance
False reporting.

gas_feed Model: Specifications


Depending on how the gas_feed model has been configured, you need to
specify one or more of these variables in the Specify table:

Variable Description Reversible/Non-


reversible model
Y_Out Composition of stream. Non-reversible model

T_Out Temperature of stream. Non-reversible model

P_Out Pressure at boundary. Non-reversible model

Y_Fwd Composition of stream in Reversible model


forward direction.

T_Fwd Temperature of stream in Reversible model


forward direction.

P Pressure at boundary. Reversible model

gas_feed Model: Initialization


No initialization method is required.

gas_feed Model: User Procedures Used


Depending on how the gas_feed model is configured, the user procedure
available is:

User procedure Description


pUser_g_Enthalpy_Mol Molar enthalpy (user Fortran physical
properties).

gas_feed Model: Results


Typical variables in the Results and Reports table for the gas_feed model are:

Variable Description Reversible/Non-


reversible model
F_Out Molar flowrate. Non-reversible model

F Molar flowrate. Reversible model

Y_Rev Stream composition in reverse direction. Reversible model

T_Rev Stream temperature in reverse direction. Reversible model

H_Rev Stream enthalpy in reverse direction. Reversible model

Total_Material Total material fed into boundary. Non-reversible model

Total_Material_Fwd Total material fed into boundary. Reversible model

1 Model Library 21
Total_Material_Rev Total material received at boundary. Reversible model

Total_Component Total component fed into boundary. Non-reversible model

Total_Component_Fwd Total component fed into boundary. Reversible model

Total_Component_Rev Total component received at boundary. Reversible model

Avg_Composition Total average composition of component Non-reversible model


fed into boundary.

Avg_Composition_Fwd Total average composition of component Reversible model


fed into boundary.

Avg_Composition_Rev Total average composition of component Reversible model


received at boundary.

Total_Energy Total energy fed into boundary. Non-reversible model

Total_Energy_Fwd Total energy fed into boundary. Reversible model

Total_Energy_Rev Total energy received at boundary. Reversible model

Cycle_Total_Material Total material fed into boundary for last Non-reversible model
cycle.

Cycle_Total_Material_Fwd Total material fed into boundary for last Reversible model
cycle.

Cycle_Total_Material_Rev Total material received at boundary for Reversible model


last cycle.

Cycle_Total_Component Total component fed into boundary for Non-reversible model


last cycle.

Cycle_Total_Component_Fw Total component fed into boundary for Reversible model


d last cycle.

Cycle_Total_Component_Re Total component received at boundary for Reversible model


v last cycle.

Cycle_Avg_Composition Total average composition of component Non-reversible model


fed into boundary for last cycle.

Cycle_Avg_Composition_Fw Total average composition of component Reversible model


d fed into boundary for last cycle.

Cycle_Avg_Composition_Re Total average composition of component Reversible model


v received at boundary for last cycle.

Cycle_Total_Energy Total energy fed into boundary for last Non-reversible model
cycle.

Cycle_Total_Energy_Fwd Total energy fed into boundary for last Reversible model
cycle.

Cycle_Total_Energy_Rev Total energy received at boundary for last Reversible model


cycle.

gas_feed Model: Additional Notes


Note the following information when using the gas_feed model:
• For forced feed (that is, fixed material flowrate, no valve fitted to the
outlet), it is valid to specify F_Out or F_Fwd as Fixed.
• At low flow conditions where the absolute value of the flowrate is less than
or equal to the residual tolerance, the information in the Report table is
inaccurate.

1 Model Library 22
gas_heat_exchanger Model
The gas_heat_exchanger model modifies the temperature of an inlet stream.
By default, it operates at a constant outlet temperature. You can change the
model operation to either constant duty or constant temperature rise/drop.
The model is of type non-reversible.

gas_heat_exchanger Model: Connectivity


These are the available connections for the gas_heat_exchanger model:

Port name Type Valid connection


Process_In g_material_port (single) gas_Material_Connection

Process_Out g_material_port (single) gas_Material_Connection

Liquid_Out liq_material_port (single, optional) liq_Material_Connection

gas_heat_exchanger Model: Configuration


No configuration options are available for the gas_heat_exchanger model.

gas_heat_exchanger Model: Specifications


Depending on how the gas_heat_exchanger model has been configured, you
need to specify one or more of these variables in the Specify table:

Variable Description
Heat_Exchange_Area Composition of stream (non-reversible
model).

U Overall heat transfer coefficient.

T_Out Outlet temperature.

T_Fluid Temperature of heat exchange fluid.

Q Heat exchanger duty.

T_Change Temperature rise/drop of process stream.

P_Drop Constant average pressure drop.

gas_heat_exchanger Model: Initialization


No initialization method is required for the gas_heat_exchanger model.

gas_heat_exchanger Model: User Procedures Used


Depending on the model configuration, the user procedures available for the
gas_heat_exchanger model are:

User procedure Description


pUser_g_Enthalpy_Mol Molar enthalpy.

pUser_g_Avg_Mole_Weight Average molecular weight.

pUser_l_Density_Mass Overall liquid density.

1 Model Library 23
pUser_Flash Instantaneous flash calculation enthalpy.

Note: All these procedures are user-Fortran physical properties,


with the optional liquid port connected.

gas_heat_exchanger Model: Results


Typical variables in the Specify table for the gas_heat_exchanger model are:

Variable Description
T_Out Outlet temperature.

Q Heat exchanger duty.

T_Change Temperature rise/drop.

gas_interaction Model
Use the gas_interaction model as part of the single bed modeling approach,
to record the profile of material received, then later replay this profile to
simulate returned material. The following are recorded over time:
• Molar flowrate
• Mole fraction composition
• Temperature
• Upstream (bed) pressure
• Specific enthalpy
By acting as a pseudo-adsorbent bed, the model can behave as a bed at
either constant or varying pressure. Use the Cycle Organizer to define the
steps between which an interaction occurs.
You can define any type of bed interaction with the model:
• Top-to-top
• Top-to-bottom
• Bottom-to-bottom
• Bottom-to-top
These are defined by the connectivity, that is where material is accepted from
and returned to. Interactions cannot be redefined during a run as connectivity
is structural, so if you want more than one type of interaction, use additonal
interaction models.
In the first cycle, during cyclic operation, the model uses an approximation
based on an assumed effective volume, to simulate the pressure of the
interacting bed. For subsequent cycles, the recorded pressure profile of the
rigorously modeled bed provides an accurate response for the pseudo bed.

gas_interaction Model: Connectivity


These are the available connections for the gas_interaction model:

1 Model Library 24
Port name Type Valid connection
Process_In g_material_port (single) gas_Material_Connection

Process_Out g_material_port (single) gas_Material_Connection

gas_interaction Model: Configuration


These are the configuration options available for the gas_interaction model:

Option Valid values Description Comment


Delay behaviour v10x Assumption used for Use real profile or
v6x subsequent cycles. continue with
estimated profile.

FIFO profile True Type of profile buffer used. Standard first-in-


False first-out, or
inverted first-in-
last-out.

gas_interaction Model: Specifications


Depending on how the gas_interaction model has been configured, you need
to specify one or more of these variables in the Specify table:

Variable Description
Notional_Volume Estimated effective volume of the real
bed/s.

P_Stage_Start Start pressure of the interaction unit.

XFac Effective volume correction factor.

F_Initial_Reverse Average flowrate of returned material


during a reverse interaction.

Y_Initial_Reverse Average composition of returned material


during a reverse interaction.

T_Initial_Reverse Average temperature of material during a


reverse interaction.

P_Initial_Reverse Average pressure of returned material


during a reverse interaction.

Note: All these variables are used in the first cycle.

gas_interaction Model: Initialization


No initialization method is required for the gas_intaraction model.

gas_interaction Model: User Procedures Used


Depending on the model configuration, the user procedure available for the
gas_interaction model is:

1 Model Library 25
User procedure Description
pUser_g_Enthalpy_Mol Molar enthalpy (user Fortran physical
properties, optional liquid port not
connected).

gas_interaction Model: Results


The typical variable in the Results table for the gas_interaction model is:

Variable Description
P Internal pressure.

gas_interaction Model: Additional Notes


Note the following information when using the gas_interaction model:
• The model assumes that standard unit operation is a first-in-first-out
buffer profile. For specialist applications, you can invert this profile, but
this is a structural parameter, so your new profile applies to all
interactions in a unit.
• If the buffer profile is assumed first-in-last-out, the delay behavior uses
estimated pressure profiles for all cycles.
• The communication interval affects model accuracy. If interactions are
present, try to have at least three communication points within the
shortest interacting steps.
• The model uses a Delay function. Exiting Aspen Adsim, loading a new
problem or reopening the old problem, all clear the delay buffer so
historical information is lost.
• By default, the approximation or initial reverse values are only used in the
first cycle. You can apply these to all cycles by changing the delay
behavior to v6x.
• Each interaction unit can handle multiple interacting pairs.
• Use the Cycle Organizer to define the interaction and profile times.
• For the unit inlet stream, use a gas_valve or gas_ramp model; for the
outlet, connect any model except a gas_valve or gas_ramp. (The Check &
Initial option in the Flowsheet menu detects errors here and corrects
accordingly.)
• The model approximates the pressure in the interaction unit using:
dn
RT
dP dt
=
dt XFac V
Click the Estimate button on the configure form for an approximate value
for Notional_Volume. This calculation uses the interstitial volume of the
gas_bed train present on the flowsheet.
• The variables Notional_Volume, P_Stage_Start, XFac, F_Initial_Reverse,
Y_Initial_Reverse, T_Initial_Reverse and P_Initial_Reverse are used only
in the first cycle. They are ignored in subsequent cycles.
• Within the Cycle Organizer, reset P_Stage_Start to the required value for
each step. Pressure changes then start from this value.

1 Model Library 26
• XFac may need modifying from step to step. To do this, use the Cycle
Organizer.
• To simulate a constant pressure interaction, set XFac to a high value, such
as 100. This increases the volume to such an extent that it acts like a void
of near infinite capacity.

gas_node Model
The gas_node model joins one or more inlet streams to one or more outlet
streams. The model is an alternative method to the gas_tank_void model for
joining multiple streams, but without an internal volume.

gas_node Model: Connectivity:


These are the available connections for the gas_node model:

Port name Type Valid connection


Process_In g_material_port (multiport) gas_Material_Connection

Process_Out g_material_port (multiport) gas_Material_Connection

gas_node Model: Configuration


This is the configuration option available for the gas_node model:

Option Valid values Description


Model type Reversible Pressure Setter Mode of flowsheet interactivity.
Non-Reversible

gas_node Model: Specifications


There are no variables to specify for the gas_node model.

gas_node Model: Initialization


No initialization method is required for the gas_node model.

gas_node Model: User Procedures Used


Depending on the model configuration, the user procedure available for the
gas_node model is:

User procedure Description


pUser_g_Enthalpy_Mol Molar enthalpy (user Fortran physical
properties).

gas_node Model: Results


Typical variables in the Results table for the gas_node model are:

Variable Description

1 Model Library 27
Y Average composition of outlet material.

T Average temperature of outlet material.

P Common pressure of node.

H Average enthalpy of outlet material.

gas_node Model: Additional Notes


Note the following information when using the gas_node model:
• For robustness, use the gas_tank_void model as a common meeting point.
• To avoid indeterminate variables, ensure a pressure setter is connected to
a single inlet or outlet.

gas_pipe Model
Use the gas_pipe model to simulate a simple, flowing isothermal gas pipe.
The pipe is assumed to have negligible hold-up volume so that it responds
instantaneously to any change in the inflowing stream. The model acts as a
flow setter. The constant density assumption is generally acceptable for short
pipes whose pressure drop is less than 10% of the total inlet pressure.

gas_pipe Model: Connectivity


These are the available connections for the gas_pipe model:

Port name Type Valid connection


Process_In g_material_port (single) gas_Material_Connection

Process_Out g_material_port (single) gas_Material_Connection

gas_pipe Model: Configuration


These are the configuration options available for the gas_pipe model:

Option Valid values Description


Model type Reversible Pressure Setter Mode of flowsheet interactivity.
Non-Reversible

Gas Density Varying Density variation within the


along pipe pipe.
Constant

gas_pipe Model: Specifications


Depending on how the gas_pipe model has been configured, you need to
specify one or more of these variables in the Specify table:

Variable Description
Dia Pipe dimeter

L Length of pipe

1 Model Library 28
FF Friction factor

gas_pipe Model: Initialization


No initialization method is required for the gas_pipe model.

gas_pipe Model: User Procedures Used


Depending on the model configuration, the user procedures available for the
gas_pipe model are:

User procedure Description


pUser_g_Enthalpy_Mol Molar enthalpy (user Fortran physical
properties).

pUser_g_Avg_Mole_Weight Average molecular weight of gas (user


Fortran physical properties).

gas_pipe Model: Results


Typical variables in the Results table for the gas_pipe model are:

Variable Description
AMW Average molecular weight of gas.

DP Pressure drop along the pipe.

gas_pipe Model: Additional Notes


Note the following information when using the gas_pipe model:
• You must supply a constant, non-zero value for the pipe friction factor.
This is reasonable for fully developed turbulent flow, for which the friction
factor is independent of flow rate. Typically, the friction factor varies
between about 0.002 and about 0.02.
• You can either:
− Specify the pipe pressure drop or outlet pressure to calculate flow rate.
-or-
− Make the pressure drop free and have it calculated from the molar flow
rate.

gas_product Model
The gas_product model terminates an outlet/product flowsheet boundary. It
receives material from the flowsheet. If configured as a reversible model, the
model acts as a feed unit should the flow reverse. The material composition
and temperature for this material can be defined.

gas_product Model: Connectivity


These are the available connections for the gas_product model:

1 Model Library 29
Port name Type Valid connection
Process_In g_material_port (single) gas_Material_Connection

gas_product Model: Configuration


These are the configuration options available for the gas_product model:

Option Valid values Description


Model type Reversible Pressure Setter Mode of flowsheet
interactivity.
Non-Reversible

Enable reporting True Enable boundary


accumulation terms
False for material balance
reporting.

gas_product Model: Specifications


Depending on if the model has been configured, you need to specify one or
more of these variables in the Specify table:

Variable Description Reversible/No


n-reversible
model
P_In Pressure at boundary. Non-reversible
model

Y_Rev Composition of stream in reverse Reversible model


direction.

T_Rev Temperature of stream in reverse Reversible model


direction.

P Pressure at boundary. Reversible model

gas_product Model: Initialization


No initialization method is required for the gas_product model.

gas_product Model: User Procedures Used


Depending on the model configuration, the user procedure available for the
gas_product model is:

User procedure Description


pUser_g_Enthalpy_Mol Molar enthalpy (user Fortran physical
properties, reversible model).

gas_product Model: Results


Typical variables in the Results and Reports tables for the gas_product model
are:

1 Model Library 30
Variable Description Reversible/No
n-reversible
model
F_In Molar flowrate. Non-reversible
model

F Molar flowrate. Reversible model

Y_Fwd Stream composition. Reversible model

T_Fwd Stream temperature. Reversible model

H_Fwd Stream enthalpy. Reversible model

Total_Material Total material received at boundary. Non-reversible


model

Total_Material_Fwd Total material received at boundary. Reversible model

Total_Material_Rev Total material fed into boundary. Reversible model

Total_Component Total component received at boundary. Non-reversible


model

Total_Component_Fwd Total component received at boundary. Reversible model

Total_Component_Rev Total component fed into boundary. Reversible model

Avg_Composition Total average composition of component Non-reversible


received at boundary. model

Avg_Composition_Fwd Total average composition of component Reversible model


received at boundary.

Avg_Composition_Rev Total average composition of component Reversible model


fed into boundary.

Total_Energy Total energy received at boundary. Non-reversible


model

Total_Energy_Fwd Total energy received at boundary. Reversible model

Total_Energy_Rev Total energy fed into boundary. Reversible model

Cycle_Total_Material Total material received at boundary for last Non-reversible


cycle. model

Cycle_Total_Material_Fwd Total material received at boundary for last Reversible model


cycle.

Cycle_Total_Material_Rev Total material fed into boundary for last Reversible model
cycle.

Cycle_Total_Component Total component received at boundary for Non-reversible


last cycle. model

Cycle_Total_Component_Fwd Total component received at boundary for Reversible model


last cycle.

Cycle_Total_Component_Rev Total component fed into boundary for last Reversible model
cycle.

Cycle_Avg_Composition Total average composition of component Non-reversible


received at boundary for last cycle. model

Cycle_Avg_Composition_Fwd Total average composition of component Reversible model


received at boundary for last cycle.

Cycle_Avg_Composition_Rev Total average composition of component Reversible model


fed into boundary for last cycle.

Cycle_Total_Energy Total energy received at boundary for last Non-reversible


cycle. model

1 Model Library 31
Cycle_Total_Energy_Fwd Total energy received at boundary for last Reversible model
cycle.

Cycle_Total_Energy_Rev Total energy fed into boundary for last Reversible model
cycle.

gas_product Model: Additional Notes


Note the following information when using the gas_product model:
• At low flow conditions, where the absolute value of the flowrate is less
than or equal to the residual tolerance, the information in the Report table
is innacurate.

gas_pump Model
The gas_pump model simulates a single-stage pump for compressible
(gaseous) fluids. The unit is considered as a non-reversible model.

gas_pump Model: Connectivity


These are the available connections for the gas_pump model:

Port name Type Valid connection


Process_In g_material_port (single) gas_Material_Connection

Process_Out g_material_port (single) gas_Material_Connection

gas_pump Model: Configuration


These are the configuration options available for the gas_pump model:

Option Valid values Description


Mode of operation Isothermal Compressor Characteristic
behavior of the
Isentropic Compressor pump.
Polytropic Compressor
Isentropic Vacuum Pump
User Defined

Pump characteristic number Integer value Performance


curve number
(contained within
user Fortran).

gas_pump Model: Specifications


Depending on how the gas_pump model has been configured, you need to
specify one or more of these variables in the Specify table:

Variable Description
Polytropic_Efficiency Polytropic efficiency of pump (polytropic
pump).

1 Model Library 32
Np Polytropic index.

Gamma Ratio of specific heat capacities.

Work Actual work required.

Power Power requirement.

gas_pump Model: Initialization


No initialization method is required for the gas_pump model.

gas_pump Model: User Procedures Used


Depending on the model configuration, the user procedures available for the
gas_pump model are:

User procedure Description


pUser_g_Pump_Performance Pump performance characteristic
curve.

pUser_g_Enthalpy_Mol Molar enthalpy (user Fortran physical


properties, reversible model).

pUser_g_Entropy_Mol Molar entropy (user Fortran physical


properties, reversible model).

gas_pump Model: Results


Typical variables in the Results and Specify tables for the gas_pump model
are:

Variable Description
Work Actual work required.

Power Power requirement.

Total_Energy Total energy consumed.

Cycle_Total_Energy Total energy consumed at boundary for last


cycle.

gas_pump Model: Additional Notes


Note the following information when using the gas_pump model:
• At low flow conditions, where the absolute value of the flowrate is less
than or equal to the residual tolerance, the information in the Report table
is inaccurate.
• You must connect the outlet of a vacuum pump to a gas_product unit
whose pressure has been specified as free.
• The pump performance curves come from Fortran procedures.

gas_ramp Model
The gas_ramp model drives a gas phase adsorbent bed through a series of
pressure profiles. This is useful when there is no information on valve opening

1 Model Library 33
coefficients, in which case the model acts as an in-situ replacement for a
gas_valve.

gas_ramp Model: Connectivity


These are the available connections for the gas_ramp model:

Port name Type Valid connection


Process_In g_material_port (single) gas_Material_Connection

Process_Out g_material_port (single) gas_Material_Connection

gas_ramp Model: Configuration


These are the configuration options available for the gas_ramp model:

Option Valid values Description


Unit relative location Feed Defines relative
location of the model
Product with respect to an
Delay adsorbent bed and
boundary. This
automatically updates
if a gas_feed,
gas_product or
gas_interaction is
connected.

Model type Reversible Flow Setter Mode of flowsheet


interactivity.
Non-Reversible

Apply stop action No For a reversible


model, does the unit
Yes also act as a non-
return/check valve.

gas_ramp Model: Specifications


Depending on how the gas_ramp model has been configured, you need to
specify one or more of these variables in the Specify table:

Variable Description
Active_Specification Specification to control the model:
0 = Fully off (zero flow).
1 = Fully open (responds as high Cv
valve).
2 = Defined pressure regime (from start to
end pressure, makes use of Xstart, Xend,
Notional_Volume and Xfac variables).
3 = Constant flowrate (uses the value for
Flowrate).

Pstart Adsorbent bed start pressure.

Pend Adsorbent bed end pressure.

1 Model Library 34
Dstart Interacting bed start pressure.

Dend Interacting bed end pressure.

Flowrate Flowrate of material.

Notional_Volume Estimated effective volume of the real bed.

XFac Effective volume correction factor.

gas_ramp Model: Initialization


No initialization method is required for the gas_ramp model.

gas_ramp Model: User Procedures Used


There are no user procedures available for the gas_ramp model.

Results:
Typical variables in the Results table for the gas_ramp model are:

Variable Description
P_Change Pressure drop across the unit.

Pcurrent Currently enforced pressure on adsorbent bed


side.

gas_ramp Model: Additional Notes


Note the following information when using the gas_ramp model:
• By default, the model behaves as a reversible flow setter.
• Ideally, connect a pressure setter on each side.
• Use the variable Active_Specification to specify the operation of the unit.
All the other variables act as value “holders”.
• When the model is part of an interaction unit train, the approximate
pressure is given by:
dn
RT
dP dt
=
dt XFac V
Notional_Volume may be quickly approximated using the Estimate button
on the configure form. This calculates the interstitial volume of the
gas_bed train present on the flowsheet.
• The calculated ramps are nonlinear.
• When ramping down, ensure that the pressure of the connected feed or
product unit is at least 1 mbar below the target pressure.
• When ramping up, ensure that the pressure of the connected feed or
product is at least 1 mbar above the target pressure.

gas_tank_void Model
The gas_tank_void is a general purpose model for simulating adsorbent bed
deadspaces (voids), tanks, pressure receivers or piping nodes.

1 Model Library 35
gas_tank_void Model: Connectivity
These are the available connections for the gas_tank_void model:

Port name Type Valid connection


Process_In g_material_port (multiport) gas_Material_Connection

Process_Out g_material_port (multiport) gas_Material_Connection

gas_tank_void Model: Configuration


These are the configuration options available for the gas_tank_void model:

Option Valid values Description


Model type Reversible Pressure Setter Mode of flowsheet
interactivity.
Non-Reversible

Gas model Ideal Gas Is the gas contained an


assumption ideal gas.? If not ,how
Fixed Compressibility is the compressibility
User Procedure factor supplied?
Compressibility
User Submodel
Compressibility

Include compression Yes Is the heat of


term compression part of
No the energy balance?

Heat effect Adiabatic Is there heat exchange


assumption with the external
Non-Adiabatic environment?

Shape assumption Spherical If there is heat


exchange with the
Cylindrical environment, what
Hemispherical shape is the heat
transfer area?
Cap
Unknown

gas_tank_void Model: Specifications


Depending on how the gas_tank_void model has been configured, you need
to specify one or more of these variables in the Specify table:

Variable Description
Tank_Volume Total volume of the tank/void.

Height Height of a cylindrical void/tank.

Tan_Height Height from cap seam to apex.

Diameter Diameter of cylinder/sphere/cap/hemisphere.

Surface_Area Overall surface area through which heat is


exchanged.

Z Constant gas compressibility factor.

1 Model Library 36
Mass_Shell Mass of void/tank wall.

Cp_Shell Heat capacity of the shell wall.

HTC_Shell Heat transfer coefficient between internal gas


and wall.

HTC_Env Heat transfer coefficient between wall and the


environment.

T_Shell Shell wall temperature.

T_Env Environment temperature.

gas_tank_void Model: Initialization


The recommended variables to initialize for the gas_tank_void model are:

Variable Specification Description


Y Initial (ncomps-1) Internal molefraction
composition.
Free (preset, 1 comp)

T Initial Internal temperature.

P Initial Internal pressure.

To run the initialization script for the model, click the Initialize button or
select Check & Initial from the Flowsheet menu. This calculates an
approximate molar holdup for the conditions provided.

gas_tank_void Model: User Procedures Used


Depending on the model configuration, the user procedures available for the
gas_tank_void model are:

User procedure Description


pUser_g_Enthalpy_Mol Molar enthalpy (user Fortran physical
properties).

pUser_g_Compressibility Compressibility factor (user Fortran


physical properties).

gas_tank_void Model: Results


Typical variables in the Results table for the gas_tank_void model are:

Variable Description
Y Internal holdup composition.

Mc Internal component holdup.

T Internal temperature.

P Internal pressure.

H Internal enthalpy.

1 Model Library 37
gas_tank_void Model: Additional Notes
Note the following information when using the gas_tank_void model:
• By default, the model behaves as a reversible pressure setter.
• Ideally, a flow setter or adsorption bed must be connected on each
stream.
• The model accepts any number of inlet and outlet streams.
• With the model as a node or junction, we recommend you use a minimum
volume of 1E-5 m3.
• With the model as a column void, we recommended you switch off the
heat of compression term as the unit is not assumed to be well mixed.
• Switching off the heat of compression term makes the model perform
similarly to Adsim 6.x and Aspen Adsim 10.0.

gas_valve Model
The gas_valve model simulates a simple linear valve, an ISA valve, or a
choked flow valve.

gas_valve Model: Connectivity


These are the available connections for the gas_valve model:

Port name Type Valid connection


Process_In g_material_port (single) gas_Material_Connection

Process_Out g_material_port (single) gas_Material_Connection

gas_valve Model: Configuration


These are the configuration options available for the gas_valve model:

Option Valid values Description


Model type Non-Reversible Mode of flowsheet
interactivity.
Reversible Flow Setter
Non-Reversible Delay

Valve characteristic Linear Characteristic


behavior of the
ISA valve.
Choked
Pop

Gas model Ideal Gas Is the gas


contained an ideal
Fixed Compressibility gas? If not , how
User Procedure Compressibility is the
compressibility
User Submodel Compressibility factor supplied?

Include compression Yes Is the heat of


term compression part
No of the energy
balance?

1 Model Library 38
Apply stop action No For a reversible
model, does the
Yes unit also act as a
non-return/check
valve?

Specifications made Cv Flow specification


available methods for
Flow/Cv linear valve.

gas_valve Model: Specifications


Depending on how the gas_valve model has been configured, you need to
specify one or more of these variables in the Specify table:

Variable Description
Active_Specification For linear valves, depending on your choice for
Specifications Made Available, the following
specifications can be used:
0 = Valve fully off.
1 = Valve fully on (acts as a valve with high Cv).
2 = Make use of the value specified for Cv
(constant Cv).
3 = Make use of the value specified for Flowrate
(constant flowrate).
The specification can be changed during runtime.

Cv Linear valve coefficient (only used when


Active_Specification = 2).

Flowrate Constant forced flowrate (only used when


Active_Specification = 3).

Popen Pressure at which a Pop valve automatically


opens.

Pclose Pressure at which a Pop valve automatically


closes.

Cv_ISA Valve coefficient for an ISA or Choked valve.

Xt Pressure drop ratio for an ISA or Choked valve.

delta_p_min Minimum pressure drop for a Choked valve.

Z Fixed compressibility factor.

gas_valve Model: Initialization


No initialization method is required for the gas_valve model.

gas_valve Model: User Procedures Used


Depending on the model configuration, the user procedures available for the
gas_valve model are:

User procedure Description


pUser_g_Avg_Mole_Weight Average molecular weight of gas.

1 Model Library 39
pUser_g_Heat_Capacity_Cv Gas heat capacity at constant
volume.

pUser_g_Heat_Capacity_Mol Gas heat capacity at constant


pressure.

pUser_g_Compressibility Compressibility factor.

Note: These are all user Fortran physical properties procedures.

gas_valve Model: Results


Typical variables in the Results table for the gas_valve model are:

Variable Description
Cv_Calculated Equivalent linear valve Cv.

Flowrate_Calculated Flowrate through the valve.

P_Change Pressure change across the valve.

Control_Action External controller action applied.

chkfac If greater than 1, choked flow has occurred.

delta_p Ideal pressure drop in Choked valve.

delta_p_choked Choked flow pressure drop.

gas_valve Model: Additional Notes


Note the following information when using the gas_valve model:
• By default, the model behaves as a linear reversible flow setter.
• Ideally, a pressure setter must be connected on each side of the valve.
• The control action can be any real number from 0 to 1.
• This applies to models configured as a linear valve with forced flow and
stop action: if the pressure equalizes across the valve, the flow of material
stops.
• If a gas_interaction model is connected to the outlet, the non-reversible
delay valve configuration is detected automatically on opening the
configure form.
• The Pop feature allows the valve to automatically open and close, based
on an opening and closing pressure. Initially, the valve is assumed closed.
The valve characteristic is linear and uses the same specifications.

Ion-Exchange Models
The table lists the ion-exchange models available in Aspen Adsim. You
connect these models using the ionx_Material Connection stream.

Model Description

1 Model Library 40
ionx_bed Resin bed layers.

ionx_feed Feed/inlet boundary terminator.

ionx_feed_distrib Feed distributor.

ionx_interaction Pseudo-bed for single bed approach.

ionx_mix_multi_nr Multi inlet non-reversible mixer.

ionx_mix_nr2 2 inlet stream non-reversible selector.

ionx_mix_nr3 3 inlet stream non-reversible selector.

ionx_prod_distrib Product distributor.

ionx_product Product/outlet terminator boundary.

ionx_split_nr2 2 outlet non-reversible selector.

ionx_valve_nr Flow setting device.

ionx_bed Model
The ionx_bed model simulates an ion-exchange unit in an ion-exchange
flowsheet. It acts as a container model for the ion-exchange resin layers and
their interconnections.

ionx_bed Model: Connectivity


These are the available connections for the ionx_bed model:

Port name Type Valid connection


Process_In i_material_port (single) ionx_Material_Connection

Process_Out i_material_port (single) ionx_Material_Connection

ionx_bed Model: Configuration


This is the configuration option available for the ionx_bed model:

Option Valid values Description


Number of layers Integer (1 or higher) Number of independent
resin layers with the
bed.

ionx_bed Model: Specifications


No specifications are required for the bed, but each resin layer has its own
specifications.

ionx_bed Model: Initialization


No initialization method is required for the ionx_bed model, but each
contained layer needs initializing.

ionx_bed Model: User Procedures Used


There are no user procedures available for the ionx_bed model.

1 Model Library 41
ionx_bed Model: Results
There are no recommended results for the ionx_bed model.

ionx_bed Model: Additional Notes


Note the following information when using the ionx_bed model:
• You can give a label or ID number for each adsorbent layer in the bed.
• The model does not include any inlet or outlet dead space.
• The model behavior is reversible, so you must connect distributors or feed
and product units at each end.

ionx_feed Model
The ionx_feed model terminates an inlet/feed flowsheet boundary. Use it to
specify the ion concentration and bulk molar density of the stream. If
configured as a reversible model, the model acts as a product sink should the
flow reverse.

ionx_feed Model: Connectivity


These are the available connections for the ionx_feed model:

Port name Type Valid connection


Process_In i_material_port (single) ionx_Material_Connection

Process_Out i_material_port (single) ionx_Material_Connection

ionx_feed Model: Configuration


These are the configuration options available for the ionx_feed model:

Option Valid values Description


Model type Reversible Mode of flowsheet interactivity.
Non-Reversible

Enable reporting True Enable boundary accumulation


terms for material balance
False reporting.

ionx_feed Model: Specifications


Depending on how the ionx_feed model has been configured, you need to
specify one or more of these variables in the Specify table:

Variable Description Reversible/Non-reversible


model
C_Out Ion concentration Non-reversible model

Rhol_Out Bulk molar density Non-reversible model

C_Fwd Ion concentration Reversible model

1 Model Library 42
Rhol_Fwd Bulk molar density Reversible model

ionx_feed Model: Initialization


No initialization method is required for the ionx_feed model.

ionx_feed Model: User Procedures Used


There are no user procedures available for the ionx_feed model.

ionx_feed Model: Results


Typical variables in the Results and Reports tables for the ionx_feed model
are:

Variable Description Reversible/Non-


reversible model
F_Out Volumetric flowrate. Non-reversible model

F Volumetric flowrate. Reversible model

C_Rev Stream composition in reverse direction. Reversible model

Rhol_Rev Stream bulk molar density in reverse Reversible model


direction.

ionx_feed Model: Additional Notes


Note the following information when using the ionx_feed model:
• For forced feed (fixed material flowrate, no valve fitted to the outlet), it is
valid to specify F_Out or F as Fixed.

ionx_feed_distrib Model
Use the ionx_feed_distrib model as a four-way valve within an ion-exchange
flowsheet. The model is reversible and contains two inlet and two outlet ports.

ionx_feed_distrib Model: Connectivity


These are the available connections for the ionx_feed_distrib model:

Port name Type Valid connection


Process_In1 i_material_port (single) ionx_Material_Connection

Process_In2 i_material_port (single) ionx_Material_Connection

Process_Out1 i_material_port (single) ionx_Material_Connection

Process_Out2 i_material_port (single) ionx_Material_Connection

ionx_feed_distrib Model: Configuration


No configuration options are available for the ionx_feed model.

1 Model Library 43
ionx_feed_distrib Model: Specifications
Depending on how the ionx_feed_distrib model has been configured, you
need to specify one or more of these variables in the Specify table:

Variable Description
Mode Distribution setting:
1 = Process_In1 and Process_Out1 connected and flowrate
set to Flow. Zero flow for other streams.
2 = Process_Out1 and Process_Out2 connected and
flowrate set to Flow. Process_In1 set to zero flow.
3 = Process_In2 and Process_Out1 connected.
Process_In1 and Process_Out2 set to zero flow.
4 = Process_In1 set to Flow, Process_Out1 equal to the
sum of Process_In1 and Process_In2. Process_Out2 set to
zero flow.

Flow Nominal volumetric flowrate.

ionx_feed_distrib Model: Initialization


No initialization method is required for the ionx_feed_distrib model.

ionx_feed_distrib Model: User Procedures Used


There are no user procedures available for the ionx_feed model.

ionx_feed_distrib Model: Results


Typical variables in the Results table for the ionx_feed model are:

Variable Description
Process_In1.F Volumetric flowrate of inlet stream 1.

Process_In2.F Volumetric flowrate of inlet stream 2.

Process_Out1.F Volumetric flowrate of outlet stream 1.

Process_Out2.F Volumetric flowrate of outlet stream 2.

ionx_feed_distrib Model: Additional Notes


Note the following information when using the ionx_feed model:
• The flow in stream Process_Out1 may reverse.
• Typically, stream Process_In1 connects to a feed unit and Process_Out1
connects to a bed.

ionx_interaction Model
Use the ionx_interaction model as part of the single bed modeling approach,
to record the profile of material received, then later replay this profile to
simulate returned material. The following information is recorded over time:
• Volumetric flowrate
• Ion concentration

1 Model Library 44
• Bulk molar density
Any type of bed interaction can be defined:
• Top-to-top
• Top-to-bottom
• Bottom-to-bottom
• Bottom-to-top
You specify the type of interaction through the connectivity (where material is
accepted from and returned to). During a run, interaction cannot be redefined
as connectivity is structural, so if you want more than one type of interaction,
use additional interaction models.
By acting as a pseudo-adsorbent bed, it is possible for the model to behave as
a bed at either constant or varying pressure. Use the Cycle Organizer to
define the steps between interactions.

ionx_interaction Model: Connectivity


These are the available connections for the ionx_interaction model:

Port name Type Valid connection


Process_In i_material_port (single) ionx_Material_Connection

Process_Out i_material_port (single) ionx_Material_Connection

ionx_interaction Model: Configuration


No configuration options are available for the ionx_interaction model.

ionx_interaction Model: Specifications


Depending on how the ionx_interaction model has been configured, you need
to specify one or more of these variables in the Specify table:

Variable Description
F_Initial Average flowrate of returned material during a reverse
interaction.

C_Initial Average concentration of returned material during a


reverse interaction.

Rhol_Initial Average bulk density of material during a reverse


interaction.

Note: All these variables are used in the first cycle.

ionx_interaction Model: Initialization


No initialization method is required for the ionx_interaction model.

ionx_interaction Model: User Procedures Used


There are no user procedures available for the ionx_interaction model.

1 Model Library 45
ionx_interaction Model: Results
There are no recommended results for the ionx_interaction model.

ionx_interaction Model: Additional Notes


Note the following information when using the ionx_interaction model:
• The accuracy of the unit is affected by the communication interval. If
interactions are present, use at least three communication points within
the shortest interacting steps.
• The model uses the Delay function. Exiting Aspen Adsim, loading a new
problem or reopening, all clear the delay buffer and historical information
is lost.
• Each interaction unit can handle multiple interacting pairs.
• The Cycle Organizer defines the interaction and profile times.
• The initial reverse values are used only in the first cycle.
• The variables F_Initial, C_Initial and Rhol_Initial are used only in the first
cycle. For subsequent cycles, they are ignored.

ionx_mix_multi_nr Model
The ionx_mix_multi_nr is a non-reversible model that combines any number
of input streams into a single output stream.

ionx_mix_multi_nr Model: Connectivity


These are the available connections for the ionx_mix_multi_nr model:

Port name Type Valid connection


Process_In i_material_port (multiport) ionx_Material_Connection

Process_Out i_material_port (single) ionx_Material_Connection

ionx_mix_multi_nr Model: Configuration


No configuration options are available for the ionx_mix_multi_nr model.

ionx_mix_multi_nr Model: Specifications


There are no variables to specify for the ionx_mix_multi model.

ionx_mix_multi_nr Model: Initialization


No initialization method is required for the ionx_mix_multi_nr model.

ionx_mix_multi_nr Model: User Procedures Used


There are no user procedures available for the ionx_mix_multi-nr model.

ionx_mix_multi_nr Model: Results


Typical variables in the Results table for the ionx_mix_multi_nr model are:

1 Model Library 46
Variable Description
Process_Out.F Volumetric flowrate of outlet.

Process_Out.C Ion concentration of outlet.

Process_Out.Rhol Bulk molar density of outlet.

The ionx_mix_nr2 model is a non-reversible model that selects an output


stream from one of two input streams.

ionx_mix_nr2 Model
ionx_mix_nr2 Model: Connectivity
These are the available connections for the ionx_mix_nr2 model:

Port name Type Valid connection


Process_In1 i_material_port (single) ionx_Material_Connection

Process_In2 i_material_port (single) ionx_Material_Connection

Process_Out1 i_material_port (single) ionx_Material_Connection

ionx_mix_nr2 Model: Configuration


No configuration options are available for the ionx_mix_nr2 model.

ionx_mix_nr2 Model: Specifications


Depending on how the ionx_fmix_nr2 model has been configured, you need
to specify this variable in the Specify table:

Variable Description
Mode Input stream selection:
1 = Process_In1
2 = Process_In2

ionx_mix_nr2 Model: Initialization


No initialization method is required for the ionx_mix_nr2 model.

ionx_mix_nr2 Model: User Procedures Used


There are no user procedures available for the ionx_mix_nr2 model.

ionx_mix_nr2 Model: Results


Typical variables in the Results table for the ionx_mix_nr2 model are:

Variable Description
Process_In1.F Inlet 1 volumetric flowrate.

Process_In2.F Inlet 2 volumetric flowrate.

1 Model Library 47
Process_Out1.F Outlet volumetric flowrate.

Process_Out1.C Outlet bulk ion concentration.

Process_Out1.Rhol Outlet bulk molar density.

ionx_mix_nr3 Model
The ionx_mix_nr2 model is a non-reversible model that selects an output
stream from one of three input streams.

ionx_mix_nr3 Model: Connectivity


These are the available connections for the ionx_mix_nr3 model:

Port name Type Valid connection


Process_In1 i_material_port (single) ionx_Material_Connection

Process_In2 i_material_port (single) ionx_Material_Connection

Process_In3 i_material_port (single) ionx_Material_Connection

Process_Out1 i_material_port (single) ionx_Material_Connection

ionx_mix_nr3 Model: Configuration


No configuration options are available for the ionx_mix_nr3 model.

ionx_mix_nr3 Model: Specifications


Depending on how the ionx_mix_nr3 model has been configured, you need to
specify this variable in the Specify table:

Variable Description
Mode Input stream selection:
1 = Process_In1
2 = Process_In2
3 = Process_In3

ionx_mix_nr3 Model: Initialization


No initialization method is required for the ionx_mix_nr3 model.

ionx_mix_nr3 Model: User Procedures Used


There are no user procedures available for the ionx_mix_nr3 model.

ionx_mix_nr3 Model: Results


Typical variables in the Results table for the ionx_mix_nr3 model are:

Variable Description
Process_In1.F Inlet 1 volumetric flowrate.

1 Model Library 48
Process_In2.F Inlet 2 volumetric flowrate.

Process_In3.F Inlet 3 volumetric flowrate.

Process_Out1.F Outlet volumetric flowrate.

Process_Out1.C Outlet bulk ion concentration.

Process_Out1.Rhol Outlet bulk molar density.

ionx_prod_distrib Model
Use the ionx_prod_distrib model as a four-way valve within an ion-exchange
flowsheet. The model is reversible and contains two inlet and two outlet ports.

ionx_prod_distrib Model: Connectivity


These are the available connections for the ionx_prod_distrib model:

Port name Type Valid connection


Process_In1 i_material_port (single) ionx_Material_Connection

Process_In2 i_material_port (single) ionx_Material_Connection

Process_Out1 i_material_port (single) ionx_Material_Connection

Process_Out2 i_material_port (single) ionx_Material_Connection

ionx_prod_distrib Model: Configuration


No configuration options are available for the ionx_prod_distrib model.

ionx_prod_distrib Model: Specifications


Depending on how the ionx_prod_distrib model has been configured, you
need to specify one or more of these variables in the Specify table:

Variable Description
Mode Distribution setting:
1 = Process_In1 and Process_Out1 connected and flowrate
set to Flow. Zero flow for other streams.
2 = Process_In1 and Process_In2 connected.
Process_Out1 and Process_Out2 set to zero flow.
3 = Process_In1 and Process_Out2 connected.
Process_In2 and Process_Out1 set to zero flow.

Flow Nominal volumetric flowrate.

ionx_prod_distrib Model: Initialization


No initialization method is required for the ionx_prod distrib model.

ionx_prod_distrib Model: User Procedures Used


There are no user procedures available for the ionx_prod_distrib model.

1 Model Library 49
ionx_prod_distrib Model: Results
Typical variables in the Results table for the ionx_prod_distrib model are:

Variable Description
Process_In1.F Volumetric flowrate of inlet stream 1.

Process_In2.F Volumetric flowrate of inlet stream 2.

Process_Out1.F Volumetric flowrate of outlet stream 1.

Process_Out2.F Volumetric flowrate of outlet stream 2.

ionx_prod_distrib Model: Additional Notes


Note the following information when using the ionx_prod_distrib model:
• The flow in stream Process_Out1 may reverse.
• Typically, stream Process_In1 connects to a bed and Process_In1 conects
to a feed unit.
• The stream Process_Out2 is typically attached to an interaction unit.

ionx_product Model
Use the ionx_product model to terminate an outlet/product flowsheet
boundary. If configured as a reversible model, and should the flow reverse, it
acts as a feed unit, providing information on ion concentration and bulk molar
density.

ionx_product Model: Connectivity


These are the available connections for the ionx_product model:

Port name Type Valid connection


Process_In i_material_port (single) ionx_Material_Connection

Process_Out i_material_port (single) ionx_Material_Connection

ionx_product Model: Configuration


These are the configuration options available for the ionx_product model:

Option Valid values Description


Model type Reversible Mode of flowsheet interactivity.
Non-Reversible

Enable reporting True Enable boundary accumulation


terms for material balance
False reporting.

ionx_product Model: Specifications


Depending on how the ionx_product model has been configured, you need to
specify one or more of these variables in the Specify table:

1 Model Library 50
Variable Description Reversible/Non-reversible
model
C_Rev Ion concentration in Reversible model
reverse direction

Rhol_Rev Bulk molar density in Reversible model


reverse direction

ionx_product Model: Initialization


No initialization method is required for the ionx_product model.

ionx_product Model: User Procedures Used


There are no user procedures available for the ionx_product model.

ionx_product Model: Results


Typical variables in the Results and Reports tables for the ionx_product model
are:

Variable Description Reversible/Non-reversible


model
F_In Volumetric flowrate Non-reversible model

F Volumetric flowrate Reversible model

C_In Ion concentration Non-reversible model

C_Rev Ion concentration Reversible model

Rhol_In Bulk molar density Non-reversible model

Rhol_Rev Bulk molar density Reversible model

ionx_split_nr2 Model
The ionx_split_nr2 is a non-reversible model that diverts an input stream to
one of two output streams.

ionx_split_nr2 Model: Connectivity


These are the available connections for the ionx_split_nr2 model:

Port name Type Valid connection


Process_In1 i_material_port (single) ionx_Material_Connection

Process_Out1 i_material_port (single) ionx_Material_Connection

Process_Out2 i_material_port (single) ionx_Material_Connection

ionx_split_nr2 Model: Configuration


No configuration options are available for the ionx_split_nr2 model.

1 Model Library 51
ionx_split_nr2 Model: Specifications
Depending on how the ionx_split_nr2 model has been configured, you need to
specify this variable in the Specify table:

Variable Description
Mode Output stream selection:
1 = Process_Out1
2 = Process_Out2

ionx_split_nr2 Model: Initialization


No initialization method is required for the ionx_split_nr2 model.

ionx_split_nr2 Model: User Procedures Used


There are no user procedures available for the ionx_split_nr2 model.

ionx_split_nr2 Model: Results


Typical variables in the Results table for the ionx_split_nr2 model are:

Variable Description
Process_In1.F Inlet 1 volumetric flowrate.

Process_Out1.F Outlet 1 volumetric flowrate.

Process_Out2.F Outlet 2 volumetric flowrate.

ionx_valve_nr Model
The ionx_valve_nr is a non-reversible model that controls the flowrate of an
inlet stream.

ionx_valve_nr Model: Connectivity


These are the available connections for the ionx_valve_nr model:

Port Name Type Valid Connection


Process_In1 i_material_port (single) ionx_Material_Connection

Process_Out1 i_material_port (single) ionx_Material_Connection

ionx_valve_nr Model: Configuration


No configuration options are available for the ionx_valve_nr model.

ionx_valve_nr Model: Specifications


Depending on how the ionx_valve_nr model has been configured, you need to
specify one or more of these variables in the Specify table:

1 Model Library 52
Variable Description
Action_Specification Valve operation setting:
0 = Fully off.
1 = Used defined volumetric flowrate.

Flowrate Outlet volumetric flowrate (used when


Action_Specification = 1).

ionx_valve_nr Model: Initialization


No initialization method is required for the ionx_valve_nr model.

ionx_valve_nr Model: User Procedures Used


There are no user procedures available for the ionx_valve_nr model.

ionx_valve_nr Model: Results


Typical variables in the Results table for the ionx_valve_nr model are:

Variable Description
Process_In1.F Volumetric flowrate of inlet stream.

Process_In1.C Ion concentration of inlet stream.

ionx_valve_nr Model: Additional Notes


Note the following information when using the ionx_valve_nr model:
• The variable Flowrate is used only when Action_Specification is set to 1,
otherwise it is ignored.

Liquid Models
The table lists the liquid phase models available in Aspen Adsim. You connect
these models using the liq_Material_Connection stream.

Model Description
liq_bed Adsorbent bed layers.

liq_feed Feed/inlet boundary terminator.

liq_feed_distrib Connects outlet to 1 of 2 inlet streams.

liq_interaction Pseudo-bed for single bed approach.

liq_mix_multi Multiple inlet stream mixer.

liq_prod_distrib Diverts input to 1 of 3 outlets.

liq_product Product/outlet boundary terminator.

liq_split Diverts inlet to 1 of 2 outlets.

liq_tank Accounts for spaces/holdup.

liq_valve Relates pressure drop to flowrate.

1 Model Library 53
liq_bed Model
The liq_bed model simulates a liquid adsorption bed unit in a liquid flowsheet.
It acts as a container model for the adsorbent layers and their
interconnections.

liq_bed Model: Connectivity


These are the available connections for the liq_bed model:

Port name Type Valid connection


Process_In liq_material_port (single) liq_Material_Connection

Process_Out liq_material_port (single) liq_Material_Connection

liq_bed Model: Configuration


This is the configuration option available for the liq_bed model:

Option Valid values Description


Number of layers Integer (1 or higher) Number of independent
adsorbent layers with the bed.

liq_bed Model: Specifications


No specifications are required for the liq_bed model, but each adsorbent layer
has its own specifications.

liq_bed Model: Initialization


No initialization method is required for the liq_bed model, but each contained
layer needs initializing.

liq_bed Model: User Procedures Used


There are no user procedures available for the liq_bed model.

liq_bed Model: Results


There are no recommended results for the liq_bed model.

liq_bed Model: Additional Notes


Note the following information when using the liq_bed model:
• You can give a label or ID number for each adsorbent layer in the bed.
• The model does not include any inlet or outlet dead space.
• The model behavior is reversible, so distributors or feed and product units
must be connected at each end.

1 Model Library 54
liq_feed Model
The liq_feed model terminates an inlet/feed flowsheet boundary. Use it to
specify the material composition, temperature and pressure. If configured as
a reversible model, and should the flow reverse, it acts as a product sink.

liq_feed Model: Connectivity


These are the available connections for the liq_feed model:

Port name Type Valid connection


Process_In liq_material_port (single) liq_Material_Connection

Process_Out liq_material_port (single) liq_Material_Connection

liq_feed Model: Configuration


These are the configuration options available for the liq_feed model:

Option Valid values Description


Model type Reversible Mode of flowsheet interactivity.
Non-Reversible

Enable reporting True Enable boundary accumulation


terms for material balance
False reporting.

liq_feed Model: Specifications


Depending on how the liq_feed model has been configured, you need to
specify one or more of these variables in the Specify table:

Variable Description Reversible/Non-reversible


model
C_Out Component concentration Non-reversible model
of stream.

T_Out Temperature of stream. Non-reversible model

P_Out Pressure at boundary. Non-reversible model

C_Fwd Component concentration Reversible model


of stream in forward
direction.

T_Fwd Temperature of stream in Reversible model


forward direction.

P Pressure at boundary. Reversible model

liq_feed Model: Initialization


No initialization method is required for the liq_feed model.

1 Model Library 55
liq_feed Model: User Procedures Used
Depending on the model configuration, this user procedures is available for
the liq_feed model:

User procedure Description


pUser_l_Enthalpy_Mol Molar enthalpy (user Fortran physical properties).

liq_feed Model: Results


Typical variables in the Results and Reports tables for the liq_feed model are:

Variable Description Reversible/Non-


reversible model
F_Out Volumetric flowrate. Non-reversible model

F Volumetric flowrate. Reversible model

C_Rev Component concentration in reverse direction. Reversible model

T_Rev Stream temperature in reverse direction. Reversible model

H_Rev Stream enthalpy in reverse direction. Reversible model

Total_Material Total material fed into boundary. Non-reversible model

Total_Material_Fwd Total material fed into boundary. Reversible model

Total_Material_Rev Total material received at boundary. Reversible model

Total_Component Total component fed into boundary. Non-reversible model

Total_Component_Fwd Total component fed into boundary. Reversible model

Total_Component_Rev Total component received at boundary. Reversible model

Avg_Composition Total average composition of component fed Non-reversible model


into boundary.

Avg_Composition_Fwd Total average composition of component fed Reversible model


into boundary.

Avg_Composition_Rev Total average composition of component Reversible model


received at boundary.

Total_Energy Total energy fed into boundary. Non-reversible model

Total_Energy_Fwd Total energy fed into boundary. Reversible model

Total_Energy_Rev Total energy received at boundary. Reversible model

Cycle_Total_Material Total material fed into boundary for last cycle. Non-reversible model

Cycle_Total_Material_Fwd Total material fed into boundary for last cycle. Reversible model

Cycle_Total_Material_Rev Total material received at boundary for last Reversible model


cycle.

Cycle_Total_Component Total component fed into boundary for last Non-reversible model
cycle.

Cycle_Total_Component_Fwd Total component fed into boundary for last Reversible model
cycle.

Cycle_Total_Component_Rev Total component received at boundary for last Reversible model


cycle.

Cycle_Avg_Composition Total average composition of component fed Non-reversible model


i t b d f l t l

1 Model Library 56
into boundary for last cycle.

Cycle_Avg_Composition_Fwd Total average composition of component fed Reversible model


into boundary for last cycle.

Cycle_Avg_Composition_Rev Total average composition of component Reversible model


received at boundary for last cycle.

Cycle_Total_Energy Total energy fed into boundary for last cycle. Non-reversible model

Cycle_Total_Energy_Fwd Total energy fed into boundary for last cycle. Reversible model

Cycle_Total_Energy_Rev Total energy received at boundary for last cycle. Reversible model

liq_feed Model: Additional Notes


Note the following information when using the liq_feed model:
• For forced feed (fixed material flowrate, no valve fitted to the outlet), it is
valid to specify F_Out or F_Fwd as Fixed.
• At low flow conditions, where the absolute value of the flowrate is less
than or equal to the residual tolerance, the information in the Report table
is inaccurate.

liq_feed_distrib Model
The liq_feed_distrib model selects an output stream from one of two input
streams. The model is non-reversible.

liq_feed_distrib Model: Connectivity


These are the available connections for the liq_feed_distrib model:

Port name Type Valid connection


Process_In1 liq_material_port (single) liq_Material_Connection

Process_In2 liq_material_port (single) liq_Material_Connection

Process_Out1 liq_material_port (single) liq_Material_Connection

liq_feed_distrib Model: Configuration


No configuration options are available for the liq_feed_distrib model.

liq_feed_distrib Model: Specifications


Depending on how the liq_feed_distrib model has been configured, you need
to specify this variable in the Specify table:

Variable Description
Mode Inlet stream selection:
1 = Process_In1
2 = Process_In2

liq_feed_distrib Model: Initialization


No initialization method is required for the liq_feed_distrib model.

1 Model Library 57
liq_feed_distrib Model: User Procedures Used
There are no user procedures available for the liq_feed_distrib model.

liq_feed_distrib Model: Results


Typical variables in the Results table for the liq_feed_distrib model are:

Variable Description
Process_In1.F Volumetric flowrate of inlet stream 1.

Process_In2.F Volumetric flowrate of inlet stream 2.

Process_Out1.F Volumetric flowrate of outlet stream.

Process_Out1.C Molar concentration of outlet stream.

Process_Out1.T Temperature of outlet stream.

Process_Out1.P Pressure of outlet stream.

Process_Out1.H Specific enthalpy of outlet stream.

liq_interaction Model
Use the liq_interaction model as part of the single bed modeling approach to
record the profile of material received, then later replay this profile to
simulate returned material. The following information is recorded over time:
• Volumetric flowrate
• Molar concentration
• Temperature
• Pressure
• Specific enthalpy
Any type of bed interaction can be defined:
• Top-to-top
• Top-to-bottom
• Bottom-to-bottom
• Bottom-to-top
You define the interaction type through the connectivity (where material is
accepted from, and returned to). During runtime, you cannot redefine the
interaction type as connectivity is structural, so if you want more than one
type of interaction, use additional interaction models.
By acting as a pseudo-adsorbent bed, it is possible for the model to behave as
a bed at either constant or varying pressure. The Cycle Organizer defines the
steps between successive interactions.

liq_interaction Model: Connectivity


These are the available connections for the liq_interaction model:

Port name Type Valid connection

1 Model Library 58
Process_In liq_material_port (single) liq_Material_Connection

Process_Out liq_material_port (single) liq_Material_Connection

liq_interaction Model: Configuration


No configuration options are available for the liq_interaction model.

liq_interaction Model: Specifications


Depending on how the liq_interaction model has been configured, you need to
specify one or more of these variables in the Specify table:

Variable Description
F_Initial Average flowrate of returned material during a reverse
interaction.

C_Initial Average concentration of returned material during a reverse


interaction.

T_Initial Average temperature of material during a reverse


interaction.

P_Initial Average pressure of material during a reverse interaction.

Note: All these variables are used in the first cycle.

liq_interaction Model: Initialization


No initialization method is required for the liq_interaction model.

liq_interaction Model: User Procedures Used


Depending on the model configuration, the user procedure available for the
liq_interaction model is:

User procedure Description


PUser_l_Enthalpy_Mol Molar enthalpy (user Fortran physical
properties).

liq_interaction Model: Results


There are no recommended results for the liq_interaction model.

liq_interaction Model: Additional Notes


Note the following information when using the liq_interaction model:
• The accuracy of the unit is affected by the communication interval. If
interactions are present, use at least three communication points within
the shortest interacting steps.
• The model uses the Delay function. Exiting Aspen Adsim, loading a new
problem or reopening, all clear the delay buffer and historical information
is lost.

1 Model Library 59
• Each interaction unit handles multiples interacting pairs.
• The Cycle Organizer defines the interaction and profile times.
• The initial reverse values are used only in the first cycle.
• The variables F_Initial, C_Initial, T_Initial and P_Initial are used only in
the first cycle. For subsequent cycles, they are ignored.

liq_mix_multi Model
The liq_mix_multi_nr is a non-reversible model that combines any number of
input streams into a single output stream.

liq_mix_multi Model: Connectivity


These are the available connections for the liq_mix_multi model:

Port name Type Valid connection


Process_In liq_material_port (multiport) liq_Material_Connection

Process_Out1 liq_material_port (single) liq_Material_Connection

liq_mix_multi Model: Configuration


No configuration options are available for the liq_mix_multi model.

liq_mix_multi Model: Specifications


There are no variables to specify in the liq_mix_multi model.

liq_mix_multi Model: Initialization


No initialization method is required for the liq_mix_multi model.

liq_mix_multi Model: User Procedures Used


There are no user procedures available for the liq_mix_multi model.

liq_mix_multi Model: Results


Typical variables in the Results table for the liq_mix_multi model are:

Variable Description
Process_Out1.F Volumetric flowrate of outlet.

Process_Out1.C Component concentration of outlet.

Process_Out1.T Temperature of outlet.

Process_Out1.P Pressure of outlet.

Process_Out1.H Specific enthalpy of outlet.

liq_prod_distrib Model
The liq_prod_distrib model selects an output stream from one of three input
streams. The model is non-reversible.

1 Model Library 60
liq_prod_distrib Model: Connectivity
These are the available connections for the liq_prod_distrib model:

Port name Type Valid connection


Process_In1 liq_material_port (single) liq_Material_Connection

Process_Out1 liq_material_port (single) liq_Material_Connection

Process_Out2 liq_material_port (single) liq_Material_Connection

Process_Out3 liq_material_port (single) liq_Material_Connection

liq_prod_distrib Model: Configuration


No configuration options are available for the liq_prod_distrib model.

liq_prod_distrib Model: Specifications


Depending on how the liq_prod_distrib model has been configured, you need
to specify this variable in the Specify table:

Variable Description
Mode Input stream selection:
1 = Process_In1
2 = Process_In2
3 = Process_In3

liq_prod_distrib Model: Initialization


No initialization method is required for the liq_prod_distrib model.

liq_prod_distrib Model: User Procedures Used


There are no user procedures available for the liq_prod_distrib model.

liq_prod_distrib Model: Results


Typical variables in the Results table for the liq_prod_distrib model are:

Variable Description
Process_In1.F Volumetric flowrate of inlet stream 1.

Process_In2.F Volumetric flowrate of inlet stream 2.

Process_In3.F Volumetric flowrate of inlet stream 3.

Process_Out1.F Volumetric flowrate of outlet stream.

Process_Out1.C Component concentration of outlet stream.

Process_Out1.T Temperature of outlet stream.

Process_Out1.P Pressure of outlet stream.

Process_Out1.H Specific enthalpy of outlet stream.

1 Model Library 61
liq_product Model
The liq_product model terminates an outlet/product flowsheet boundary. Use
it to receive material from the flowsheet. If configured as a reversible model,
and should the flow reverse, the model acts as a feed unit. You can define the
material composition and material temperature.

liq_product Model: Connectivity


This is the only available connection for the liq_product model:

Port name Type Valid connection


Process_In liq_material_port (single) liq_Material_Connection

liq_product Model: Configuration


These are the configuration options available for the liq_product model:

Option Valid values Description


Model type Reversible Mode of flowsheet interactivity.
Non-Reversible

Enable reporting True Enable boundary accumulation terms


for material balance reporting.
False

liq_product Model: Specifications


Depending on how the liq_product model has been configured, you need to
specify one or more of these variables in the Specify table:

Variable Description Reversible/Non-reversible


model
P_In Pressure at boundary (non-reversible model). Non-reversible model

C_Rev Component concentration of stream in reverse Reversible model


direction.

T_Rev Temperature of stream in reverse direction. Reversible model

P Pressure at boundary (reversible model). Reversible model

liq_product Model: Initialization


No initialization method is required for the liq_product model.

liq_product Model: User Procedures Used


Depending on the model configuration, the user procedure available for the
liq_product model is:

User procedure Description


pUser_l_Enthalpy_Mol Molar enthalpy (user Fortran physical

1 Model Library 62
properties, reversible model).

liq_product Model: Results


Typical variables in the Results and Reports tables for the liq_product model
are:

Variable Description Reversible/Non-reversible


model
F_In Volumetric flowrate. Non-reversible model

F Volumetric flowrate. Reversible model

C_Fwd Stream component concentration. Reversible model

T_Fwd Stream temperature. Reversible model

H_Fwd Stream specific enthalpy. Reversible model

Total_Material Total material received at boundary. Non-reversible model

Total_Material_Fwd Total material received at boundary. Reversible model

Total_Material_Rev Total material fed into boundary. Reversible model

Total_Component Total component received at boundary. Non-reversible model

Total_Component_Fwd Total component received at boundary Reversible model


(reversible model).

Total_Component_Rev Total component fed into boundary. Reversible model

Avg_Composition Total average composition of component Non-reversible model


received at boundary.

Avg_Composition_Fwd Total average composition of component Reversible model


received at boundary.

Avg_Composition_Rev Total average composition of component fed Reversible model


into boundary.

Total_Energy Total energy received at boundary. Non-reversible model

Total_Energy_Fwd Total energy received at boundary. Reversible model

Total_Energy_Rev Total energy fed into boundary. Reversible model

Cycle_Total_Material Total material received at boundary for last Non-reversible model


cycle.

Cycle_Total_Material_Fwd Total material received at boundary for last Reversible model


cycle.

Cycle_Total_Material_Rev Total material fed into boundary for last Reversible model
cycle.

Cycle_Total_Component Total component received at boundary for Non-reversible model


last cycle.

Cycle_Total_Component_F Total component received at boundary for Reversible model


wd last cycle.

Cycle_Total_Component_R Total component fed into boundary for last Reversible model
ev cycle.

Cycle_Avg_Composition Total average composition of component Non-reversible model


received at boundary for last cycle.

Cycle_Avg_Composition_F Total average composition of component Reversible model


wd received at boundary for last cycle.

1 Model Library 63
Cycle_Avg_Composition_R Total average composition of component fed Reversible model
ev into boundary for last cycle.

Cycle_Total_Energy Total energy received at boundary for last Non-reversible model


cycle.

Cycle_Total_Energy_Fwd Total energy received at boundary for last Reversible model


cycle.

Cycle_Total_Energy_Rev Total energy fed into boundary for last cycle. Reversible model

liq_product Model: Additional Notes


Note the following information when using the liq_product model:
• At low flow conditions, where the absolute value of the flowrate is less
than or equal to the residual tolerance, the information in the Report table
is inaccurate.

liq_split Model
The liq_split model diverts an input stream to one of two output streams. The
model is non-reversible.

liq_split Model: Connectivity


These are the available connections for the liq_split model:

Port name Type Valid connection


Process_In1 liq_material_port (single) liq_Material_Connection

Process_Out1 liq_material_port (single) liq_Material_Connection

Process_Out2 liq_material_port (single) liq_Material_Connection

liq_split Model: Configuration


No configuration options are available for the liq_split model.

liq_split Model: Specifications


Depending on how the liq_split model has been configured, you need to
specify this variable in the Specify table:

Variable Description
Mode Output stream selection:
1 = Process_Out1
2 = Process_Out2

liq_split Model: Initialization


No initialization method is required for the liq_split model.

liq_split Model: User Procedures Used


There are no user procedures available for the liq_split model.

1 Model Library 64
liq_split Model: Results
Typical variables in the Results table for the liq_split model are:

Variable Description
Process_In1.F Inlet 1 volumetric flowrate.

Process_Out1.F Outlet 1 volumetric flowrate.

Process_Out2.F Outlet 2 volumetric flowrate.

liq_tank Model
The liq_tank model is a general purpose model that simulates adsorbent bed
deadspaces (voids) or intermediate tanks.

liq_tank Model: Connectivity


These are the available connections for the liq_tank model:

Port name Type Valid connection


Process_In liq_material_port (single) liq_Material_Connection

Process_Out liq_material_port (single) liq_Material_Connection

liq_tank Model: Configuration


This is the configuration option available for the liq_tank model:

Option Valid values Description


Model type Reversible Mode of flowsheet interactivity.
Non-Reversible

liq_tank Model: Specifications


Depending on how the liq_tank model has been configured, you need to
specify this variable in the Specify table:

Variable Description
Tank_Volume Total volume of the tank/void.

liq_tank Model: Initialization


The recommended variables to initialize for the liq_tank model are:

Variable Specification Description


C Initial/RateInitial Internal component concentrations.

T Initial Internal temperature.

1 Model Library 65
liq_tank Model: User Procedures Used
Depending on the model configuration, the user procedures available for the
liq_tank model are:

User Procedure Description


pUser_l_Enthalpy_Mol Molar enthalpy (user Fortran physical
properties).

liq_tank Model: Results


Typical variables in the Results table for the liq_tank model are:

Variable Description
Process_In.F Inlet volumetric flowrate.

Process_Out.F Outlet volumetric flowrate.

C Internal component concentration.

T Internal temperature.

H Internal specific enthalpy.

liq_tank Model: Additional Notes


Note the following information when using the liq_tank model:
• By default, the model behaves as a reversible model.

liq_valve Model
The liq_valve model simulates a simple linear valve that relates flowrate to
the pressure difference across the unit.

liq_valve Model: Connectivity


These are the available connections for the liq_valve model:

Port name Type Valid connection


Process_In liq_material_port (single) liq_Material_Connection

Process_Out liq_material_port (single) liq_Material_Connection

liq_valve Model: Configuration


These are the configuration options available for the liq_valve model:

Option Valid values Description


Model type Non-Reversible Mode of flowsheet interactivity.
Reversible

Apply stop action No For a reversible model, does


the unit also act as a non-
Yes return/check valve.

1 Model Library 66
return/check valve.

liq_valve Model: Specifications


Depending on how the liq_valve model has been configured, you need to
specify one or more of these variables in the Specify table:

Variable Description
Active_Specification Define which of the following specifications
will be used:
0 = Valve fully off.
1 = Valve fully on (acts as a valve with high
Cv).
2 = Make use of the value specified for Cv
(constant Cv).
3 = Make use of the value specified for
Flowrate (constant flowrate).
The specification can be changed during
runtime.

Cv Linear valve coefficient (only used when


Active_Specification = 2).

Flowrate Constant forced flowrate (only used when


Active_Specification = 3).

liq_valve Model: Initialization


No initialization method is required for the liq_valve model.

User Procedures Used


There are no user procedures available for the liq_valve model.

liq_valve Model: Results


Typical variables in the Results table for the liq_valve model are:

Variable Description
Cv_Calculated Equivalent linear valve Cv.

Flowrate_Calculated Flowrate through the valve.

P_Change Pressure change across the valve.

Control_Action External controller action applied.

liq_valve Model: Additional Notes


Note the following information when using the liq_valve model:
• The control action can be any real number from 0 to 1.

Miscellaneous Models
The table lists the miscellaneous models available in Aspen Adsim:

1 Model Library 67
Model Description
Dynamics_Inlet_Connect Used to link an Aspen Dynamics model
to the inlet of an Aspen Adsim model
(gas or liquid phase only).

Dynamics_Outlet_Connect Used to link an Aspen Dynamics model


to the outlet of an Aspen Adsim model
(gas or liquid phase only).

p_control Proportional controller.

PID control PID controller.

ratio Ratio block for controllers.

Static_Isotherm Container model for standard


isotherms.

universal_block Dummy connectivity block.

Dynamics_Inlet_
Connect Model
The Dynamics_Inlet_Connect model connects an Aspen Dynamics model to
the inlet of either a gas or liquid Aspen Adsim model. The block maps
appropriate variables from the Aspen Dynamics port to the Aspen Adsim port,
taking into account differences in the port variables, units of measurement
and reversible stream conventions. Furthermore, for compatability with Aspen
Adsim's single bed approach for modeling multi-bed systems using a single
bed, you can activate additional expressions to allow the block to simulate
pseudo-continuous flow at the Aspen Adsim flowsheet boundary.

Dynamics_Inlet_Connect Model: Connectivity


These are the available connections for the Dynamics_Inlet_Connect model:

Port name Type Valid connection


In_F MaterialPortRev (single) MaterialStream (from Aspen
Dynamics)

gas_Process_Out g_material_port (single) gas_Material_Connection

liq_Process_Out liq_material_port (single) liq_Material_Connection

Only one of the two possible output ports can be active, so your Aspen
Dynamics stream can connect to a gas or liquid Aspen Adsim model, but not
both.

Dynamics_Inlet_Connect Model: Configuration


These are the configuration options available for the Dynamics_Inlet_Connect
model:

Option Valid values Description


Dynamics Property Mode Local Physical property method

1 Model Library 68
Rigorous assumed by Aspen Dynamics
models present in the flowsheet.
All Aspen Adsim models assume
Rigorous physical property calls.

Is Dynamics Pressure Driven Checked or Unchecked Check when the Aspen Dynamics
models are pressure-driven.
Uncheck when they are flowrate-
driven.

Is Dynamics Reverse Flow Checked or Unchecked This applies to pressure driven


Aspen Dynamics models.
Check when reverse flow
characteristics are required within
the Aspen Dynamics models.

Single Bed Approach Used Checked or Unchecked Check when the Aspen Adsim
flowsheet uses the single bed
approach to simulate a multi-
column system.

All these options are global. The changes are also reflected in the Globals
table found in the Simulation Explorer window.

Dynamics_Inlet_Connect Model: Specifications


Depending on how the Dynamics_Inlet_Connect model has been configured,
you need to specify this variable in the Specify table.

Variable Description
Mode Active only when Aspen Adsim uses the single bed
approach. Toggle this variable between 0 and 1:
0  Indicates that no real material is passing the
flowsheet boundary, so a pseudo-flow profile is required.
1  Indicates that real material is passing the flowsheet
boundary.

Dynamics_Inlet_Connect Model: Initialization


No initialization method is required for the Dynamics_Inlet_Connect model.

Dynamics_Inlet_Connect Model: User Procedures Used


There are no user procedures available for the Dynamics_Inlet_Connect
model.

Dynamics_Inlet_Connect Model: Results


There are no results available for the Dynamics_Inlet_Connect model.

Dynamics_Inlet_Connect Model: Additional Notes


Note the following information when using the Dynamics_Inlet_Connect
model:
• Only a single outlet can be active (either gas or liquid).
Specifically when using the single bed approach:

1 Model Library 69
• The delay function generates pseudo-continuous flow through the Aspen
Dynamics port. Because of the intrinsic behaviour of the delay function,
some degradation in the results may be experienced.
• Aspen Adsim calculates the delay time that is needed to generate pseudo-
continuous flow as follows:
It determines the time difference between when the Mode variable
switches from 0 to 1, and from 1 to 0. Remember that 1 is used to
indicate real flow to the Aspen Adsim model.
For more information, see Connecting to Aspen Dynamics Flowsheets in
Chapter 7 of the Aspen Adsim Reference Guide.

Dynamics_Outlet_
Connect Model
The Dynamics_Outlet_Connect model connects an Aspen Dynamics model to
the outlet of either a gas or liquid Aspen Adsim model. The block maps
appropriate variables from the Aspen Dynamics port to the Aspen Adsim port,
taking into account differences in the port variables, units of measurement
and reversible stream conventions. Furthermore, for compatability with Aspen
Adsim's single bed approach for modeling multi-bed systems using a single
bed, you can activate additional expressions to allow the block to simulate
pseudo-continuous flow at the Aspen Adsim flowsheet boundary.

Dynamics_Outlet_Connect Model: Connectivity


These are the available connections for the Dynamics_Outlet_Connect model:

Port name Type Valid connection


Out_P MaterialPortRev (single) MaterialStream (from Aspen
Dynamics)

gas_Process_In g_material_port (single) gas_Material_Connection

liq_Process_In liq_material_port (single) liq_Material_Connection

Only one of the two possible input ports can be active, so your Aspen
Dynamics stream can be connected to a gas or liquid Aspen Adsim model, but
not both.

Dynamics_Outlet_Connect Model: Configuration


These are the configuration options available for the
Dynamics_Outlet_Connect model:

Option Valid values Description


Dynamics Property Mode Local Physical property method assumed by
Aspen Dynamics models present in the
Rigorous flowsheet.
All Aspen Adsim models assume Rigorous
physical property calls.

Is Dynamics Pressure Driven Checked or Check when the Aspen Dynamics models
Unchecked are pressure-driven. Uncheck when they

1 Model Library 70
Unchecked are flowrate-driven.

Is Dynamics Reverse Flow Checked or This applies to pressure driven Aspen


Unchecked Dynamics models.
Check when reverse flow characteristics
are required within the Aspen Dynamics
models.

Single Bed Approach Used Checked or Check when the Aspen Adsim flowsheet
Unchecked uses the single bed approach to simulate
a multi-column system.

All these options are global. The changes are also reflected in the Globals
table found in the Simulation Explorer window.

Dynamics_Outlet_Connect Model: Specifications


Depending on how the Dynamics_Outlet_Connect model has been configured,
you need to specify this variable in the Specify table.

Variable Description
Mode Active only when Aspen Adsim uses the single bed
approach. Toggle this variable between 0 and 1:
0  Indicates that no real material is passing the
flowsheet boundary, so a pseudo-flow profile is required.
1  Indicates that real material is passing the flowsheet
boundary.

Dynamics_Outlet_Connect Model: Initialization


No initialization method is required for the Dynamics_Outlet_Connect model.

Dynamics_Outlet_Connect Model: User Procedures Used


There are no user procedures available for the Dynamics_Outlet_Connect
model.

Dynamics_Outlet_Connect Model: Results


There are no results available for the Dynamics_Outlet_Connect model.

Dynamics_Outlet_Connect Model: Additional Notes


Note the following information when using the Dynamics_Outlet_Connect
model:
• Only a single outlet can be active (either gas or liquid).
Specifically when using the single bed approach:
• The delay function is used to generate pseudo-continuous flow through
the Aspen Dynamics port. Because of the intrinsic behaviour of the delay
function, some degradation in the results may be experienced.
• Aspen Adsim calculates the delay time that is needed to generate pseudo-
continuous flow as follows:
It determines the time difference between when the Mode variable
switches from 0 to 1, and from 1 to 0. Remember that 1 is used to
indicate real flow to the Aspen Adsim model.

1 Model Library 71
• For more information, see Connecting to Aspen Dynamics Flowsheets in
Chapter 7 of the Aspen Adsim Reference Guide.

p_control model
The p_control model provides simple proportional control. The controller input
is the measured variable; the controller output is the manipulated variable.
You can influence the controller output as follows:
• Apply a clipping range.
• Normalize between user-defined minimum and maximum values.

p_control Model: Connectivity


These are the available connections for the p_control model:

Port name Valid connection


InputSignal ControlSignal

OutputSignal ControlSignal

p_control Model: Configuration


These are the configuration options available for the p_control model:

Option Valid Description


values
Mode Of Operation Auto Switch between automatic or
manual operation. If set to manual,
Man the controller output equals the
Bias value.

Output Action Reverse Reverse — to increase the input


variable, the output variable
Direct decreases, and vice-versa.
Direct — to increase the input
variable, the output variable
increases, and vice-versa.
This is the opposite behavior to the
PID controller.

Apply Output Clipping Yes Clip the calculated controller output


between set minimum and
No maximum values.

Apply Output Yes Normalize the calculated controller


Normalization output (after clipping if enabled) to
No set minimum and maximum
values.

p_control Model: Specifications


Depending on how the p_control model has been configured, you need to
specify one or more of these variables, directly on the Configure form:

1 Model Library 72
Variable Description
Set Point Operator set point of controller.

Bias Bias offset or manual output setting.

Gain Proportional gain.

Minimum Minimum value allowed for output clipping and/or


output normalization.

Maximum Maximum value allowed for output clipping and/or


output normalization.

p_control Model: Initialization


No initialization method is required for the p_control model.

p_control Model: User Procedures Used


There are no user procedures available for the p_control model.

p_control Model: Results


Typical variables in the Results table for the p_control model are:

Variable Description
I_In Input value.

I_Out Final output value (after clipping and/or


normalization).

Error Controller error (Set Point minus Input Signal).

Proportional_Band Proportional band of controller (100/Gain).

Value Calculated control output (before clipping and


normalization).

ValueC Control output after clipping (if applied).

p_control Model: Additional Notes


Note the following information when using the p_control model:
• For a Direct action controller, the controller output is calculated from:
Output = Bias + Gain × (Set Point − Input Signal )
For a reverse action controller, the output is calculated from:
Output = Bias − Gain × (Set Point − Input Signal )
• For Direct action controllers, if you want the input variable to increase,
then the model increases the output variable, and similarly for decreases.
• For Reverse action controllers, if you want the input variable to increase,
the model decreases the output variable; for a decrease in the input
variable, the model increases the output variable.
• The control action is configured in the opposite way to the PID controller.

1 Model Library 73
PID Model
Aspen Adsim uses the same PID model as Aspen Dynamics and Aspen
Custom Modeler. For a full description of this model, see the chapter on
control models in either the Aspen Dynamics Reference Manual or the Aspen
Custom Modeler Reference Manual.

ratio Model
The ratio model calculates a single output as the ratio of two inputs.
The input signal comes from an external source, and the output signal goes to
a manipulated external variable.
Input1
Output_
Input2

Input 1
Output _ =
Input 2

ratio Model: Connectivity


These are the available connections for the ratio model:

Port name Options Valid connection


InputSignal Input 1 ControlSignal
Input 2

OutputSignal ControlSignal

ratio Model: Configuration


There are no configuration options for the ratio model.

ratio Model: Specifications


There are no variables to specify for the ratio model.

ratio Model: Initialization


Initialization is not required for the ratio model.

ratio Model: User Procedures Used


There are no user procedures available for the ratio model.

ratio Model: Results


The typical variable to be used for results is the output from the ratio model.

1 Model Library 74
Static_Isotherm Model
The Static_Isotherm model fits isotherm parameters to static experimental
data. Use it as part of Aspen Adsim's estimation capability.
The model accesses the standard and user isotherms for the following
systems:
• Gas
• Ion-Exchange
• Liquid

Static_Isotherm Model: Connectivity


The Static_Isotherm model is a standalone unit. No connections are required.

Static_Isotherm Model: Configuration


These are the configuration options available for the Static_Isotherm model:

Option Valid values Description


Phase to be studied Gas. Phase of isotherm.
IonX.
Liquid.

Gas isotherm form Any valid isotherm for gas adsorbent Choice of gas phase
layer model. isotherm.

Gas isotherm dependency Concentration. Component composition


basis for the gas
Partial Pressure. isotherm.

Liquid isotherm form Any valid isotherm for liquid adsorbent Choice of liquid phase
layer model. isotherm.

Ion exchange isotherm form Any valid isotherm for ion exchange Choice of ion-exchange
adsorbent layer model. isotherm.

Static_Isotherm Model: Specifications:


Depending on how the Static_Isotherm model has been configured, you need
to specify one or more of these variables in the Specify table:

Variable Description
Y Gas molefraction composition.

C Gas phase concentration.

Ci Ion concentration.

Q Total resin capacity.

Cl Liquid phase concentration.

IP Isotherm parameters.

IP_CounterIon Isotherm parameter for exchanged counter


ion.

Apply_IAS Apply IAS for given component when using


IAS i th

1 Model Library 75
IAS isotherms.

T Temperature.

P Pressure.

Static_Isotherm Model: Initialization


No initialization method is required for the Static_Isotherm model.

Static_Isotherm Model: User Procedures Used


With user-procedure-based isotherm options selected, the user procedures
available for the Static_Isotherm model are:

User Procedure Description


pUser_g_Isotherm_Poi Spread pressure based user isotherm.

pUser_g_Gibbs Gibbs expression for user isotherm.

pUser_g_Isotherm_P Partial pressure based user isotherm.

pUser_g_Isotherm_W Loading based user isotherm.

pUser_g_Isotherm_C Gas concentration based user


isotherm.

pUser_i_Isotherm_C Ion concentration based user


isotherm.

pUser_i_Isotherm_W Ion loading based user isotherm.

pUser_l_Isotherm_C Liquid concentration based user


isotherm.

pUser_l_Isotherm_W Loading based user isotherm.

pUser_l_Gibbs Gibbs expression for user isotherm.

Static_Isotherm Model: Results


Typical variables in the Results table for the Static_Isotherm model are:

Variable Description
W Gas loading

Wi Ion loading

Wl Liquid loading

IP Isotherm parameters

Static_Isotherm Model: Additional Notes


Note the following information when using the Static_Isotherm model:
• Ideally, when running a steady-state estimation, the Static_Isotherm
model should be the only model on the flowsheet.

1 Model Library 76
universal_block Model
The universal_block model is a simple template block that allows you to use
flowsheet constraints to create a custom model that connects with other
Aspen Adsim models.

universal_block Model: Connectivity


These are the available connections for the universal_block model:

Port name Type Valid connection


Process_In_Gas g_material_port (single) gas_Material_Connection

Process_In_MGas g_material_port (multi) gas_Material_Connection

Process_Out_Gas g_material_port (single) gas_Material_Connection

Process_Out_MGas g_material_port (multi) gas_Material_Connection

Process_In_IonX i_material_port (single) ionx_Material_Connection

Process_In_MIonX i_material_port (multi) ionx_Material_Connection

Process_Out_IonX i_material_port (single) ionx_Material_Connection

Process_Out_MIonX i_material_port (multi) ionx_Material_Connection

Process_In_Liq liq_material_port (single) liq_Material_Connection

Process_In_MLiq liq_material_port (multi) liq_Material_Connection

Process_Out_Liq liq_material_port (single) liq_Material_Connection

Process_Out_MLiq liq_material_port (multi) liq_Material_Connection

universal_block Model: Configuration


This is the configuration option available for the universal_block model:

Option Valid values Description


Model type Non-Reversible Mode of flowsheet interactivity.
Non-Reversible Delay Note: Use the Delay , Flow and
Pressure Setter options only for
Reversible gas systems.
Reversible Flow Setter
Reversible Pressure Setter

universal_block Model: Specifications


There are no variables to specify for the universal_block model.

universal_block Model: Initialization


No built in initialization method has been provided for the universal_block
model because it is user-model dependent.

universal_block Model: User Procedures Used


There are no user procedures available for the universal_block model.

1 Model Library 77
universal_block Model: Results
There are no recommended results for the universal_block model.

universal_block Model: Additional Notes


Note the following information for the universal_block model:
• The model has no equations.
• You are expected to provide any expressions relating active port variables,
through the use of Flowsheet constraints.
• For an example of the model’s use, please refer to the Simulated Moving
Bed separation of P-xylene demonstration example.

universal_block Model: Example of Using Flowsheet Constraints


If an instance of the model, named M1, is placed on the flowsheet and is
configured as non-reversible, the equations within the flowsheet constraints
that make the unit act as a liquid mixer are:

//User liquid mixer block M1


// (assumes multiports are used and the model is non-
reversible)
//Declare additional local variables
C_M1(ComponentList) As l_Conc_mol;
X_M1(ComponentList) As MoleFraction;
T_M1 As Temperature_K;
P_M1 As Pressure;
H_M1 As l_Enthalpy_Mol;

//Set local scope (Block M1)


Within M1

//Overall material balance (in = out)


SIGMA( Process_In_MLiq.Connection.F )
= SIGMA( Process_Out_MLiq.Connection.F );

//Loop on component list


For i In ComponentList Do

//Individual component material balance


C_M1(i) * SIGMA( Process_In_MLiq.Connection.F )
= SIGMA( Process_In_MLiq.Connection.C(i)

1 Model Library 78
* Process_In_MLiq.Connection.F );

//Internal material fractions (trap divide by zero)


X_M1(i) * MAX( SIGMA( C_M1(ComponentList) ), 1e-15 ) =
C_M1(i);

//Non-reversible model so set outlet concentrations


Process_Out_MLiq.Connection.C(i) = C_M1(i);

EndFor

//Inlet/outlet pressure constraint


Process_In_MLiq.Connection.P = P_M1;
Process_Out_MLiq.Connection.P = P_M1;

//Energy balance
H_M1 * SIGMA( Process_In_MLiq.Connection.F )
= SIGMA( Process_In_MLiq.Connection.H
* Process_In_MLiq.Connection.F );
//Outlet enthalpy constraint
Process_Out_MLiq.Connection.H = H_M1;

//Outlet temperature constraint


Process_Out_MLiq.Connection.T = T_M1;

//Enthalpy user procedure call to determine


// exit temperature from energy balance
CALL( H_M1 ) = pUser_l_Enthalpy_Mol( T_M1, P_M1, X_M1 );

EndWithin

1 Model Library 79
2 Writing Compliant User
Models

This chapter describes the basic template for creating user models that can be
linked to library models.
See the following topics for more information:
• Common elements for all user models
• Standard template for user models
• Gas specific user models
• Ion-exchange specific user models
• Liquid specific user models

Common Elements for All User


Models
When you write custom models for use alongside Aspen Adsim library models,
note these points:
• Work in the same base units of measurement.
You determine these from the variable types listed in the Variable Types
folder.
• Inherit the Base_Globals models located in the Submodels_Core folder.
This ensures that key global variables are instanced within the flowsheet
when the custom model is only present on the flowsheet. By inheriting the
Base_Globals model, the custom model can access:
− Common parameters such as π and the acceleration due to gravity, g.
− Selected physical property methods.
− Cycle and step information.
• Ensure the custom model contains the LogicalParameter named
HaveInitial. This is used to inform the Check & Initial flowsheet menu
option that the model has a custom initialization method that can be
invoked.
− If no method is to be called, set the value to False.
− If there is a model based script for initialization, set the parameter to
True and ensure the model script is named Initialize_Unit.

2 Writing Compliant User Models 80


• Create an instance of the parameter Model_Type. This parameter is
checked by the library material connections/stream to ensure the correct
assumptions and actions by the connections/stream. Model_Type can be
either a string parameter or one of the standard parameter types located
in the Parameter Types library folder. If the model is assumed non-
reversible, set the string parameter to Non-Reversible.
• Use the appropriate port from the Port Types folder in the library within
the model. This ensures the correct variables and information are passed
between models, and the library material connections can be used.
• The standard naming convention/prefixes for process stream ports is:
− Process_In for input ports.
− Process_Out for output ports.
• Prefix the name of the model with the phase shortform.

Standard Template for User


Models
The following standard template assumes that the model has no initialization
script and its operation mode is not configurable.
With these two restrictions, the standard outline template for a custom model
is:
Model <phase>_<model name> Uses Base_Globals
//Define local parameters
HaveInitial As LogicalParameter(False,Description:”Does the
model contain an initialization script”);
Model_Type As StringParameter("Non-
Reversible",Description:"Mode of operation (not
changeable)");
//Define standard ports/connections
Process_In As Input <phase>_Material_Port;
Process_Out As Output <phase>_Material_Port;
End

Gas Specific User Models


When you create user models for use with library gas phase models, note
these additional considerations:
• It is recommended that the model name should have the prefix gas_.
This ensures the gas_Material_Stream can correctly adjust its internal
assumptions, and also takes advantage of the automated Check & Initial
option within the Flowsheet menu.

2 Writing Compliant User Models 81


• Use g_Material_Port for the ports. If you need a liquid outlet stream (for
example, your user model is acting as a decanter), use liq_Material_Port.
• If you want the model flowsheet interactivity to be reconfigurable, use the
following parameter types in the library for the parameter Model_Type:
− gModelTypeP — non-reversible or reversible pressure setter.
− gModelTypeFD — non-reversible, reversible flow setter or non-
reversible delay.
− gModelTypeF — non-reversible or reversible flow setter.

Ion-Exchange Specific User


Models
When you create user models for use with library ion-exchange models, note
these additional considerations:
• It is recommended that the model name should have the prefix ionx_.
This ensures that the ionx_Material_Stream can correctly adjust its
internal assumptions, and also takes advantage of the automated Check &
Initial option within the Flowsheet menu.
• Use i_Material_Port for the ports.
• If you want the model flowsheet interactivity to be reconfigurable, use the
following parameter types in the library for the parameter Model_Type:
− iModelType — non-reversible or reversible.

Liquid Specific User Models


When you create user models for use with library liquid phase models, note
these additional considerations:
• It is recommended that the model name should have the prefix liq_.
This ensures the liq_Material_Stream can correctly adjust its internal
assumptions, and also takes advantage of the automated Check & Initial
option within the Flowsheet menu.
• Use liq_Material_Port for the ports.
• If you want the model flowsheet interactivity to be reconfigurable, use the
following parameter types in the library for the parameter Model_Type:
− lModelType — non-reversible or reversible.

2 Writing Compliant User Models 82


3 Material Streams and
Connections

Aspen Adsim has three process-specific connections for connecting library


models on the flowsheet:

Model Description
gas_Material_Connection Interconnect for gas library models.

ionx_Material_Connection Interconnect for ion-exchange library


models.

liq_Material_Connection Interconnect for liquid library models.

Stream
gas_Material_Connection
Use the gas_Material_Connection stream to interconnect gas models on the
flowsheet. It uses g_Material_Port to pass the following information:

Port variable Description


F Molar flowrate.

Y Molefraction composition.

T Absolute temperature.

P Pressure.

H Specific enthalpy.

Y1 Molefraction composition (helper variable


for reversibility).

T1 Absolute temperature (helper variable for


reversibility).

H1 Specific enthalpy (helper variable for


reversibility).

P1 Upstream pressure (helper variable for


interaction units).

3 Material Streams and Connections 83


The following table lists the configurable options available for the
gas_Material_Connection stream:

Option Valid values Description


Source_Unit_Type Non-Reversible Specifies the type of model on the stream
inlet.
Non-Reversible Delay
Reversible Flow Setter
Reversible Pressure Setter

Destination_Unit_Type Non-Reversible Specifies the type of model on the stream


outlet.
Non-Reversible Delay
Reversible Flow Setter
Reversible Pressure Setter

Apply_Pressure_Change Yes Applies a fixed pressure drop across the


stream. You need to define the variable
No P_change in the Specify table.

Apply_Flow_Multiply Yes Increases the flowrate by a given multiple.


You need to define the variable Multiple in
No the Specify table.

Typically, you need not manually configure the source and destination model
types. With library models or custom models that follow the recommended
guidelines, these automatically reconfigure when you:
• Open the configure form for the stream.
• Open the configure form for library models.
• Click the Check & Initial option in the Flowsheet menu.
It is recommended to execute the Check & Initial option within the Flowsheet
menu, once the flowsheet has been constructed and the models configured.

Stream
ionx_Material_Connection
Use the ionx_Material_Connection stream to interconnect ion-exchange
models on the flowsheet. It uses i_Material_Port to pass the following
information:

Port variable Description


F Volumetric flowrate.

C Ion concentration.

Rhol Molar density of bulk solvent.

C1 Ion concentration (helper variable for reversibility).

Rhol1 Molar density of bulk solvent (helper variable for


reversibility).

3 Material Streams and Connections 84


The following table lists the configurable options available for the
ionx_Material_Connection stream:

Option Valid values Description


Source_Unit_Type Non-Reversible Specifies the type
of model on the
Reversible stream inlet.

Destination_Unit_Type Non-Reversible Specifies the type


of model on the
Reversible stream outlet.

Typically, you need not manually configure the source and destination model
types. With library models or custom models that follow the recommended
guidelines, these automatically reconfigure when you:
• Open the configure form for the stream.
• Open the configure form for library models.
• Click the Check & Initial option in the Flowsheet menu.
It is recommended to execute the Check & Initial option within the Flowsheet
menu, once the flowsheet has been constructed and the models configured.

Stream
liq_Material_Connection
Use the liq_Material_Connection stream to interconnect liquid models on the
flowsheet. It uses liq_Material_Port to pass the following information:

Port variable Description


F Volumetric flowrate.

C Molar concentration.

T Absolute temperature.

P Pressure.

H Specific enthalpy.

C1 Molar concentration (helper variable for


reversibility).

T1 Absolute temperature (helper variable for


reversibility).

H1 Specific enthalpy (helper variable for


reversibility).

The following table lists the configurable options available for the
liq_Material_Connection stream:

Option Valid values Description


Source_Unit_Type Non-Reversible Specifies the type of
model on the stream

3 Material Streams and Connections 85


Reversible inlet.

Destination_Unit_Type Non-Reversible Specifies the type of


model on the stream
Reversible outlet.

Typically, you need not manually configure the source and destination model
types. With library models or custom models that follow the recommended
guidelines, these automatically reconfigure when you:
• Open the configure form for the stream.
• Open the configure form for library models.
• Click the Check & Initial option in the Flowsheet menu.
It is recommended to execute the Check & Initial option within the Flowsheet
menu, once the flowsheet has been constructed and the models configured.

3 Material Streams and Connections 86


4 User Procedures

Some Aspen Adsim simulations use external Fortran procedures for:


• Physical properties.
• Transport properties.
• Adsorbent properties.
For each simulation, the required procedures are listed in the configure form
for any adsorption bed. Aspen Adsim calls procedures based on the
assumptions selected for each model.
This chapter contains information on the following topics:
• Procedure Organizer
• Gas procedures
• Ion-exchange procedures
• Liquid procedures
• Miscellaneous procedures

About the Procedure Organizer


The Procedure Organizer is a tool to help you create and compile user-
supplied Fortran into a library for use in Aspen Adsim.
If Aspen Adsim is to run on a local PC, you should install Visual Digital Fortran
(v5.0a or higher) and configure the environment variables to allow command
line based compilation.

Launching the Procedure Organizer


To launch the Procedure Organizer:
• From the Tools menu, click Procedure Organizer.
The Procedure Organizer appears, listing all the available procedures and
marking those for which Fortran procedures have already been supplied.

4 User Procedures 87
Adding Procedures
To add an additional procedure to the compiled library:
1 From the Tools menu, click Procedure Organizer.
2 Select the box next to the procedure name.
This copies a Fortran template into the current working directory.

Editing Procedures
To edit the Fortran source for the procedure:
1 From the Tools menu, click Procedure Organizer.
2 Select the procedure from the list and click the Edit button.
A text editor window opens, where you edit the source code.

Building the Procedure Library


To build the library of procedures:
1 From the Tools menu, click Procedure Organizer.
2 Click the Build button to open the Library Build Options dialog box.

4 User Procedures 88
Two build options are available:
− Local PC  executes the build and creates a general build file.
− Remote Windows 2000 or XP PC  creates a general build file only (no
compilation).
These are discussed below.
To generate debug code for the compilation, select the Generate Debug
Code box.

Building the Procedure Library: Local PC Option


With Local PC selected, a command console opens that displays all the
compilation messages. These can then be used for debugging purposes.
Important: You must place the compiled library in the simulator engine’s
working directory. This directory has the same name as the current
simulation, and is one level down from the default working directory. For
example, if the name of the current problem is N2PSA.ada and the default
working folder is defined as C:\MySims, the simulation engine’s working
folder for this problem is C:\MySims\N2PSA.

Building the Procedure Library: Remote Options


With Remote compilation selected, you must give the location of the
simulation server executable. No compilation occurs, but a build file is
produced specifically for the target server. The final step is manual: you must
transfer the Fortran source files and build file to the server, and do the
compilation there.
• For Windows 2000 and XP machines use the following command at a
command prompt:
nmake –f makeusercode

See the Local PC option, above, for rules on where to place the compiled
library.

4 User Procedures 89
Gas Procedures
For gas phase systems, the following procedure calls are available:

Procedure name Description


pUser_Act_Coeff Activity coefficients.

pUser_g_Avg_Mole_Weight Average molecular weight.

pUser_g_Cat_RX_Heat Heat of heterogeneous/catalytic


reactions.

pUser_g_Cat_RX_Rate_C Rate of heterogeneous/catalytic


reaction
(concentration based).

pUser_g_Cat_RX_Rate_C_Sol Rate of heterogeneous/catalytic


reaction
(concentration based, solids
present).

pUser_g_Cat_RX_Rate_Pp Rate of heterogeneous/catalytic


reaction
(partial pressure based).

pUser_g_Cat_RX_Rate_Pp_Sol Rate of heterogeneous/catalytic


reaction
(partial pressure based, solids
present).

pUser_g_Compressibility User calculated compressibility.

pUser_g_Cpa Heat capacity of the adsorbed


phase.

pUser_g_De Effective diffusivity for particle


material balance.

pUser_g_DH Heat of adsorption.

pUser_g_Diffusivity Adsorbed phase diffusivity.

pUser_g_Dispersion Axial dispersion coefficient.

pUser_g_Enthalpy_Mol Gas molar enthalpy.

pUser_g_Entropy_Mol Gas molar entropy.

pUser_g_Gas_RX_Heat Heat of homogeneous reactions.

pUser_g_Gas_RX_Rate_C C Rate of homogeneous reaction


(concentration based).

pUser_g_Gas_RX_Rate_Pp Rate of homogeneous reaction


(partial pressure based).

pUser_g_Gibbs Gibbs expression coefficients.

pUser_g_Heat_Capacity_Cv Gas heat capacity at constant


volume.

pUser_g_Heat_Capacity_Mol Gas heat capacity at constant


pressure.

pUser_g_Henry Henry coefficients.

pUser_g_HTC Heat transfer between gas and


solid phase.

pUser_g_Isotherm_C Gas isotherm (concentration


b d)

4 User Procedures 90
based).

pUser_g_Isotherm_P Gas isotherm (partial pressure


based).

pUser_g_Isotherm_Poi Gas isotherm (IAS spread pressure


based).

pUser_g_Isotherm_W Gas isotherm (loading based).

pUser_g_Kg Gas phase thermal conductivity.

pUser_g_Kinetic Mass transfer rate model.

pUser_g_KmacKmic Micropore and Macropore rate


constants.

pUser_g_Mole_Weights Individual molecular weights.

pUser_g_MTC Mass transfer coefficients.

pUser_g_Pump_Performance Gas pump performance curves.

pUser_g_Viscosity Gas viscosity.

Procedure pUser_Act_Coeff
Procedure name: pUser_Act_Coeff
Fortran subroutine: pUgActCoeff
Fortran template:
SUBROUTINE pUgActCoeff(T,P,X,NX,Gamma,NGamma,IFail)
IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......X(NX) - Mole fraction in the adsorbed phase
C......OUTPUT:
C.......Gamma(NGamma) - Component acticity coefficients
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NX,NGamma,IFail,I
DOUBLE PRECISION T,P,X(NX),Gamma(NGamma)

C.....Return the activity coefficients of the adsorbed


phase
DO i=1,Ngamma
Gamma(i) = 10.d0
ENDDO

C.....Return a fail
Ifail = 4

4 User Procedures 91
RETURN
END

Procedure pUser_g_Avg_Mole_Weight
Procedure name: pUser_g_Avg_Mole_Weight
Fortran subroutine: pUAvMolW
Fortran template:
SUBROUTINE pUAvMolW(Y,NY,AMW,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......Y(NY) - Component molefractions
C......OUTPUT:
C.......AMW - Average molecular weight
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution immediately

INTEGER NY,Ifail
DOUBLE PRECISION Y(NY),AMW

C.......Return Average Molecular Weight


AMW = 42

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Cat_RX_Heat
Procedure name: pUser_g_Cat_RX_Heat
Fortran subroutine: pUgCtHt
Fortran template:
SUBROUTINE pUgCtHt(T,Y,NY,HR,NHR,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......Y(NY) - Component molefraction
C......OUTPUT:
C.......HR(NHR) - Heat of catalytic reactions

4 User Procedures 92
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NY,NHR,IFail,I
DOUBLE PRECISION T,Y(NY),HR(NHR)

C.......Return Heats Of Catalytic Reactions


DO i=1,NHR
HR(i) = 0
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Cat_RX_Rate_C
Procedure name: pUser_g_Cat_RX_Rate_C
Fortran subroutine: pUgCtc
Fortran template:
SUBROUTINE
pUgCtc(T,P,C,NC,Rcomp,NRcomp,Rreac,NRreac,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......C(NC) - Component concentration
C......OUTPUT:
C.......Rcomp(NRcomp) - Rate of gas catalytic reactions
C.......Rreac(NRreac) - Rate of catalytic reactions
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NC,NRcomp,NRreac,IFail,I
DOUBLE PRECISION
T,P,C(NC),Rcomp(NRcomp),Rreac(NRreac)

C.......Return Reaction Rates


DO i=1,Nrcomp
Rcomp(i) = 0

4 User Procedures 93
ENDDO
DO i=1,Nrreac
Rreac(i) = 0
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Cat_RX_
Rate_C_Sol
Procedure name: pUser_g_Cat_RX_Rate_C_Sol
Fortran subroutine pUgCtSlc
Fortran template:
SUBROUTINE pUgCtSlc(T,P,C,NC,CSol,NCSol,
&
Rcomp,NRcomp,Rreac,NRreac,Rsol,NRsol,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......C(NC) - Component concentration
C.......CSol(NCSol) - Solid concentrations
C......OUTPUT:
C.......Rcomp(NRcomp) - Rate of gas catalytic reactions
C.......Rreac(NRreac) - Rate of catalytic reactions
C.......Rsol(NRsol) - Rate of solid catalytic reactions
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER
NC,NCSol,NRcomp,NRreac,NRsol,IFail,I
DOUBLE PRECISION T,P,C(NC),CSol(NCSol),
&
Rcomp(NRcomp),Rreac(NRreac),Rsol(NRsol)

C.......Return Reaction Rates


DO i=1,Nrcomp
Rcomp(i) = 0
ENDDO
DO i=1,Nrreac

4 User Procedures 94
Rreac(i) = 0
ENDDO
DO i=1,Nrsol
Rsol(i) = 0
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Cat_RX_Rate_Pp
Procedure name: pUser_g_Cat_RX_Rate_Pp
Fortran subroutine: pUgCt
Fortran Template:
SUBROUTINE
pUgCt(T,P,Y,NY,Rcomp,NRcomp,Rreac,NRreac,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......Y(NY) - Component molefraction
C......OUTPUT:
C.......Rcomp(NRcomp) - Rate of gas catalytic reactions
C.......Rreac(NRreac) - Rate of catalytic reactions
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NY,NRcomp,NRreac,IFail,I
DOUBLE PRECISION
T,P,Y(NY),Rcomp(NRcomp),Rreac(NRreac)

C.......Return Reaction Rates


DO i=1,Nrcomp
Rcomp(i) = 0
ENDDO
DO i=1,Nrreac
Rreac(i) = 0
ENDDO

C.......Return a fail
IFail = 4

4 User Procedures 95
RETURN
END

Procedure
pUser_g_Cat_RX_Rate_Pp_Sol
Procedure name: pUser_g_Cat_RX_Rate_Pp_Sol
Fortran subroutine: pUgCtSl
Fortran template:
SUBROUTINE pUgCtSl(T,P,Y,NY,CSol,NCSol,
&
Rcomp,NRcomp,Rreac,NRreac,Rsol,NRsol,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......Y(NY) - Component molefraction
C.......CSol(NCSol) - Solid concentrations
C......OUTPUT:
C.......Rcomp(NRcomp) - Rate of gas catalytic reactions
C.......Rreac(NRreac) - Rate of catalytic reactions
C.......Rsol(NRsol) - Rate of solid catalytic reactions
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER
NY,NCSol,NRcomp,NRreac,NRsol,IFail,I
DOUBLE PRECISION T,P,Y(NY),CSol(NCSol),
&
Rcomp(NRcomp),Rreac(NRreac),Rsol(NRsol)

C.......Return Reaction Rates


DO i=1,Nrcomp
Rcomp(i) = 0
ENDDO
DO i=1,Nrreac
Rreac(i) = 0
ENDDO
DO i=1,Nrsol
Rsol(i) = 0
ENDDO

C.......Return a fail

4 User Procedures 96
IFail = 4

RETURN
END

Procedure pUser_g_Compressibility
Procedure name: pUser_g_Compressibility
Subroutine name: pUgComp
Fortran template:
SUBROUTINE pUgComp(T,P,Y,NY,LayerID,Z,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......Y(NY) - Component molefractions
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......Z - Compressibility factor
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NY,LayerID,Ifail
DOUBLE PRECISION T,P,Y(NY),Z

C.......Return Compressibility
Z = 1d0

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Cpa
Procedure name: pUser_g_Cpa
Fortran subroutine: pUgCpa
Fortran template:
SUBROUTINE
pUgCpa(T,P,W,NW,CC,NC,LayerID,Cpa,NCpa,IFail)

IMPLICIT NONE

4 User Procedures 97
C.....Variables passed are:
C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......W(NW) - Component loading
C.......C(NC) - Component concentration
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......Cpa(NCpa) - Heat capacities of adsorbed phase
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NW,NC,LayerID,NCpa,IFail,I
DOUBLE PRECISION T,P,W(NW),CC(NC),Cpa(NCpa)

C.......Return Heats capacities at constant pressure


C.......for the adsorbed phase

DO i=1,Ncpa
Cpa(i) = 0.1d0
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_De
Procedure name: pUser_g_De
Fortran subroutine: pUgDe
Fortran template:
SUBROUTINE pUgDe(T,P,W,NW,LayerID,
& De,NDe,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Solid Phase Temperature
C.......P - Pressure
C.......W(NW) - Average Loading
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......De(NDe) - Component diffusivities
C......FLAGS:
C.......IFail - 1 = Normal, continue execution

4 User Procedures 98
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NDe,LayerID,NW,IFail,I
DOUBLE PRECISION T,P,W(NW),De(NDe)

C.......Return Loadings
DO i=1,Nde
De(i) = 1.0d-9
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_DH
Procedure name: pUser_g_DH
Fortran subroutine: pUgDH
Fortran template:
SUBROUTINE
pUgDH(T,P,W,NW,C,NC,IP,NIP,NIC,LayerID,DH,NDH,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......W(NW) - Component loading
C.......C(NC) - Component concentration
C.......IP(NIP,NIC) - Isotherm parameters
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......DH(NDH) - Heats of adsorption
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NW,NC,LayerID,NDH,IFail,I
DOUBLE PRECISION T,P,W(NW),C(NC),IP(NIP,NIC),DH(NDH)

C.......Return Heats Of Adsorption


DO i=1,NDH
DH(i) = 1d3
ENDDO

4 User Procedures 99
C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Diffusivity
Procedure name: pUser_g_Diffusivity
Fortran subroutine: pUgDiff
Fortran template:
SUBROUTINE pUgDiff(T,P,Y,NY,D,ND,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......Y(NY) - Component molefractions
C......OUTPUT:
C.......D(ND) - Component mixture diffusivities
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution immediately

INTEGER NY,ND,IFail,I
DOUBLE PRECISION T,P,Y(NY),D(ND)

DO I=1,ND
D(I) = 1.0D-6
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Dispersion
Procedure name: pUser_g_Dispersion
Fortran subroutine: pUgDisp
Fortran template:
SUBROUTINE pUgDisp(RHOg,Vg,AMW,LayerID,Ez,NEz,IFail)
IMPLICIT NONE

4 User Procedures 100


C.....Variables passed are:
C......INPUT:
C.......RHOg - Bulk gas density
C.......Vg - Superficial velocity
C.......AMW - Average molecular weight
C.......LayerID - Layer that made call
C......OUTPUT:
C.......Ez(NEz) - Component axial dispersion coefficient
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution immediately

INTEGER NEz,LayerID,IFail,I
DOUBLE PRECISION RHOg,Vg,AMW,Ez(NEz)

C.......Return Dispersion Coefficient


DO i=1,Nez
Ez(i) = 1e-5
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Enthalpy_Mol
Procedure name: pUser_g_Enthalpy_Mol
Fortran subroutine: pUgEnthM
Fortran template:
SUBROUTINE pUgEnthM(T,P,Y,NY,H,IFail)
IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......Y(NY) - Component molefractions
C......OUTPUT:
C.......H - Specific enthalpy
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution immediately

INTEGER NY,Ifail
DOUBLE PRECISION T,P,Y(NY),H

4 User Procedures 101


C.......Return Enthalpy
H = 0d0

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Entropy_Mol
Procedure name: pUser_g_Entropy_Mol
Fortran subroutine: pUgEntrM
Fortran template:
SUBROUTINE pUgEntrM(T,P,Y,NY,E,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......Y(NY) - Component molefractions
C......OUTPUT:
C.......E - Entropy
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution immediately

INTEGER NY,Ifail
DOUBLE PRECISION T,P,Y(NY),E

C.......Return Entropy
E = 0d0

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Gas_RX_Heat
Procedure name: pUser_g_Gas_RX_Heat
Fortran subroutine: pUgGsHt
Fortran template:

4 User Procedures 102


SUBROUTINE pUgGsHt(T,Y,NY,HR,NHR,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......Y(NY) - Component molefraction
C......OUTPUT:
C.......HR(NHR) - Heat of gas reactions
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NY,NHR,IFail,I
DOUBLE PRECISION T,Y(NY),HR(NHR)

C.......Return Heats Of Gas Reactions


DO i=1,NHR
HR(i) = 0
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Gas_RX_Rate_C
Procedure name: pUser_g_Gas_RX_Rate_C
Fortran subroutine: pUgGsRtc
Fortran template:
SUBROUTINE
pUgGsRtc(T,P,C,NC,Rcomp,NRcomp,Rreac,NRreac,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......C(NC) - Component concentration
C......OUTPUT:
C.......Rcomp(NRcomp) - Rate of gas reactions
C.......Rreac(NRreac) - Rate of reactions
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution

4 User Procedures 103


C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NC,NRcomp,NRreac,IFail,I
DOUBLE PRECISION
T,P,C(NC),Rcomp(NRcomp),Rreac(NRreac)

C.......Return Reaction Rates


DO i=1,Nrcomp
Rcomp(i) = 0
ENDDO
DO i=1,Nrreac
Rreac(i) = 0
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Gas_RX_Rate_Pp
Procedure name: pUser_g_Gas_RX_Rate_Pp
Fortran subroutine: pUgGsRt
Fortran template:
SUBROUTINE
pUgGsRt(T,P,Y,NY,Rcomp,NRcomp,Rreac,NRreac,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......Y(NY) - Component molefraction
C......OUTPUT:
C.......Rcomp(NRcomp) - Rate of gas reactions
C.......Rreac(NRreac) - Rate of reactions
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NY,NRcomp,NRreac,IFail,I
DOUBLE PRECISION
T,P,Y(NY),Rcomp(NRcomp),Rreac(NRreac)

C.......Return Reaction Rates


DO i=1,Nrcomp

4 User Procedures 104


Rcomp(i) = 0
ENDDO
DO i=1,Nrreac
Rreac(i) = 0
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Gibbs
Procedure name: pUser_g_Gibbs
Fortran subroutine: pUgGibbs
Fortran template:
SUBROUTINE
pUgGibbs(T,P,Poi,NPoi,IP,NIP,NComp,LayerID,
& G,NG,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......Poi(NPoi) - Component vapour pressure
C.......IP(NIP,NComp) - Isotherm parameters
(parameter,component)
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......G(NG) - Component spread pressure
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NPoi,NIP,NComp,LayerID,NG,IFail,I
DOUBLE PRECISION T,P,Poi(NPoi),IP(NIP,NComp),G(NG)

C.......Return Spreading pressures


DO i=1,NG
G(i) = 0d0
ENDDO

C.......Return a fail
IFail = 4

4 User Procedures 105


RETURN
END

Procedure pUser_g_Heat_Capacity_Cv
Procedure name: pUser_g_Heat_Capacity_Cv
Fortran subroutine: pUgHCapMCv
Fortran template:
SUBROUTINE pUgHCapMCv(T,P,Y,NY,Cv,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......Y(NY) - Component molefractions
C......OUTPUT:
C.......Cv - Specific heat capacity at constant volume
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NY,Ifail
DOUBLE PRECISION T,P,Y(NY),Cv

C.......Return Heat Capacity


Cv = 0d0

C.......Return a fail
IFail = 4

RETURN
END

Procedure
pUser_g_Heat_Capacity_Mol
Procedure name: pUser_g_Heat_Capacity_Mol
Fortran subroutine: pUgHCapM
Fortran template:
SUBROUTINE pUgHCapM(T,P,Y,NY,Cp,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:

4 User Procedures 106


C.......T - Temperature
C.......P - Pressure
C.......Y(NY) - Component molefractions
C......OUTPUT:
C.......Cp - Specific heat capacity
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NY,Ifail
DOUBLE PRECISION T,P,Y(NY),Cp

C.......Return Heat Capacity


Cp = 0d0

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Henry
Procedure name: pUser_g_Henry
Fortran subroutine: pUgHenry
Fortran template:
SUBROUTINE pUgHenry(T,X,NX,IP,NIP,NComp,LayerID,
& Hen,NHen,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......X(NX) - Component molefraction or
concentration
C.......IP(NIP,NComp) - Isotherm parameters
(parameter,component)
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......Hen(NHen) - Henry's coefficient
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NX,NIP,NComp,LayerID,NHen,IFail,I
DOUBLE PRECISION T,X(NX),IP(NIP,NComp),Hen(NHen)

4 User Procedures 107


C.......Return Henry Coefficients
DO i=1,Nhen
Hen(i) = 1d-10
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_HTC
Procedure name: pUser_g_HTC
Fortran subroutine: pUgHTC
Fortran template:
SUBROUTINE
pUgHTC(T,P,Y,NY,Vg,LDens,AMW,Rp,MU,Ei,Cp,Kg,
& LayerID,HTC,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......Y(NY) - Component molefraction
C.......Vg - Superficial velocity
C.......LDens - Molar density of gas
C.......AMW - Average molecular weight
C.......Rp - Particle radius
C.......MU - Viscosity
C.......Cp - Gas heat capacity
C.......Kg - Thermal conductivity
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......HTC - Heat transfer coefficient
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NY,LayerID,Ifail
DOUBLE PRECISION
T,P,Y(NY),Vg,LDens,AMW,Rp,MU,Ei,Cp,Kg,HTC

C.......Return Heat Transfer Coefficient


HTC = 1e5

4 User Procedures 108


C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Isotherm_C
Procedure name: pUser_g_Isotherm_C
Fortran subroutine: pUgIsoC
Fortran template:
SUBROUTINE pUgIsoC(T,P,C,NC,IP,NIP,NComp,LayerID,
& W,NW,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......C(NC) - Component concentrations
C.......IP(NIP,NComp) - Isotherm parameters
(parameter,component)
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......W(NW) - Loading
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NC,NIP,NComp,LayerID,NW,IFail,I
DOUBLE PRECISION T,P,C(NC),IP(NIP,NComp),W(NW)

C.......Return Loadings
DO i=1,NW
W(i) = 0d0
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

4 User Procedures 109


Procedure pUser_g_Isotherm_P
Procedure name: pUser_g_Isotherm_P
Fortran subroutine: pUgIsoPp
Fortran template:
SUBROUTINE pUgIsoPp(T,P,Y,NY,IP,NIP,NComp,LayerID,
& W,NW,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......Y(NY) - Component molefractions
C.......IP(NIP,NComp) - Isotherm parameters
(parameter,component)
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......W(NW) - Loading
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NY,NIP,NComp,LayerID,NW,IFail,I
DOUBLE PRECISION T,P,Y(NY),IP(NIP,NComp),W(NW)

C.......Return Loadings
DO i=1,NW
W(i) = 0d0
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Isotherm_Poi
Procedure name: pUser_g_Isotherm_Poi
Fortran subroutine: pUgIsoPo
Fortran template:
SUBROUTINE
pUgIsoPo(T,P,Poi,NPoi,IP,NIP,NComp,LayerID,
& W,NW,IFail)

IMPLICIT NONE

4 User Procedures 110


C.....Variables passed are:
C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......Poi(NPoi) - Component vapour pressure
C.......IP(NIP,NComp) - Isotherm parameters
(parameter,component)
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......W(NW) - Loading
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NPoi,NIP,NComp,LayerID,NW,IFail,I
DOUBLE PRECISION T,P,Poi(NPoi),IP(NIP,NComp),W(NW)

C.......Return Loadings
DO i=1,NW
W(i) = 0d0
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Isotherm_W
Procedure name: pUser_g_Isotherm_W
Fortran subroutine: pUgIsoW
Fortran template:
SUBROUTINE pUgIsoW(T,P,W,NW,IP,NIP,NComp,LayerID,
& C,NC,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......W(NW) - Loading
C.......IP(NIP,NComp) - Isotherm parameters
(parameter,component)
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......C(NC) - Component concentrations

4 User Procedures 111


C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NC,NIP,NComp,LayerID,NW,IFail,I
DOUBLE PRECISION T,P,C(NC),IP(NIP,NComp),W(NW)

C.......Return Loadings
DO i=1,NC
C(i) = 0d0
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Kg
Procedure name: pUser_g_Kg
Fortran subroutine: pUgKg
Fortran template:
SUBROUTINE
pUgKg(T,P,Y,NY,LDens,Cp,Ez,NEz,LayerID,Kg,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......Y(NY) - Component molefraction
C.......LDens - Molar density of gas
C.......Cp - Gas heat capacity
C.......Ez(NEz) - Axial dispersion coefficient
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......Kg - Gas thermal conductivity
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NY,NEz,LayerID,Ifail
DOUBLE PRECISION T,P,Y(NY),LDens,Cp,Ez(NEz),Kg

C.......Return Thermal Conductivity

4 User Procedures 112


Kg = 1e-10

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Kinetic
Procedure name: pUser_g_Kinetic
Fortran subroutine: pUgRate
Fortran template:
SUBROUTINE
pUgRate(Tg,Ts,P,X,NX,Xs,NXs,Rp,Ei,Ep,Z,AMW,MW,NMW,
& RHOs,LayerID,dWdT,NdWdT,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......Tg - Gas temperature
C.......Ts - Solid temperature
C.......P - Pressure
C.......X(NX) - Bulk component concentration
C....... or solid component loading
C.......Xs(NXs) - Film component concentration
C....... or film loading
C.......Rp - Particle radius
C.......Ei - Interparticle voidage
C.......Ep - Intraparticle voidage
C.......Z - Gas compressibility factor
C.......AMW - Average molecular weight
C.......MW(NMW) - Component molecular weights
C.......RHOS - Bulk solid density
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......dWdT(NdWdT) - Loading rate
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue
execution
C....... 4 = Fatal error, stop execution
immediately

INTEGER NX,NXs,NMW,LayerID,NdWdT,IFail,I
DOUBLE PRECISION
Tg,Ts,P,X(NX),Xs(NXs),Rp,Ei,Ep,Z,AMW,MW(NMW),
& RHOs,dWdT(NdWdT)

4 User Procedures 113


C.......Return Loadings And Rates
DO i=1,NdWdT
dWdT(i) = 0
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_KmacKmic
Procedure name: pUser_g_KmacKmic
Fortran subroutine: pUgKmKm
Fortran template:
SUBROUTINE pUgKmKm(T,P,C,NC,Z,Vg,LayerID,
& Kmac,NKmac,Kmic,NKmic,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Temperature
C.......C(NC) - Component concentration
C.......Z - Gas compressibility
C.......Vg - Superficial velocity
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......Kmac(NKmac) - Macropore transfer rate
C.......Kmic(NKmic) - Micropore transfer rate
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NC,LayerID,NKmac,NKmic,IFail,I
DOUBLE PRECISION
T,P,C(NC),Z,Vg,Kmac(NKmac),Kmic(NKmic)

C.......Return Mass Transfer Coefficients


DO i=1,Nkmac
Kmac(i) = 1d-10
Kmic(i) = 1d-10
ENDDO

C.......Return a fail
IFail = 4

4 User Procedures 114


RETURN
END

Procedure pUser_g_Mole_Weights
Procedure name: pUser_g_Mole_Weights
Fortran subroutine: pUMolWts
Fortran template:
SUBROUTINE pUMolWts(MW,NMW,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT: None
C......OUTPUT:
C.......MW(NMW) - Component molecular weight
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution
immediately

INTEGER NMW,IFail,I
DOUBLE PRECISION MW(NMW)

C.......Return Component Molecular Weights


DO i=1,NMW
MW(i) = 42
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_MTC
Procedure name: pUser_g_MTC
Fortran subroutine: pUgMTC
Fortran template:
SUBROUTINE pUgMTC(T,P,C,NC,Z,Vg,LayerID,
& MTC,NMTC,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature

4 User Procedures 115


C.......P - Temperature
C.......C(NC) - Component concentration
C.......Z - Gas compressibility
C.......Vg - Superficial velocity
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......MTC(NMTC) - Component mass transfer
coefficients
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NC,LayerID,NMTC,IFail,I
DOUBLE PRECISION T,P,C(NC),Z,Vg,MTC(NMTC)

C.......Return Mass Transfer Coefficients


DO i=1,NMTC
MTC(i) = 1d-10
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure
pUser_g_Pump_Performance
Procedure name: pUser_g_Pump_Performance
Fortran subroutine: pUgPPer
Fortran template:
SUBROUTINE pUgPPer(Pin,Pout,T,CharNo,Vin,Eff,IFail)
IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......Pin - Inlet pressure
C.......Pout - Outlet pressure
C.......T - Temperature
C.......CharNo - Characteristic curve number
C......OUTPUT:
C.......Vin - Inlet volumetric flowrate
C.......Eff - Pump efficiency
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution

4 User Procedures 116


C....... 4 = Fatal Error, stop execution
immediately

INTEGER CharNo,Ifail
DOUBLE PRECISION Pin,Pout,T,Vin,Eff

C.......Return Volumetric Flowrate


Vin = 1d-2
Eff = 0.75d0

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_g_Viscosity
Procedure name: pUser_g_Viscosity
Fortran subroutine: pUgVisc
Fortran template:
SUBROUTINE pUgVisc(T,P,Y,NY,Visc,IFail)
IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......Y(NY) - Component molefractions
C......OUTPUT:
C.......Visc - Gas viscosity
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution immediately

INTEGER NY,Ifail
DOUBLE PRECISION T,P,Y(NY),Visc

C.......Return Viscosity
Visc = 1e-5

C.......Return a fail
IFail = 4

RETURN
END

4 User Procedures 117


Ion-Exchange Procedures
For ion-exchange phase systems, the following procedures calls are available:

Procedure name Description


pUser_i_Dispersion Axial dispersion coefficients.

pUser_i_Isotherm_C User isotherm (concentration based).

pUser_i_Isotherm_W User isotherm (loading based).

pUser_i_Kinetic User kinetic model.

pUser_i_MTC User calculated mass transfer coefficients.

Procedure pUser_i_Dispersion
Procedure name: pUser_i_Dispersion
Fortran subroutine: pUiEz
Fortran template:
SUBROUTINE pUiEz(RHOl,Vl,AMW,LayerID,Ez,NEz,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUTS:
C.......RHOl - Bulk fluid density
C.......Vl - Maximum ion exchange resin capacity
C.......AMW - Average molecular weight
C.......LayerID - Layer number within bed that made the
call
C......OUTPUT:
C.......Ez(NEz) - Component axial dispersion coefficients
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution
immediately

INTEGER LayerID,NEz,IFail,I
DOUBLE PRECISION RHOl,Vl,AMW,Ez(NEz)

C.......Return dispersion coefficients


DO i=1,Nez
Ez(i) = 1d-10
ENDDO

C.......Return a fail
IFail = 4

4 User Procedures 118


RETURN
END

Procedure pUser_i_Isotherm_C
Procedure name: pUser_i_Isotherm_C
Fortran subroutine: pUiIsoC
Fortran template:
SUBROUTINE
pUiIsoC(Conc,NConc,Q,IP,NIP,NComp,LayerID,W,NW,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUTS:
C.......Conc(NConc) - Component concentration
C.......Q - Maximum ion exchange resin capacity
C.......IP(NIP,NComp) - Isotherm parameters
(parameter,component)
C.......LayerID - Layer number within bed that made
the call
C......OUTPUT:
C.......W(NW) - Component Loadings
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue
execution
C....... 4 = Fatal error, stop execution
immediately

INTEGER NConc,NIP,NComp,LayerID,NW,IFail,I
DOUBLE PRECISION Conc(NConc),Q,IP(NIP,NComp),W(NW)

C.......Return loading
DO i=1,NW
W(i) = 1d-10
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_i_Isotherm_W
Procedure name: pUser_i_Isotherm_W
Fortran subroutine: pUiIsoW
Fortran template:

4 User Procedures 119


SUBROUTINE
pUiIsoW(W,NW,Q,IP,NIP,NComp,LayerID,Conc,NConc,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUTS:
C.......W(NW) - Component Loadings
C.......Q - Maximum ion exchange resin capacity
C.......IP(NIP,NComp) - Isotherm parameters
(parameter,component)
C.......LayerID - Layer number within bed that made
the call
C......OUTPUT:
C.......Conc(NConc) - Component concentration
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue
execution
C....... 4 = Fatal error, stop execution
immediately

INTEGER NConc,NIP,NComp,LayerID,NW,IFail,I
DOUBLE PRECISION Conc(NConc),Q,IP(NIP,NComp),W(NW)

C.......Return loading
DO i=1,Nconc
Conc(i) = 1d-10
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_i_Kinetic
Procedure name: pUser_i_Kinetic
Fortran subroutine: pUiKin
Fortran template:
SUBROUTINE
pUiKin(X,NX,Xs,NXs,Rp,Ei,Ep,RHOs,Vl,Q,LayerID,
& dWdT,NdWdT,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUTS:
C.......X(NX) - Component concentration

4 User Procedures 120


C.......Xs(NXs) - Component concentration
C.......Rp - Particle radius
C.......Ei - Interparticle voidage
C.......Ep - intraparticle voidage
C.......RHOs - Bulk soild density
C.......Vl - superficial velocity
C.......Q - Maximum ion exchange resin capacity
C.......LayerID - Layer number within bed that made the
call
C......OUTPUT:
C.......dWdT(NdWdT) - Rate of change of component loadings
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue
execution
C....... 4 = Fatal Error, stop execution
immediately

INTEGER NX,NXs,LayerID,NdWdT,IFail,I
DOUBLE PRECISION
X(NX),Xs(NXs),RP,Ei,Ep,RHOs,Vl,Q,dWdT(NdWdT)

C.......Return loadings
DO i=1,NdWdT
dWdT(i) = 0
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_i_MTC
Procedure name: pUser_i_MTC
Fortran subroutine: pUiMTC
Fortran template:
SUBROUTINE
pUiMTC(Conc,NConc,Vl,Rp,LayerID,MTC,NMTC,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUTS:
C.......Conc(NConc) - Component concentration
C.......Vl - Superficial velocity
C.......Rp - Particle radius
C.......LayerID - Layer number within bed that made the
call

4 User Procedures 121


C......OUTPUT:
C.......MTC(NMTC) - Component mass transfer coefficients
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue
execution
C....... 4 = Fatal error, stop execution
immediately

INTEGER NConc,LayerID,NMTC,IFail,I
DOUBLE PRECISION Conc(NConc),Vl,Rp,MTC(NMTC)

C.......Return mass transfer coefficients


DO i=1,NMTC
MTC(i) = 1d-10
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Liquid Procedures
For liquid phase systems, the following procedure calls are available:

Procedure name Description


pUser_l_Avg_Mole_Weight Average molecular weight.

pUser_l_Density_Mass Average mass density.

pUser_l_DH Heats of adsorption.

pUser_l_Dispersion Axial dispersion coefficient.

pUser_l_Enthalpy_Mol Liquid molar enthalpy.

pUser_l_Gibbs Gibbs expression coefficients.

pUser_l_Heat_Capacity_Mol Liquid heat capacity.

pUser_l_HTC Heat transfer coefficient from liquid to


solid.

pUser_l_Isotherm_C User isotherm (concentration based).

pUser_l_Isotherm_W User isotherm (loading based).

pUser_l_Kinetic User kinetic model.

pUser_l_Kl Liquid conductivity.

pUser_l_KmacKmic Macro/micropore mass transfer


coefficient.

pUser_l_Mole_Weights Individual molecular weights.

4 User Procedures 122


pUser_l_MTC Mass transfer coefficients.

pUser_l_Viscosity Liquid viscosity.

Procedure pUser_l_Avg_Mole_Weight
Procedure name: pUser_l_Avg_Mole_Weight
Fortran subroutine: pUlAvMolW
Fortran template:
SUBROUTINE pUlAvMolW(X,NX,AMW,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......X(NX) - Component molefractions
C......OUTPUT:
C.......AMW - Average molecular weight
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution immediately

INTEGER NX,Ifail
DOUBLE PRECISION X(NX),AMW

C.......Return Average Molecular Weight


AMW = 42

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_l_Density_Mass
Procedure name: pUser_l_Density_Mass
Fortran subroutine: pUlDMass
Fortran template:
SUBROUTINE pUlDMass(T,P,X,NX,LDens,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......X(NX) - Component molefractions

4 User Procedures 123


C......OUTPUT:
C.......LDens - Liquid mass density
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution immediately

INTEGER NX,Ifail
DOUBLE PRECISION T,P,X(NX),Ldens

C.......Return Liquid Mass Density


LDens = 0d0

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_l_DH
Procedure name: pUser_l_DH
Fortran subroutine: pUlDH
Fortran template:
SUBROUTINE
pUlDH(T,P,W,NW,C,NC,IP,NIP,NIC,DH,NDH,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......W(NW) - Component loadings
C.......C(NC) - Bulk fluid concentrations
C.......IP(NIP,NIC) - Isotherm parameters
C......OUTPUT:
C.......DH(NDH) - Component heat of adsorption
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution
immediately

INTEGER NW,NC,NIP,NIC,NDH,IFail,I
DOUBLE PRECISION T,P,W(NW),C(NC),DH(NDH),IP(NIP,NIC)

C.......Return Heats of Adsorption


DO i=1,NDH

4 User Procedures 124


DH(i) = 1d3
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_l_Dispersion
Procedure name: pUser_l_Dispersion
Fortran subroutine: pUlDisp
Fortran template:
SUBROUTINE pUlDisp(LDens,Vl,AMW,LayerID,Ez,NEz,IFail)
IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......LDens - Bulk fluid density
C.......Vl - Superficial velocity
C.......AMW - Average molecular weight
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......Ez(NEz) - Component loadings
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution
immediately

INTEGER NEz,LayerID,IFail,I
DOUBLE PRECISION LDens,Vl,AMW,Ez(NEz)

C.......Return Dispersion Coefficients


DO i=1,Nez
Ez(i) = 1d-5
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

4 User Procedures 125


Procedure pUser_l_Enthalpy_Mol
Procedure name: pUser_l_Enthalpy_Mol
Fortran subroutine: pUlEnth
Fortran template:
SUBROUTINE pUlEnth(T,P,X,NX,H,IFail)
IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......X(NX) - Component molefractions
C......OUTPUT:
C.......H - Specific enthalpy
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution immediately

INTEGER NX,Ifail
DOUBLE PRECISION T,P,X(NX),H

C.......Return Enthalpy
H = 0d0

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_l_Gibbs
Procedure name: pUser_l_Gibbs
Fortran subroutine: pUlGibbs
Fortran template:
SUBROUTINE
pUlGibbs(T,C,NC,IP,NIP,NComp,LayerID,G,NG,IFail)
IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Bulk temperature
C.......C(NC) - Component concentrations
C.......IP(NIP,NComp) - Isotherm parameters
(parameter,component)
C.......LayerID - Bed layer that made call
C......OUTPUT:

4 User Procedures 126


C.......G(NG) - Spreading concentration
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue
execution
C....... 4 = Fatal Error, stop execution
immediately

INTEGER NC,NIP,NComp,LayerID,NG,IFail,I
DOUBLE PRECISION T,C(NC),IP(NIP,NComp),G(NG)

C.......Return Spreading Concentration


DO i=1,NG
G(i) = 1d-10
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_l_Heat_Capacity_Mol
Procedure name: pUser_l_Heat_Capacity_Mol
Fortran subroutine: pUlCp
Fortran template:
SUBROUTINE pUlCp(T,P,X,NX,Cp,IFail)
IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......X(NX) - Component molefractions
C......OUTPUT:
C.......Cp - Specific heat capacity
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NX,Ifail
DOUBLE PRECISION T,P,X(NX),Cp

C.......Return Heat Capacity


Cp = 0d0

C.......Return a fail

4 User Procedures 127


IFail = 4

RETURN
END

Procedure pUser_l_HTC
Procedure name: pUser_l_HTC
Fortran subroutine: pUlHTC
Fortran template:
SUBROUTINE
pUlHTC(T,P,X,NX,Vl,LDens,AMW,Rp,Visc,Ei,Cp,K,
& HTC,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......X(NX) - Component molefractions
C.......Vl - Superficial velocity
C.......LDens - Liquid molar density
C.......AMW - Average molecular weight
C.......Rp - Particle radius
C.......Visc - Bulk fluid viscosity
C.......Ei - Interparticle voidage
C.......Cp - Specific heat capacity
C.......K - Fluid conductivity
C......OUTPUT:
C.......HTC - Heat transfer coefficient
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal error, stop execution immediately

INTEGER NX,Ifail
DOUBLE PRECISION
T,P,X(NX),Vl,LDens,AMW,Rp,Visc,Ei,Cp,K,HTC

C.......Return Heat Transfer Coefficient


HTC = 1e-10

C.......Return a fail
IFail = 4

RETURN
END

4 User Procedures 128


Procedure pUser_l_Isotherm_C
Procedure name: pUser_l_Isotherm_C
Fortran subroutine: pUlIsoC
Fortran template:
SUBROUTINE
pUlIsoC(T,C,NC,IP,NIP,NComp,LayerID,W,NW,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......C(NC) - Bulk liquid concentrations
C.......IP(NIP,NComp) - Isotherm parameters
(parameter,component)
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......W(NW) - Component loadings
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue
execution
C....... 4 = Fatal error, stop execution
immediately

INTEGER NC,NIP,NComp,NW,LayerID,IFail,I
DOUBLE PRECISION T,C(NC),IP(NIP,NComp),W(NW)

C.......Return Loadings
DO i=1,NW
W(i) = 1d-10
ENDDO
C.......Return a fail
IFail = 4
RETURN
END

Procedure pUser_l_Isotherm_W
Procedure name: pUser_l_Isotherm_W
Fortran subroutine: pUlIsoW
Fortran template:
SUBROUTINE
pUlIsoW(T,W,NW,IP,NIP,NComp,LayerID,C,NC,IFail)
IMPLICIT NONE

C.....Variables passed are:


C......INPUT:

4 User Procedures 129


C.......T - Temperature
C.......W(NW) - Component loadings
C.......IP(NIP,NComp) - Isotherm parameters
(parameter,component)
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......C(NC) - Bulk liquid concentrations
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue
execution
C....... 4 = Fatal error, stop execution
immediately

INTEGER NC,NIP,NComp,NW,LayerID,IFail,I
DOUBLE PRECISION T,C(NC),IP(NIP,NComp),W(NW)

C.......Return Loadings
DO i=1,NC
C(i) = 1d-10
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_l_Kinetic
Procedure name: pUser_l_Kinetic
Fortran subroutine: pUlRate
Fortran template:
SUBROUTINE
pUlRate(Tl,Ts,P,X,NX,Xs,NXs,Rp,Ei,Ep,AMW,MW,NMW,
& Rhos,LayerID,J,NJ,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......Tl - Fluid temperature
C.......Ts - Solid temperature
C.......X(NX) - C or W
C.......Xs(NXs) - Cs or Ws
C.......Rp - Particle radius
C.......Ei - Interparticle voidage
C.......Ep - Intraparticle voidage
C.......AMW - Average molecular weight
C.......MW(NMW) - Component molecular weight

4 User Procedures 130


C.......RHOs - Bulk solid density
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......J(NJ) - Component flux
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue
execution
C....... 4 = Fatal Error, stop execution
immediately

INTEGER NX,NXs,NMW,LayerID,NJ,IFail,I
DOUBLE PRECISION
Tl,Ts,P,X(NX),Xs(NXs),Rp,Ei,Ep,AMW,MW(NMW),
& Rhos,J(NJ)

C.......Return Loadings And Rates


DO i=1,NJ
J(i) = 0
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_l_Kl
Procedure name: pUser_l_Kl
Fortran subroutine: pUlKl
Fortran template:
SUBROUTINE pUlKl(T,P,X,NX,LDens,Cp,Ez,NEz,Kl,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......X(NX) - Component mole fractions
C.......LDens - Liquid molar density
C.......Cp - Fluid heat capacity
C.......Ez(NEz) - Bulk fluid concentrations
C......OUTPUT:
C.......Kl - Fluid thermal conductivity
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution

4 User Procedures 131


C....... 4 = Fatal Error, stop execution
immediately

INTEGER NX,NEz,Ifail
DOUBLE PRECISION T,P,X(NX),LDens,Cp,Ez(NEz),Kl

C.......Return Conductivity
Kl = 1d-3

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_l_KmacKmic
Procedure name: pUser_l_KmacKmic
Fortran subroutine: pUlKmKm
Fortran template:
SUBROUTINE pUlKmKm(T,P,XS,NXS,Cms,NCMS,W,NW,V,
& LayerID,Kmac,NKmac,Kmic,
& NKmic,IFAIL)

IMPLICIT NONE

C.....Variables passed are:


C......Input:
C.......T - Temperature in K
C.......P - Pressure in bar
C.......XS(NXS) - Solid Film: Loading in equilibrium
C...... with Cms in kmol/kg
C...... Liquid Film: Equlibrium concentration
C...... to W in kmol/m3
C.......Cms(NCMS) - Macropore liquid concentration in
kmol/m3
C.......W(NW) - Loasing in kmol/kg
C.......V - Superficial velocity in m/s
C.......LayerID - Number of layer in packed bed
C.....Output:
C......Kmac(NKmac)- Macropore MTC in 1/s
C......Kmic(NKmic)- Micropore MTC in 1/s

INTEGER NXS,NCMS,NW,LayerID,NKmac,NKmic,IFAIL,I
DOUBLE PRECISION T,P,XS(NXS),Cms(NCMS),W(NW),V,
& Kmac(NKmac),Kmic(NKmic)

C.......Return mass transfer coefficeints


DO i=1,Nkmac
Kmac(i) = 1.0d-10
Kmic(i0 = 1.0d-10

4 User Procedures 132


ENDDO

C.......Return a fail
IFAIL = 4

RETURN
END

Procedure pUser_l_Mole_Weights
Procedure name: pUser_l_Mole_Weights
Fortran subroutine: pUlMolWts
Fortran template:
SUBROUTINE pUlMolWts(MW,NMW,IFail)
IMPLICIT NONE

C.....Variables passed are:


C......INPUT: None
C......OUTPUT:
C.......MW(NMW) - Component molecular weight
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution
immediately

INTEGER NMW,IFail,I
DOUBLE PRECISION MW(NMW)

C.......Return Component Molecular Weights


DO i=1,NMW
MW(i) = 42
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_l_MTC
Procedure name: pUser_l_MTC
Fortran subroutine: pUlMTC
Fortran template:
SUBROUTINE pUlMTC(T,P,C,NC,Vl,LayerID,MTC,NMTC,IFail)
IMPLICIT NONE

C.....Variables passed are:

4 User Procedures 133


C......INPUT:
C.......T - Bulk temperature
C.......P - Pressure
C.......C(NC) - Component concentrations
C.......Vl - Superficial velocity
C.......LayerID - Bed layer that made call
C......OUTPUT:
C.......MTC(NMTC) - Component loadings
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution
immediately

INTEGER NC,LayerID,NMTC,IFail,I
DOUBLE PRECISION T,P,C(NC),Vl,MTC(NMTC)

C.......Return Mass Transfer Coefficients


DO i=1,NMTC
MTC(i) = 1d-10
ENDDO

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_l_Viscosity
Procedure name: pUser_l_Viscosity
Fortran subroutine: pUlVisc
Fortran template:
SUBROUTINE pUlVisc(T,P,X,NX,Visc,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......X(NX) - Component molefractions
C......OUTPUT:
C.......Visc - Liquid viscosity
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution immediately
INTEGER NX,Ifail

4 User Procedures 134


DOUBLE PRECISION T,P,X(NX),Visc

C.......Return Viscosity
Visc = 1e-5

C.......Return a fail
IFail = 4

RETURN
END

Miscellaneous Procedures
The following miscellaneous procedures are available:

Procedure name Description


pUser_Flash User V-L flash routine.

pUser_Kvalues User V-L equilibrium constants.

Procedure pUser_Flash
Procedure name: pUser_Flash
Fortran subroutine name: pUFlash
Fortran template:
SUBROUTINE pUFlash(T,P,Z,NZ,Y,NY,X,NX,VF,HV,HL,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......Z(NZ) - Total component molefractions
C......OUTPUT:
C.......Y(NY) - Vapour phase molefractions
C.......X(NX) - Liquid phase molefractions
C.......VF - Vapour fraction
C.......HV - Vapour phase enthalpy
C.......HL - Liquid phase enthalpy
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution immediately

INTEGER NZ,NY,NX,IFail,I
DOUBLE PRECISION T,P,Z(NZ),Y(NY),X(NX),VF,HV,HL

4 User Procedures 135


C.......Vapour and Liquid molefractions
DO i = 1,NY
Y(i) = Z(i)
X(i) =Z(i)
Enddo
C.......Vapour fraction
VF = 0.5d0
C.......Vapour and Liquid enthalpies
HV = 10.0d0
HL = 10.0d0

C.......Return a fail
IFail = 4

RETURN
END

Procedure pUser_KValues
Procedure name: pUser_Kvalues
Fortran subroutine: pUKValues
Fortran template:
SUBROUTINE pUKValues(T,P,X,NX,Y,NY,K,NK,IFail)

IMPLICIT NONE

C.....Variables passed are:


C......INPUT:
C.......T - Temperature
C.......P - Pressure
C.......X(NX) - Liquid phase molefractions
C.......Y(NY) - Vapour phase molefractions
C......OUTPUT:
C.......K(NK) - VLE Partition factor
C......FLAGS:
C.......IFail - 1 = Normal, continue execution
C....... 2 = Warning, continue execution
C....... 3 = Serious Warning, continue execution
C....... 4 = Fatal Error, stop execution immediately

INTEGER NY,NX,NK,IFail,I
DOUBLE PRECISION T,P,X(NX),Y(NY),K(NK)

C.......VLE Partition factors


DO i = 1,NK
K(i) = 0.5d0
Enddo

C.......Return a fail
IFail = 4

4 User Procedures 136


RETURN
END

4 User Procedures 137


5 User Submodels

Some Aspen Adsim simulations use external modeling language based


submodels for:
• Transport properties.
• Adsorbent properties.
The submodels referenced depend on the assumptions selected for each
model.
This chapter contains information on the following topics:
• Determining submodels in use.
• Defining equations for user submodels.
• Gas user submodels.
• Ion-exchange user submodels.
• Liquid user submodels.

Determining Submodels In Use


Submodels are called when you select explicit submodel options.
For example, consider layer 1 in a flowsheet block Bed1. If this layer is
configured for use with a user submodel based isotherm, and the isotherm
dependency is concentration, to find out which submodel to use:
1 Explore the Bed1 block.
2 Expand the branches within the Bed1 block, until you find a block whose
name contains the prefix “User_”:

5 User Submodels 138


3 Right-click this block and select Properties.
The Block Properties dialog box appears:

The Block Properties dialog box lists the name of the block, and more
importantly, the name of the model that will be used. This is the name of the
submodel.

Defining Equations for User


Submodels
You provide equations for a user submodel in one of two ways:

5 User Submodels 139


• In conjunction with the editing key (License Manager feature 61), load a
copy of the Aspen Adsim library source file and edit the user submodels.
• Without this key, use flowsheet level constraints.

Direct Insertion into Submodel


To modify the submodel directly:
1 Enable the editing key (License Manager feature 61).
2 From the Tools menu, switch on Custom Modeling.
3 Load a copy of the Aspen Adsim library source file, Adsim.ada, or the
types contained imported.

For example, consider the isotherm example. The isotherm submodel is gas
phase. The model gUserIsothermC to be edited can then be found in the
folder Custom Modeling\Submodels_User\Gas:

Right-click the model and select edit. In the editor window, enter the required
expressions and compile before closing.

5 User Submodels 140


Any models on the flowsheet that use the submodel are automatically
updated, along with the degrees of freedom.

Note: Compile the models contained in the Custom Modeling


folder into a new library. Otherwise, the input file for the current
flowsheet grows excessively large as it contains a copy of all the
previously imported types.

Using Flowsheet Constraints:


Overview of Procedure
This approach lets you provide constraints (equations) specific to the active
flowsheet, without the need for the editing key and the copy of the Aspen
Adsim library source file.
In overview, the procedure is:
1 Open the editor through the Explorer window.
2 Note the pathnames of the variables to be equated.
3 Test the validity of the constraints using structural conditions.
4 Compile the edited syntax.

The following subsections describe the procedure.

Using Flowsheet Constraints: Opening the Editor


You open the editor through the Explorer window, as shown in the picture:

5 User Submodels 141


1 Select Flowsheet in the top pane of the Explorer window.
2 In the lower pane, right-click Flowsheet to open a menu.
3 Select Edit from this menu. The editor now opens.

Using Flowsheet Constraints: Pathnames of Variables


When user submodel equations are inserted as flowsheet constraints, you
should note the full pathname of the variables to be equated.
1 Explore the flowsheet block where the submodel is used, to become
familiar with the block path:

2 Look at the submodel template, found in the Submodels_User folder in the


Aspen Adsim library.

5 User Submodels 142


The following illustration shows the syntax for the user isotherm submodel, as
it appears in the editor.

For example, to refer to the variable C in the gas concentration user isotherm
submodel, you need to provide this path:
Bed1.Layer(1).Isotherm(1).User_Conc_Isotherm(1).C

Using Flowsheet Constraints: Structural Conditionals


It is a good idea to use structural conditionals to test when your added
constraints are valid. For example, consider a user submodel isotherm that is
concentration dependent:

5 User Submodels 143


Using Flowsheet Constraints: Compilation
You must compile the edited syntax to make the flowsheet constraints active.
To compile the syntax:
1 Right-click within the Editor window. A popup menu appears.
2 Click Build and Compile.

On successful compilation, the flowsheet and degrees of freedom are


automatically updated.

5 User Submodels 144


Gas User Submodels
For gas phase systems, the following user submodels are available:

Name Description
gUserCompressibilty User compressibility calculation (for bed
models).

gUserCompressibilty2 User compressibility calculation (for static


models).

gUserCpa Heat capacity of adsorbed phase


calculations.

gUserDH Heats of adsorption.

gUserDispersion Axial dispersion coefficients.

gUserEffDiff Effective diffusivity for particle material


balance.

gUserGibbs Gibbs isotherm expression.

gUserHenryCoeff Henry coefficients.

gUserHTC Gas to solid heat transfer coefficients.

gUserIsothermC Isotherm (concentration based).

gUserIsothermPoi Isotherm (spread pressure based).

gUserIsothermPp Isotherm (partial pressure based).

gUserKg Gas phase conductivity.

gUserKineticModel Rate/kinetic model.

gUserKmacKmic Micro/macropore rate constants.

gUserMTC Mass transfer coefficients.

User Submodel gUserCompressibilty


Model gUserCompressibilty Uses Base_Globals

// Define Variables
Layer_ID as IntegerParameter(1);
FDESet as Hidden IntegerSet([1:20]);
Z(FDESet) as Positive;
P(FDESet) as Pressure;
T(FDESet) as Temperature_K;
Y(FDESet,ComponentList) as MoleFraction;

// Calculate compressibility factor


/* Sample default to ensure problem remains square
Z = 1;
*/

End

5 User Submodels 145


User Submodel gUserCompressibilty2
Model gUserCompressibilty2 Uses Base_Globals

// Define Variables
Tank_Void_ID as IntegerParameter(1);
Z as Positive;
P as Pressure;
T as Temperature_K;
Y(ComponentList) as MoleFraction;

// Calculate compressibility factor


/* Sample default to ensure problem remains square
Z = 1;
*/

End

User Submodel gUserCpa


Model gUserCpa

//Define parameters and variables


Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
W(FDESet,ComponentList) as g_loading;
C(FDESet,ComponentList) as g_Conc_Mol;
T(FDESet) as Temperature_k;
P(FDESet) as Pressure;
Cpa(FDESet,ComponentList) as g_heat_capacity;

// Calculate heat of adsorption


/* Sample default to ensure problem remains square
Cpa = 0;
*/

END

User Submodel gUserDH


Model gUserDH

//Define paramters and variables


Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
W(FDESet,ComponentList) as g_loading;
C(FDESet,ComponentList) as g_Conc_Mol;
T(FDESet) as Temperature_k;
P(FDESet) as Pressure;
DH(FDESet,ComponentList) as g_Delta_Enth;
IP(IsoParSet,ComponentList) as Notype;

5 User Submodels 146


// Calculate heat of adsorption
/* Sample default to ensure problem remains square
DH = 0;
*/

End

User Submodel gUserDispersion


Model gUserDispersion Uses Base_Globals

Layer_ID as IntegerParameter(1);
FDESet as Hidden IntegerSet([1:20]);

Ez(FDEset,ComponentList) as Dispersion;
RHOG(FDESet) as g_Density_Mol;
Vg(FDEset) as Superficial_Velocity;
AMW(FDEset) as MolarWeight;

// Calculate value
/* Sample default to ensure problem remains square
Ez = 1e-10;
*/

End

User Submodel gUserEffDiff


Model gUserEffDiff

Nodes as IntegerParameter(20);
Layer_ID as IntegerParameter(1);
FDEset as IntegerSet([1:Nodes]);

Ts(FDEset) as Temperature_K;
P(FDEset) as Pressure;
W(FDEset,ComponentList) as g_Loading;
De(FDEset,ComponentList) as g_Diffusivity;

/*
De = 1e-9;
*/

END

User Submodel gUserGibbs


Model gUserGibbs Uses Base_Globals

5 User Submodels 147


// Define Variables
Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
IsoParSet as IntegerSet([1:8]);
IP(IsoParSet,ComponentList) as Notype;
Poi(FDESet,ComponentList) as g_Pressure_Vapour;
Pw(FDESet,ComponentList) as g_Pressure_Spread;
T(FDESet) as Temperature_K;
P(FDESet) as Pressure;

// Calculate integrated Gibbs expression


/* Sample default to ensure problem remains square
Pw = 0;
*/

End

User Submodel gUserHenryCoeff


Model gUserHenryCoeff Uses Base_Globals

// Define Variables
Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
IsoParSet as IntegerSet([1:8]);
IP(IsoParSet,ComponentList) as Notype;
X(FDESet,ComponentList) as Notype;
Henry(FDESet,ComponentList) as Notype;
T(FDESet) as Temperature_K;

// Calculate Henry coefficient


/* Sample default to ensure problem remains square
Henry = 1e-10;
*/

End

User Submodel gUserHTC


Model gUserHTC

//Define parameters and variables


Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
T(FDESet) as Temperature_K;
P(FDESet) as Pressure;
Y(FDESet,ComponentList) as MoleFraction;
Rhog(FDESet) as g_Density_Mol;
Vg(FDESet) as Superficial_Velocity;
AMW(FDESet) as MolarWeight;

5 User Submodels 148


Rp as Length;
MUg(FDESet) as g_Viscosity;
Ei as VoidageBed;
Cvg(FDESet) as g_Heat_Capacity;
Kg(FDESet) as g_Conductivity;
HTC(FDESet) as g_Heat_Trans_Coeff;

// Calculate HTC
/* Sample default to ensure problem remains square
HTC = 0;
*/

End

User Submodel gUserIsothermC


Model gUserIsothermC Uses Base_Globals

// Define Variables
Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
IsoParSet as IntegerSet([1:8]);
IP(IsoParSet,ComponentList) as Notype;
C(FDESet,ComponentList) as g_Conc_Mol;
W(FDESet,ComponentList) as g_Loading;
T(FDESet) as Temperature_K;
P(FDESet) as Pressure;

// Calculate loading
/* Sample default to ensure problem remains square
W = 0;
*/

End

User Submodel gUserIsothermPoi


Model gUserIsothermPoi Uses Base_Globals

// Define Variables
Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
IsoParSet as IntegerSet([1:8]);
IP(IsoParSet,ComponentList) as Notype;
Poi(FDESet,ComponentList) as g_Pressure_Vapour;
W_Pure(FDESet,ComponentList) as g_Loading;
T(FDESet) as Temperature_K;
P(FDESet) as Pressure;

/* Sample default to ensure problem remains square


W_Pure = 0;

5 User Submodels 149


*/

End

User Submodel gUserIsothermPp


Model gUserIsothermPp Uses Base_Globals

// Define Variables
Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
IsoParSet as IntegerSet([1:8]);
IP(IsoParSet,ComponentList) as Notype;
Y(FDESet,ComponentList) as MoleFraction;
W(FDESet,ComponentList) as g_Loading;
T(FDESet) as Temperature_K;
P(FDESet) as Pressure;

// Calculate loading
/* Sample default to ensure problem remains square
W = 0;
*/

End

User Submodel gUserKg


Model gUserKg

//Define parameters and variables

Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);

Rhog(FDESet) as g_Density_Mol;
T(FDESet) as Temperature_K;
P(FDESet) as Pressure;
Y(FDESet,ComponentList) as MoleFraction;
Cvg(FDESet) as g_Heat_Capacity;
Kg(FDESet) as g_Conductivity;
Ez(FDESet,ComponentList) as Dispersion;

// Calculate Kg
/* Sample default to ensure problem remains square
Kg = 0.16e-6;
*/

End

5 User Submodels 150


User Submodel gUserKineticModel
Model gUserKineticModel Uses Base_Globals

// Define Variables
Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
RtP([1:4],ComponentList) as Notype;
Ei as VoidageBed;
Ep as VoidageBead;
Z(FDESet) as Positive;
Rp as Length;
RHOs as s_Density_Mass;
Tg(FDESet),Ts(FDESet) as Temperature_K;
P(FDESet) as Pressure;
X(FDESet,ComponentList),Xs(FDESet,ComponentList) as
Notype;
dWdT(FDESet,ComponentList) as Notype;
AMW(FDESet),MW(ComponentList) as MolarWeight;

// Calculate loading and loading rate


/* Sample default to ensure problem remains square
dWdT = 0;
*/

End

User Submodel gUserKmacKmic


Model gUserKmacKmic Uses Base_Globals

// Define Variables
Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
Ts(FDESet) as Temperature_K;
P(FDESet) as Pressure;
C(FDESet,ComponentList) as g_Conc_Mol;
Z(FDESet) as Positive;
Vg(FDESet) as Superficial_Velocity;
Kmac(FDESet,ComponentList) as g_Mass_Trans_Coeff;
Kmic(FDESet,ComponentList) as g_Mass_Trans_Coeff;

// Calculate Mass transfer coefficient


/* Sample default to ensure problem remains square
Kmac = 1e-10;
Kmic = 1e-10;
*/

End

5 User Submodels 151


User Submodel gUserMTC
Model gUserMTC Uses Base_Globals

// Define Variables
Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
Ts(FDESet) as Temperature_K;
P(FDESet) as Pressure;
C(FDESet,ComponentList) as g_Conc_Mol;
Z(FDESet) as Positive;
Vg(FDESet) as Superficial_Velocity;
MTC(FDESet,ComponentList) as g_Mass_Trans_Coeff;

// Calculate Mass transfer coefficient


/* Sample default to ensure problem remains square
MTC = 1e-10;
*/

End

Ion-Exchange User Submodels


For ion-exchange systems, the following user submodels are available:

Name Description
iUserDispersion Axial dispersion coefficient.

iUserIsotherm Isotherm.

iUserKinetic Rate/Kinetic model.

iUserMTC Mass transfer coefficient.

User Submodel iUserDispersion


Model iUserDispersion

Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
Ez(FDEset,ComponentList) as DISPERSION;
RHOl(FDESet) as i_Density_Mol;
Vl as Superficial_Velocity;
AMW as MolarWeight;

/* Sample default to ensure problem remains square


Ez = 1.5e-5;
*/

End

5 User Submodels 152


User Submodel iUserIsotherm
Model iUserIsotherm

// Define Variables
Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
IsoParSet as IntegerSet([1:8]);
IP(IsoParSet,ComponentList) as Notype;
C(FDESet,ComponentList) as i_Conc_Eq;
Q as i_Loading_Eq;
W(FDESet,ComponentList) as i_Loading_Eq;

// Calculate loading
/* Sample default to ensure problem remains square
For fde in FDEset do
W(fde,ComponentList - ["CounterIon"]) = 0;
EndFor
*/

End

User Submodel iUserKinetic


Model iUserKinetic

// Define Variables
Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
V as Superficial_Velocity;
Rp as Length;
Ei as VoidageBed;
Ep as VoidageBead;
Rhos as s_density_mass;
Q as i_loading_eq;
X(FDESet,ComponentList - ["CounterIon"]) As NoType;
Xs(FDESet,ComponentList - ["CounterIon"]) As NoType;
dWdT(FDESet,ComponentList - ["CounterIon"]) As NOTYPE;

// Calculate Mass transfer coefficient


/* Sample default to ensure problem remains square
dWdT(FDESet,ComponentList - ["CounterIon"]) = 1e-20;
*/

End

User Submodel iUserMTC


Model iUserMTC

// Define Variables

5 User Submodels 153


Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
C(FDESet,ComponentList) as i_Conc_Eq;
V as Superficial_Velocity;
Rp as Length;
MTC(FDESet,ComponentList) as i_Film_MTC;

// Calculate Mass transfer coefficient


/* Sample default to ensure problem remains square
For fde in FDEset do
MTC(fde,ComponentList - ["CounterIon"]) = 1e-10;
EndFor
*/

End

Liquid User Submodels


For liquid phase systems, the following user submodels are available:

Name Description
lUserDH Heats of adsorption.

lUserDispersion Axial dispersion coefficient.

lUserGibbs Gibbs isotherm expression.

lUserHTC Heat transfer coefficient between liquid and solid.

lUserIsotherm Isotherm.

lUserKinetic Rate/kinetic model.

lUserKl Liquid phase conductivity.

lUserKmacKmic Macro/micropore mass transfer coefficient.

lUserMTC Mass transfer coefficients.

User Submodel lUserDH


Model lUserDH

//Define parameters and variables


// Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
W(FDESet,ComponentList) as l_loading;
C(FDESet,ComponentList) as l_Conc_Mol;
T(FDESet) as Temperature_k;
P(FDESet) as Pressure;
DH(FDESet) as Notype;

// Calculate heat of adsorption


/* Sample default to ensure problem remains square

5 User Submodels 154


DH = 0;
*/

End

User Submodel lUserDispersion


Model lUserDispersion

// Define variables
FDESet as IntegerSet([1:20]);
Layer_ID as IntegerParameter(1);
Ez(FDESet,ComponentList) as Dispersion;
Vl(FDESet) as Superficial_Velocity;
AMW(FDESet) as MolarWeight;
RHOl(FDESet) as l_Density_Mol;

/* Sample default to ensure problem remains square


For comp in ComponentList do
For fde in FDEset do
Ez(fde,comp) = 1e-5;
EndFor
EndFor
*/

End

User Submodel lUserGibbs


Model lUserGibbs
// Define Variables
Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
IsoParSet as IntegerSet([1:8]);
IP(IsoParSet,ComponentList) as Notype;
T(FDESet) as Temperature_K;
X(FDESet,ComponentList) as l_Conc_Mol;
G(FDESet,ComponentList) as l_Conc_Spread;

// Statistical Langmuir
/* Sample default to ensure problem remains square
For fde in FDESet do
For component in ComponentList do

G(fde,component) = 0;

EndFor
EndFor
*/

End

5 User Submodels 155


User Submodel lUserHTC
Model lUserHTC

//Define parameters and variables


// Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
T(FDESet) as Temperature_K;
P(FDESet) as Pressure;
X(FDESet,ComponentList) as MoleFraction;
Rhol(FDESet) as l_Density_Mol;
Vl(FDESet) as Superficial_Velocity;
AMW(FDESet) as MolarWeight;
Rp as length;
MUl(FDESet) as l_Viscosity;
Ei as VoidageBed;
Cpl(FDESet) as l_Heat_Capacity;
Kl(FDESet) as l_Conductivity;
HTC(FDESet) as l_Heat_Trans_Coeff;

// Calculate HTC
/* Sample default to ensure problem remains square
HTC = 0;
*/

End

User Submodel lUserIsotherm


Model lUserIsotherm

// Define Variables
Layer_ID as IntegerParameter(1);
FDESet as IntegerSet([1:20]);
IsoParSet as IntegerSet([1:8]);
IP(IsoParSet,ComponentList) as NOTYPE;
T(FDESet) as Temperature_K;
X(FDESet,ComponentList) as l_Conc_Mol;
W(FDESet,ComponentList) as l_Loading;

// Constant selectivity Stoichiometric equilibrium model


/* Sample default to ensure problem remains square
For fde in FDESet do
For component in ComponentList do

W(fde,component) * Sigma( IP(2,ComponentList) *


exp(IP(3,ComponentList)/T(fde))*X(fde,ComponentList) )
= IP(1,component) *
IP(2,component) *
exp(IP(3,component)/T(fde))*X(fde,component);

5 User Submodels 156


EndFor
EndFor
*/

End

User Submodel lUserKinetic


Model lUserKinetic

// Define Variables
FDESet as IntegerSet([1:20]);
Layer_ID as IntegerParameter(1);
Tl(FDESet),Ts(FDESet) as Temperature_K;
P(FDESet) as Pressure;
Rp as Length;
Ei as VoidageBed;
Ep as VoidageBead;
AMW(FDEset),MW(ComponentList) as MolarWeight;
RHOs as s_Density_Mass;
X(FDESet,ComponentList) As NoType;
Xs(FDESet,ComponentList) As NoType;
J(FDESet,ComponentList) As NoType;

// Calculate Mass transfer rate


/* Sample default to ensure problem remains square
J(FDESet,ComponentList) = 0;
*/

End

User Submodel lUserKl


Model lUserKl

//Define parameters and variables

FDESet as IntegerSet([1:20]);

Rhol(FDESet) as l_Density_Mol;
T(FDESet) as Temperature_K;
P(FDESet) as Pressure;
X(FDESet,ComponentList) as MoleFraction;
Cpl(FDESet) as l_Heat_Capacity;
Kl(FDESet) as l_Conductivity;
Ez(FDESet,ComponentList) as Dispersion;

// Calculate Kg
/* Sample default to ensure problem remains square
Kl = 0.16e-6;
*/

5 User Submodels 157


End

User Submodel lUserKmacKmic


Model lUserKmacKmic

FDEset as IntegerSet([1:20]);
Layer_ID as IntegerParameter;

Ts(FDEset) as Temperature_K;
P(FDEset) as Pressure;
Cms(FDEset,ComponentList) as l_Conc_Mol;
W(FDEset,ComponentList) as l_Loading;
Vl(FDEset) as Superficial_Velocity;
Kmac(FDESet,ComponentList) as l_Mass_Trans_Coeff;
Kmic(FDESet,ComponentList) as l_Mass_Trans_Coeff;
Xs(FDESet,ComponentList) as RealVariable;

// Calculate macro and micropore mass transfer


// coefficients for each component and each node

/* Sample
For comp in ComponentList Do
For fde in FDESet Do
Kmac(fde,comp) = 1.0e-10;
Kmic(fde,comp) = 1.0e-10;
EndFor
EndFor
*/

End

User Submodel lUserMTC


Model lUserMTC

// Define Variables
FDESet as IntegerSet([1:20]);
Layer_ID as IntegerParameter(1);
Ts(FDESet) as Temperature_K;
P(FDESet) as Pressure;
C(FDESet,ComponentList) as l_Conc_Mol;
Vl(FDEset) as Superficial_Velocity;
MTC(FDESet,ComponentList) as l_Mass_Trans_Coeff;

// Constant selectivity Stoichiometric equilibrium model


/* Sample default to ensure problem remains square
For fde in FDESet do
For component in ComponentList do
MTC(fde,component) = 1.0e-20;

5 User Submodels 158


EndFor
EndFor
*/

End

5 User Submodels 159


5 User Submodels 160
Index

gas_valve 32
A ionx_bed 35
Activity coefficient procedures (gas) 85 ionx_feed 36
ADSIM.ada file 134 ionx_feed_distrib 37
available 160 ionx_interaction 39
ionx_mix_multi_nr 40
B ionx_mix_nr2 41

Bed model assumptions (gas) 8 ionx_mix_nr3 42

Block Properties dialog box 133 ionx_prod_distrib 43


ionx_product 44
C ionx_split_nr2 45

Catalytic reaction rates procedures (gas) 87, ionx_valve_nr 46


88, 89, 90 liq_bed 48
Compressibility (gas) liq_feed 49
procedures 91 liq_feed_distrib 51
submodels 139, 140 liq_interaction 53
Conductivity submodels (gas) 144 liq_mix_multi 54
Configuration for models liq_prod_distrib 55
Dynamics_Inlet_Connect 62 liq_product 56
Dynamics_Outlet_Connect 64 liq_split 58
gas_bed 10 liq_tank 59
gas_buffer_interaction 12 liq_valve 60
gas_feed 14 p_control 66
gas_heat_exchanger 17 ratio 68
gas_interaction 19 static_isotherm 69
gas_node 21 universal_block 71
gas_pipe 22 Connections (list) 77
gas_product 24 Connectivity for models
gas_pump 26 Dynamics_Inlet_Connect 62
gas_ramp 28 Dynamics_Outlet_Connect 64
gas_tank_void 30 gas_bed 10

Index 161
gas_buffer_interaction 12 D
gas_feed 14
Defining equations for submodels 133
gas_heat_exchanger 17
Diffusivity (gas)
gas_interaction 18
procedures 92, 94
gas_node 21
submodels 141
gas_pipe 22
Dispersion (gas)
gas_product 23
procedures 94
gas_pump 26
submodels 141
gas_ramp 28
Dispersion (ionx)
gas_tank_void 30
procedures 112
gas_valve 32
submodels 146
ionx_bed 35
Dispersion (liq)
ionx_feed 36
procedures 119
ionx_feed_distrib 37
submodels 149
ionx_interaction 39
documentation 158
ionx_mix_multi_nr 40
Dynamics_Outlet_Connect model 62, 64
ionx_mix_nr2 41
ionx_mix_nr3 42 E
ionx_prod_distrib 43
Enthalpy procedures (gas) 95
ionx_product 44
Enthalpy procedures (liq) 120
ionx_split_nr2 45
Entropy procedures (gas) 96
ionx_valve_nr 46
Equations for submodels 133
liq_bed 48
liq_feed 49 F
liq_feed_distrib 51
Flowsheet constraints 135
liq_interaction 52
Fluid thermal conductivity (liq)
liq_mix_multi 54
procedures 125
liq_prod_distrib 55
submodels 151
liq_product 56
liq_split 58
G
liq_tank 59
g_Material_Port 76, 77
liq_valve 60
Gas adsorption processes (overview) 8
p_control 66
Gas model procedures (list) 84
ratio 68
Gas model submodels (list) 139
static_isotherm 69
Gas models
universal_block 71
gas_bed 10
Constraints 135
gas_buffer_interaction 11
gas_feed 14

Index 162
gas_heat_exchanger 17 gUserGibbs submodel 141
gas_interaction 18 gUserHenryCoeff submodel 142
gas_node 21 gUserHTC submodel 142
gas_pipe 22 gUserIsothermC submodel 143
gas_product 23 gUserIsothermPoi submodel 143
gas_pump 26 gUserIsothermPp submodel 144
gas_ramp 27 gUserKg submodel 144
gas_tank_void 29 gUserKineticModel submodel 145
gas_valve 32 gUserKmacKmic submodel 145
Gas models (connecting) 77 gUserMTC submodel 146
Gas models (list) 9
Gas specific user models 75
H

gas_bed model 10 Heat capacity procedures (gas) 91, 100


gas_buffer_interaction model 11 Heat capacity procedures (liq) 121
gas_feed model 14 Heat of adsorption (gas)
gas_heat_exchanger model 17 procedures 93
gas_interaction model 18 submodels 140
gas_Material_Connection stream 77 Heat of adsorption (liq)
gas_Material_Stream 75 procedures 118
gas_node model 21 submodels 148
gas_pipe model 22 Heat of reaction procedures (gas) 96
gas_product model 23 Heat transfer (gas)
gas_pump model 26 procedures 102
gas_ramp model 27 submodels 142
gas_tank_void model 29 Heat transfer (liq)
gas_valve model 32 procedures 122
Gibbs expression procedures (gas) 99 submodels 150
Gibbs expression procedures (liq) 120 Heats of catalytic reactions procedures (gas)
86
Gibbs isotherm submodels (gas) 141
Henry's coefficient (gas)
Gibbs isotherm submodels (liq) 149
procedures 101
gModelTypeF model type 76
submodels 142
gModelTypeFD model type 76
gModelTypeP model type 76
I
gUserCompressibilty submodel 139
gUserCompressibilty2 submodel 140 i_Material_Port 76, 78

gUserCpa submodel 140 iModelType model type 76

gUserDH submodel 140 Initialization for models

gUserDispersion submodel 141 Dynamics_Inlet_Connect 63

gUserEffDiff submodel 141 Dynamics_Outlet_Connect 65

Index 163
gas_bed 11 Ion-exchange models
gas_buffer_interaction 13 ionx_bed 35
gas_feed 15 ionx_feed 36
gas_heat_exchanger 17 ionx_feed_distrib 37
gas_interaction 19 ionx_interaction 38
gas_node 21 ionx_mix_multi_nr 40
gas_pipe 23 ionx_mix_nr2 41
gas_product 24 ionx_mix_nr3 42
gas_pump 27 ionx_prod_distrib 43
gas_ramp 29 ionx_product 44
gas_tank_void 31 ionx_split_nr2 45
gas_valve 33 ionx_valve_nr 46
ionx_bed 35 Ion-exchange models (connecting) 78
ionx_feed 37 Ion-exchange models (list) 34
ionx_feed_distrib 38 Ion-exchange specific user models 76
ionx_interaction 39 ionx_bed model 35
ionx_mix_multi_nr 40 ionx_feed model 36
ionx_mix_nr2 41 ionx_feed_distrib model 37
ionx_mix_nr3 42 ionx_interaction model 38
ionx_prod_distrib 43 ionx_Material_Connection 78
ionx_product 45 ionx_Material_Stream 76
ionx_split_nr2 46 ionx_mix_multi_nr model 40
ionx_valve_nr 47 ionx_mix_nr2 model 41
liq_bed 48 ionx_mix_nr3 model 42
liq_feed 49 ionx_prod_distrib model 43
liq_feed_distrib 51 ionx_product model 44
liq_interaction 53 ionx_split_nr2 model 45
liq_mix_multi 54 ionx_valve_nr model 46
liq_prod_distrib 55 Isotherm (gas)
liq_product 56 procedures 103, 104, 105
liq_split 58 submodels 143, 144
liq_tank 59 Isotherm (ionx)
liq_valve 61 procedures 113
p_control 67 submodels 147
ratio 68 Isotherm (liq)
static_isotherm 70 procedures 123
universal_block 71 submodels 150
Ion-exchange model procedures (list) 112 iUserDispersion submodel 146
Ion-exchange model submodels (list) 146 iUserIsotherm submodel 147

Index 164
iUserKinetic submodel 147 liq_split 58
iUserMTC submodel 147 liq_tank 59
liq_valve 60
K Liquid models (connecting) 79
Kinetic (gas) Liquid models (list) 47
procedures 107 Liquid specific user models 76
submodels 145 lModelType model type 76
Kinetic (ionx) lUserDH submodel 148
procedures 114 lUserDispersion submodel 149
submodels 147 lUserGibbs submodel 149
Kinetic (liq) lUserHTC submodel 150
procedures 124 lUserIsotherm submodel 150
submodels 151 lUserKinetic submodel 151
lUserKl submodel 151
L lUserKmacKmic submodel 152

Library Build Options dialog box 82 lUserMTC submodel 152

liq_bed model 48
M
liq_feed model 49
liq_feed_distrib model 51 Macro/micropore rate constants (gas)
liq_interaction model 52 procedures 108
liq_Material_Connection 79 submodels 145
liq_Material_Port 76, 79 Macro/micropore rate constants (liq)
liq_Material_Stream 76 procedures 126
liq_mix_multi model 54 submodels 152
liq_prod_distrib model 54 Mass density procedures (liq) 117
liq_product model 56 Mass transfer (gas)
liq_split model 58 procedures 109
liq_tank model 59 submodels 146
liq_valve model 60 Mass transfer (ionx)
Liquid model procedures (list) 116 procedures 115
Liquid model submodels (list) 148 submodels 147
Liquid models Mass transfer (liq)
liq_bed 48 procedures 127
liq_feed 49 submodels 152
liq_feed_distrib 51 Material streams (list) 77
liq_interaction 52 Miscellaneous models 61
liq_mix_multi 54 Dynamics_Outlet_Connect 62, 64
liq_prod_distrib 54 p_control 66
liq_product 56 PID 68

Index 165
ratio 68 Mole fraction procedure 129
static_isotherm 69 Molecular weight procedures (gas) 86, 109
universal block 71 Molecular weight procedures (liq) 117, 127
Miscellaneous procedures 129
Model library
O

about 9 Organizing procedures 81


gas models 9
ion-exchange models 34 P
liquid models 47 P_control model 66
miscellaneous models 61 Partition values procedure 130
Model tips PID model 68
Dynamics_Inlet_Connect 63 Ports 77, 78, 79
Dynamics_Outlet_Connect 65 Procedure library 82
gas_bed 11 Procedure Organizer 81
gas_buffer_interaction 14 Procedures (gas) 84
gas_feed 16 Procedures (ionx) 112
gas_interaction 20 Procedures (liq) 116
gas_node 22 Procedures used in (gas)
gas_pipe 23 activity coefficients 85
gas_product 26 catalytic reaction rates 87, 88, 89, 90
gas_pump 27 compressibility factor 91
gas_ramp 29 diffusivity 92, 94
gas_tank_void 32 dispersion 94
gas_valve 34 enthalpy 95
ionx_bed 36 entropy 96
ionx_feed 37 Gibbs expression 99
ionx_feed_distrib 38 heat capacity 91, 100
ionx_interaction 40 heat of reaction 96
ionx_prod_distrib 44 heat transfer 102
ionx_valve_nr 47 heats of adsorption 93
liq_bed 48 heats of catalytic reactions 86
liq_feed 51 Henry's coefficients 101
liq_interaction 53 isotherms 103, 104, 105
liq_product 58 kinetics 107
liq_tank 60 macro/micropore rate constants 108
liq_valve 61 mass transfer 109
p_control 67 molecular weight 86, 109
static_isotherm 70 reaction rate 97, 98
universal_block 72 thermal conductivity 106

Index 166
viscosity 111 pUser_g_Enthalpy_Mol procedure 95
volumetric flowrate 110 pUser_g_Entropy_Mol procedure 96
Procedures used in (ionx) pUser_g_Gas_RX_Heat procedure 96
dispersion 112 pUser_g_Gas_RX_Rate_C procedure 97
isotherms 113 pUser_g_Gas_RX_Rate_Pp procedure 98
kinetics 114 pUser_g_Gibbs procedure 99
mass transfer 115 pUser_g_Heat_Capacity_Cv procedure 100
Procedures used in (liq) pUser_g_Heat_Capacity_Mol procedure 100
dispersion 119 pUser_g_Henry procedure 101
enthalpy 120 pUser_g_HTC procedure 102
fluid thermal conductivity 125 pUser_g_Isotherm_C procedure 103
Gibbs expression 120 pUser_g_Isotherm_P procedure 104
heat capacity 121 pUser_g_Isotherm_Poi procedure 104
heat of adsorption 118 pUser_g_Isotherm_W procedure 105
heat transfer 122 pUser_g_Kg procedure 106
isotherms 123 pUser_g_Kinetic procedure 107
kinetics 124 pUser_g_KmacKmic procedure 108
macro/micropore rate constants 126 pUser_g_Mole_Weights procedure 109
mass density 117 pUser_g_MTC procedure 109
mass transfer 127 pUser_g_Pump_Performance procedure 110
molecular weight 117, 127 pUser_g_Viscosity procedure 111
viscosity 128 pUser_i_Dispersion procedure 112
Procedures used in (miscellaneous) pUser_i_Isotherm_C procedure 113
mole fractions 129 pUser_i_Isotherm_W procedure 113
partition values 130 pUser_i_Kinetic procedure 114
pUser_Act_Coeff procedure 85 pUser_i_MTC procedure 115
pUser_Flash procedure 129 pUser_KValues procedure 130
pUser_g_Avg_Mole_Weight procedure 86 pUser_l_Avg_Mole_Weight procedure 117
pUser_g_Cat_RX_Heat procedure 86 pUser_l_Density_Mass procedure 117
pUser_g_Cat_RX_Rate_C procedure 87 pUser_l_DH procedure 118
pUser_g_Cat_RX_Rate_C_Sol procedure 88 pUser_l_Dispersion procedure 119
pUser_g_Cat_RX_Rate_Pp procedure 89 pUser_l_Enthalpy_Mol procedure 120
pUser_g_Cat_RX_Rate_Pp_Sol procedure 90 pUser_l_Gibbs procedure 120
pUser_g_Compressibility procedure 91 pUser_l_Heat_Capacity_Mol procedure 121
pUser_g_Cpa procedure 91 pUser_l_HTC procedure 122
pUser_g_De procedure 92 pUser_l_Isotherm_C procedure 123
pUser_g_DH procedure 93 pUser_l_Isotherm_W procedure 123
pUser_g_Diffusivity procedure 94 pUser_l_K1 procedure 125
pUser_g_Dispersion procedure 94 pUser_l_Kinetic procedure 124

Index 167
pUser_l_KmacKmic procedure 126 liq_prod_distrib 55
pUser_l_Mole_Weights procedure 127 liq_product 57
pUser_l_MTC procedure 127 liq_split 59
pUser_l_Viscosity procedure 128 liq_tank 60
liq_valve 61
R p_control 67
Ratio model 68 ratio 68
Reaction rate procedures (gas) 97, 98 static_isotherm 70
Results for models universal_block 72
Dynamics_Inlet_Connect 63
S
Dynamics_Outlet_Connect 65
gas_bed 11 Specifications for models
gas_buffer_interaction 14 Dynamics_Inlet_Connect 63
gas_feed 15 Dynamics_Outlet_Connect 65
gas_heat_exchanger 18 gas_bed 10
gas_interaction 20 gas_buffer_interaction 12
gas_node 21 gas_feed 15
gas_pipe 23 gas_heat_exchanger 17
gas_product 24 gas_interaction 19
gas_pump 27 gas_node 21
gas_ramp 29 gas_pipe 22
gas_tank_void 31 gas_product 24
gas_valve 34 gas_pump 26
ionx_bed 36 gas_ramp 28
ionx_feed 37 gas_tank_void 30
ionx_feed_distrib 38 gas_valve 33
ionx_interaction 40 ionx_bed 35
ionx_mix_multi_nr 40 ionx_feed 36
ionx_mix_nr2 41 ionx_feed_distrib 38
ionx_mix_nr3 42 ionx_interaction 39
ionx_prod_distrib 44 ionx_mix_multi_nr 40
ionx_product 45 ionx_mix_nr2 41
ionx_split_nr2 46 ionx_mix_nr3 42
ionx_valve_nr 47 ionx_prod_distrib 43
liq_bed 48 ionx_product 44
liq_feed 50 ionx_split_nr2 46
liq_feed_distrib 52 ionx_valve_nr 46
liq_interaction 53 liq_bed 48
liq_mix_multi 54 liq_feed 49

Index 168
liq_feed_distrib 51 kinetics 147
liq_interaction 53 mass transfer 147
liq_mix_multi 54 Submodels used in (liq)
liq_prod_distrib 55 dispersion 149
liq_product 56 fluid thermal conductivity 151
liq_split 58 Gibbs isotherm 149
liq_tank 59 heat of adsorption 148
liq_valve 61 heat transfer 150
p_control 66 isotherms 150
ratio 68 kinetics 151
static_isotherm 69 macro/micropore rate constants 152
universal_block 71 mass transfer 152
Standard template (user models) 75
Static_isotherm model 69
T

Structural conditions 137 Text editor 135


Submodels Text Editor 137
about 132 Thermal conductivity procedures (gas) 106
defining equations 133
gas 139 U
ion-exchange 146 Universal block 71
liquid 148 User models
submodels in use 132 about 74
Submodels (gas) 139 common elements 74
Submodels used in (gas) gas 75
compressibility 139, 140 ion-exchange 76
conductivity 144 liquid 76
diffusion 141 standard template 75
dispersion 141 User procedures
Gibbs isotherm 141 about 81
heat of adsorption 140 gas 84
heat transfer 142 ion-exchange 112
Henry's coefficient 142 liquid 116
isotherms 143, 144 miscellaneous 129
kinetics 145 user procedures for models
macro/micropore rate constants 145 universal_block 71
mass transfer 146 User procedures for models
Submodels used in (ionx) Dynamics_Inlet_Connect 63
dispersion 146 Dynamics_Outlet_Connect 65
isotherms 147 gas_bed 11

Index 169
gas_buffer_interaction 14 Volumetric flowrate procedures (gas) 110
gas_feed 15
gas_heat_exchanger 17
gas_interaction 19
gas_node 21
gas_pipe 23
gas_product 24
gas_pump 27
gas_ramp 29
gas_tank_void 31
gas_valve 33
ionx_bed 35
ionx_feed 37
ionx_feed_distrib 38
ionx_interaction 39
ionx_mix_multi_nr 40
ionx_mix_nr2 41
ionx_mix_nr3 42
ionx_prod_distrib 43
ionx_product 45
ionx_split_nr2 46
ionx_valve_nr 47
liq_bed 48
liq_feed 50
liq_feed_distrib 52
liq_interaction 53
liq_mix_multi 54
liq_prod_distrib 55
liq_product 56
liq_split 58
liq_tank 60
liq_valve 61
p_control 67
ratio 68
static_isotherm 70

Viscosity procedures (gas) 111


Viscosity procedures (liq) 128

Index 170
Index 171

You might also like