Skip to the content.

Electrolyzer Equipment

Documentation for electrolyzer equipment in NeqSim process simulation.

Table of Contents


Overview

Location: neqsim.process.equipment.electrolyzer

Classes: | Class | Description | |——-|————-| | Electrolyzer | Base electrolyzer class | | CO2Electrolyzer | CO₂ electrolysis unit |

Electrolyzers convert electrical energy into chemical energy through electrochemical reactions. Key applications:


Electrolyzer Class

Basic Usage

import neqsim.process.equipment.electrolyzer.Electrolyzer;

// Create electrolyzer with water feed
Electrolyzer electrolyzer = new Electrolyzer("PEM Electrolyzer", waterStream);
electrolyzer.setPower(1e6);  // 1 MW
electrolyzer.setEfficiency(0.70);  // 70% efficiency
electrolyzer.run();

// Get hydrogen production
StreamInterface h2Stream = electrolyzer.getHydrogenStream();
double h2Rate = h2Stream.getFlowRate("kg/hr");
System.out.println("H2 production: " + h2Rate + " kg/hr");

CO₂ Electrolyzer

The CO2Electrolyzer converts CO₂ to valuable products through electrolysis.

Basic Usage

import neqsim.process.equipment.electrolyzer.CO2Electrolyzer;

// Create CO2 electrolyzer
CO2Electrolyzer co2Elec = new CO2Electrolyzer("CO2 Electrolyzer", co2Stream);
co2Elec.setPower(500e3);  // 500 kW
co2Elec.run();

// Get products
StreamInterface products = co2Elec.getOutletStream();

Products

CO₂ electrolysis can produce various products depending on the catalyst:


Energy Calculations

Power Consumption

The electrical power required for electrolysis:

\[P = \frac{\Delta G}{\eta_{elec}}\]

Where:

Efficiency

// Set efficiency (energy efficiency)
electrolyzer.setEfficiency(0.75);  // 75%

// Get actual power consumption
double power = electrolyzer.getPower();  // W

Faradaic Efficiency

The fraction of electrical current that drives the desired reaction:

\[\eta_F = \frac{n \times F \times \dot{n}_{product}}{I}\]

Where:


Water Electrolysis

Reaction

\[2H_2O \rightarrow 2H_2 + O_2\]

Energy Requirement

Theoretical minimum: 39.4 kWh/kg H₂ (based on HHV)

Typical actual consumption: | Technology | Energy (kWh/kg H₂) | |————|——————-| | Alkaline | 50-55 | | PEM | 50-60 | | SOEC | 35-45 |

Example

// Water feed
SystemInterface waterFluid = new SystemSrkEos(298.15, 1.0);
waterFluid.addComponent("water", 1.0);
waterFluid.setMixingRule("classic");

Stream waterFeed = new Stream("Water Feed", waterFluid);
waterFeed.setFlowRate(1000.0, "kg/hr");
waterFeed.run();

// PEM Electrolyzer
Electrolyzer pemElec = new Electrolyzer("PEM Stack", waterFeed);
pemElec.setPower(10e6);  // 10 MW
pemElec.setEfficiency(0.70);  // 70%
pemElec.run();

// Hydrogen output
double h2Production = pemElec.getHydrogenStream().getFlowRate("kg/hr");
double specificEnergy = pemElec.getPower() / 1000 / h2Production;  // kWh/kg

System.out.println("H2 production: " + h2Production + " kg/hr");
System.out.println("Specific energy: " + specificEnergy + " kWh/kg H2");

Usage Examples

Green Hydrogen Plant

ProcessSystem process = new ProcessSystem();

// Deionized water feed
SystemInterface diWater = new SystemSrkEos(298.15, 1.0);
diWater.addComponent("water", 1.0);

Stream waterFeed = new Stream("DI Water", diWater);
waterFeed.setFlowRate(2000.0, "kg/hr");
process.add(waterFeed);

// Electrolyzer stack
Electrolyzer electrolyzer = new Electrolyzer("H2 Electrolyzer", waterFeed);
electrolyzer.setPower(20e6);  // 20 MW from renewable source
electrolyzer.setEfficiency(0.72);
process.add(electrolyzer);

// Hydrogen purification (PSA or membrane)
MembraneSeparator h2Purifier = new MembraneSeparator("H2 Purifier", 
    electrolyzer.getHydrogenStream());
h2Purifier.setPermeateFraction("hydrogen", 0.999);
h2Purifier.setPermeateFraction("water", 0.01);
process.add(h2Purifier);

// Compression for storage
Compressor h2Comp = new Compressor("H2 Compressor", h2Purifier.getPermeateStream());
h2Comp.setOutletPressure(350.0, "bara");
h2Comp.setPolytropicEfficiency(0.80);
process.add(h2Comp);

// Run process
process.run();

// Results
double h2Output = h2Comp.getOutletStream().getFlowRate("kg/hr");
double h2Purity = h2Comp.getOutletStream().getFluid().getMoleFraction("hydrogen") * 100;
System.out.println("H2 output: " + h2Output + " kg/hr");
System.out.println("H2 purity: " + h2Purity + " %");

Power-to-Methanol

// CO2 capture stream
Stream co2Stream = new Stream("Captured CO2", co2Fluid);
co2Stream.setFlowRate(1000.0, "kg/hr");

// CO2 electrolyzer producing syngas
CO2Electrolyzer co2Elec = new CO2Electrolyzer("CO2 Electrolyzer", co2Stream);
co2Elec.setPower(5e6);  // 5 MW
co2Elec.run();

// Additional hydrogen from water electrolysis
Electrolyzer h2Elec = new Electrolyzer("H2 Electrolyzer", waterStream);
h2Elec.setPower(15e6);  // 15 MW
h2Elec.run();

// Mix syngas and H2 for methanol synthesis
Mixer syngasMixer = new Mixer("Syngas Mixer");
syngasMixer.addStream(co2Elec.getOutletStream());
syngasMixer.addStream(h2Elec.getHydrogenStream());

// Methanol reactor (downstream)
// ...

Energy Storage Application

// Variable renewable power input
double[] powerProfile = loadRenewablePowerProfile();  // hourly MW

// Electrolyzer with variable power
Electrolyzer electrolyzer = new Electrolyzer("Variable Electrolyzer", waterFeed);
electrolyzer.setEfficiency(0.70);

double totalH2 = 0.0;
for (int hour = 0; hour < 24; hour++) {
    double power = powerProfile[hour] * 1e6;  // Convert MW to W
    
    if (power > 0) {
        electrolyzer.setPower(power);
        electrolyzer.run();
        
        double h2Rate = electrolyzer.getHydrogenStream().getFlowRate("kg/hr");
        totalH2 += h2Rate;
        
        System.out.println("Hour " + hour + ": Power=" + power/1e6 + 
            " MW, H2=" + h2Rate + " kg/hr");
    }
}

System.out.println("Total H2 production: " + totalH2 + " kg");

Operating Parameters

Temperature and Pressure

// Set operating conditions
electrolyzer.setTemperature(80.0, "C");  // PEM typical
electrolyzer.setPressure(30.0, "bara");  // Pressurized operation

// High-temperature electrolysis (SOEC)
electrolyzer.setTemperature(800.0, "C");
electrolyzer.setPressure(1.0, "bara");

Stack Configuration

// Set number of cells
electrolyzer.setNumberOfCells(100);

// Set cell voltage
electrolyzer.setCellVoltage(1.8);  // V

// Calculate current
double current = electrolyzer.getCurrent();  // A