IS_COMBUSTIBLE

This function determines whether a chemical should be treated as combustible by combining a CAS-based lookup with the supplied elemental composition. It is useful when preparing combustion balances because some compounds are structurally incapable of releasing further heat under complete oxidation, while others can be forced to behave as inert with the reactive flag.

In practical terms, the decision is a logical classification rather than a thermodynamic calculation: a species is treated as combustible only when its identity and composition indicate that further oxidation is possible and the wrapper has not been instructed to mark it as non-reactive.

Excel Usage

=IS_COMBUSTIBLE(CAS, atoms, reactive)
  • CAS (str, required): CAS number.
  • atoms (str, required): Dictionary of atoms and their counts.
  • reactive (bool, optional, default: true): Default True. Set false to mark as non-reactive.

Returns (bool): True if combustible, else False.

Example 1: Check if methane is combustible

Inputs:

CAS atoms
74-82-8 {“C”: 1, “H”: 4}

Excel formula:

=IS_COMBUSTIBLE("74-82-8", "{"C": 1, "H": 4}")

Expected output:

true

Example 2: Carbon dioxide is not combustible

Inputs:

CAS atoms
124-38-9 {“C”: 1, “O”: 2}

Excel formula:

=IS_COMBUSTIBLE("124-38-9", "{"C": 1, "O": 2}")

Expected output:

false

Example 3: Reactive flag can mark a fuel as inert

Inputs:

CAS atoms reactive
74-82-8 {“C”: 1, “H”: 4} false

Excel formula:

=IS_COMBUSTIBLE("74-82-8", "{"C": 1, "H": 4}", FALSE)

Expected output:

false

Python Code

Show Code
import json
from chemicals.combustion import is_combustible as chemicals_is_combustible

def is_combustible(CAS, atoms, reactive=True):
    """
    Checks if a chemical is combustible based on its CAS and atoms.

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

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

    Args:
        CAS (str): CAS number.
        atoms (str): Dictionary of atoms and their counts.
        reactive (bool, optional): Default True. Set false to mark as non-reactive. Default is True.

    Returns:
        bool: True if combustible, else False.
    """
    try:
        _a = json.loads(atoms) if isinstance(atoms, str) else atoms
        r = True if reactive is None else reactive
        return bool(chemicals_is_combustible(CAS, _a, reactive=r))
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

CAS number.
Dictionary of atoms and their counts.
Default True. Set false to mark as non-reactive.