Class Flare
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.TwoPortEquipment
neqsim.process.equipment.flare.Flare
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, TwoPortInterface, SimulationInterface, NamedInterface
Flare unit operation for combustion of a process stream.
- Author:
- esol
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classResult object containing utilization against the configured design capacities. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate Flare.CapacityCheckResultprivate doubleprivate doubleprivate static final longprivate doubleFields inherited from class TwoPortEquipment
inStream, outStreamFields inherited from class ProcessEquipmentBaseClass
conditionAnalysisMessage, energyStream, hasController, isSolved, properties, reportFields inherited from class SimulationBaseClass
calcIdentifier, calculateSteadyState, timeFields inherited from class NamedBaseClass
name -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.Flare(String name, StreamInterface inletStream) Constructor setting inlet stream. -
Method Summary
Modifier and TypeMethodDescriptionprivate FlarePerformanceDTObuildPerformanceSummary(String label, double scenarioHeatDutyW, double massRateKgS, double molarRateMoleS, double co2RateKgS, Map<String, Double> emissionMap) private doubleconvertMassFlowToKgPerSec(double value, String unit) private doubleconvertMolarFlowToMolePerSec(double value, String unit) private doubleestimateCO2EmissionFromMassRate(double massRateKgS) private doubleestimateHeatDutyFromMassRate(double massRateKgS) private doubleestimateMolarRateFromMassRate(double massRateKgS) doubleestimateRadiationHeatFlux(double groundDistanceM) Estimate the flame radiation heat flux at a horizontal ground distance using the currently calculated heat duty.doubleestimateRadiationHeatFlux(double scenarioHeatDutyW, double groundDistanceM) Estimate the flame radiation heat flux at a horizontal ground distance for a specified heat duty.Evaluate the current operation against configured design capacities.evaluateCapacity(double scenarioHeatDutyW, double massRateKgS, double molarRateMoleS) Evaluate a hypothetical load case against configured design capacities.private Flare.CapacityCheckResultevaluateCapacityInternal(double scenarioHeatDutyW, double massRateKgS, double molarRateMoleS) doubleGet CO2 emissions in kg/s.doublegetCO2Emission(String unit) Get CO2 emissions in specified unit.doubleGet cumulative CO2 emissions.doublegetCumulativeGasBurned(String unit) Get cumulative gas burned.doubleGet cumulative heat released.Build a dispersion surrogate descriptor for the current operating point.getDispersionSurrogate(double massRateKgS, double molarRateMoleS) Build a dispersion surrogate descriptor for a specified mass and molar rate.doubleGet heat released from flare.doublegetHeatDuty(String unit) Get heat released in desired unit.Latest computed capacity check result.Produce a performance summary DTO for the current operating point.getPerformanceSummary(String scenarioName, double scenarioHeatDutyW, double massRateKgS, double molarRateMoleS) Produce a performance summary DTO for a hypothetical load case.doubleGet total transient simulation time tracked.doubleradiationDistanceForFlux(double fluxThresholdWm2) Determine the horizontal distance at which the radiation level drops to the specified threshold.doubleradiationDistanceForFlux(double scenarioHeatDutyW, double fluxThresholdWm2) Determine the horizontal distance at which the radiation level drops to the specified threshold for a scenario heat duty.voidreset()Reset cumulative values.voidReset cumulative values (useful when starting a new transient simulation).voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.scaleEmissionMap(double massRateKgS) voidsetDesignHeatDutyCapacity(double value, String unit) Configure the design heat-release capacity for capacity validation.voidsetDesignMassFlowCapacity(double value, String unit) Configure the design mass-flow capacity for capacity validation.voidsetDesignMolarFlowCapacity(double value, String unit) Configure the design molar-flow capacity for capacity validation.voidsetFlameHeight(double flameHeight) Set the effective flame centerline height used for radiation calculations.voidsetInletStream(StreamInterface stream) Set inlet Stream of twoport.voidsetRadiantFraction(double radiantFraction) Define the radiant fraction of the flare heat release used for point-source radiation.voidsetTipDiameter(double tipDiameter) Set flare tip diameter used for exit velocity and dispersion surrogate estimates.toJson()Serializes the Process Equipment along with its state to a JSON string.toJson(ReportConfig cfg) Serializes the Process Equipment with configurable level of detail.voidupdateCumulative(double timeStep) Update cumulative values for dynamic/transient operation.Methods inherited from class TwoPortEquipment
getInletPressure, getInletStream, getInletTemperature, getMassBalance, getOutletPressure, getOutletStream, getOutletTemperature, setInletPressure, setInletTemperature, setOutletPressure, setOutletStream, setOutletTemperature, validateSetupMethods inherited from class ProcessEquipmentBaseClass
copy, displayResult, equals, getConditionAnalysisMessage, getController, getEnergyStream, getEntropyProduction, getExergyChange, getMassBalance, getMechanicalDesign, getMinimumFlow, getPressure, getPressure, getProperty, getReport_json, getResultTable, getSpecification, getTemperature, getTemperature, getThermoSystem, hashCode, initMechanicalDesign, isActive, isActive, isSetEnergyStream, reportResults, run_step, runConditionAnalysis, setController, setEnergyStream, setEnergyStream, setFlowValveController, setMinimumFlow, setPressure, setRegulatorOutSignal, setSpecification, setTemperature, solvedMethods inherited from class SimulationBaseClass
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTimeMethods inherited from class NamedBaseClass
getName, getTagName, setName, setTagNameMethods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface NamedInterface
getName, getTagName, setName, setTagNameMethods inherited from interface ProcessEquipmentInterface
getCapacityDuty, getCapacityMax, getExergyChange, getFluid, getRestCapacity, needRecalculationMethods inherited from interface SimulationInterface
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, run, run_step, runTransient, runTransient, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTimeMethods inherited from interface TwoPortInterface
getInStream, getOutStream
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
heatDuty
private double heatDuty -
co2Emission
private double co2Emission -
flameHeight
private double flameHeight -
radiantFraction
private double radiantFraction -
tipDiameter
private double tipDiameter -
designHeatDutyCapacityW
private double designHeatDutyCapacityW -
designMassFlowCapacityKgS
private double designMassFlowCapacityKgS -
designMolarFlowCapacityMoleS
private double designMolarFlowCapacityMoleS -
lastCapacityCheck
-
cumulativeHeatReleasedGJ
private double cumulativeHeatReleasedGJ -
cumulativeGasBurnedKg
private double cumulativeGasBurnedKg -
cumulativeCO2EmissionKg
private double cumulativeCO2EmissionKg -
lastTransientTime
private double lastTransientTime
-
-
Constructor Details
-
Flare
-
Flare
Constructor setting inlet stream.- Parameters:
name- name of flareinletStream- inlet stream
-
-
Method Details
-
setInletStream
Set inlet Stream of twoport.- Specified by:
setInletStreamin interfaceTwoPortInterface- Overrides:
setInletStreamin classTwoPortEquipment- Parameters:
stream- value to set
-
run
In this method all thermodynamic and unit operations will be calculated in a steady state calculation.
- Parameters:
id- UUID
-
updateCumulative
public void updateCumulative(double timeStep) Update cumulative values for dynamic/transient operation.- Parameters:
timeStep- time step in seconds
-
resetCumulative
public void resetCumulative()Reset cumulative values (useful when starting a new transient simulation). -
reset
public void reset()Reset cumulative values. Shorthand for resetCumulative(). -
getCumulativeHeatReleased
Get cumulative heat released.- Parameters:
unit- engineering unit, e.g. "GJ", "MJ", "MMBtu"- Returns:
- cumulative heat released in specified unit
-
getCumulativeGasBurned
Get cumulative gas burned.- Parameters:
unit- engineering unit, e.g. "kg", "tonnes"- Returns:
- cumulative gas burned in specified unit
-
getCumulativeCO2Emission
Get cumulative CO2 emissions.- Parameters:
unit- engineering unit, e.g. "kg", "tonnes"- Returns:
- cumulative CO2 emissions in specified unit
-
getTransientTime
public double getTransientTime()Get total transient simulation time tracked.- Returns:
- time in seconds
-
getHeatDuty
public double getHeatDuty()Get heat released from flare.- Returns:
- heat duty in W
-
getHeatDuty
Get heat released in desired unit.- Parameters:
unit- engineering unit, e.g. "MW"- Returns:
- heat duty in specified unit
-
getCO2Emission
public double getCO2Emission()Get CO2 emissions in kg/s.- Returns:
- CO2 emission rate
-
getCO2Emission
Get CO2 emissions in specified unit. Supported units: kg/sec, kg/hr, kg/day- Parameters:
unit- desired unit- Returns:
- emission in specified unit
-
setFlameHeight
public void setFlameHeight(double flameHeight) Set the effective flame centerline height used for radiation calculations.- Parameters:
flameHeight- flame height in meters
-
setRadiantFraction
public void setRadiantFraction(double radiantFraction) Define the radiant fraction of the flare heat release used for point-source radiation.- Parameters:
radiantFraction- fraction (0-1)
-
setTipDiameter
public void setTipDiameter(double tipDiameter) Set flare tip diameter used for exit velocity and dispersion surrogate estimates.- Parameters:
tipDiameter- tip diameter in meters
-
setDesignHeatDutyCapacity
Configure the design heat-release capacity for capacity validation.- Parameters:
value- heat-duty valueunit- engineering unit (W, kW, MW)
-
setDesignMassFlowCapacity
Configure the design mass-flow capacity for capacity validation.- Parameters:
value- mass-flow valueunit- supported units: kg/sec, kg/hr, kg/day
-
setDesignMolarFlowCapacity
Configure the design molar-flow capacity for capacity validation.- Parameters:
value- molar-flow valueunit- supported units: mole/sec, kmole/hr
-
estimateRadiationHeatFlux
public double estimateRadiationHeatFlux(double groundDistanceM) Estimate the flame radiation heat flux at a horizontal ground distance using the currently calculated heat duty.- Parameters:
groundDistanceM- horizontal distance from flare base [m]- Returns:
- radiant heat flux [W/m2]
-
estimateRadiationHeatFlux
public double estimateRadiationHeatFlux(double scenarioHeatDutyW, double groundDistanceM) Estimate the flame radiation heat flux at a horizontal ground distance for a specified heat duty.- Parameters:
scenarioHeatDutyW- heat duty in WgroundDistanceM- horizontal distance from flare base [m]- Returns:
- radiant heat flux [W/m2]
-
radiationDistanceForFlux
public double radiationDistanceForFlux(double fluxThresholdWm2) Determine the horizontal distance at which the radiation level drops to the specified threshold.- Parameters:
fluxThresholdWm2- target heat flux [W/m2]- Returns:
- horizontal distance from flare base [m]
-
radiationDistanceForFlux
public double radiationDistanceForFlux(double scenarioHeatDutyW, double fluxThresholdWm2) Determine the horizontal distance at which the radiation level drops to the specified threshold for a scenario heat duty.- Parameters:
scenarioHeatDutyW- heat duty in WfluxThresholdWm2- target heat flux [W/m2]- Returns:
- horizontal distance from flare base [m]
-
getDispersionSurrogate
Build a dispersion surrogate descriptor for the current operating point.- Returns:
- surrogate DTO with momentum-like metrics
-
getDispersionSurrogate
public FlareDispersionSurrogateDTO getDispersionSurrogate(double massRateKgS, double molarRateMoleS) Build a dispersion surrogate descriptor for a specified mass and molar rate.- Parameters:
massRateKgS- mass flow in kg/smolarRateMoleS- molar flow in mole/s- Returns:
- surrogate DTO with momentum-like metrics
-
evaluateCapacity
Evaluate the current operation against configured design capacities.- Returns:
- capacity check result
-
evaluateCapacity
public Flare.CapacityCheckResult evaluateCapacity(double scenarioHeatDutyW, double massRateKgS, double molarRateMoleS) Evaluate a hypothetical load case against configured design capacities.- Parameters:
scenarioHeatDutyW- heat duty in WmassRateKgS- mass flow in kg/smolarRateMoleS- molar flow in mole/s- Returns:
- capacity check result for the specified scenario
-
evaluateCapacityInternal
private Flare.CapacityCheckResult evaluateCapacityInternal(double scenarioHeatDutyW, double massRateKgS, double molarRateMoleS) -
getLastCapacityCheck
Latest computed capacity check result.- Returns:
- last capacity result
-
getPerformanceSummary
Produce a performance summary DTO for the current operating point.- Returns:
- performance DTO containing emissions, radiation and capacity data
-
getPerformanceSummary
public FlarePerformanceDTO getPerformanceSummary(String scenarioName, double scenarioHeatDutyW, double massRateKgS, double molarRateMoleS) Produce a performance summary DTO for a hypothetical load case.- Parameters:
scenarioName- label for the scenarioscenarioHeatDutyW- heat duty in W (if <=0 the value will be estimated from mass rate)massRateKgS- mass flow in kg/smolarRateMoleS- molar flow in mole/s (optional, negative to auto-estimate)- Returns:
- performance DTO containing emissions, radiation and capacity data
-
buildPerformanceSummary
private FlarePerformanceDTO buildPerformanceSummary(String label, double scenarioHeatDutyW, double massRateKgS, double molarRateMoleS, double co2RateKgS, Map<String, Double> emissionMap) -
estimateHeatDutyFromMassRate
private double estimateHeatDutyFromMassRate(double massRateKgS) -
estimateMolarRateFromMassRate
private double estimateMolarRateFromMassRate(double massRateKgS) -
estimateCO2EmissionFromMassRate
private double estimateCO2EmissionFromMassRate(double massRateKgS) -
buildEmissionMap
-
scaleEmissionMap
-
convertMassFlowToKgPerSec
-
convertMolarFlowToMolePerSec
-
toJson
Serializes the Process Equipment along with its state to a JSON string.
- Specified by:
toJsonin interfaceProcessEquipmentInterface- Overrides:
toJsonin classTwoPortEquipment- Returns:
- json string.
-
toJson
Serializes the Process Equipment with configurable level of detail.- Specified by:
toJsonin interfaceProcessEquipmentInterface- Overrides:
toJsonin classTwoPortEquipment- Parameters:
cfg- report configuration- Returns:
- json string
-