Class CO2Electrolyzer
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.electrolyzer.CO2Electrolyzer
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, SimulationInterface, NamedInterface
Electrochemical reactor converting CO₂ rich feeds to value added products.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleprivate Stringprivate doubleprivate doubleprivate static final doubleprivate Streamprivate GibbsReactorprivate StreamInterfaceprivate Streamprivate static final org.apache.logging.log4j.Loggerprivate static final longprivate booleanFields inherited from class ProcessEquipmentBaseClass
conditionAnalysisMessage, energyStream, hasController, isSolved, properties, reportFields inherited from class SimulationBaseClass
calcIdentifier, calculateSteadyState, timeFields inherited from class NamedBaseClass
name -
Constructor Summary
ConstructorsConstructorDescriptionCO2Electrolyzer(String name) Create an empty CO2Electrolyzer.CO2Electrolyzer(String name, StreamInterface inlet) Create a CO2Electrolyzer tied to an inlet stream. -
Method Summary
Modifier and TypeMethodDescriptionprivate doublecalculateElectronUsage(String component, double productMoles) private voidcollectPhaseMoles(SystemInterface system, PhaseType phaseType, Map<String, Double> accumulator) private SystemInterfacecreateSystem(Map<String, Double> componentMoles, double temperature, double pressure) private doubleprivate voidensureSpeciesPresent(SystemInterface system) Gas product stream.private doublegetInletComponentFlow(String componentName) Get liquid product stream.doublegetMassBalance(String unit) getMassBalance.private voidvoidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.private doublevoidsetCellVoltage(double voltage) Set the cell voltage used for duty estimation.voidsetCo2ComponentName(String componentName) Set the CO₂ component name.voidsetCO2Conversion(double conversion) Overall CO₂ conversion fraction.voidsetCurrentEfficiency(double efficiency) Set the current efficiency (fraction).voidsetElectronsPerMoleProduct(String component, double electrons) Electron requirement per mole of product.voidsetGasProductSelectivity(String component, double selectivity) Selectivity for gas products (moles per mole converted CO₂).final voidsetInletStream(StreamInterface inlet) Attach the inlet stream and create product streams.voidsetLiquidProductSelectivity(String component, double selectivity) Selectivity for liquid products (moles per mole converted CO₂).voidsetProductFaradaicEfficiency(String component, double efficiency) Faradaic efficiency for a product (fraction between 0 and 1).voidsetUseSelectivityModel(boolean useSelectivity) Toggle between analytical selectivity split or equilibrium Gibbs reactor.private voidupdateEnergyConsumption(double electronMolesPerSecond) private voidupdateProductStream(Stream productStream, Map<String, Double> componentMoles, double temperature, double pressure, UUID id) 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:
-
logger
private static final org.apache.logging.log4j.Logger logger -
FARADAY_CONSTANT
private static final double FARADAY_CONSTANT- See Also:
-
inletStream
-
gasProductStream
-
liquidProductStream
-
gibbsReactor
-
gasSelectivities
-
liquidSelectivities
-
faradaicEfficiencies
-
electronsPerProduct
-
co2ComponentName
-
co2Conversion
private double co2Conversion -
cellVoltage
private double cellVoltage -
currentEfficiency
private double currentEfficiency -
useSelectivityModel
private boolean useSelectivityModel
-
-
Constructor Details
-
CO2Electrolyzer
-
CO2Electrolyzer
Create a CO2Electrolyzer tied to an inlet stream.- Parameters:
name- unit nameinlet- inlet stream
-
-
Method Details
-
initializeDefaultElectronNumbers
private void initializeDefaultElectronNumbers() -
setInletStream
Attach the inlet stream and create product streams.- Parameters:
inlet- inlet stream
-
getGasProductStream
-
getLiquidProductStream
Get liquid product stream.- Returns:
- liquid product stream
-
getMassBalance
getMassBalance.
- Specified by:
getMassBalancein interfaceProcessEquipmentInterface- Overrides:
getMassBalancein classProcessEquipmentBaseClass- Parameters:
unit- aStringobject- Returns:
- a double
-
setUseSelectivityModel
public void setUseSelectivityModel(boolean useSelectivity) Toggle between analytical selectivity split or equilibrium Gibbs reactor.- Parameters:
useSelectivity- true for analytical selectivity calculations
-
setGasProductSelectivity
Selectivity for gas products (moles per mole converted CO₂).- Parameters:
component- component nameselectivity- selectivity value
-
setLiquidProductSelectivity
Selectivity for liquid products (moles per mole converted CO₂).- Parameters:
component- component nameselectivity- selectivity value
-
setProductFaradaicEfficiency
Faradaic efficiency for a product (fraction between 0 and 1).- Parameters:
component- component nameefficiency- faradaic efficiency
-
setElectronsPerMoleProduct
Electron requirement per mole of product.- Parameters:
component- component nameelectrons- electrons per mole
-
setCO2Conversion
public void setCO2Conversion(double conversion) Overall CO₂ conversion fraction.- Parameters:
conversion- conversion (0-1)
-
setCellVoltage
public void setCellVoltage(double voltage) Set the cell voltage used for duty estimation.- Parameters:
voltage- cell voltage in V
-
setCurrentEfficiency
public void setCurrentEfficiency(double efficiency) Set the current efficiency (fraction).- Parameters:
efficiency- current efficiency
-
setCo2ComponentName
Set the CO₂ component name.- Parameters:
componentName- component name
-
createSystem
private SystemInterface createSystem(Map<String, Double> componentMoles, double temperature, double pressure) -
distributeBySelectivity
-
runGibbsCalculation
-
collectPhaseMoles
private void collectPhaseMoles(SystemInterface system, PhaseType phaseType, Map<String, Double> accumulator) -
ensureSpeciesPresent
-
calculateElectronUsage
-
getInletComponentFlow
-
updateProductStream
-
updateEnergyConsumption
private void updateEnergyConsumption(double electronMolesPerSecond) -
run
Description copied from interface:SimulationInterfaceIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.
- Parameters:
id- UUID
-