Free Energy Minimisation (FEM)
- 1 General Description
- 2 Diagram
- 3 Inputs and Outputs
- 4 Model Theory
- 5 Data Sections
- 6 Adding this Model to a Project
- 7 Example
- 8 Errors and Warnings
- 9 Error and Warning Messages
- 9.1 No Solution: Excess Element abundance in Non FEM Feed Species.
- 9.2 Number of Independent Species equals number of elements - reactions predetermined
- 9.3 Removing Trace species leaves no reactions - check results
- 9.4 Removing Phase leaves no reactions
- 9.5 Maximum Iterations Exceeded
- 9.6 Allotropes of Solid Phase Present
The Free Energy Minimisation (FEM) model will apply standard FEM equations to the material in the feed stream to the FEM calculation block and produce a product stream with the lowest free energy possible.
The user may also specify an Environmental Heat Loss from the FEM unit. This may be calculated at either the FEM Feed or Product temperature.
The diagram shows a drawing of the FEM unit, with a Feed and Product stream. When the user inserts the FEM unit into a flowsheet, a different graphics symbol can be selected from a pull down menu. The streams may be connected to any area of the drawing without affecting the actual connection point as SysCAD ignores the physical position of the connection.
Inputs and Outputs
|Label||Input / Output||No. of Connections||Description|
The Free Energy Change for a reaction or a system is:
- dG = dH - TdS
- where dG - Change in Free energy
- dH - Change in Enthalpy
- T - Temperature
- dS - Change in Entropy
Equilibrium is achieved when the Free Energy is at the minimum value.
The solve routine is based on the stoichiometric "Villars-Cruise-Smith' algorithm for the Free Energy Minimisation reactions. A stoichiometric algorithm chooses a set of basis reactions to remove the element abundance constraint and determines the extents of each such that the change in free energy with extent is zero.
The actual species in the feed to the FEM are ignored - the model effectively adds the element abundances of each incoming species, and divides this between the participating species so as to minimise the free energy - or such that the change in free energy with changes in species concentration is zero.
The user must be VERY careful to select the appropriate species as Bypass (B), Inert (I) or possible product species (Y).
|B||Bypass||This column will only be visible if the user has ticked 'WithBypass' on the "Reactor" Tab.
If this box is ticked then the species completely bypasses the FEM calculation. However, the amount of energy required to get the species to the FEM product temperature will be included in the energy balance of the unit.
|I||Inert||By ticking this box the user indicates that the selected species will not participate in any reactions, and will pass through the FEM unchanged. However, it will be included in any concentration calculations.|
|L||Lockup||This column will only be visible if the "WithLockup" option is ticked on the "Reactor" Tab.
If this box is ticked then:
|Y||Yes||By ticking this box the user indicates that the selected species may be part of the possible product species group.|
|C||Constrain||Only available in Build 138 or later. This column will only be visible if the "WithConstraints" option is ticked on the "Reactor" Tab.
If this box is ticked then user can enter the value of the coefficient in the "Coeff" column (will appear on the far right of the table). See Notes
|F||Forced||If the user does not tick any of the boxes, this means that if this species does occur in the feed to the FEM it MUST react completely to a product species. The user will see that the 'F' box is ticked by the model, indicating that this species will be 'Forced' to react completely if it occurs in the feed.|
- The 'Filter' button on the FEM tab is VERY useful when selecting species to react, or as inert, etc.
- If inert gases are present in the feed they should be included in the species used, since the free energy for the gaseous species is corrected by the partial pressure.
- If a liquid species is expected as a product at a particular temperature, the solid species should be avoided by converting to liquid in a reaction block.
In the example shown below:
- H2O(g), CO(g) and CO2(g) all have the 'Y' checkbox tick and hence they can occur in the product stream.
- C2H6(g), C3H8(g) and CH4(g) have no checkboxes ticked and they cannot occur as a product. If they are in the feed stream they will be forced to react completely.
- some species have lockup and constraint selected to show the extra column that will become visible.
The Filter button is very useful as it allows the user to filter the species list to show only the species of interest. Please see Species Filter for more information on the Filter Options that are available for the species filter.
By default, all solid species are separate "single species" phases. Gases and Liquids are assigned to Gas and Liquid Phases initially. There can only be a single "Gas" phase - all gases and vapours are assigned to this phase, and this cannot be changed. There can however be multiple liquid phases - for example some liquids may be an 'aqueous' phase, while others may be an 'oil' phase. All non-gas phases are treated identically, so the assignment of the phase here is arbitrary.
For pyrometallurgy applications, there may be additional "slag" phases. In the FEM tab, the user may select from an additional dropdown list and change the phase of a group of species. Within each phase the concentration dependence of chemical potential is calculated using only species within that phase; thus a slag phase should have two or more species present. If a particular phase is associated with only one species, that species will be removed from the phase and added to the "single species" phases. The user is responsible for selecting the species composition of each separate phase (apart from gases, which are all part of the gas phase, and treated slightly differently in having free energy dependent on partial pressure; other phases have no pressure dependence)
When using molten liquid phases in FEM, do not use the global Auto Phase Change option. For example, silver has a melting point of 960C, but can exist as a liquid in a molten phase at much lower temperatures when a lower melting point metal (such as lead) is also present.
These may be set by the user to tune the overall reaction extents, and based on calculations in a PGM or a SysCAD Custom Calculation
- The model is aimed primarily at high temperature combustion and pyromet applications with gaseous, molten and slag species. It has some limited applicability with aqueous and ionic chemistry but should be used with care here. Other third party models (OLI, ChemApp, PHREEQC, etc) can be used in SysCAD and may be better suited in some cases.
- Thermophysical data (specific heat, enthalpy, entropy) is required if a species is to be used.
- Constrained FEM is a general technique for adding further constraints on the reactions involved in a FEM model. For example, if a particular reaction is rate-limited, we can constrain the extent of the reaction and hence model non-equilibrium systems. CFEM typically involves side calculations, which can be done in PGM or externally, an example is given here: Python Example - CFEM
Chemical Reaction Equilibrium Analysis, Theory and Algorithms, William R.Smith, Ronald W.Missen, Wiley-Interscience, ISBN: 0-471-09347-5.
- Reactor tab - This tab contains general information relating to the unit.
- FEM tab - This tab allows the user to select which species are Bypassed, Inert, Can occur in the Product (Y) or Locked up. The user may also select individual FEM phases for Solid or Liquid species.
The user may choose to show the phases on separate tabs, in which case they will be shown as - FEM_V, FEM_L and FEM_S.
- Analysis tab - This tab mainly displays the elemental breakdown of species involved in the FEM block.
- Results tabs - These tabs display the species and elemental results of the FEM calculations.
- VCS Data tab - This tab displays a matrix of the species in the FEM reactions. The user may also enable the display of the Reactions occurring in the FEM.
- QFeed - Optional tab, only visible if ShowQFeed is enabled. This page shows the properties of the mixed stream as the feed to the tank.
- This is before the FEM is evaluated.
- QProd - Optional tab, only visible if ShowQProd is enabled. This page shows the properties of the Product stream from the unit.
- QFEM - Optional tab, only visible if ShowQFEM is enabled. This page shows the properties of the product stream from the FEM block.
- Info tab - contains general settings for the unit and allows the user to include documentation about the unit and create Hyperlinks to external documents.
- Links tab - contains a summary table for all the input and output streams.
- Audit tab - contains summary information required for Mass and Energy balance. See Model Examples for enthalpy calculation Examples.
Unit Type: Reactor - The first tab page in the access window will have this name.
|Tag (Long/Short)||Input / Calc||Description/Calculated Variables / Options|
|Tag||Display||This name tag may be modified with the change tag option.|
|Condition||Display||OK if no errors/warnings, otherwise lists errors/warnings.|
|ConditionCount||Display||The current number of errors/warnings. If condition is OK, returns 0.|
|GeneralDescription / GenDesc||Display||This is an automatically generated description for the unit. If the user has entered text in the 'EqpDesc' field on the Info tab (see below), this will be displayed here. If this field is blank, then:
|On||Tick Box||This allows the user to disable the Free energy minimisation calculations, and the unit becomes a simple conduit with no calculations.|
|FEM_Reaction||Tick Box||This allows the user to disable the Free energy minimisation reactions, so the unit becomes a simple conduit.|
(Only available in
Build 138 or later.)
|OpMode||FixedT||The user specifies the outlet temperature of the unit. SysCAD will determine the composition of the outlet stream at the required temperature and the amount of energy required to reach that temperature.|
|FixedHeat||No additional heat will be added to the unit, and therefore the outlet temperature will be determined by the FEM calculations.|
|PhaseBoundary||Only available in Build 138 or later.|
|Target||Only available in Build 138 or later.|
|TemperatureReqd / T_Reqd||Input||The Required Temperature of the unit. This will be displayed if the user has chosen FixedT.|
|FeedLowFlow.MassFlow / FeedLowFlowQm||Input||The user may enter a mass flow value here. Any feed species that has a flow LESS than this value will bypass the FEM. Therefore, this by definition should be a small value, that is used to disregard any minute flows into the FEM which might cause instability in the unit.|
|MinOnDeltaGf||Tick Box||Only available in Build 137 or earlier.|
|StandardPotential||Tick Box||Only relevant when user overrides potential (DeltaGf) values on the Results tab. Use standard chemical potential values in SysCAD. Note that user supplied (overridden) Chemical Potential values are at Standard Pressure.|
|DiscardUnformable||Tick Box||Removes un-formable FEM species based on feed composition each iteration.|
|DiscardTraceProducts / DiscardTraceProd||Tick Box||This allows the user to discard any trace flows that are formed as products of the FEM unit.|
|ProductSpTrace.MassFlow / ProdSpTrace.Qm||Input||This field is only visible if the user has ticked the above tick box. The user may enter a mass flow value here. Any product species that has a flow LESS than this value will be discarded. Therefore, this by definition should be a small value, that is used to disregard any minute flows out of the FEM which might cause instability in a SysCAD project.|
|ExcludeIonic||Tick Box||Exclude and Bypass Ionic Species|
|ExcludeNoUserCp||Tick Box||Exclude and Bypass Species with undefined Cp|
|Environmental Heat Transfer||The user may enable different methods for Environmental Heat Transfer.|
|HeatLossMethod||None||There is no energy loss to the environment.|
|EHX Block||If this is selected then the user may enable any of the heat transfer methods on the Environmental Heat Exchanger Block tab.|
Please note that all of these methods will be applied to the Feed stream to the FEM, NOT to the product.
|Fixed Heat Flow||The user may specify a fixed heat flow from the FEM unit to the environment. This energy will be removed from the overall FEM.Heatflow value.|
|Ambient||This allows the user to specify an overall Heat Transfer Coefficient and Area. The model will then calculate the energy loss to the ambient temperature using the Product temperature from the FEM. The equation used for energy transfer in this case is:|
Q = Heat Transfer Coefficient (HTC) * Area * (Final FEM Temperature - Ambient Temperature)
|EHX.HeatLossReqd||Input||This field is only visible if the user has selected Fixed HeatFlow. The user enters the energy flow FROM the unit to the outside environment.|
Note: A positive value indicates energy flow out of the unit.
|EHX.HTC||Input||This field is only visible if the user has selected Ambient. The user enters the overall Heat Transfer Coefficient for the FEM unit.|
|EHX.Area||Input||This field is only visible if the user has selected Ambient. The user enters the Heat Transfer Area for the FEM unit.|
|EHX.AmbientT||Display||This field is only visible if the user has selected Ambient. The ambient temperature used in the heat loss calculations. The ambient temperature can be changed on the Environment tab page of the Plant Model.|
|OperatingP - NOTE: this pressure is applied to the (combined) feed, before sub-models (if any).|
|Method||AutoDetect||If there are any liquids AND no vapours present in the feed, outlet streams will take the highest pressure of the feeds. Else (eg. some vapours present) outlet streams will take the lowest pressure of the feeds.|
|LowestFeed||Outlet streams will take the lowest pressure of the feeds.|
|HighestFeed||Outlet streams will take the highest pressure of the feeds.|
|Atmospheric||Outlet streams will be at Atmospheric Pressure. The atmospheric pressure is calculated by SysCAD based on the user defined elevation (default elevation is at sea level = 101.325 kPa). The elevation can be changed on the Environment tab page of the Plant Model.|
|RequiredP||Outlet streams will be at the user specified pressure.|
|IgnoreLowMassFlow / IgnoreLowQm||Tick Box||This option is only visible if the AutoDetect, LowestFeed or HighestFeed methods are chosen. When calculating the outlet pressure and temperature of the tank, SysCAD will ignore the low flow feed streams should this option be selected. The low flow limit is set in the field below.|
|LowMassFlowFrac / LowQmFrac||Input||This field is only visible if the IgnoreLowQm option is selected. This is the amount any stream contributes to the total flow. For example, if the total feed to the tank is 10 kg/s, and this field is set to 1%. Then any feed streams with less than 0.1 kg/s will be ignored in the pressure calculations.|
|PressureReqd / P_Reqd||Input||This field is only visible if the RequiredP method is chosen. This is user specified pressure.|
|Result||Calc||The actual pressure used for the sum of the feeds which will also be the outlet pressure (unless further model options change the pressure).|
|WithBypass||Tick Box||This allows the user to set individual species to bypass the FEM calculations. If this is ticked, then on the FEM tab(s) the user will see a column of tick boxes with the heading 'B'.|
|WithLockup||Tick Box||This allows the user to set Lockup for individual species. If this is ticked, then on the FEM tab(s) the user will see a column of tick boxes with the heading 'L'.|
|WithConstraints||Tick Box||Only available in Build 138 or later. This allows the user to set the constraint coefficient for the individual species. If this is ticked, then on the FEM tab(s) the user will see a column of tick boxes with the heading 'C'. See Notes|
|ShowQFeed||Tick Box||QFeed and associated tab pages (eg Sp) will become visible, showing the properties of the combined feed stream. See Material Flow Section.|
|ShowQFEM||Tick Box||The product from the FEM calculation and associated tab pages (eg Qm) will become visible, showing the properties of the FEM product stream. See Material Flow Section. This may be different from ShowQProd if there are species that are bypassed.|
|ShowQProd||Tick Box||QProd and associated tab pages (eg Sp) will become visible, showing the properties of the product stream. See Material Flow Section.|
|TrackLowFlowQm||Tick Box||Gives warnings if the mass flows of any of the species in the feed flow into the FEM are < FeedLowFlow.Qm|
|TrackFeedCpRange||Tick Box||Gives warnings if the Cp values of any of the species in the feed to the FEM are out of range.|
|TrackProdCpRange||Tick Box||Gives warnings if the Cp values of any of the species in the product from the FEM are out of range.|
|TrackDiscardQm||Tick Box||Gives warnings if any product species from the FEM have mass flows less than the user defined Trace flows.|
|Grid.CheckBoxSet||Tick Box||Set on Change for CheckBoxes in FEM Grid.|
Hint: For projects with large numbers of species it is best NOT to tick this box, as it will slow down the configuration of the unit.
|Display.Reactions||None||No Reactions will be displayed on the VCSData Tab.|
|Decimal||Reactions will be displayed on the VCSData Tab, mol balance will be displayed as decimals in the reactions. [Eg: N(g) = 0.5N2(g)]|
|Fraction||Reactions will be displayed on the VCSData Tab, mol balance will be displayed as decimals in the reactions. [Eg: N(g) = 1/2N2(g)]|
|Integer||Reactions will be displayed on the VCSData Tab, mol balance will be displayed as decimals in the reactions. [Eg: 2N(g) = N2(g)]|
|Breakdown of Feed mass flow|
|Bypass.User.MassFlow / Bypass.User.Qm||(A)||Only displayed if WithBypass has been ticked. The mass flow of all of the user specified bypass species. The 'B' checkbox is selected on the FEM Tab(s).|
|Bypass.LowFlow.MassFlow/ Bypass.LowFlow.Qm||(B)||The mass flow of all species in the feed with a mass flow < FeedLowFlow.MassFlow (defined by the user).|
|Bypass.Other.MassFlow / Bypass.Other.Qm||(C)||The mass flow of unexpected species in the feed to the FEM. These are species which cannot be reacted, but the user has not selected them as part of the FEM product species.|
Note: Ideally this field should show a zero value. If this is a non-zero value, then it is recommended that the user reviews the species selected on the FEM tab(s) and selects additional species so that these species can be accommodated in the FEM product species.
|Bypass.MassFlow / Bypass.Qm||(D=A+B+C)||The total bypass mass flow.|
|FEM.Feed.Inert.MassFlow / FEM.Feed.Inert.Qm||(E)||The user specified Inert mass flow in the feed. The 'I' checkbox is selected on the FEM Tab(s).|
|FEM.Feed.CanReact.MassFlow / FEM.Feed.CanReact.Qm||(F)||The mass flow of all species in the feed to the FEM that can react. The 'Y' checkbox is selected on the FEM Tab(s).|
|FEM.Feed.ReactAll.MassFlow / FEM.Feed.ReactAll.Qm||(G)||The mass flow of all species in the feed to the FEM that will be forced to react completely in the FEM calculations. These species do not have any checkboxes ticked on the FEM tab(s).|
|FEM.Feed.MassFlow / FEM.Feed.Qm||(H=E+F+G)||The total feed mass flow that is available to the FEM calculations (exclude bypass).|
|FEM.Feed.Lockup.MassFlow / FEM.Feed.Lockup.Qm||(Included in CanReact and ReactAll)||Only displayed if WithLockup has been ticked. The total feed mass flow that is locked up.|
|FEM.Feed.NonStd.MassFlow / FEM.Feed.NonStd.Qm||(Included in Inert)||The total non standard species. (Species that are not real, made up by the user to represent some material without fully defining its chemical composition. Assumed to be inert)|
|Feed.MassFlow / Feed.Qm||(=D+H)||The total feed mass flow, includes bypass|
|Feed.StdSp.MassFlow / Feed.StdSp.Qm||Display||The mass of material in the feed to the unit that does have associated standard species in the project database.|
|FEM.Prod.MassFlow / FEM.Prod.Qm||Display||The mass flow of material from the FEM model.|
|FEM.Feed.Temperature / FEM.Feed.T||Display||The temperature of the material feeding the FEM calculations. This is calculated AFTER the EHX calculations.|
|FEM.Temperature / FEM.T||Calc||The temperature of the FEM after reactions.|
|Feed.VolFlow / Feed.Qv||Calc||The volumetric flow of material into the FEM unit.|
|Prod.VolFlow / Prod.Qv||Calc||The product volumetric flow.|
|Feed.Temperature / Feed.T||Calc||The temperature of the feed to the unit.|
|Prod.Temperature / Prod.T||Calc||The temperature of the product.|
|FEM.Discarded.MassFlow / FEM.Discarded.Qm||Calc||The mass flow of discarded species from the FEM calculations. These are species with individual mass flows < ProductSpTrace.MassFlow (a user defined value).|
|Feed.Hf||Calc||Total Enthalpy of formation of the feed to the FEM unit.|
|FEM.Feed.Hf||Calc||Total Enthalpy of formation of feed taking part in the FEM calculations.|
|FEM.Prod.Hf||Calc||Total Enthalpy of formation of Product from the FEM calculations.|
|EHX.HeatFlow||Calc||Heat flow due to environment heat exchange.|
|FEM.HeatFlow||(I)||The net heat loss or gain for FixedT calculations. This is the energy that is required to maintain the temperature of the FEM products.|
|Bypass.HeatFlow||(J)||This is the energy that is required to bring the bypass material to the FEM product temperature.|
|HeatFlow||(=I+J)||The net heat loss or gain for FixedT calculations. This is the overall energy required to maintain the FEM product temperature.|
|FEM.Feed.Hz||Calc||Sensible Enthalpy of feed to the FEM calculations.|
|FEM.Prod.Hz||Calc||Sensible Enthalpy of product from the FEM calculations.|
|FEM.Delta.Hz||Calc||Difference of enthalpy from the FEM calculations.|
|The user may select individual species to Bypass the FEM, as Inert, as appearing in the FEM product or to Lockup a portion of the species. The user may also change the FEM phase for solids or liquids.|
|PagePerPhase||Tickbox||This is a global selection. Ticking this box will change FEM tab into three separate Tabs, FEM_V for vapours, FEM_L for liquids and FEM_S for solids. In the image shown above, this box has been ticked and the FEM_S page is visible.|
This can be useful for projects with a large number of species, but the 'Filter' functionality will probably be more useful.
|SpeciesTag||button||This will toggle between Species:Long and Species:Short button, where the species name will toggle between chemical name or common name. For example, Methane(g) or CH4(g)|
|Select||Selection button||Clicking on the "Select Y (CanReact)" button will allow the user to select 1) All 2) all Solids 3) all Liquid or 4) all Vapours that can be included in the FEM calculations.|
|FEMSpecies||Button||Check data button|
|Filter On||Button||This button allows the user to enable the Species filters. The different filter options allow the filter to be based on the elemental definition of a species or on the short or long tag for the species name. The number of species that are displayed will be shown next to this field. This is very useful for projects with a large number of species.
Please see Species Filter for more information on the Filter Options that are available for the species filter. This feature is only available in Build 137 and later.
|The table on this tab will display all of the species (or the species in the phase) and allows the user to choose various settings for each species.|
Each column will be described below:
|FEM Species||Display||This is a list of the Species in the project, or the species in the phase if the user has selected PagePerPhase.|
|B||[B]ypass.||These species completely bypass the FEM block and are not considered in the FEM equations at all. However, they will affect the energy balance, as they will be heated/cooled to the same temperature as the FEM product.|
Note: This column is only visible if the 'WithBypass' box is ticked on the first tab of the FEM Access window.
|I||[I]nert.||These species do not participate in reactions. While these species will not react, they may influence the FEM products, as they are included in any concentration or partial pressure calculations. For example, Inert gases change the gaseous partial pressure of other gases, hence influence the final composition.|
|L||[L]ockup.||These Species can have a Locked up fraction, i.e. a portion of the species will be 'hidden' from the FEM calculations and hence cannot react.|
|Y||[Y]es.||These species are considered to be possible product FEM Species - i.e. they can exist in the FEM product. (CanReact)|
|C||[C]onstrain||Only available in Build 138 or later. Additional Material Constraints and coefficients.|
|Phase||Select||The user may specify a different phase for solid or liquid species. This affects results as it will affect the final concentration values.|
|FeedTotal.Qm||Display||The mass of each species in the feed to the FEM.|
|OK||Display||If this field has a value of 1, then all Thermophysical Data is available.|
If it has a value of 0, then the thermophysical data is unavailable. The species should not be used in calculations, or the user may override the value (on the Results tab).
|F||[F]orced.||If this field is visible and the species is present in feed, it will be forced to react completely - it may not exist in the FEM product.|
Note: If the user has not ticked any of the 'B', 'I' or 'Y' boxes, then this field will be visible.
|Lockup||Input||If 'L' is ticked for a species, then the user may specify the fraction of the species that is locked up, i.e. unavailable for reaction.|
|Coeff||Input||Only available in Build 138 or later. If 'C' is ticked for a species, then the user may specify the constrain coefficient of the species, i.e. limitation for the reaction. See Notes|
- Lockup may be used to model nonequilibrium behaviour. A FEM reaction will always be in equilibrium, however there may be situations where the reaction occurs relatively slowly and may not proceed to completion. For example the residence time in a reactor may be shorter than the typical reaction time. In order to allow "incomplete" reactions, the user may lock up some fraction of a feed species. The "locked up" fraction of the species appears as an inert, and still influences the final composition by affecting the concentration (partial pressure or mole fraction) dependence of the free energy.
|Tag (Long/Short)||Input/ Calc||Description||Comment|
|FEM Species Analysis|
|FEMSpecies||Button||Check Data button.|
|SpCount.Bypass||Display||Number of species that Bypass the FEM.||(A)|
|SpCount.Inert||Display||Number of Inert species.||(B)|
|SpCount.CanReact||Display||Number of species that can exist in the FEM product.||(C - possible product species)|
|SpCount.ReactAll||Display||Number of species that MUST react totally, i.e. they cannot exist as a product species.||(D - if present in feed)|
|SpCount.Other||Display||Number of species that are discarded.||(E - unexpected if present in feed)|
|SpCount.Total||Display||Total number of species present in the project.||(=A+B+C+D+E)|
|SpCount.WithLockup||Display||Number of species that have Lockup enabled. This field is normally hidden.|
|ElemCount.CanReact||Display||Total elements present in the FEM reactions.||(Used)|
|ElemCount.Total||Calc||Total elements present in the project.|
|Count of FEM Species for Elements based on selected I and Y.|
The following table displays all of the elements involved in the FEM calculations. Each column will be described below:
|Element||Display||A list of the elements that occur in the species in the FEM feed.|
|Bypass||Display||The number of species containing the element that are Bypassed.|
|Inert||Display||The number of species containing the element that are Inert.|
|CanReact||Display||The number of species containing the element that are possible FEM product species.|
|Total||Display||The total number of species containing the element in the FEM feed.|
|Used||Display||Indicates if the element is used in the FEM calculations.|
|AN||Display||The atomic number of the element.|
|Excluded Elements based on selected Y and I|
|Element||Display||A list of the elements that occur in the species that are in the FEM feed, but are excluded from the reactions.|
|Total||Display||The total number of species containing the element that are excluded from reactions.|
|AN||Display||The atomic number of the element.|
First Results Tab
|FEM Species Data Results|
|FixedHeat.Damping||Input||Only visible if OpMode = Fixed Heat. Damping for FixedHeat convergence. If solution is not converging because of large changes in free energy at a particular point, adding damping (50%+) may help.|
|FixedHeat.AbsTol||Input||Only visible if OpMode = Fixed Heat. Absolute tolerance for FixedHeat to converge.|
|FixedHeat.MaxIterations||Input||Only visible if OpMode = Fixed Heat. Maximum number of iterations for FixedHeat to converge.|
|FixedHeat.Iterations||Display||Only visible if OpMode = Fixed Heat. Number of iterations for FixedHeat to converge.|
|FEM.MaxIterations||Input||Maximum number of iterations for FEM to converge.|
|FEM.Iterations||Display||Number of iterations for FEM to converge.|
|FEM.BasisOpt.Calls||Display||Number of calls to the Basic Optimisation function.|
|FEM.SpCount.Unformable||Display||The number of un-formable species present.|
|FEM.SolveTime||Display||Only available in Build 138 or later. Overall solve time.|
|FEM.VCSTime||Display||Only available in Build 138 or later. Time for call to VCS routine.|
|FEM.Temperature/FEM.T||Display||The temperature of the FEM reactor.|
|FEM.HeatFlow||Display||Heat added/removed from FEM calculation to maintain the fixed Temperature.|
|G/RT||Display||The Final Chemical Potential.|
|Participating FEM Species|
|ShowDeltaGf||TickBox||Include Entropy, Gibbs Free Energy and [math]\Delta G^f_0[/math] (Build 137 or earlier) for each individual species in the FEM Species table below.|
|ShowDeltaQm||TickBox||Displays the difference in molar flow from the Feed to Product stream for each individual species in the FEM Species table below.|
|FEM_Zeros||Button||Hide or Show species with no flow in the FEM Species table below.|
|SpeciesTag||Button||Toggles between long and short species name.|
|Inerts||Button||Hide or Show inert species in the FEM Species table below.|
The following table displays data for each individual species. Each column in the table will be described below:
|FEM Species||Display||List of species in the FEM calculations. This will be displayed by Phase.|
|Phase||Display||The FEM phase for each species. This may be changed for Solids and Liquids, but Gases are always in a single 'Gas' phase group.|
|Activity||Input||Correction [math]RT\ln a[/math] for chemical potential. If a=1, there is no correction.|
|Feed.Qml||Display||Mole flow of species in feed.|
|Prod.Qml||Display||Mole flow of species in product.|
|Diff.Qml||Display||Only displayed if the user has ticked ShowDeltaQm. Molar Difference across the FEM block.|
|S||Display||Only displayed if the user has ticked ShowDeltaGf. Species Entropy at the Product temperature.|
|Gf||Display||Only displayed if the user has ticked ShowDeltaGf. Species Gibbs free energy at the Product temperature.|
|DeltaGf||Display||Only displayed in Build 137 or earlier. Only displayed if the user has ticked ShowDeltaGf. Product [math]\Delta G^f_0.[/math] Free energy of formation from elements at same conditions.|
|mu/RT||Input/Display||Non-dimensional chemical potential. Can be input field if user has chosen to override by ticking 'O' (see next field).|
|O||Display||Override. If the user ticks this box, then they may specify an override value for the species chemical potential. If the StandardPotential option has been selected on the first tab page, then SysCAD assumes the supplied values are at Standard Pressure.|
Second Results tab (...)
|Species With Flow Mass Flow and Species Count are displayed for the following variables.|
|LowFlow||Display||Species with flow less than the user specified minimum flow, 'FeedLowFlow.MassFlow'. These species will NOT be used in the FEM calculations.|
|OtherBypass||Display||Species that will Bypass the FEM calculations.|
|FEM.Lockup||Display||Species that the user has defined to have Lockup.|
|FEM.Inert||Display||Species that the user has defined as Inert.|
|FEM.ReactAll||Display||Species that cannot occur in the FEM product, i.e. they must fully react. (they do not have 'Y' ticked on the FEM tab(s)).|
|FEM.Feed||Display||Species in the FEM feed.|
|FEM.Prod||Display||FEM Product species.|
|FEM.Discard||Display||Species that have been discarded from the FEM calculations. These are species with individual mass flows < ProductSpTrace.MassFlow (a user defined value).|
|FEM.InvalidFeedCp||Display||Species in the FEM Feed with invalid Cp at the FEM feed temperature.|
|FEM.InvalidProdCp||Display||Species in the FEM Product with invalid Cp at the FEM product temperature.|
|FEM.InvalidFeedS25||Display||Only available in Build 138 or later. Species in the FEM Feed with invalid S25 at the FEM feed temperature.|
|FEM.InvalidProdS25||Display||Only available in Build 138 or later. Species in the FEM Product with invalid S25 at the FEM product temperature.|
|SpList.LowFlow||Display||A list of species with flow less than the user specified minimum flow, 'FeedLowFlow.MassFlow'.|
|SpList.OtherBypass||Display||A list of species that will Bypass the FEM calculations.|
|SpList.Lockup||Display||A list of species that have Lockup enabled.|
|SpList.Inert||Display||A list of Inert species.|
|SpList.ReactAll||Display||A list of species in the FEM feed that will be forced to react completely in the FEM.|
|SpList.Unformable||Display||A list of species that have been selected as possible FEM products that cannot be formed in the FEM reactor.|
|SpList.Discard||Display||A list of FEM product species that have flow rates below the minimum allowable flow, 'DiscardTraceProducts' (this is normally a very small value, in the order of 1e-10).|
|FEM_Zeros||Button||Hide or Show species with no flow in the FEM element table below.|
|Inerts||Button||Hide or Show inert species in the FEM element table below.|
This table shows the molecular flows based on the user defined groups. Each column will be described below:
|Element||A list of all of the elements involved in the FEM block.|
|CanReact.QMl||Mole flow of the element in species that can react and can appear as products in the FEM.|
|ReactAll.QMl||Mole flow of the element in species that are forced to react, i.e. cannot appear as products in the FEM.|
|Inert.Qml||Mole flow of the element in inert species.|
|MoleFlow / QMl||Total mole flow of the element in all species in the FEM calculations.|
|Used||Indicates if the element is used in the FEM calculations.|
VCS Data Tab
This shows additional information relating to the VCS (Villars-Cruise-Smith) FEM calculation. The algorithm determines a species basis and a set of reactions such that any of the (nonbasis) species can be produced from the basis specis.
|FEM VCS Data|
|NComp||Display||The number of components formed in the FEM calculations.|
|MR||Display||The number of reacting species.|
|NR||Display||The number of reactions in the FEM.|
|M||Display||The number of active species feeding into the FEM block.|
|N||Display||The number of product species from the FEM block.|
|NE||Display||The number of elements involved in the FEM calculations.|
in Build 138
|Full||The table below will show the moles of each basis species to produce product, as well as the mole fraction (MlFrac) in the product stream of the Product and Basis species and the free energy of formation from elements (DeltaG) for the Product Species.|
|Basic||The table below will simplified to only show the mole fraction (MlFrac) in the product stream of the Product and Basis species and the free energy of formation from elements (DeltaG) for the Product Species.|
|WithEquation||The table below will show the same information as the Basic option, as well as the Reaction used to produce product species.|
|The table shows the Stoichiometric basis species heading each column and the product species head each row.|
Entries show moles of each basis species to produce product.
The basis species are ordered in terms of molar quantity.
At the bottom of each column, the mole fraction (MlFrac) in the product stream of the relevant species is shown.
On the right of each row, the mole fraction (MlFrac) and free energy of formation from elements (DeltaG) in the product stream of the relevant species is shown.
In Build 138 or later, the table format changes based on the user selection for the Display setting described above.
|The drop down list under the table allows the user to display the reactions that are occurring in the FEM block.|
|Disp||None||Do not display any reactions.|
|Decimal||Display the FEM reactions with decimal format for the species. For example, NH(g) = 0.5 N2(g) + 0.5 H2(g)|
|Fraction||Display the FEM reactions with fractional format for the species. For example, NH(g) = 1/2 N2(g) + 1/2 H2(g)|
|Integer||Display the FEM reactions with integer format for the species. For example, 2 NH(g) = N2(g) + H2(g)|
|All||Copy To Clipboard||If the user clicks on this button all of the reactions displayed above will be copied to the clipboard. They may then be pasted into a report or spreadsheet as required.|
|VCS Phase Information|
|Phase0||Display||Only available in Build 138 or later.|
|Phase1||Display||Only available in Build 138 or later.|
|Phase2||Display||Only available in Build 138 or later.|
Adding this Model to a Project
Insert into Configuration file
Sort either by DLL or Group.
Process 2: FEM Reactor
Process 2: FEM Reactor
See Project Configuration for more information on adding models to the configuration file.
Insert into Project
See Insert Unit for general information on inserting units.
Suppose we have the ten species
C(s), CO(g), CO2(g) CH4(g), COS(g), SO(g), SO2(g), SO3(g), CH4(g), H2(g)
and we are ultimately looking to solve for ten unknown quantities (say the total moles of each of these species in the product)
There are four elements present (C, H, O, S), so we have four constraints - the total quantity of each of the four elements must be conserved. So the total moles of each product are not independent; there are only 6 = 10-4 independent variables.
In practice, we formulate the problem in terms of a subset of the species which we can use to produce each of the remaining species, and our six independent variables are the reaction extents of each of the reactions defined by this subset. So here we have the reactions
COS(g) = -3SO3(g) + CO2(g) + 4SO2(g) [Equivalently COS(g) + 3SO3(g) = CO2(g) + 4SO2(g)] H2(g) = - SO3(g) + SO2(g) + H2O(g) SO(g) = - SO3(g) + 2SO2(g) CO(g) = - SO3(g) + CO2(g) + SO2(g) CH4(g) = -4SO3(g) + CO2(g) + 4SO2(g) + 2H2O(g) C(s) = -2SO3(g) + CO2(g) + 2SO2(g)
Conceptually, we "convert" our entire feed to the four basis species via these reactions, then determine the extent of each reaction which minimizes the free energy. The only additional constraint is that each reaction extent lies between 0 and 100%. If the extent of a reaction is zero, then that species will not be present in the final product.
In fact there are many possible choices for the basis species, and the algorithm choses an appropriate set (and can change the basis on the fly during calculation). As discussed below, the feed composition may be such that it is impossible to partitiion the feed elements into the desired product species, in which case no solution will be found. The user must select an appropriate set of species (and phases).
Errors and Warnings
The most important consideration in getting useful results from the FEM model is correct choice of the species and phases as well as ensuring that reliable thermophysical data is available for these. We recommend using the HSC database or a similar source for thermophysical data.
If the FEM model is used in an overall plant model, the user has no direct control over which species are present in the feed, and consequently the model may not be able to find a solution. As a simple example, consider combustion of coal in air, producing Carbon Monoxide and Dioxide. Since we expect to burn all the coal, we just choose the gases as FEM species:
Now if we have excess air, there are no problems:
Increasing the feed carbon, we can use all the oxygen and produce CO2
Additional carbon, and we need to produce CO as well
However if we put in excess carbon, there is no possible reaction that can use all that is present in the feed: the FEM model will detect this and complain
In this case we can easily correct the model by adding carbon as a FEM species. However in a model with dozens of species, it is not always clear which species may be present in the product, and one should avoid having species present which will not be products. (For example, if we are modelling combustion of liquid butane at elevated temperatures, we will not expect this to be present as a product.)
In solving a large plant model with many recycle loops, it may take a number of iterations before the feed composition to a particular model is determined, and there may well be no solution to the FEM model in the meantime. If there is no solution, the model "gives up" and sets the feed product composition to the feed and this may disrupt the overall model from finding a satisfactory solution. In this case it may be useful to use a simplified set of reaction in a reaction block to find an approximate plant solution before enabling FEM.
A further problem arises if we specify exactly 100kMol/h flow of carbon. Although there is a feasible solution (complete combustion to CO), a numerical issue arises in the calculation. (For a valid solution, there will be trace quantities of each of the species present, and we cannot satisfy this condition in this situation without a small mass imbalance.
Further issues arise when multiple species are in a particular phase. As a rule, it is necessary that all species are actually present in a phase if there are reactions available that will produce that species. This is because the chemical potential becomes large and negative as the quantity of a species goes to zero, so adding a trace amount of that species (if none were present) would reduce the free energy. However the amounts required may be miniscule and may cause roundoff errors in calcualations, so the model removes trace multiphase species altogether to avoid this issue. Removing a species may then leave the system without any possible reactions - this is not an error, just an indication that the final state is fully determined.
Error and Warning Messages
No Solution: Excess Element abundance in Non FEM Feed Species.
This is generated in the case described above. There is no possible reaction producing the FEM species that can use all of a particular element in the feed. Add additional species containing that element so that it can be utilized.
Number of Independent Species equals number of elements - reactions predetermined
Suppose we have butane combustion
C4H10 + 6.5O2 = 4CO2 + 5H2O
If we specify FEM species CO2, O2 and H2O, and feed composition, then there is no freedom to specify the product composition, this is completely determined since all the C in the butane must react to form CO2, and all the H in butane reacts to form H2O. If there is a feasible solution to the reaction involving the FEM species, the model will find it, but issues this warning.
We could add a further species CO (Carbon Monoxide) and the products would not then be determined by stoichiometry alone, removing the warning.
Removing Trace species leaves no reactions - check results
In the butane example above if we have C4H10, CO2, O2 and H2O as gaseous species, we have a reaction. However if there is no C4H10 in the product, it will be removed from the gaseous phase, and there is no further reaction available among the remaining species. So these species will work as FEM species if we have a rich mixture (excess C4H10), but if we have a lean mixture we will get the warning.
Removing Phase leaves no reactions
As an example, we have a combustion reactor with coal and air; the solids feed consisting of C(s) with impurities of SiO2(s) and TiO2(s). Selected FEM species are
CO2(g), CO(g), O2(g) SiO2(s) C(s) TiO2(s)
With no air in the feed, it is not possible to create any component in the gas phase, which is then removed entirely. The remaining components have no reactions available, being fully determined, and a warning is given.
When solving large models with recycles, it is possible that some reactors may not have all the required feeds during the solution, for example after a reset, in which case these warnings will be issued. Once the model flows are established, the warnings should disappear.
Maximum Iterations Exceeded
This message can arise when the solution is indeterminate. A simple example of this is the water-steam system at atmospheric pressure when the temperature is exactly 100°C. It could be pure steam or pure water or anything in between. At this temperature the free energy for water and steam are identical, so there is no one solution.
One particular situation where the message appears is when you have two different phases of the same species, which would normally appear in different (non overlapping) temperature ranges. In most cases, the free energy contribution of the two phases will be sufficiently different for the model to choose between one or the other (for example, H2O(l) vs H2O(g) above and below 100C at atmospheric pressure)
However depending on how the model handles the calculation of entropy and enthalpy for the "out of range" species, the two values may be nearly identical, resulting in an under-constrained system. The model can't decide which form should be present and ends up jumping back and forth between them (hence the Maximum Iterations Exceeded error message)
To fix this error, check on the temperature range for which the phases are valid, and remove the species that is out of range.
If the temperature is indeterminate (Fixed Heat) or controlled externally, further logic in a PGM might be needed to deselect a particular phase depending on the actual reaction temperature.
There are situations when it may take many thousands of iterations to find a solution even when one exists. This happens for multiphase systems near a bubble point or dew point. For example the ethanol-water system:
For a single component (eg H2O), if we are above or below the boiling point, then there is a unique solution - either pure liquid water below the boiling point, or pure steam above, and the algorithm finds this directly. However for a multicomponent system above the boiling point and below the dewpoint, all components of both vapor and liquid phases will be present. If the temperature is very close to the boiling point (at which the composition is indeterminate), then the algorithm may take a large number of iterations to find the actual composition.
If you are seeing this message, you can try increasing the number of iterations (the maximum allowable value is presently 10000) to see if the model can find a solution.
The message will in fact usually appear when phase boundary calculations are done, since in this case the temperature is being adjusted to find the dewpoint or bubble point.
Allotropes of Solid Phase Present
A general message is issued if a FEM model has multiple allotropes of a solid species, eg Cuprospinel which can exist as CuO.Fe2O3(s) or CuO.Fe2O3(Bs). This situation can arise when importing species from the HSC database. Allotropic forms of a solid will be imported as separate species, in this csae as a solid (s) phase and a beta solid (Bs) phase. These will have non-overlapping ranges of validity for the specific heat.
- If two separate allotropes of a species are included as FEM species, the user should check the correct allotrope is being chosen when the temperature is out of range for one of them. The (invalid) specific heat calculation may yield a free energy lower than the valid calculation for the other allotrope, in which case it will be chosen in preference.
- Remove the allotrope with an invalid temperature
- Alternatively, combine the two species into a single solid species with a specific heat valid over the entire range.