Class FlareStack
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, SimulationInterface, NamedInterface
- POINT_SOURCE: q = chi_r * Q / (4 pi R^2)
- CHAMBERLAIN: line-source style with emissive power, flame length, wind tilt, and atmospheric attenuation.
- ΔP_tip = K_tip * 0.5 * rho_exit * u_exit^2
- Coefficients for Chamberlain are exposed so you can calibrate to your standard/vendor.
- This is an engineering model; validate before use for regulatory work.
- Author:
- esol
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static class(package private) static class(package private) static classstatic enum(package private) static class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate StreamInterfaceprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate intprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate FlareStack.RadiationModelprivate StreamInterfaceprivate static final longprivate doubleprivate StreamInterfaceprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleFields 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 TypeMethodDescriptiondoublechamberlainHeatFlux(double groundRange_m) Chamberlain-style line source with tilt, emissive power and attenuation.private static doubleclamp01(double v) Getter for the fieldairAssist.Getter for the fieldemissionsKgPerHr.doubleGetter for the fieldheatReleaseMW.doublegetMassBalance(String unit) getMassBalance.private static doublegetMoleFrac(SystemInterface s, String comp) Getter for the fieldreliefInlet.Getter for the fieldsteamAssist.doubleGetter for the fieldtipBackpressureBar.doubleheatFlux_W_m2(double groundRange_m) Heat flux at ground point located downwind distance R (m) from the flare base.doublepointSourceHeatFlux(double groundRange_m) Simple point-source radiation from flame centroid at height tipElevation.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.private static doublesafeRate(double v) voidSetter for the fieldairAssist.voidsetAmbient(double tempK, double pressBar) setAmbient.voidsetBurningEfficiency(double eff) Setter for the fieldburningEfficiency.voidsetChamberlainAttenuation(double kAtten_1_per_m) setChamberlainAttenuation.voidsetChamberlainEmissivePower(double epC_kWm2, double epA) setChamberlainEmissivePower.voidsetChamberlainFlameLength(double lfC, double lfA, double lfB) setChamberlainFlameLength.voidsetChamberlainSegments(int n) setChamberlainSegments.voidsetChamberlainTilt(double kTilt) setChamberlainTilt.voidsetCOFraction(double f) setCOFraction.voidsetExcessAirFrac(double f) Setter for the fieldexcessAirFrac.voidsetRadiantFraction(double f) Setter for the fieldradiantFraction.voidSetter for the fieldradiationModel.voidSetter for the fieldreliefInlet.voidsetSO2Conversion(double f) setSO2Conversion.voidSetter for the fieldsteamAssist.voidsetTipDiameter(double m) setTipDiameter.voidsetTipElevation(double m) setTipElevation.voidsetTipLossK(double k) Setter for the fieldtipLossK.voidsetUnburnedTHCFraction(double f) Setter for the fieldunburnedTHCFraction.voidsetWindSpeed10m(double u) Setter for the fieldwindSpeed10m.Methods 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, solved, toJson, toJsonMethods 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, needRecalculation, validateSetupMethods inherited from interface SimulationInterface
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, run, run_step, runTransient, runTransient, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTime
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
reliefInlet
-
airAssist
-
steamAssist
-
tipDiameter_m
private double tipDiameter_m -
tipElevation_m
private double tipElevation_m -
ambientTempK
private double ambientTempK -
ambientPressBar
private double ambientPressBar -
windSpeed10m
private double windSpeed10m -
burningEfficiency
private double burningEfficiency -
radiantFraction
private double radiantFraction -
so2Conversion
private double so2Conversion -
unburnedTHCFraction
private double unburnedTHCFraction -
coFraction
private double coFraction -
excessAirFrac
private double excessAirFrac -
inletMassKgPerSec
private double inletMassKgPerSec -
airAssistMassKgPerSec
private double airAssistMassKgPerSec -
steamAssistMassKgPerSec
private double steamAssistMassKgPerSec -
oxygenConsumedKmolPerSec
private double oxygenConsumedKmolPerSec -
emissionsMassKgPerSec
private double emissionsMassKgPerSec -
tipLossK
private double tipLossK -
tipBackpressureBar
private double tipBackpressureBar -
radiationModel
-
ch_epC_kWm2
private double ch_epC_kWm2 -
ch_epA
private double ch_epA -
ch_lfC
private double ch_lfC -
ch_lfA
private double ch_lfA -
ch_lfB
private double ch_lfB -
ch_kTilt
private double ch_kTilt -
ch_kAtten
private double ch_kAtten -
ch_lineSegments
private int ch_lineSegments -
heatReleaseMW
private double heatReleaseMW -
emissionsKgPerHr
-
-
Constructor Details
-
FlareStack
-
-
Method Details
-
setReliefInlet
Setter for the field
reliefInlet.- Parameters:
s- aStreamInterfaceobject
-
getReliefInlet
Getter for the field
reliefInlet.- Returns:
- a
StreamInterfaceobject
-
setAirAssist
Setter for the field
airAssist.- Parameters:
s- aStreamInterfaceobject
-
getAirAssist
Getter for the field
airAssist.- Returns:
- a
StreamInterfaceobject
-
setSteamAssist
Setter for the field
steamAssist.- Parameters:
s- aStreamInterfaceobject
-
getSteamAssist
Getter for the field
steamAssist.- Returns:
- a
StreamInterfaceobject
-
setTipDiameter
public void setTipDiameter(double m) setTipDiameter.
- Parameters:
m- a double
-
setTipElevation
public void setTipElevation(double m) setTipElevation.
- Parameters:
m- a double
-
setBurningEfficiency
public void setBurningEfficiency(double eff) Setter for the field
burningEfficiency.- Parameters:
eff- a double
-
setRadiantFraction
public void setRadiantFraction(double f) Setter for the field
radiantFraction.- Parameters:
f- a double
-
setSO2Conversion
public void setSO2Conversion(double f) setSO2Conversion.
- Parameters:
f- a double
-
setUnburnedTHCFraction
public void setUnburnedTHCFraction(double f) Setter for the field
unburnedTHCFraction.- Parameters:
f- a double
-
setCOFraction
public void setCOFraction(double f) setCOFraction.
- Parameters:
f- a double
-
setExcessAirFrac
public void setExcessAirFrac(double f) Setter for the field
excessAirFrac.- Parameters:
f- a double
-
setAmbient
public void setAmbient(double tempK, double pressBar) setAmbient.
- Parameters:
tempK- a doublepressBar- a double
-
setWindSpeed10m
public void setWindSpeed10m(double u) Setter for the field
windSpeed10m.- Parameters:
u- a double
-
setTipLossK
public void setTipLossK(double k) Setter for the field
tipLossK.- Parameters:
k- a double
-
setRadiationModel
Setter for the field
radiationModel.- Parameters:
m- aFlareStack.RadiationModelobject
-
setChamberlainEmissivePower
public void setChamberlainEmissivePower(double epC_kWm2, double epA) setChamberlainEmissivePower.
- Parameters:
epC_kWm2- a doubleepA- a double
-
setChamberlainFlameLength
public void setChamberlainFlameLength(double lfC, double lfA, double lfB) setChamberlainFlameLength.
- Parameters:
lfC- a doublelfA- a doublelfB- a double
-
setChamberlainTilt
public void setChamberlainTilt(double kTilt) setChamberlainTilt.
- Parameters:
kTilt- a double
-
setChamberlainAttenuation
public void setChamberlainAttenuation(double kAtten_1_per_m) setChamberlainAttenuation.
- Parameters:
kAtten_1_per_m- a double
-
setChamberlainSegments
public void setChamberlainSegments(int n) setChamberlainSegments.
- Parameters:
n- a int
-
getHeatReleaseMW
public double getHeatReleaseMW()Getter for the field
heatReleaseMW.- Returns:
- a double
-
getEmissionsKgPerHr
-
getTipBackpressureBar
public double getTipBackpressureBar()Getter for the field
tipBackpressureBar.- Returns:
- a double
-
run
In this method all thermodynamic and unit operations will be calculated in a steady state calculation.
- Parameters:
id- UUID
-
getMassBalance
getMassBalance.
- Specified by:
getMassBalancein interfaceProcessEquipmentInterface- Overrides:
getMassBalancein classProcessEquipmentBaseClass- Parameters:
unit- aStringobject- Returns:
- a double
-
heatFlux_W_m2
public double heatFlux_W_m2(double groundRange_m) Heat flux at ground point located downwind distance R (m) from the flare base. Uses the currently selected radiation model.- Parameters:
groundRange_m- a double- Returns:
- a double
-
pointSourceHeatFlux
public double pointSourceHeatFlux(double groundRange_m) Simple point-source radiation from flame centroid at height tipElevation.- Parameters:
groundRange_m- a double- Returns:
- a double
-
chamberlainHeatFlux
public double chamberlainHeatFlux(double groundRange_m) Chamberlain-style line source with tilt, emissive power and attenuation.- Parameters:
groundRange_m- a double- Returns:
- a double
-
getMoleFrac
-
clamp01
private static double clamp01(double v) -
safeRate
private static double safeRate(double v)
-