Skip to the content.

Component Package

Documentation for component modeling in NeqSim.

Table of Contents


Overview

Location: neqsim.thermo.component

The component package contains 65+ classes for modeling pure component properties and their behavior in mixtures.


Component Interface

Accessing Components

// By name
ComponentInterface methane = fluid.getComponent("methane");

// By index
ComponentInterface comp = fluid.getComponent(0);

// In specific phase
ComponentInterface methaneInGas = fluid.getGasPhase().getComponent("methane");

Common Methods

ComponentInterface comp = fluid.getComponent("methane");

// Pure component properties
double Tc = comp.getTC();           // Critical temperature (K)
double Pc = comp.getPC();           // Critical pressure (bar)
double omega = comp.getAcentricFactor();
double MW = comp.getMolarMass();    // kg/mol

// Composition
double z = comp.getz();             // Overall mole fraction
double x = comp.getx();             // Phase mole fraction
double n = comp.getNumberOfMolesInPhase();

// Fugacity
double f = comp.getFugacity();
double phi = comp.getFugacityCoefficient();

Pure Component Properties

Critical Properties

ComponentInterface comp = fluid.getComponent("propane");

double Tc = comp.getTC();        // 369.83 K
double Pc = comp.getPC();        // 42.48 bar
double Vc = comp.getVc();        // Critical volume (m³/mol)
double Zc = comp.getZc();        // Critical Z-factor
double omega = comp.getAcentricFactor();  // 0.1523

Physical Properties

// Molecular properties
double MW = comp.getMolarMass();            // kg/mol
double Tb = comp.getNormalBoilingPoint();   // K
double Tf = comp.getTriplePointTemperature(); // K

// Reference properties
double dHf = comp.getEnthalpyOfFormation(); // kJ/mol
double dGf = comp.getGibbsEnergyOfFormation();
double Href = comp.getReferencePotential();

EoS Parameters

// SRK/PR parameters
double a = comp.geta();     // Attraction parameter
double b = comp.getb();     // Co-volume parameter

// CPA parameters (for associating)
double eps = comp.getAssociationEnergy();
double beta = comp.getAssociationVolume();

// PC-SAFT parameters
double m = comp.getmSAFTi();        // Segment number
double sigma = comp.getSigmaSAFTi(); // Segment diameter
double epsilon = comp.getEpsSAFTi(); // Dispersion energy

Component in Phase

Phase Composition

PhaseInterface gas = fluid.getGasPhase();
ComponentInterface methane = gas.getComponent("methane");

// Mole fraction in phase
double x_i = methane.getx();

// Fugacity coefficient
double phi_i = methane.getFugacityCoefficient();
double lnPhi = methane.getLogFugacityCoefficient();

// Fugacity
double f_i = methane.getFugacity();

// Chemical potential
double mu_i = methane.getChemicalPotential();

// Activity (for liquid phases)
double a_i = methane.getActivity();
double gamma = methane.getActivityCoefficient();

Partial Properties

// Partial molar volume
double Vbar_i = comp.getPartialMolarVolume();

// Partial molar enthalpy
double Hbar_i = comp.getPartialMolarEnthalpy();

// Partial molar entropy
double Sbar_i = comp.getPartialMolarEntropy();

Derivatives

// Fugacity coefficient derivatives
double dPhidT = comp.getdfugdT();        // d(ln φ)/dT
double dPhidP = comp.getdfugdP();        // d(ln φ)/dP
double dPhidx = comp.getdfugdx(j);       // d(ln φ_i)/dx_j

Component Types

EoS Components

// Standard EoS component
ComponentEos compEos = (ComponentEos) fluid.getComponent("methane");

// Access EoS-specific properties
double ai = compEos.getaT();  // Temperature-dependent a
double bi = compEos.getb();
double alphai = compEos.getAlpha();

CPA Components

// For associating components
ComponentCPA compCPA = (ComponentCPA) fluid.getComponent("water");

// Association properties
double eps = compCPA.getAssociationEnergy();
double beta = compCPA.getAssociationVolume();
int sites = compCPA.getNumberOfAssociationSites();

// Association fraction
double X_A = compCPA.getXsite(0);  // Fraction of site A unbonded

PC-SAFT Components

ComponentPCSAFT compSAFT = (ComponentPCSAFT) fluid.getComponent("n-hexane");

double m = compSAFT.getmSAFTi();      // Chain length
double sigma = compSAFT.getSigmaSAFTi(); // Segment diameter (Å)
double eps = compSAFT.getEpsSAFTi();  // Dispersion energy (K)

Electrolyte Components

// Ions
ComponentElectrolyte ion = (ComponentElectrolyte) fluid.getComponent("Na+");

double charge = ion.getIonicCharge();
double diameter = ion.getIonicDiameter();

Pseudo-Components

// Plus fraction components
ComponentTBP plus = (ComponentTBP) fluid.getComponent("C7+");

double Tb = plus.getNormalBoilingPoint();
double SG = plus.getSpecificGravity();
double MW = plus.getMolarMass();

Database Components

Available Components

NeqSim includes a database with 100+ components:

Category Examples
Light gases nitrogen, oxygen, CO2, H2S, hydrogen
Hydrocarbons methane through n-C20
Cyclic cyclohexane, benzene, toluene
Polar water, methanol, ethanol, MEG, DEG, TEG
Amines MDEA, MEA, DEA, piperazine
Refrigerants R-134a, R-32, ammonia

Adding Components

// Add from database
fluid.addComponent("methane", 1.0);

// Add with alias
fluid.addComponent("CO2", 0.5);  // Carbon dioxide

// Add pseudo-component (TBP method)
fluid.addTBPfraction("C10", 0.1, 140.0, 0.75);  // name, moles, MW, SG

// Add plus fraction
fluid.addPlusFraction("C7+", 0.05, 150.0, 0.78);

Component Name Lookup

// Check if component exists
boolean exists = fluid.hasComponent("methane");

// Get component index
int index = fluid.getComponentIndex("ethane");

Example: Component Properties Report

import neqsim.thermo.system.SystemSrkEos;

SystemSrkEos fluid = new SystemSrkEos(298.15, 50.0);
fluid.addComponent("methane", 0.85);
fluid.addComponent("ethane", 0.10);
fluid.addComponent("propane", 0.05);
fluid.setMixingRule("classic");
fluid.init(0);

System.out.println("Component Properties:");
System.out.println("-------------------------------------------");
System.out.printf("%-10s %8s %8s %8s %8s%n", 
    "Name", "Tc(K)", "Pc(bar)", "omega", "MW");
System.out.println("-------------------------------------------");

for (int i = 0; i < fluid.getNumberOfComponents(); i++) {
    ComponentInterface comp = fluid.getComponent(i);
    System.out.printf("%-10s %8.2f %8.2f %8.4f %8.4f%n",
        comp.getName(),
        comp.getTC(),
        comp.getPC(),
        comp.getAcentricFactor(),
        comp.getMolarMass() * 1000);  // g/mol
}