Chemical Properties

Overview

Introduction Chemical properties are the measurable characteristics that define how a substance behaves in storage, transport, reaction, separation, and safety analysis. In process engineering, they are not just reference values; they are model inputs that determine whether a unit operation is feasible, stable, and economically viable. Foundational properties such as boiling point, melting point, critical temperature, critical pressure, critical molar volume, dipole moment, and acentric factor appear throughout thermodynamic models, from vapor–liquid equilibrium and flash calculations to equation-of-state parameterization and transport-property correlations. A practical overview of the broader concept appears in physical property, while chemical-specific identifier standards are tightly linked to CAS Registry Numbers.

For business and technical teams, reliable property retrieval solves a recurring operational problem: decisions are often made under time pressure, and a model is only as trustworthy as its inputs. A refinery planning analyst screening solvents, a battery materials team evaluating processing windows, and a safety engineer checking pressure envelopes all need a repeatable way to retrieve clean property values. Inconsistent identifiers, mixed unit assumptions, or silent data gaps can propagate into procurement errors, oversized equipment, or non-conservative hazard analysis. This category addresses that risk by combining identifier normalization with direct property lookup functions.

Boardflare’s chemical properties category is implemented primarily on top of the chemicals and thermo Python ecosystems. The identifier workflow centers on CAS_FROM_ANY and SEARCH_CHEMICAL, while direct scalar retrieval spans DIPOLE, OMEGA, PC, TC, VC, TB, and TM. For fast generalized access in one call, CHEMICAL_PROPS retrieves a selected numeric property from a thermo.Chemical object. Together, these functions support a disciplined pattern: normalize identity first, then retrieve thermophysical inputs with explicit semantics.

At a mathematical level, this category supports deterministic lookup rather than regression or optimization. If i denotes a specific compound identity and p denotes a property key, the core abstraction is

y = f(i, p),

where y is the returned scalar in a defined unit system. The operational challenge is that identity itself may be provided in different forms (common name, InChI, SMILES, PubChem ID, CAS aliases). Therefore, a robust workflow decomposes into two stages:

i = g(x), \quad y = f(i,p),

with x as the user-provided identifier and g(\cdot) as canonicalization. In practical terms, this is why CAS_FROM_ANY and SEARCH_CHEMICAL are often the first calls in a reproducible engineering model.

When to Use It Chemical property lookup is most valuable when a team’s job-to-be-done is “turn uncertain chemical inputs into defensible model assumptions quickly.” The functions in this category are especially useful in front-end design, operations support, and automated screening pipelines where many compounds are evaluated and traceability matters.

One common scenario is early-stage process screening for solvent or refrigerant candidates. A process engineer may start with market names from vendors, then standardize them before calculating reduced properties and comparing volatility or near-critical behavior. In this workflow, SEARCH_CHEMICAL provides quick metadata confirmation (name/formula/smiles), CAS_FROM_ANY creates a canonical key, and then TB, TC, PC, VC, and OMEGA fill the parameter set required for shortcut equations of state and feasibility checks. This avoids manual copy-paste from multiple references and lowers the chance of mixing similar compounds.

A second scenario is hazard and operability review (HAZOP) preparation where teams need consistent temperature and pressure context for process nodes. During consequence estimation, analysts often need to compare operating conditions against phase-transition landmarks and critical limits. TM and TB help establish expected phase windows for handling and startup planning, while TC and PC define the critical boundary used in high-pressure risk discussions. When data provenance is questioned, the method parameter in the relevant lookup function enables explicit source selection when available, which is useful for audit trails.

Third, this category supports data engineering and digital-twin onboarding. Enterprise datasets frequently contain mixed identifiers: free-text names from ERP systems, CAS strings in procurement records, and structure strings in R&D exports. Ingest pipelines can call CAS_FROM_ANY to normalize records and SEARCH_CHEMICAL to surface ambiguous or failed matches before properties are requested. After canonicalization, CHEMICAL_PROPS offers compact retrieval when the required property key changes by workflow step (for example, MW for mass balance initialization, then Tc and Pc for thermodynamic initialization).

Use these tools when the output must be reproducible across teams and over time. They are less suitable when the question is composition-dependent (multi-component mixture behavior), strongly state-dependent (temperature/pressure-dependent properties across ranges), or requires uncertainty quantification with confidence intervals. In those cases, this category typically provides initial constants, while broader thermo or simulation workflows handle state equations and mixture models.

Finally, use this category when spreadsheet users need parity with Python models. The Boardflare pattern lets analysts keep a familiar Excel-like workflow while inheriting robust Python libraries underneath. That is valuable for organizations transitioning from ad hoc spreadsheet lookups to governed modeling practices: the same function naming and parameterization can be reused in notebook, script, or calculator contexts.

How It Works The category combines identifier resolution and property retrieval. Conceptually, every function belongs to one of two classes.

  1. Identity functions: CAS_FROM_ANY, SEARCH_CHEMICAL
  2. Property functions: CHEMICAL_PROPS, DIPOLE, OMEGA, PC, TC, VC, TB, TM

The identity layer addresses a frequent failure mode in engineering data: the same chemical appears under different labels. CAS numbers are commonly used as stable keys because they disambiguate naming variants. CAS_FROM_ANY maps heterogeneous identifiers to canonical CAS format, while SEARCH_CHEMICAL returns a metadata object summary suitable for human validation. In production data pipelines, this layer is often executed once and cached.

The property layer then retrieves scalar constants by CAS identifier (or by constructing a Chemical object). Several functions expose optional method selection, which matters because upstream libraries may support multiple data sources or estimation methods for the same quantity. Explicit method choice is useful when teams need comparability against a legacy standard or published benchmark.

From a thermodynamics perspective, three critical constants shape a large fraction of reduced-property methods:

T_r = \frac{T}{T_c}, \qquad P_r = \frac{P}{P_c}, \qquad V_r = \frac{V}{V_c}.

Here, TC, PC, and VC provide T_c, P_c, and V_c. Reduced variables are used in corresponding-states frameworks and as normalized coordinates for generalized correlations. If these constants are inaccurate or inconsistent, downstream phase estimates can shift materially.

The acentric factor from OMEGA captures molecular non-sphericity and vapor-pressure curve behavior relative to simple fluids. A common definition is:

\omega = -\log_{10}\left(P_r^{sat}(T_r=0.7)\right)-1.

In practice, \omega is one of the key shape parameters in cubic equation-of-state families and related generalized methods. It improves behavior prediction for non-ideal compounds compared with using critical constants alone.

The dipole moment from DIPOLE contributes to polarity characterization and can influence method selection in transport and phase-equilibrium modeling, especially when comparing compounds with similar molecular weights but different intermolecular interaction behavior. While not always required in shortcut screening, dipole information is valuable when solvent effects or polarity-sensitive separations are under consideration.

TB and TM provide normal boiling and melting temperatures, which are often the most intuitive phase-transition anchors in day-to-day operations. They answer practical questions such as: - Is ambient storage likely to encounter freezing risk? - Does a planned distillation cut sit near atmospheric boiling? - Are startup and shutdown temperature ramps crossing phase boundaries?

CHEMICAL_PROPS offers a flexible interface when model code needs one function call with a variable property key. It can retrieve attributes like molecular weight (MW) and key critical/transition properties (Tb, Tm, Tc, Pc, Vc, omega) from a thermo.Chemical object. This is useful for generic data enrichment utilities where the desired field is decided at runtime.

Assumptions and limitations are important. These tools return pure-component values and metadata from curated sources and estimation routines in the upstream libraries. They do not automatically model mixtures, reaction equilibria, composition shifts, or full state-dependent property surfaces. In governed workflows, teams should document source method, units, and retrieval timestamp for traceability, especially in regulated environments.

From an implementation standpoint, Boardflare wrappers enforce a consistent call signature and return behavior compatible with spreadsheet-like use. Typical error modes include unresolved identifiers, unavailable property records for a given CAS number, or invalid property names in CHEMICAL_PROPS. A robust pipeline handles these explicitly (for example, fail-fast on unresolved identity, warn on missing optional properties, and fallback to alternate sources only when policy allows).

Practical Example Consider a process development team evaluating three candidate solvents for a new extraction step: water, ethanol, and benzene (for illustration only). The team needs a repeatable property sheet to support preliminary equipment sizing and risk screening.

Step 1: Normalize identifiers. Incoming records include mixed labels ("water", "InChI=...ethanol", and "71-43-2"). The team runs CAS_FROM_ANY on each input so that all downstream joins use a canonical CAS key. They also run SEARCH_CHEMICAL once per candidate to confirm that each identifier resolves to the expected compound metadata before continuing.

Step 2: Build the minimum thermo panel. For each canonical CAS number, the team retrieves TB, TM, TC, PC, VC, and OMEGA. This establishes phase-transition anchors and critical constants used in reduced-property calculations. If a design note requires polarity context, they add DIPOLE.

Step 3: Add general attributes for mass/energy bookkeeping. The model utility calls CHEMICAL_PROPS with MW and selected thermal keys, enabling a uniform schema regardless of which property is being requested in that stage.

Step 4: Compute engineering indicators. With T_c and P_c available, the team computes reduced operating points for a planned operating condition (T, P):

T_r = T/T_c, \qquad P_r = P/P_c.

These indicators quickly reveal whether candidates operate close to critical conditions, where fluid behavior can become highly non-linear and equipment assumptions may fail.

Step 5: Apply decision filters. The team excludes compounds with handling constraints outside plant capabilities (for example, very low melting points that force special storage or pressure envelopes near equipment limits). They compare volatility context using TB, critical margins using TC and PC, and model parameter robustness using OMEGA.

Step 6: Export with traceability. Final tables include original identifier, canonical CAS, selected source method (if specified), value units, and retrieval date. This turns one-off lookup activity into a governed artifact that can be reused in simulation, procurement review, and management communication.

Why this is better than traditional manual spreadsheets: manual lookup usually requires multiple hand-maintained references, introduces transcription risk, and makes re-validation expensive when candidate lists change. The Boardflare workflow automates identity resolution and property retrieval in a consistent interface, so re-running a 200-compound screen is operationally similar to running three compounds. That creates speed, repeatability, and auditability without forcing non-programmer users to leave their familiar analysis environment.

How to Choose The quickest way to choose a calculator is to decide whether the current problem is about who the chemical is or which property is needed.

graph TD
    A[Start with user input] --> B{Is identifier ambiguous or mixed format?}
    B -- Yes --> C[Use CAS_FROM_ANY]
    B -- Need metadata check --> D[Use SEARCH_CHEMICAL]
    C --> E{Need one specific property?}
    D --> E
    B -- No --> E
    E -- Flexible runtime property key --> F[Use CHEMICAL_PROPS]
    E -- Dipole moment --> G[Use DIPOLE]
    E -- Acentric factor --> H[Use OMEGA]
    E -- Critical pressure --> I[Use PC]
    E -- Critical temperature --> J[Use TC]
    E -- Critical molar volume --> K[Use VC]
    E -- Normal boiling point --> L[Use TB]
    E -- Melting point --> M[Use TM]

Use this comparison to select the most direct function for each job:

Function Best for Main inputs Returns Strengths Watch-outs
CAS_FROM_ANY Canonicalizing mixed identifiers ID, optional autoload/cache CAS string Excellent first step for data hygiene and joins Can fail if identifier is malformed or too ambiguous
SEARCH_CHEMICAL Human-readable identifier validation ID, optional autoload/cache Metadata summary text Fast sanity check before calculations Output is descriptive text, not a scalar model input
CHEMICAL_PROPS Generic property retrieval by key chemical, thermo_prop Numeric property Flexible for runtime-driven workflows Invalid property key returns error; verify allowed attributes
DIPOLE Molecular polarity reference CASRN, optional method Dipole moment (D) Useful polarity discriminator Not every compound has complete dipole records
OMEGA EOS/corresponding-states parameterization CASRN, optional method Acentric factor Critical for generalized thermodynamic correlations Method/source differences may matter in benchmarking
PC Pressure scaling and critical boundary checks CASRN, optional method Critical pressure (Pa) Core input for reduced pressure and EOS setup Ensure pressure units remain consistent in downstream models
TC Temperature scaling and near-critical checks CASRN, optional method Critical temperature (K) Core input for reduced temperature and screening Near-critical design requires more than a single constant
VC Reduced-volume and CSP workflows CASRN, optional method Critical molar volume (m^3/mol) Useful in corresponding-states property estimation Data sparsity can occur for less-studied chemicals
TB Atmospheric volatility and distillation screening CASRN, optional method Boiling point (K) Intuitive operational anchor Represents normal boiling point, not full vapor-pressure curve
TM Storage/handling phase boundary checks CASRN, optional method Melting point (K) Useful for ambient operability planning Purity and polymorphism can affect real-world behavior

Selection guidance by workflow: - Data onboarding: start with CAS_FROM_ANY, validate with SEARCH_CHEMICAL, then store CAS as the durable key. - Quick scalar lookup in templates: use CHEMICAL_PROPS when the requested field changes dynamically. - Thermo model initialization: prioritize TC, PC, VC, and OMEGA, then add TB and TM for phase-window context. - Polarity-aware screening: include DIPOLE where intermolecular interaction behavior influences process choices.

In short, the most reliable pattern is identity-first, property-second. Teams that formalize that sequence get fewer silent mismatches, faster re-runs, and cleaner handoffs between spreadsheet analysts, simulation engineers, and data platform teams.

CAS_FROM_ANY

This function resolves a user-provided chemical identifier (such as a common name, InChI, InChIKey, PubChem-formatted ID, SMILES, CAS alias, or selected elemental identifiers) to a canonical CAS Registry Number string.

It performs a validated identifier search and returns the normalized CAS form used by downstream engineering property functions.

Excel Usage

=CAS_FROM_ANY(ID, autoload, cache)
  • ID (str, required): Chemical identifier to resolve (name, CAS, InChI, InChIKey, PubChem format, or SMILES).
  • autoload (bool, optional, default: false): Whether to load additional databanks when no immediate match is found (-).
  • cache (bool, optional, default: true): Whether to cache search results for faster repeated lookups (-).

Returns (str): Canonical CAS number string for the resolved chemical identifier.

Example 1: Resolve water name to CAS

Inputs:

ID
water

Excel formula:

=CAS_FROM_ANY("water")

Expected output:

"7732-18-5"

Example 2: Resolve ethanol from InChI string

Inputs:

ID
InChI=1S/C2H6O/c1-2-3/h3H,2H2,1H3

Excel formula:

=CAS_FROM_ANY("InChI=1S/C2H6O/c1-2-3/h3H,2H2,1H3")

Expected output:

"64-17-5"

Example 3: Resolve ethanol from PubChem identifier

Inputs:

ID
pubchem=702

Excel formula:

=CAS_FROM_ANY("pubchem=702")

Expected output:

"64-17-5"

Example 4: Resolve decane from SMILES string

Inputs:

ID
CCCCCCCCCC

Excel formula:

=CAS_FROM_ANY("CCCCCCCCCC")

Expected output:

"124-18-5"

Python Code

Show Code
from chemicals.identifiers import CAS_from_any as chemicals_cas_from_any

def cas_from_any(ID, autoload=False, cache=True):
    """
    Resolve a chemical identifier to its standardized CAS number.

    See: https://chemicals.readthedocs.io/chemicals.identifiers.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        ID (str): Chemical identifier to resolve (name, CAS, InChI, InChIKey, PubChem format, or SMILES).
        autoload (bool, optional): Whether to load additional databanks when no immediate match is found (-). Default is False.
        cache (bool, optional): Whether to cache search results for faster repeated lookups (-). Default is True.

    Returns:
        str: Canonical CAS number string for the resolved chemical identifier.
    """
    try:
        return chemicals_cas_from_any(ID=ID, autoload=autoload, cache=cache)
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

Chemical identifier to resolve (name, CAS, InChI, InChIKey, PubChem format, or SMILES).
Whether to load additional databanks when no immediate match is found (-).
Whether to cache search results for faster repeated lookups (-).

CHEMICAL_PROPS

This function creates a thermo.Chemical object for a specified compound and returns one selected thermodynamic or physical attribute (such as critical temperature, critical pressure, or molecular weight). It is useful for quickly retrieving single-property values from a validated chemical identifier.

Conceptually, the lookup can be viewed as selecting one property from a property map for a fixed chemical state:

y = \mathrm{Property}(\text{chemical},\; p)

where p is the requested property name (for example, MW, T_c, or P_c), and y is the corresponding scalar value.

Excel Usage

=CHEMICAL_PROPS(chemical, thermo_prop)
  • chemical (str, required): Chemical identifier (e.g., ‘Water’, ‘67-56-1’).
  • thermo_prop (str, required): Numeric property attribute name (e.g., ‘MW’, ‘Tb’, ‘Tc’, ‘Pc’).

Returns (float): Numeric property value.

Example 1: Water Molecular Weight

Inputs:

chemical thermo_prop
Water MW

Excel formula:

=CHEMICAL_PROPS("Water", "MW")

Expected output:

18.0153

Example 2: Ethanol Critical Temperature

Inputs:

chemical thermo_prop
Ethanol Tc

Excel formula:

=CHEMICAL_PROPS("Ethanol", "Tc")

Expected output:

514.71

Example 3: Methane Acentric Factor

Inputs:

chemical thermo_prop
Methane omega

Excel formula:

=CHEMICAL_PROPS("Methane", "omega")

Expected output:

0.01142

Example 4: Benzene Critical Pressure

Inputs:

chemical thermo_prop
Benzene Pc

Excel formula:

=CHEMICAL_PROPS("Benzene", "Pc")

Expected output:

4907280

Python Code

Show Code
from thermo import Chemical

def chemical_props(chemical, thermo_prop):
    """
    Retrieve physical and thermodynamic properties for a chemical specimen.

    See: https://thermo.readthedocs.io/thermo.chemical.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        chemical (str): Chemical identifier (e.g., 'Water', '67-56-1').
        thermo_prop (str): Numeric property attribute name (e.g., 'MW', 'Tb', 'Tc', 'Pc'). Valid options: Molecular Weight (MW), Normal Boiling Point (Tb), Melting Point (Tm), Critical Temperature (Tc), Critical Pressure (Pc), Critical Volume (Vc), Acentric Factor (omega).

    Returns:
        float: Numeric property value.
    """
    try:
        c = Chemical(chemical)
        if hasattr(c, thermo_prop):
            return getattr(c, thermo_prop)
        else:
            return f"Error: Property '{thermo_prop}' not found for '{chemical}'"
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

Chemical identifier (e.g., 'Water', '67-56-1').
Numeric property attribute name (e.g., 'MW', 'Tb', 'Tc', 'Pc').

DIPOLE

This function returns a chemical’s dipole moment from available molecular-property data sources using its CAS number.

Dipole moment is a measure of charge separation in a molecule and is used in polarity, intermolecular interaction, and transport-property correlations.

Excel Usage

=DIPOLE(CASRN, method)
  • CASRN (str, required): CAS Registry Number for the target chemical (-).
  • method (str, optional, default: null): Optional data source method name; leave empty for automatic selection (-).

Returns (float): Dipole moment in debye (D).

Example 1: Dipole moment of water

Inputs:

CASRN
7732-18-5

Excel formula:

=DIPOLE("7732-18-5")

Expected output:

1.85

Example 2: Dipole moment of ethanol

Inputs:

CASRN
64-17-5

Excel formula:

=DIPOLE("64-17-5")

Expected output:

1.44

Example 3: Dipole moment of methane

Inputs:

CASRN
74-82-8

Excel formula:

=DIPOLE("74-82-8")

Expected output:

0

Example 4: Dipole moment of benzene

Inputs:

CASRN
71-43-2

Excel formula:

=DIPOLE("71-43-2")

Expected output:

0

Python Code

Show Code
from chemicals.dipole import dipole_moment as chemicals_dipole_moment

def dipole(CASRN, method=None):
    """
    Retrieve the dipole moment of a chemical by CAS number.

    See: https://chemicals.readthedocs.io/chemicals.dipole.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        CASRN (str): CAS Registry Number for the target chemical (-).
        method (str, optional): Optional data source method name; leave empty for automatic selection (-). Default is None.

    Returns:
        float: Dipole moment in debye (D).
    """
    try:
        value = chemicals_dipole_moment(CASRN=CASRN, method=method)
        if value is None:
            return "Error: Dipole moment data is not available for the provided CASRN"
        return value
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

CAS Registry Number for the target chemical (-).
Optional data source method name; leave empty for automatic selection (-).

OMEGA

This function returns a pure component’s acentric factor from curated data sources using its CAS number.

The acentric factor quantifies non-sphericity and deviation from simple-fluid behavior and is widely used in cubic equation-of-state parameterization.

\omega = -\log_{10}\left(P_r^{sat}(T_r=0.7)\right)-1

Excel Usage

=OMEGA(CASRN, method)
  • CASRN (str, required): CAS Registry Number for the target chemical (-).
  • method (str, optional, default: null): Optional data source method name; leave empty for automatic selection (-).

Returns (float): Acentric factor of the specified compound (-).

Example 1: Acentric factor of water

Inputs:

CASRN
7732-18-5

Excel formula:

=OMEGA("7732-18-5")

Expected output:

0.3443

Example 2: Acentric factor of ethanol

Inputs:

CASRN
64-17-5

Excel formula:

=OMEGA("64-17-5")

Expected output:

0.646

Example 3: Acentric factor of methane

Inputs:

CASRN
74-82-8

Excel formula:

=OMEGA("74-82-8")

Expected output:

0.01142

Example 4: Acentric factor of benzene

Inputs:

CASRN
71-43-2

Excel formula:

=OMEGA("71-43-2")

Expected output:

0.211

Python Code

Show Code
from chemicals.acentric import omega as chemicals_omega

def omega(CASRN, method=None):
    """
    Retrieve the acentric factor of a chemical by CAS number.

    See: https://chemicals.readthedocs.io/chemicals.acentric.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        CASRN (str): CAS Registry Number for the target chemical (-).
        method (str, optional): Optional data source method name; leave empty for automatic selection (-). Default is None.

    Returns:
        float: Acentric factor of the specified compound (-).
    """
    try:
        value = chemicals_omega(CASRN=CASRN, method=method)
        if value is None:
            return "Error: Acentric factor data is not available for the provided CASRN"
        return value
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

CAS Registry Number for the target chemical (-).
Optional data source method name; leave empty for automatic selection (-).

PC

This function returns a pure component’s critical pressure from thermophysical data sources using its CAS number.

Critical pressure is the pressure at the critical point and is a core input for cubic equations of state, compressibility correlations, and phase behavior screening.

Excel Usage

=PC(CASRN, method)
  • CASRN (str, required): CAS Registry Number for the target chemical (-).
  • method (str, optional, default: null): Optional data source method name; leave empty for automatic selection (-).

Returns (float): Critical pressure in pascals (Pa).

Example 1: Critical pressure of water

Inputs:

CASRN
7732-18-5

Excel formula:

=PC("7732-18-5")

Expected output:

22064000

Example 2: Critical pressure of ethanol

Inputs:

CASRN
64-17-5

Excel formula:

=PC("64-17-5")

Expected output:

6268000

Example 3: Critical pressure of methane

Inputs:

CASRN
74-82-8

Excel formula:

=PC("74-82-8")

Expected output:

4599200

Example 4: Critical pressure of benzene

Inputs:

CASRN
71-43-2

Excel formula:

=PC("71-43-2")

Expected output:

4907280

Python Code

Show Code
from chemicals.critical import Pc as chemicals_pc

def pc(CASRN, method=None):
    """
    Retrieve the critical pressure of a chemical by CAS number.

    See: https://chemicals.readthedocs.io/chemicals.critical.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        CASRN (str): CAS Registry Number for the target chemical (-).
        method (str, optional): Optional data source method name; leave empty for automatic selection (-). Default is None.

    Returns:
        float: Critical pressure in pascals (Pa).
    """
    try:
        value = chemicals_pc(CASRN=CASRN, method=method)
        if value is None:
            return "Error: Critical pressure data is not available for the provided CASRN"
        return value
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

CAS Registry Number for the target chemical (-).
Optional data source method name; leave empty for automatic selection (-).

SEARCH_CHEMICAL

This function resolves an input identifier through the chemical metadata search engine and returns a concise text summary of the matched compound.

It supports names, CAS numbers, InChI, InChIKey, PubChem-formatted IDs, and SMILES-style lookups accepted by the underlying library.

Excel Usage

=SEARCH_CHEMICAL(ID, autoload, cache)
  • ID (str, required): Chemical identifier to resolve (name, CAS, InChI, InChIKey, PubChem format, or SMILES).
  • autoload (bool, optional, default: false): Whether to load additional databanks when no immediate match is found (-).
  • cache (bool, optional, default: true): Whether to cache search results for faster repeated lookups (-).

Returns (str): Text representation of resolved chemical metadata.

Example 1: Search water by common name

Inputs:

ID
water

Excel formula:

=SEARCH_CHEMICAL("water")

Expected output:

"<ChemicalMetadata, name=water, formula=H2O, smiles=O, MW=18.0153>"

Example 2: Search ethanol by InChI

Inputs:

ID
InChI=1S/C2H6O/c1-2-3/h3H,2H2,1H3

Excel formula:

=SEARCH_CHEMICAL("InChI=1S/C2H6O/c1-2-3/h3H,2H2,1H3")

Expected output:

"<ChemicalMetadata, name=ethanol, formula=C2H6O, smiles=CCO, MW=46.0684>"

Example 3: Search ethanol by PubChem identifier

Inputs:

ID
pubchem=702

Excel formula:

=SEARCH_CHEMICAL("pubchem=702")

Expected output:

"<ChemicalMetadata, name=ethanol, formula=C2H6O, smiles=CCO, MW=46.0684>"

Example 4: Search decane by SMILES

Inputs:

ID
CCCCCCCCCC

Excel formula:

=SEARCH_CHEMICAL("CCCCCCCCCC")

Expected output:

"<ChemicalMetadata, name=decane, formula=C10H22, smiles=CCCCCCCCCC, MW=142.282>"

Python Code

Show Code
from chemicals.identifiers import search_chemical as chemicals_search_chemical

def search_chemical(ID, autoload=False, cache=True):
    """
    Resolve a chemical identifier and return a compact metadata summary.

    See: https://chemicals.readthedocs.io/chemicals.identifiers.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        ID (str): Chemical identifier to resolve (name, CAS, InChI, InChIKey, PubChem format, or SMILES).
        autoload (bool, optional): Whether to load additional databanks when no immediate match is found (-). Default is False.
        cache (bool, optional): Whether to cache search results for faster repeated lookups (-). Default is True.

    Returns:
        str: Text representation of resolved chemical metadata.
    """
    try:
        result = chemicals_search_chemical(ID=ID, autoload=autoload, cache=cache)
        return str(result)
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

Chemical identifier to resolve (name, CAS, InChI, InChIKey, PubChem format, or SMILES).
Whether to load additional databanks when no immediate match is found (-).
Whether to cache search results for faster repeated lookups (-).

TB

This function looks up a chemical’s normal boiling temperature from curated thermophysical databases using its CAS number.

The normal boiling point is the saturation temperature at approximately one atmosphere pressure and is often used for separations, screening, and process design calculations.

Excel Usage

=TB(CASRN, method)
  • CASRN (str, required): CAS Registry Number for the target chemical (-).
  • method (str, optional, default: null): Optional data source method name; leave empty for automatic selection (-).

Returns (float): Normal boiling temperature in kelvin (K).

Example 1: Boiling point of water

Inputs:

CASRN
7732-18-5

Excel formula:

=TB("7732-18-5")

Expected output:

373.124

Example 2: Boiling point of ethanol

Inputs:

CASRN
64-17-5

Excel formula:

=TB("64-17-5")

Expected output:

351.57

Example 3: Boiling point of methane

Inputs:

CASRN
74-82-8

Excel formula:

=TB("74-82-8")

Expected output:

111.667

Example 4: Boiling point of benzene

Inputs:

CASRN
71-43-2

Excel formula:

=TB("71-43-2")

Expected output:

353.219

Python Code

Show Code
from thermo.chemical_package import Tb as thermo_tb

def tb(CASRN, method=None):
    """
    Retrieve the normal boiling temperature of a chemical by CAS number.

    See: https://thermo.readthedocs.io/thermo.chemical_package.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        CASRN (str): CAS Registry Number for the target chemical (-).
        method (str, optional): Optional data source method name; leave empty for automatic selection (-). Default is None.

    Returns:
        float: Normal boiling temperature in kelvin (K).
    """
    try:
        value = thermo_tb(CASRN=CASRN, method=method)
        if value is None:
            return "Error: Boiling point data is not available for the provided CASRN"
        return value
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

CAS Registry Number for the target chemical (-).
Optional data source method name; leave empty for automatic selection (-).

TC

This function returns the critical temperature of a pure component by CAS number using available literature and database methods.

Critical temperature is the highest temperature at which liquid and vapor phases can coexist for a pure substance and is used in reduced-property and equation-of-state workflows.

Excel Usage

=TC(CASRN, method)
  • CASRN (str, required): CAS Registry Number for the target chemical (-).
  • method (str, optional, default: null): Optional data source method name; leave empty for automatic selection (-).

Returns (float): Critical temperature in kelvin (K).

Example 1: Critical temperature of water

Inputs:

CASRN
7732-18-5

Excel formula:

=TC("7732-18-5")

Expected output:

647.096

Example 2: Critical temperature of ethanol

Inputs:

CASRN
64-17-5

Excel formula:

=TC("64-17-5")

Expected output:

514.71

Example 3: Critical temperature of methane

Inputs:

CASRN
74-82-8

Excel formula:

=TC("74-82-8")

Expected output:

190.564

Example 4: Critical temperature of benzene

Inputs:

CASRN
71-43-2

Excel formula:

=TC("71-43-2")

Expected output:

562.02

Python Code

Show Code
from chemicals.critical import Tc as chemicals_tc

def tc(CASRN, method=None):
    """
    Retrieve the critical temperature of a chemical by CAS number.

    See: https://chemicals.readthedocs.io/chemicals.critical.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        CASRN (str): CAS Registry Number for the target chemical (-).
        method (str, optional): Optional data source method name; leave empty for automatic selection (-). Default is None.

    Returns:
        float: Critical temperature in kelvin (K).
    """
    try:
        value = chemicals_tc(CASRN=CASRN, method=method)
        if value is None:
            return "Error: Critical temperature data is not available for the provided CASRN"
        return value
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

CAS Registry Number for the target chemical (-).
Optional data source method name; leave empty for automatic selection (-).

TM

This function looks up a chemical’s melting temperature from curated physical-property sources using its CAS number.

Melting temperature is the phase-transition point between solid and liquid for a pure component and is useful for materials handling and temperature-window checks.

Excel Usage

=TM(CASRN, method)
  • CASRN (str, required): CAS Registry Number for the target chemical (-).
  • method (str, optional, default: null): Optional data source method name; leave empty for automatic selection (-).

Returns (float): Melting temperature in kelvin (K).

Example 1: Melting point of water

Inputs:

CASRN
7732-18-5

Excel formula:

=TM("7732-18-5")

Expected output:

273.15

Example 2: Melting point of ethanol

Inputs:

CASRN
64-17-5

Excel formula:

=TM("64-17-5")

Expected output:

159.05

Example 3: Melting point of methane

Inputs:

CASRN
74-82-8

Excel formula:

=TM("74-82-8")

Expected output:

90.75

Example 4: Melting point of benzene

Inputs:

CASRN
71-43-2

Excel formula:

=TM("71-43-2")

Expected output:

278.65

Python Code

Show Code
from thermo.chemical_package import Tm as thermo_tm

def tm(CASRN, method=None):
    """
    Retrieve the melting temperature of a chemical by CAS number.

    See: https://thermo.readthedocs.io/thermo.chemical_package.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        CASRN (str): CAS Registry Number for the target chemical (-).
        method (str, optional): Optional data source method name; leave empty for automatic selection (-). Default is None.

    Returns:
        float: Melting temperature in kelvin (K).
    """
    try:
        value = thermo_tm(CASRN=CASRN, method=method)
        if value is None:
            return "Error: Melting point data is not available for the provided CASRN"
        return value
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

CAS Registry Number for the target chemical (-).
Optional data source method name; leave empty for automatic selection (-).

VC

This function returns a pure component’s critical molar volume by CAS number using available reference and estimated data sources.

Critical molar volume is the molar volume at the critical point and is commonly used in corresponding-states and property-estimation methods.

Excel Usage

=VC(CASRN, method)
  • CASRN (str, required): CAS Registry Number for the target chemical (-).
  • method (str, optional, default: null): Optional data source method name; leave empty for automatic selection (-).

Returns (float): Critical molar volume in cubic meters per mole (m^3/mol).

Example 1: Critical volume of water

Inputs:

CASRN
7732-18-5

Excel formula:

=VC("7732-18-5")

Expected output:

0.000055948

Example 2: Critical volume of ethanol

Inputs:

CASRN
64-17-5

Excel formula:

=VC("64-17-5")

Expected output:

0.000168634

Example 3: Critical volume of methane

Inputs:

CASRN
74-82-8

Excel formula:

=VC("74-82-8")

Expected output:

0.0000986278

Example 4: Critical volume of benzene

Inputs:

CASRN
71-43-2

Excel formula:

=VC("71-43-2")

Expected output:

0.000256345

Python Code

Show Code
from chemicals.critical import Vc as chemicals_vc

def vc(CASRN, method=None):
    """
    Retrieve the critical molar volume of a chemical by CAS number.

    See: https://chemicals.readthedocs.io/chemicals.critical.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        CASRN (str): CAS Registry Number for the target chemical (-).
        method (str, optional): Optional data source method name; leave empty for automatic selection (-). Default is None.

    Returns:
        float: Critical molar volume in cubic meters per mole (m^3/mol).
    """
    try:
        value = chemicals_vc(CASRN=CASRN, method=method)
        if value is None:
            return "Error: Critical volume data is not available for the provided CASRN"
        return value
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

CAS Registry Number for the target chemical (-).
Optional data source method name; leave empty for automatic selection (-).