Class ReactiveTray
- All Implemented Interfaces:
Serializable, Runnable, CapacityConstrainedEquipment, TrayInterface, MixerInterface, ProcessEquipmentInterface, ProcessElementInterface, SimulationInterface, NamedInterface
ReactiveMultiphasePHflash for enthalpy-specified trays and
ReactiveMultiphaseTPflash for temperature-specified trays.
This enables reactive distillation, where chemical reactions occur simultaneously with separation on each tray. The non-stoichiometric approach automatically discovers reactions from the elemental composition — no explicit reaction specification is needed.
Usage: Set reactive trays on a DistillationColumn via
column.setReactive(true, startTray, endTray) to enable reactions on a range of trays (the
reactive section), while keeping the rest as standard VLE trays.
- Version:
- 1.0
- Author:
- copilot
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final org.apache.logging.log4j.LoggerLogger object for class.private static final longSerialization version UID.Fields inherited from class SimpleTray
heatInput, trayPressureFields inherited from class Mixer
mixedStream, streamsFields inherited from class ProcessEquipmentBaseClass
conditionAnalysisMessage, energyStream, hasController, isSolved, properties, reportFields inherited from class SimulationBaseClass
calcIdentifier, calculateSteadyState, timeFields inherited from class NamedBaseClass
name -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.private voidrunReactivePHflash(SystemInterface system, double enthalpySpec) Run a reactive PH flash on the tray fluid.private voidrunReactiveTPflash(SystemInterface system) Run a reactive TP flash on the tray fluid.Methods inherited from class SimpleTray
calcMixStreamEnthalpy, calcMixStreamEnthalpy0, getFeedRate, getGasOutStream, getLiquidFlowRate, getLiquidOutStream, getTemperature, getVaporFlowRate, guessTemperature, init, invalidateOutStreamCache, isUseReactiveFlash, massBalance, run2, setCachedGasOutStream, setCachedLiquidOutStream, setHeatInput, setPressure, setTemperature, setUseReactiveFlash, TPflashMethods inherited from class Mixer
addCapacityConstraint, addStream, clearCapacityConstraints, displayResult, equals, getBottleneckConstraint, getCapacityConstraints, getDesignPressureDrop, getEntropyProduction, getInletStreams, getMassBalance, getMaxDesignVelocity, getMaxUtilization, getMechanicalDesign, getMixedSalinity, getNumberOfInputStreams, getOutletStream, getOutletStreams, getOutletTemperature, getOutTemperature, getStream, getThermoSystem, hashCode, initMechanicalDesign, isCapacityAnalysisEnabled, isCapacityExceeded, isDoMultiPhaseCheck, isHardLimitExceeded, isSetOutTemperature, isSetOutTemperature, mixStream, removeCapacityConstraint, removeInputStream, replaceStream, setCapacityAnalysisEnabled, setDesignPressureDrop, setMaxDesignVelocity, setMultiPhaseCheck, setOutletTemperature, setOutTemperature, toJson, toJson, validateSetupMethods inherited from class ProcessEquipmentBaseClass
addController, copy, getAvailableMargin, getAvailableMarginPercent, getConditionAnalysisMessage, getConstraintEvaluationReport, getController, getController, getControllers, getEffectiveCapacityFactor, getEnergyStream, getExergyChange, getFailureMode, getMassBalance, getMaxUtilizationPercent, getMinimumFlow, getPressure, getPressure, getProperty, getReferenceDesignation, getReport_json, getResultTable, getSpecification, getTemperature, getUtilizationSummary, initElectricalDesign, initializeDefaultConstraints, initInstrumentDesign, isActive, isActive, isFailed, isNearCapacityLimit, isSetEnergyStream, reportResults, restoreFromFailure, run_step, runConditionAnalysis, setController, setEnergyStream, setEnergyStream, setFailureMode, setFlowValveController, setMinimumFlow, setReferenceDesignation, setRegulatorOutSignal, setSpecification, simulateDegradedOperation, simulateTrip, solvedMethods inherited from class SimulationBaseClass
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTimeMethods inherited from class NamedBaseClass
getName, getTagNumber, setName, setTagNumberMethods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface CapacityConstrainedEquipment
disableAllConstraints, enableAllConstraints, getAvailableMargin, getAvailableMarginPercent, getMaxUtilizationPercent, getUtilizationSummary, isNearCapacityLimitMethods inherited from interface MixerInterface
getOutStreamMethods inherited from interface NamedInterface
getName, getTagName, getTagNumber, setName, setTagName, setTagNumberMethods inherited from interface ProcessEquipmentInterface
addCapacityConstraint, addController, displayResult, equals, getAvailableMargin, getAvailableMarginPercent, getBottleneckConstraint, getCapacityConstraints, getCapacityDuty, getCapacityMax, getConditionAnalysisMessage, getController, getController, getControllers, getElectricalDesign, getEntropyProduction, getEquipmentState, getExergyChange, getExergyChange, getExergyDestruction, getExergyDestruction, getFluid, getInletStreams, getInstrumentDesign, getMassBalance, getMassBalance, getMaxUtilization, getMaxUtilizationPercent, getMechanicalDesign, getOperatingEnvelopeViolation, getOutletFlowRate, getOutletPressure, getOutletStreams, getOutletTemperature, getPressure, getPressure, getReferenceDesignation, getReferenceDesignationString, getReport_json, getRestCapacity, getResultTable, getSimulationValidationErrors, getSpecification, getTemperature, getUtilizationSummary, hashCode, initElectricalDesign, initInstrumentDesign, initMechanicalDesign, isCapacityExceeded, isHardLimitExceeded, isNearCapacityLimit, isSimulationValid, isWithinOperatingEnvelope, needRecalculation, reportResults, runConditionAnalysis, setController, setReferenceDesignation, setRegulatorOutSignal, setSpecification, toJson, toJson, validateSetupMethods inherited from interface SimulationInterface
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, run, run_step, run_step, runTransient, runTransient, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTime, solvedMethods inherited from interface TrayInterface
addStream
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
logger
private static final org.apache.logging.log4j.Logger loggerLogger object for class.
-
-
Constructor Details
-
ReactiveTray
-
-
Method Details
-
run
In this method all thermodynamic and unit operations will be calculated in a steady state calculation.
Overrides the standard tray flash to use reactive equilibrium. The method follows the same structure as
SimpleTray.run(UUID)but replacesPHflashwithReactiveMultiphasePHflashandTPflashwithReactiveMultiphaseTPflash.- Specified by:
runin interfaceSimulationInterface- Overrides:
runin classSimpleTray- Parameters:
id- UUID
-
runReactiveTPflash
Run a reactive TP flash on the tray fluid.- Parameters:
system- the thermodynamic system
-
runReactivePHflash
Run a reactive PH flash on the tray fluid.- Parameters:
system- the thermodynamic systementhalpySpec- the target enthalpy in J
-