The XFlow file format is an open, XML based, file format designed to exchange material stream data between flowsheet simulators. XFlow files are written by the XFlowSaver unit operation and read by the XFlowLoader unit operation, but any 3rd party application can easily parse or write XFlow files.
The XFlow file format is case sensitive.
This is the top-level node in the document. It does not have attributes.
Sub-nodes: Property, Compound, Phase, AutoFlash and the enthalpy state nodes.
The property node contains the value of a property. It can be sub-node of the XFlow node (an overall property), a Compound node (a compound property) or a Phase node (a phase property).
Attributes:
Attribute | Description |
---|---|
Name | Display name of the property. Properties understood by FlowExchange are listed in the property configuration file along with the unit of measure. |
UnitOfMeasure | Unit of measure. Always SI units. |
The text content of the Property node contains the English formatted property value. For an array, multiple values are separated by a semi-colon.
There can be multiple Property nodes in each XFlow, Compound or Phase node, but for each Property node with the same parent, the combination of Name and UnitOfMeasure must be unique.
Sub-nodes: none.
The Compound node describes a compound. It does not have attributes.
Sub-nodes: ID, Name, CAS, Formula and Property.
There can be multiple Compound nodes in an XFlow node, but each compound must have a unique ID.
The Compound node does not contain text.
The Phase node describes a phase. It does not have attributes.
Sub-nodes: Name, StateOfAggregation, KeyCompound and Property.
There can be multiple Phase nodes in an XFlow node, but each phase must have a unique name.
The Phase node does not contain text.
The ID node is required sub-node of a Compound. The contained text is the ID of the compound, and may differ from the textual name of the compound (which is presented to the user). It does not have attributes.
The Compound node must contain exactly one ID node.
Sub-nodes: none.
The Name node is required sub-node of a Phase. For a Compound node, the Name node is optional, and if absent the name is assumed equal to the ID. The text contained in the Name node is the name of the container node. The Name node not have attributes.
The Compound node can contain one ID node. The Phase node must contain exactly one ID node.
Sub-nodes: none.
The CAS node is an optional sub node for a Compound node. Its contained text is the CAS registry number for the compound. The CAS node not have attributes.
The Compound can contain one CAS node.
Sub-nodes: none.
The Formula node is an optional sub node for a Compound node. Its contained text is the chemical formula for the compound (brutto, nomenclature according to Hill). The Formula node not have attributes.
The Compound can contain one Formula node.
Sub-nodes: none.
The StateOfAggregation node is a recommended sub node for a Phase node. Its contained text is the state of aggregation for the phase. Valid values are "Vapor", "Liquid", "Solid" and "Unknown". The StateOfAggregation node not have attributes.
The Phase can contain one StateOfAggregation node.
Sub-nodes: none.
The KeyCompound node is an optional node for a Phase node. Its contained text is the ID of a compound expected to be present in the highest concentration in the phase. The value must match the content of the ID sub-node of one of the Compound nodes. The KeyCompound node not have attributes.
The Phase can contain one KeyCompound node.
Sub-nodes: none.
The AutoFlash is a suggestion written by the XFlowSaver unit operation on how the phase equilibrium of the stream should be calculated. The contained text summarizes the flash conditions.
Value | Description |
---|---|
TP | Flash the target stream at specified temperature and pressure |
PVF | Flash the target stream at specified pressure and molar vapor fraction |
PH | Flash the target stream at specified temperature and enthalpy |
The XFlow can contain one AutoFlash node.
Sub-nodes: none.
The enthalpy contained in an XFlow file is relative to a mixture enthalpy of a given phase at overall conditions, at given pressure and temperature. The enthalpy corrected for this reference enthalpy, along with the conditions for the reference enthalpy, are stored so that a target stream can be at specified enthalpy even if the thermodynamic system used for the target stream is inconsistent with the thermodynamic system that was used to create the XFlow file.
The enthalpy state is optional, but if absent or incomplete, the XFlowLoader unit will not be able to use enthalpy specifications for phase equilibrium of the target stream.
The molar and mass based enthalpies are both optional and not mutually exclusive (if the molecular weights are known in the target thermodynamic system, they are interchangeable). The reference state details are of no use if not at least the molar or mass based enthalpy is stored, and vice versa, the enthalpies are of no use if not the entire reference state is stored.
Each of the data items is stored as an English formatted contained text of a sub node of the XFlow node. Each of the sub-nodes must appear at most one time. The sub nodes and their meaning are listed in below table.
Sub-node | Description |
---|---|
MolarEnthalpy | The difference in J/mol between the overall enthalpy of the stream and that of the reference phase at overall composition at reference pressure and temperature. |
SpecificEnthalpy | The difference in J/kg between the overall enthalpy of the stream and that of the reference phase at overall composition at reference pressure and temperature. |
EnthalpyReferencePressure | The reference pressure in Pa. |
EnthalpyReferenceTemperature | The reference temperature in K. |
EnthalpyReferencePhase | The name of the reference phase. |
EnthalpyReferencePhaseAggregationState | The state of aggregation of the reference phase |