Class BiomassGasifier

All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, ProcessElementInterface, SimulationInterface, NamedInterface

public class BiomassGasifier extends ProcessEquipmentBaseClass
Biomass gasifier reactor for thermochemical conversion of solid biomass to syngas.

Models downdraft, updraft, and fluidized-bed gasification by combining empirical yield correlations with constrained Gibbs equilibrium (via the existing GibbsReactor). The gasifier accepts a biomass characterization and a gasification agent stream, producing a syngas outlet stream and a solid residue (char/ash) outlet stream.

Gasifier Types

  • DOWNDRAFT — co-current flow, low tar, typical for small-scale power
  • UPDRAFT — counter-current flow, high tar, high thermal efficiency
  • FLUIDIZED_BED — bubbling/circulating, good for large-scale and varied feedstocks

Gasification Agents

  • Air (default) — produces N2-diluted syngas
  • Oxygen — higher quality syngas
  • Steam — hydrogen-rich syngas
  • Air + steam combinations

Usage example:

BiomassCharacterization wood = BiomassCharacterization.library("wood_chips");

BiomassGasifier gasifier = new BiomassGasifier("Gasifier");
gasifier.setBiomass(wood, 1000.0); // 1000 kg/hr
gasifier.setGasifierType(BiomassGasifier.GasifierType.DOWNDRAFT);
gasifier.setEquivalenceRatio(0.25);
gasifier.setGasificationTemperature(1073.15); // 800 C
gasifier.run();

StreamInterface syngas = gasifier.getSyngasOutStream();
StreamInterface charAsh = gasifier.getCharAshOutStream();
Version:
1.0
Author:
Even Solbraa
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serialization version UID.
      See Also:
    • logger

      private static final org.apache.logging.log4j.Logger logger
      Logger object for class.
    • biomass

      private BiomassCharacterization biomass
      The biomass feedstock characterization.
    • biomassFeedRateKgPerHr

      private double biomassFeedRateKgPerHr
      Biomass feed rate in kg/hr (dry basis).
    • gasifierType

      private BiomassGasifier.GasifierType gasifierType
      Gasifier type.
    • agentType

      private BiomassGasifier.AgentType agentType
      Gasification agent.
    • equivalenceRatio

      private double equivalenceRatio
      Equivalence ratio (actual air / stoichiometric air). Typically 0.2-0.4.
    • steamToBiomassRatio

      private double steamToBiomassRatio
      Steam-to-biomass mass ratio (for STEAM and AIR_STEAM agents).
    • gasificationTemperature

      private double gasificationTemperature
      Gasification temperature in Kelvin. If NaN, uses Gibbs equilibrium (adiabatic).
    • gasificationPressure

      private double gasificationPressure
      Gasification pressure in bara.
    • carbonConversionEfficiency

      private double carbonConversionEfficiency
      Carbon conversion efficiency (0-1). Fraction of feed carbon converted to gas.
    • gibbsReactor

      private transient GibbsReactor gibbsReactor
      Internal Gibbs reactor used for equilibrium calculation.
    • syngasOutStream

      private StreamInterface syngasOutStream
      Syngas (product gas) outlet stream.
    • charAshOutStream

      private StreamInterface charAshOutStream
      Char and ash residue outlet stream.
    • agentInletStream

      private StreamInterface agentInletStream
      Optional external gasification agent inlet stream.
    • coldGasEfficiency

      private double coldGasEfficiency
      Cold gas efficiency (LHV syngas / LHV feed, 0-1).
    • syngasYieldNm3PerKg

      private double syngasYieldNm3PerKg
      Syngas yield in Nm3 per kg dry biomass.
    • syngasLHVMjPerNm3

      private double syngasLHVMjPerNm3
      Syngas LHV in MJ/Nm3.
    • charYieldFraction

      private double charYieldFraction
      Char yield as fraction of dry biomass feed (0-1).
    • hasRun

      private boolean hasRun
      Whether the gasifier has been run.
    • MW_C

      private static final double MW_C
      See Also:
    • MW_H

      private static final double MW_H
      See Also:
    • MW_O

      private static final double MW_O
      See Also:
    • MW_N

      private static final double MW_N
      See Also:
    • MW_S

      private static final double MW_S
      See Also:
  • Constructor Details

    • BiomassGasifier

      public BiomassGasifier(String name)
      Creates a biomass gasifier with the given name.
      Parameters:
      name - equipment name
  • Method Details

    • setBiomass

      public void setBiomass(BiomassCharacterization biomass, double feedRateKgPerHr)
      Sets the biomass feedstock and feed rate.
      Parameters:
      biomass - the biomass characterization
      feedRateKgPerHr - dry biomass feed rate in kg/hr
    • setGasifierType

      public void setGasifierType(BiomassGasifier.GasifierType type)
      Sets the gasifier type.
      Parameters:
      type - the gasifier type
    • getGasifierType

      public BiomassGasifier.GasifierType getGasifierType()
      Gets the gasifier type.
      Returns:
      gasifier type
    • setAgentType

      public void setAgentType(BiomassGasifier.AgentType agent)
      Sets the gasification agent type.
      Parameters:
      agent - the gasification agent
    • getAgentType

      public BiomassGasifier.AgentType getAgentType()
      Gets the gasification agent type.
      Returns:
      agent type
    • setEquivalenceRatio

      public void setEquivalenceRatio(double er)
      Sets the equivalence ratio (ER = actual air / stoichiometric air). Typical range: 0.2 to 0.4.
      Parameters:
      er - equivalence ratio
    • getEquivalenceRatio

      public double getEquivalenceRatio()
      Gets the equivalence ratio.
      Returns:
      equivalence ratio
    • setSteamToBiomassRatio

      public void setSteamToBiomassRatio(double ratio)
      Sets the steam-to-biomass mass ratio for steam or air-steam gasification.
      Parameters:
      ratio - steam-to-biomass ratio (kg steam / kg dry biomass)
    • getSteamToBiomassRatio

      public double getSteamToBiomassRatio()
      Gets the steam-to-biomass ratio.
      Returns:
      steam-to-biomass ratio
    • setGasificationTemperature

      public void setGasificationTemperature(double temperatureK)
      Sets the gasification temperature in Kelvin. If not set, operates in adiabatic equilibrium mode.
      Parameters:
      temperatureK - temperature in Kelvin
    • setGasificationTemperature

      public void setGasificationTemperature(double temperature, String unit)
      Sets the gasification temperature with unit specification.
      Parameters:
      temperature - temperature value
      unit - unit string ("K", "C", "F")
    • getGasificationTemperature

      public double getGasificationTemperature()
      Gets the gasification temperature in Kelvin.
      Returns:
      gasification temperature in K
    • setGasificationPressure

      public void setGasificationPressure(double pressureBara)
      Sets the gasification pressure in bara.
      Parameters:
      pressureBara - pressure in bara
    • getGasificationPressure

      public double getGasificationPressure()
      Gets the gasification pressure in bara.
      Returns:
      pressure in bara
    • setCarbonConversionEfficiency

      public void setCarbonConversionEfficiency(double efficiency)
      Sets the carbon conversion efficiency (0 to 1).
      Parameters:
      efficiency - carbon conversion efficiency
    • getCarbonConversionEfficiency

      public double getCarbonConversionEfficiency()
      Gets the carbon conversion efficiency.
      Returns:
      carbon conversion efficiency (0-1)
    • setAgentInletStream

      public void setAgentInletStream(StreamInterface stream)
      Sets an optional external gasification agent inlet stream. When set, this stream provides the gasification agent (air, oxygen, steam) directly, overriding the auto-generated agent from ER.
      Parameters:
      stream - the gasification agent stream
    • getSyngasOutStream

      public StreamInterface getSyngasOutStream()
      Returns the syngas outlet stream.
      Returns:
      syngas outlet stream, or null if not yet run
    • getCharAshOutStream

      public StreamInterface getCharAshOutStream()
      Returns the char/ash residue outlet stream.
      Returns:
      char/ash outlet stream, or null if not yet run
    • getColdGasEfficiency

      public double getColdGasEfficiency()
      Returns the cold gas efficiency (LHV_syngas / LHV_feed).
      Returns:
      cold gas efficiency (0-1)
    • getSyngasYieldNm3PerKg

      public double getSyngasYieldNm3PerKg()
      Returns the syngas yield in Nm3 per kg dry biomass.
      Returns:
      syngas yield
    • getSyngasLHVMjPerNm3

      public double getSyngasLHVMjPerNm3()
      Returns the syngas lower heating value in MJ/Nm3.
      Returns:
      syngas LHV
    • getCharYieldFraction

      public double getCharYieldFraction()
      Returns the char yield as a fraction of dry biomass feed.
      Returns:
      char yield fraction (0-1)
    • getOutletStreams

      public List<StreamInterface> getOutletStreams()
      Returns all outlet streams produced by this equipment. Subclasses override to report their specific outlets. Used by graph builders, DEXPI export, and auto-instrumentation to discover topology without instanceof checks.
      Returns:
      unmodifiable list of outlet streams (empty by default)
    • getInletStreams

      public List<StreamInterface> getInletStreams()
      Returns all inlet streams connected to this equipment. Subclasses override to report their specific inlets. Used by graph builders, DEXPI export, and auto-instrumentation to discover topology without instanceof checks.
      Returns:
      unmodifiable list of inlet streams (empty by default)
    • run

      public void run(UUID id)
      Runs the biomass gasifier simulation.

      Converts the biomass elemental composition and gasification agent into a NeqSim fluid, runs Gibbs equilibrium, and separates products into syngas and char/ash streams.

      Parameters:
      id - UUID for this run
    • ensureComponent

      private void ensureComponent(SystemInterface fluid, String componentName)
      Ensures a component exists in the fluid (adds trace amount if missing).
      Parameters:
      fluid - the SystemInterface
      componentName - the component name
    • calculatePerformanceMetrics

      private void calculatePerformanceMetrics()
      Calculates syngas quality and efficiency metrics after simulation.
    • getMoleFraction

      private double getMoleFraction(SystemInterface system, String componentName)
      Returns the mole fraction of a component in a system, or 0 if not present.
      Parameters:
      system - the thermo system
      componentName - component name
      Returns:
      mole fraction
    • getResults

      public Map<String,Object> getResults()
      Returns a map of key results from the gasifier simulation.
      Returns:
      map of result name to value
    • toJson

      public String toJson()
      Returns a JSON string with the gasifier results.
      Specified by:
      toJson in interface ProcessEquipmentInterface
      Overrides:
      toJson in class ProcessEquipmentBaseClass
      Returns:
      JSON results string
    • toString

      public String toString()
      Overrides:
      toString in class Object