modelSprayColumn
Extends from ThermalSeparation.Icons.Color.SprayColumn, ThermalSeparation.Components.Columns.BaseClasses.FeedColumn (column with optional liquid and or vapour feed inlets).
Information
Model of a spray column. Base classes for the following classes are instantiated her:
- liquid holdup
- pressure loss
- film model (BaseFilmSpray)
- geometry
- heat transfer to wall
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n (from BaseColumn) | 1 | packed column: number of discrete elements in the section; plate column: number of trays in one section |
| SI.Pressure[n] | p_v_start (from BaseColumn) | if n == 1 then {p_v_start_outlet} else linspace(p_v_start_inlet, p_v_start_outlet, n) | |
| SI.Pressure[n + 1] | p_v_start_comp (from BaseColumn) | cat(1, p_v_start, {p_v_start[n]}) | |
| SI.MoleFraction[n,nSL] | x_l_start (from BaseColumn) | ||
| SI.MoleFraction[n,nSV] | x_v_start (from BaseColumn) | ||
| SI.Temperature[n] | T_v_start (from BaseColumn) | if (T_v_profile and not n == 1) then linspace(T_vap_start_bottom, T_vap_start_top, n) else (if (T_v_profile and n == 1) then ones(n)*(T_vap_start_bottom + T_vap_start_top)/2 else ones(n)*T_vapour_start) | |
| SI.Temperature[n] | T_l_start (from BaseColumn) | if (T_l_profile and not n == 1) then linspace(T_liq_start_bottom, T_liq_start_top, n) else (if (T_l_profile and n == 1) then ones(n)*(T_liq_start_bottom + T_liq_start_top)/2 else ones(n)*T_liquid_start) | |
| Boolean | EQ (from BaseColumn) | false | equilibrium model is used, no mass transfer, value provided by film model |
| Integer[nS,2] | mapping (from BaseColumn) | {{i, i} for i in 1:nS} | parameter to map the different medium vectors one to another |
| Boolean[nSV] | inertVapour (from BaseColumn) | fill(false, nSV) | true for each component which is inert in the vapour phase |
| Boolean[nSL] | inertLiquid (from BaseColumn) | fill(false, nSL) | true for each component which is inert in the liquid phase |
| Boolean | h_evap_medium (from BaseColumn) | MediumVapour.delta_hv_medium | |
| Integer | nS (from BaseColumn) | number of species which are equal in vapour and liquid phase | |
| Integer | nL (from BaseColumn) | MediumLiquid.nSubstance - nS | number of additional substances which are only in liquid phase |
| Integer | nV (from BaseColumn) | MediumVapour.nSubstance - nS | number of additional substances which are only in the vapour phase |
| Integer | nSL (from BaseColumn) | MediumLiquid.nSubstance | |
| Integer | nSV (from BaseColumn) | MediumVapour.nSubstance | |
| Integer | numberLiquidFeedsInternal (from FeedColumn) | if hasLiquidFeed then numberLiquidFeeds else 0 | |
| Integer | numberVapourFeedsInternal (from FeedColumn) | if hasVapourFeed then numberVapourFeeds else 0 | |
| Integer[:] | aux | {1, 3, 6, 10, 15, 21, 28, 36, 45} | |
| Integer | n_elements | 2 | number of discrete elements, or number of equilibrium stages (for equilibrium film model) |
| Advanced | |||
| SI.Temperature | T_ref (from BaseColumn) | systemTS.T_ref | reference temperature |
| Initialization | |||
| SI.Pressure | p_v_start_inlet (from BaseColumn) | 1.9e5 | |
| SI.Pressure | p_v_start_outlet (from BaseColumn) | 1.8e5 | |
| Boolean | x_l_profile (from BaseColumn) | false | |
| Boolean | x_v_profile (from BaseColumn) | false | |
| SI.MoleFraction[nSL] | x_l_start_const (from BaseColumn) | fill(1/nSL, nSL) | |
| SI.MoleFraction[nSV] | x_v_start_const (from BaseColumn) | fill(1/nSV, nSV) | |
| SI.MoleFraction[nSL] | x_l_start_in (from BaseColumn) | fill(1/nSL, nSL) | |
| SI.MoleFraction[nSL] | x_l_start_out (from BaseColumn) | fill(1/nSL, nSL) | |
| SI.MoleFraction[nSV] | x_v_start_in (from BaseColumn) | fill(1/nSV, nSV) | |
| SI.MoleFraction[nSV] | x_v_start_out (from BaseColumn) | fill(1/nSV, nSV) | |
| Real[nSV] | x_total_start (from BaseColumn) | fill(1/nSV, nSV) | total mole fraction in system (vapour and liquid), component ordering as in vapour medium |
| Boolean | T_l_profile (from BaseColumn) | false | |
| Boolean | T_v_profile (from BaseColumn) | false | |
| SI.Temperature | T_vap_start_bottom (from BaseColumn) | 300 | |
| SI.Temperature | T_vap_start_top (from BaseColumn) | 300 | |
| SI.Temperature | T_liq_start_bottom (from BaseColumn) | 300 | |
| SI.Temperature | T_liq_start_top (from BaseColumn) | 300 | |
| SI.Temperature | T_vapour_start (from BaseColumn) | 300 | |
| SI.Temperature | T_liquid_start (from BaseColumn) | 300 | |
| StartUp | |||
| Boolean | considerStartUp (from BaseColumn) | false | true if StartUp is to be considered |
| Real | friggelfaktor (from BaseColumn) | 0.0002e5 | |
| Real | k (from BaseColumn) | 0.2e-3 | large value for steep omega |
| Boolean | StartUp_CCS (from BaseColumn) | false | true if StartUp of carbon capture plant is to be considered |
| Boolean | switchingCondition_Boiling (from BaseColumn) | true | true if boiling state is switching condition |
| Boolean | switchingCondition_Absorber_x_v (from BaseColumn) | false | true if vapour composition is switching condition |
| Real | x_v_switch (from BaseColumn) | 0.05 | vapour mole fraction value which is to be achieved |
| Integer | componentNumber (from BaseColumn) | 3 | number of vapour component number in model |
| Real | gain (from BaseColumn) | 0.01 | controler gain to maintain initial pressure before switch |
| Boolean[nSV] | lowBoilingPoint (from BaseColumn) | fill(false, nSV) | true if substance has low boiling point |
| Real | y_PID (from BaseColumn) | 10 | maximal value for supply startUp PID controller |
| Real | Vdot_startUp_pressure (from BaseColumn) | 0.005 | value when supply PID controller is switched off |
| ShutDown | |||
| Boolean | considerShutDown (from BaseColumn) | false | true if ShutDown is to be considered |
| StartUp › Smooth Start-Up | |||
| Boolean | smooth_startUp (from BaseColumn) | false | true if smooth switching is to be considered |
| Real | delay_startUp (from BaseColumn) | 200 | time delay for smooth startUp |
| Initialization › Initial liquid content | |||
| Real | eps_liq_start (from BaseColumn) | 0.06 | start value for liquid content if it is not exactly wetted but with more or less liquid |
| Feed › Liquid Feed | |||
| Boolean | hasLiquidFeed (from FeedColumn) | false | true, if there exist a liquid feed |
| Integer | numberLiquidFeeds (from FeedColumn) | 1 | |
| Integer | stageLiquidFeed (from FeedColumn) | {2} | number of stage where feed enters the column |
| Integer[n - numberLiquidFeeds] | nonFeed_stages_l (from FeedColumn) | {i for i in 1:(n - numberLiquidFeeds)} | |
| Feed › Vapour Feed | |||
| Integer[n - numberVapourFeeds] | nonFeed_stages_v (from FeedColumn) | {i for i in 1:(n - numberVapourFeeds)} | |
| Boolean | hasVapourFeed (from FeedColumn) | false | true, if there exist a liquid feed |
| Integer | numberVapourFeeds (from FeedColumn) | 1 | |
| Integer | stageVapourFeed (from FeedColumn) | {1} | number of stage where feed enters the column |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| ThermalSeparation.Interfaces.GasPortIn | upStreamIn (from BaseColumn) | ||
| ThermalSeparation.Interfaces.GasPortOut | upStreamOut (from BaseColumn) | ||
| ThermalSeparation.Interfaces.LiquidPortIn | downStreamIn (from BaseColumn) | ||
| ThermalSeparation.Interfaces.LiquidPortOut | downStreamOut (from BaseColumn) | ||
| ThermalSeparation.Interfaces.LiquidPortIn | feedLiquid (from FeedColumn) | ||
| ThermalSeparation.Interfaces.GasPortIn | feedVapour (from FeedColumn) | ||
| ThermalSeparation.Interfaces.GasPortIn | feedVapour_dummy (from FeedColumn) | ||
| ThermalSeparation.Interfaces.LiquidPortIn | feedLiquid_dummy (from FeedColumn) | ||
| ThermalSeparation.Interfaces.GasPortOut | feedVapour_dummy2 (from FeedColumn) | ||
| ThermalSeparation.Interfaces.LiquidPortOut | feedLiquid_dummy2 (from FeedColumn) | ||
| ThermalSeparation.Interfaces.HeatPort | heatPort |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| ThermalSeparation.SystemTS | systemTS (from BaseColumn) | ||
| Boolean | useHomotopy (from BaseColumn) | false | |
| HomotopyMethod | homotopyMethod (from BaseColumn) | ||
| Results | results (from BaseColumn) | ||
| MediumVapour.BaseProperties[n] | mediumVapour (from BaseColumn) | ||
| MediumVapour.BaseProperties | mediumVapourIn (from BaseColumn) | ||
| MediumLiquid.BaseProperties[n] | mediumLiquid (from BaseColumn) | ||
| MediumLiquid.BaseProperties | mediumLiquidIn (from BaseColumn) | ||
| MediumLiquid.ActivityCoefficient[n] | activityCoeff (from BaseColumn) | ||
| MediumVapour.EvaporationEnthalpy[n] | evapEnthalpy (from BaseColumn) | ||
| ThermalSeparation.Units.MolarEnthalpy[n,nSV] | delta_hv (from BaseColumn) | if h_evap_medium then zeros(n, nSV) else evapEnthalpy.h | |
| SI.Density[n] | rho_v (from BaseColumn) | if homotopyMethod.bool_rho and homotopyMethod.useHomotopy then homotopy(actual = mediumVapour.d, simplified = fill(homotopyMethod.rho_vap, n)) else mediumVapour.d | mixture vapour density |
| SI.Density | rho_v_in (from BaseColumn) | mediumVapourIn.d | |
| SI.MolarMass[n] | MM_v (from BaseColumn) | mediumVapour.MM | molar mass of the vapour mixture |
| SI.MolarMass | MM_v_in (from BaseColumn) | mediumVapourIn.MM | |
| ThermalSeparation.Units.MolarEnthalpy[n] | h_v (from BaseColumn) | if homotopyMethod.bool_h and homotopyMethod.useHomotopy then homotopy(actual = mediumVapour.h, simplified = fill(homotopyMethod.h_vap, n)) else mediumVapour.h | |
| ThermalSeparation.Units.MolarEnthalpy | h_v_in (from BaseColumn) | mediumVapourIn.h | |
| SI.MolarInternalEnergy[n] | u_v (from BaseColumn) | mediumVapour.u | |
| MediumVapour.ThermodynamicProperties | propsVap (from BaseColumn) | mediumVapour.properties | |
| MediumVapour.ThermodynamicProperties | propsVapIn (from BaseColumn) | mediumVapourIn.properties | |
| SI.Density[n] | rho_l (from BaseColumn) | if homotopyMethod.bool_rho and homotopyMethod.useHomotopy then homotopy(actual = mediumLiquid.d, simplified = fill(homotopyMethod.rho_liq, n)) else mediumLiquid.d | mixture liquid density |
| SI.Density | rho_l_in (from BaseColumn) | mediumLiquidIn.d | |
| SI.MolarMass[n] | MM_l (from BaseColumn) | mediumLiquid.MM | molar mass of the liquid mixture |
| SI.MolarMass | MM_l_in (from BaseColumn) | mediumLiquidIn.MM | |
| ThermalSeparation.Units.MolarEnthalpy[n] | h_l (from BaseColumn) | ||
| ThermalSeparation.Units.MolarEnthalpy | h_l_in (from BaseColumn) | ||
| SI.MolarInternalEnergy[n] | u_l (from BaseColumn) | mediumLiquid.u | |
| MediumLiquid.ThermodynamicProperties | propsLiq (from BaseColumn) | mediumLiquid.properties | |
| MediumLiquid.ThermodynamicProperties | propsLiqIn (from BaseColumn) | mediumLiquidIn.properties | |
| SI.Concentration[nSV] | c_v_in (from BaseColumn) | ||
| SI.Concentration[n,nSV] | c_v (from BaseColumn) | ||
| SI.MoleFraction[nSV] | x_v_in (from BaseColumn) | ||
| SI.MoleFraction[n,nSV] | x_v (from BaseColumn) | ||
| SI.VolumeFlowRate | Vdot_v_in (from BaseColumn) | ||
| SI.VolumeFlowRate[n] | Vdot_v (from BaseColumn) | ||
| SI.Temperature | T_v_in (from BaseColumn) | ||
| SI.MoleFraction[nSV] | x_upStreamIn_act (from BaseColumn) | ||
| SI.MoleFraction[nSV] | x_upStreamOut_act (from BaseColumn) | ||
| ThermalSeparation.Units.MolarEnthalpy | h_upStreamIn_act (from BaseColumn) | ||
| ThermalSeparation.Units.MolarEnthalpy | h_upStreamOut_act (from BaseColumn) | ||
| SI.Pressure[n + 1] | p_v (from BaseColumn) | p_v[j] = pressure on the j-th stage, p_v[n+1] is the pressure in the first element of the sucesseding component | |
| SI.Temperature[n] | T_v (from BaseColumn) | ||
| SI.Concentration[nSL] | c_l_in (from BaseColumn) | molar concentration in the liquid at the liquid outlet of each stage | |
| SI.Concentration[n,nSL] | c_l (from BaseColumn) | ||
| SI.MoleFraction[nSL] | x_l_in (from BaseColumn) | ||
| SI.MoleFraction[n,nSL] | x_l (from BaseColumn) | ||
| SI.VolumeFlowRate | Vdot_l_in (from BaseColumn) | ||
| SI.VolumeFlowRate[n] | Vdot_l (from BaseColumn) | ||
| SI.Temperature | T_l_in (from BaseColumn) | ||
| SI.Temperature[n] | T_l (from BaseColumn) | ||
| SI.MoleFraction[nSL] | x_downStreamIn_act (from BaseColumn) | ||
| SI.MoleFraction[nSL] | x_downStreamOut_act (from BaseColumn) | ||
| ThermalSeparation.Units.MolarEnthalpy | h_downStreamIn_act (from BaseColumn) | ||
| ThermalSeparation.Units.MolarEnthalpy | h_downStreamOut_act (from BaseColumn) | ||
| SI.MolarFlowRate[n,nSL] | Ndot_reac (from BaseColumn) | ||
| SI.HeatFlowRate[n] | Qdot_reac (from BaseColumn) | ||
| SI.VolumeFraction[n] | eps_liq (from BaseColumn) | liquid volume fraction | |
| SI.VolumeFraction[n] | eps_vap (from BaseColumn) | vapour volume fraction | |
| SI.Temperature[n] | T (from BaseColumn) | ||
| SI.HeatFlowRate[n] | Qdot_wall (from BaseColumn) | heat flow rate to wall | |
| SI.MolarFlowRate[n,nSV] | Ndot_v_transfer (from BaseColumn) | ||
| SI.MolarFlowRate[n,nSL] | Ndot_l_transfer (from BaseColumn) | ||
| SI.HeatFlowRate[n] | Edot_l_transfer (from BaseColumn) | ||
| SI.HeatFlowRate[n] | Edot_v_transfer (from BaseColumn) | ||
| SI.Temperature[n] | T_star (from BaseColumn) | ||
| SI.Pressure | p_v_in (from BaseColumn) | ||
| SI.Pressure[n,nSL] | p_sat_bulk (from BaseColumn) | ||
| SI.VolumeFlowRate[n] | Vdot_v_feed (from BaseColumn) | ||
| SI.Concentration[n,nSV] | c_v_feed (from BaseColumn) | ||
| SI.SpecificEnthalpy[n] | h_v_feed (from BaseColumn) | ||
| SI.VolumeFlowRate[n] | Vdot_l_feed (from BaseColumn) | ||
| SI.Concentration[n,nSL] | c_l_feed (from BaseColumn) | ||
| SI.SpecificEnthalpy[n] | h_l_feed (from BaseColumn) | ||
| SI.Density[n] | rho_l_feed (from BaseColumn) | ||
| SI.Density[n] | rho_v_feed (from BaseColumn) | ||
| SI.MolarMass[n] | MM_l_feed (from BaseColumn) | ||
| SI.MolarMass[n] | MM_v_feed (from BaseColumn) | ||
| SI.MoleFraction[n,nSL] | x_l_star (from BaseColumn) | ||
| SI.MoleFraction[n,nSV] | x_v_star (from BaseColumn) | ||
| SI.MoleFraction[n,nS] | x_vap_liq (from BaseColumn) | total molar fractions | |
| Real[n,nS] | n_tot (from BaseColumn) | ||
| ThermoEquilibrium[n] | bubblePressure (from BaseColumn) | ||
| Boolean[n] | bool_eps (from BaseColumn) | ||
| SI.VolumeFlowRate[n] | Vdot_le (from BaseColumn) | liquid volume flow entrained by vapour | |
| Boolean[n] | before_transition (from BaseColumn) | fill(false, n) | |
| SI.Pressure | p_initial (from BaseColumn) | 1e5 | |
| SI.Pressure[n] | p_bub (from BaseColumn) | bubblePressure.p_bubble | mixture bubble pressure |
| SI.Pressure[n + 1] | p_hyd (from BaseColumn) | hydraulic pressure | |
| Real[n] | omega (from BaseColumn) | ||
| Boolean[n] | startUp (from BaseColumn) | ||
| Real[n] | Ndot_source_startUp (from BaseColumn) | dummy molar flow rate to account for discharge of inert gas during startUp | |
| Real[n] | sum_xl (from BaseColumn) | sum(x_l[:, i] for i in 1:nSL) | |
| Real[n] | sum_xv (from BaseColumn) | sum(x_v[:, i] for i in 1:nSV) | |
| SI.MolarFlowRate[nSL] | Ndot_trans (from BaseColumn) | sum(Ndot_l_transfer[j, :] for j in 1:n) | |
| SI.MolarFlowRate[nSV] | Ndot_trans_vap (from BaseColumn) | sum(Ndot_v_transfer[j, :] for j in 1:n) | |
| Real | Edot_l (from BaseColumn) | sum(Edot_l_transfer) | |
| Real | Edot_v (from BaseColumn) | sum(Edot_v_transfer) | |
| SI.MassFlowRate[n] | mdot_v (from BaseColumn) | Vdot_v.*rho_v | |
| SI.MassFlowRate[n] | mdot_l (from BaseColumn) | Vdot_l.*rho_l | |
| Real[n,nSV] | X_v (from BaseColumn) | mass fraction vapour | |
| Real[n,nSL] | X_l (from BaseColumn) | mass fraction liquid | |
| SI.Volume | V_liq (from BaseColumn) | sum(A*H/n*eps*eps_liq) | |
| SI.MolarFlowRate[n] | Ndot_v (from BaseColumn) | total molar flow rate vapour | |
| SI.MolarFlowRate | Ndot_v_in (from BaseColumn) | total molar flow rate vapour | |
| SI.MolarFlowRate[n] | Ndot_l (from BaseColumn) | total molar flow rate liquid | |
| SI.MolarFlowRate | Ndot_l_in (from BaseColumn) | total molar flow rate vapour | |
| Real[n,nSL] | n_i_liq (from BaseColumn) | ||
| Real[n,nSV] | n_i_vap (from BaseColumn) | ||
| Real[n] | n_liq (from BaseColumn) | sum(n_i_liq[:, i] for i in 1:nSL) | |
| Real[n] | n_vap (from BaseColumn) | sum(n_i_vap[:, i] for i in 1:nSV) | |
| Real[n] | n_total (from BaseColumn) | n_liq + n_vap | |
| Real[n] | n_mol_L (from BaseColumn) | ||
| Real[n] | n_mol_V (from BaseColumn) | ||
| Real[n,nSL] | n_mol_L_i (from BaseColumn) | ||
| Real[n,nSV] | n_mol_V_i (from BaseColumn) | ||
| ThermalSeparation.Utilities.LimPID_Input[n] | PID (from BaseColumn) | ||
| InternalFeedPort[n] | internalFeedPort (from FeedColumn) | ||
| ThermalSeparation.Utilities.MediumLink[n] | mediumLink (from FeedColumn) | ||
| MediumLiquid.BaseProperties[numberLiquidFeeds] | mediumLiquidFeed (from FeedColumn) | ||
| ThermalSeparation.Utilities.MediumLink[n] | mediumVapourLink (from FeedColumn) | ||
| MediumVapour.BaseProperties[numberVapourFeeds] | mediumVapourFeed (from FeedColumn) | ||
| SourcesSinks.SourceGas[numberVapourFeeds] | sourceGas (from FeedColumn) | ||
| SourcesSinks.SourceLiquid[numberLiquidFeeds] | sourceLiquid (from FeedColumn) | ||
| SourcesSinks.SinkGas[numberVapourFeeds] | sinkGas (from FeedColumn) | ||
| SourcesSinks.SinkLiquid[numberLiquidFeeds] | sinkLiquid (from FeedColumn) | ||
| Real[numberVapourFeeds,nSV] | c_v_feed_used (from FeedColumn) | ||
| BalanceEquations | balanceEquations | ||
| InitOption | initOption | ||
| Reaction[n] | reaction | ||
| PressureLoss | pressureLoss | ||
| Geometry | geometry | ||
| HeatTransferWall | heatTransferWall | ||
| Holdup | holdup |
Contents
| Name | Description |
|---|---|
| BalanceEquations | |
| InitOption | |
| Reaction | |
| PressureLoss | |
| Geometry | |
| Holdup |
Revisions
| created by | Karin Dietl & Andreas Joos |
|---|---|
| creation date | 01.01.2009 |
| revised by | nobody so far |
| last revision | this is an alpha version... |
| based on |