Class BiomassCharacterization

java.lang.Object
neqsim.thermo.characterization.BiomassCharacterization
All Implemented Interfaces:
Serializable

public class BiomassCharacterization extends Object implements Serializable
Characterizes biomass feedstocks for use in NeqSim thermochemical process simulations.

Converts proximate and ultimate analysis data into derived properties needed by gasifiers, pyrolysis reactors, and combustion models. Provides higher/lower heating values, stoichiometric air requirements, and a chemical formula representation.

Supports two input modes:

  • Proximate analysis (dry basis): moisture, volatile matter, fixed carbon, ash — all in mass-percent.
  • Ultimate analysis (dry-ash-free basis): C, H, O, N, S, Cl — all in mass-percent.

Heating values are estimated with the Channiwala-Parikh correlation when not supplied directly.

Usage example:

BiomassCharacterization wood = BiomassCharacterization.library("wood_chips");
double hhv = wood.getHHV(); // MJ/kg daf

BiomassCharacterization custom = new BiomassCharacterization("MyBiomass");
custom.setProximateAnalysis(8.0, 78.0, 14.0, 0.5);
custom.setUltimateAnalysis(50.0, 6.1, 43.0, 0.3, 0.05, 0.01);
custom.calculate();
Version:
1.0
Author:
Even Solbraa
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private double
    Ash content in weight percent (dry basis).
    private boolean
    Whether calculate() has been called.
    private double
    Carbon content in weight percent (daf).
    private String
    Empirical chemical formula string, e.g.
    private double
    Chlorine content in weight percent (daf).
    private double
    Fixed carbon in weight percent (dry basis).
    private double
    Molar H/C ratio.
    private double
    Higher heating value in MJ/kg (dry-ash-free).
    private boolean
    Whether HHV has been explicitly set by the user.
    private double
    Hydrogen content in weight percent (daf).
    private double
    Lower heating value in MJ/kg (dry-ash-free).
    private double
    Moisture content in weight percent (as-received basis).
    private static final double
     
    private static final double
     
    private static final double
     
    private static final double
     
    private static final double
     
    private static final double
     
    private String
    Name or label for this biomass feedstock.
    private double
    Nitrogen content in weight percent (daf).
    private double
    Molar O/C ratio.
    private double
    Oxygen content in weight percent (daf).
    private static final long
    Serialization version UID.
    private double
    Stoichiometric air requirement in kg-air / kg-fuel (dry basis).
    private double
    Sulfur content in weight percent (daf).
    private double
    Volatile matter in weight percent (dry basis).
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a new BiomassCharacterization with the given name.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Calculates all derived properties from the proximate and ultimate analysis.
    private void
    Builds the empirical chemical formula (normalised to 1 mole of carbon).
    private void
    Estimates higher heating value using the Channiwala-Parikh correlation.
    private void
    Calculates lower heating value from HHV.
    private void
    Calculates the stoichiometric air requirement (kg air per kg fuel, dry basis).
    private void
    Ensures calculate() has been called; calls it automatically if not.
    double
    Returns the ash content (wt%, dry basis).
    double
    Returns the carbon content (wt%, daf).
    Returns the empirical chemical formula string (normalised to 1 C atom).
    double
    Returns the chlorine content (wt%, daf).
    double
    Returns the fixed carbon (wt%, dry basis).
    double
    Returns the molar H/C ratio.
    double
    Returns the higher heating value (MJ/kg, daf).
    double
    Returns the hydrogen content (wt%, daf).
    double
    Returns the lower heating value (MJ/kg, daf).
    static List<String>
    Returns an unmodifiable list of supported library feedstock names.
    double
    Returns the moisture content (wt%, as-received).
    Returns the feedstock name.
    double
    Returns the nitrogen content (wt%, daf).
    double
    Returns the molar O/C ratio.
    double
    Returns the oxygen content (wt%, daf).
    double
    Returns the stoichiometric air requirement (kg air / kg dry fuel).
    double
    Returns the sulfur content (wt%, daf).
    double
    Returns the volatile matter (wt%, dry basis).
    boolean
    Returns true if calculate() has been called.
    library(String feedstockName)
    Returns a pre-configured BiomassCharacterization for a common feedstock.
    void
    setHHV(double hhvMjPerKg)
    Sets the HHV directly (overrides the Channiwala-Parikh estimate).
    void
    setLHV(double lhvMjPerKg)
    Sets the LHV directly (overrides the calculated value).
    void
    setProximateAnalysis(double moisturePercent, double volatileMatterPercent, double fixedCarbonPercent, double ashPercent)
    Sets the proximate analysis on a dry basis.
    void
    setUltimateAnalysis(double carbonPercent, double hydrogenPercent, double oxygenPercent, double nitrogenPercent, double sulfurPercent, double chlorinePercent)
    Sets the ultimate analysis on a dry-ash-free basis.
    Returns a map summarising the characterization results.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • serialVersionUID

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

      private String name
      Name or label for this biomass feedstock.
    • moisture

      private double moisture
      Moisture content in weight percent (as-received basis).
    • volatileMatter

      private double volatileMatter
      Volatile matter in weight percent (dry basis).
    • fixedCarbon

      private double fixedCarbon
      Fixed carbon in weight percent (dry basis).
    • ash

      private double ash
      Ash content in weight percent (dry basis).
    • carbonWt

      private double carbonWt
      Carbon content in weight percent (daf).
    • hydrogenWt

      private double hydrogenWt
      Hydrogen content in weight percent (daf).
    • oxygenWt

      private double oxygenWt
      Oxygen content in weight percent (daf).
    • nitrogenWt

      private double nitrogenWt
      Nitrogen content in weight percent (daf).
    • sulfurWt

      private double sulfurWt
      Sulfur content in weight percent (daf).
    • chlorineWt

      private double chlorineWt
      Chlorine content in weight percent (daf).
    • hhv

      private double hhv
      Higher heating value in MJ/kg (dry-ash-free).
    • hhvUserOverride

      private boolean hhvUserOverride
      Whether HHV has been explicitly set by the user.
    • lhv

      private double lhv
      Lower heating value in MJ/kg (dry-ash-free).
    • stoichiometricAir

      private double stoichiometricAir
      Stoichiometric air requirement in kg-air / kg-fuel (dry basis).
    • chemicalFormula

      private String chemicalFormula
      Empirical chemical formula string, e.g. "CH1.46O0.64N0.005S0.001".
    • hcRatio

      private double hcRatio
      Molar H/C ratio.
    • ocRatio

      private double ocRatio
      Molar O/C ratio.
    • calculated

      private boolean calculated
      Whether calculate() has been called.
    • 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:
    • MW_CL

      private static final double MW_CL
      See Also:
  • Constructor Details

    • BiomassCharacterization

      public BiomassCharacterization(String name)
      Constructs a new BiomassCharacterization with the given name.
      Parameters:
      name - feedstock name
  • Method Details

    • setProximateAnalysis

      public void setProximateAnalysis(double moisturePercent, double volatileMatterPercent, double fixedCarbonPercent, double ashPercent)
      Sets the proximate analysis on a dry basis.
      Parameters:
      moisturePercent - moisture content (wt%, as-received)
      volatileMatterPercent - volatile matter (wt%, dry basis)
      fixedCarbonPercent - fixed carbon (wt%, dry basis)
      ashPercent - ash content (wt%, dry basis)
    • setUltimateAnalysis

      public void setUltimateAnalysis(double carbonPercent, double hydrogenPercent, double oxygenPercent, double nitrogenPercent, double sulfurPercent, double chlorinePercent)
      Sets the ultimate analysis on a dry-ash-free basis.
      Parameters:
      carbonPercent - carbon (wt%, daf)
      hydrogenPercent - hydrogen (wt%, daf)
      oxygenPercent - oxygen (wt%, daf)
      nitrogenPercent - nitrogen (wt%, daf)
      sulfurPercent - sulfur (wt%, daf)
      chlorinePercent - chlorine (wt%, daf)
    • calculate

      public void calculate()
      Calculates all derived properties from the proximate and ultimate analysis.
    • calculateHHV

      private void calculateHHV()
      Estimates higher heating value using the Channiwala-Parikh correlation.

      HHV (MJ/kg, daf) = 0.3491 C + 1.1783 H + 0.1005 S - 0.1034 O - 0.0151 N - 0.0211 Ash_daf

    • calculateLHV

      private void calculateLHV()
      Calculates lower heating value from HHV.

      LHV = HHV - 0.2183 * H (accounts for latent heat of water formed from hydrogen combustion)

    • calculateChemicalFormula

      private void calculateChemicalFormula()
      Builds the empirical chemical formula (normalised to 1 mole of carbon).
    • calculateStoichiometricAir

      private void calculateStoichiometricAir()
      Calculates the stoichiometric air requirement (kg air per kg fuel, dry basis).

      Based on the stoichiometry: C + O2 -> CO2, H2 + 0.5 O2 -> H2O, S + O2 -> SO2, less oxygen already present in biomass, divided by oxygen mass fraction in air (0.233).

    • getName

      public String getName()
      Returns the feedstock name.
      Returns:
      feedstock name
    • getMoisture

      public double getMoisture()
      Returns the moisture content (wt%, as-received).
      Returns:
      moisture content in percent
    • getVolatileMatter

      public double getVolatileMatter()
      Returns the volatile matter (wt%, dry basis).
      Returns:
      volatile matter in percent
    • getFixedCarbon

      public double getFixedCarbon()
      Returns the fixed carbon (wt%, dry basis).
      Returns:
      fixed carbon in percent
    • getAsh

      public double getAsh()
      Returns the ash content (wt%, dry basis).
      Returns:
      ash content in percent
    • getCarbonWt

      public double getCarbonWt()
      Returns the carbon content (wt%, daf).
      Returns:
      carbon in percent
    • getHydrogenWt

      public double getHydrogenWt()
      Returns the hydrogen content (wt%, daf).
      Returns:
      hydrogen in percent
    • getOxygenWt

      public double getOxygenWt()
      Returns the oxygen content (wt%, daf).
      Returns:
      oxygen in percent
    • getNitrogenWt

      public double getNitrogenWt()
      Returns the nitrogen content (wt%, daf).
      Returns:
      nitrogen in percent
    • getSulfurWt

      public double getSulfurWt()
      Returns the sulfur content (wt%, daf).
      Returns:
      sulfur in percent
    • getChlorineWt

      public double getChlorineWt()
      Returns the chlorine content (wt%, daf).
      Returns:
      chlorine in percent
    • getHHV

      public double getHHV()
      Returns the higher heating value (MJ/kg, daf).
      Returns:
      HHV in MJ/kg
    • getLHV

      public double getLHV()
      Returns the lower heating value (MJ/kg, daf).
      Returns:
      LHV in MJ/kg
    • getStoichiometricAir

      public double getStoichiometricAir()
      Returns the stoichiometric air requirement (kg air / kg dry fuel).
      Returns:
      stoichiometric air in kg/kg
    • getChemicalFormula

      public String getChemicalFormula()
      Returns the empirical chemical formula string (normalised to 1 C atom).
      Returns:
      chemical formula string
    • getHCRatio

      public double getHCRatio()
      Returns the molar H/C ratio.
      Returns:
      H/C ratio
    • getOCRatio

      public double getOCRatio()
      Returns the molar O/C ratio.
      Returns:
      O/C ratio
    • isCalculated

      public boolean isCalculated()
      Returns true if calculate() has been called.
      Returns:
      true if calculated
    • setHHV

      public void setHHV(double hhvMjPerKg)
      Sets the HHV directly (overrides the Channiwala-Parikh estimate).
      Parameters:
      hhvMjPerKg - higher heating value in MJ/kg (daf)
    • setLHV

      public void setLHV(double lhvMjPerKg)
      Sets the LHV directly (overrides the calculated value).
      Parameters:
      lhvMjPerKg - lower heating value in MJ/kg (daf)
    • ensureCalculated

      private void ensureCalculated()
      Ensures calculate() has been called; calls it automatically if not.
    • toMap

      public Map<String,Double> toMap()
      Returns a map summarising the characterization results.
      Returns:
      map of property name to value
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • library

      public static BiomassCharacterization library(String feedstockName)
      Returns a pre-configured BiomassCharacterization for a common feedstock.

      Supported names (case-insensitive):

      • wood_chips — softwood chips (pine/spruce)
      • straw — wheat/barley straw
      • corn_stover — dried maize residue
      • bagasse — sugarcane bagasse
      • sewage_sludge — dried municipal sewage sludge
      • msw — municipal solid waste (generic)
      • microalgae — generic Chlorella-type microalgae
      • rice_husk — rice husk
      Parameters:
      feedstockName - name of feedstock (case-insensitive)
      Returns:
      configured BiomassCharacterization
      Throws:
      IllegalArgumentException - if feedstock name is unknown
    • getLibraryFeedstocks

      public static List<String> getLibraryFeedstocks()
      Returns an unmodifiable list of supported library feedstock names.
      Returns:
      list of feedstock names