# 4.4.2. Cantera Material Properties

For more complicated simulations, particularly those involving multi-species gas mixtures, Fuego supports using Cantera XML files to define the fluid properties. To use Cantera, your material property block should specify a Cantera XML file:

    # At the sierra-block level
    Begin Property Specification for Fuego Material air

        CANTERA XML FILE = helium.xml

        REFERENCE PRESSURE = 1.0             $ atmosphere
        REFERENCE TEMPERATURE = 298.         $ Kelvin
        REFERENCE MASS_FRACTION N2 = 0.767
        REFERENCE MASS_FRACTION HE = 0.00
        REFERENCE MASS_FRACTION O2 = 0.233

        SCHMIDT_NUMBER = 0.9
    End

The XML file should include a `<phase>` block, which defines the elements and species present and what mixture models to use, and a `<speciesData>` block which defines thermodynamic and transport models for each species.

    <?xml version="1.0"?>
    <ctml>
      <!-- phase gas     -->
      <phase dim="3" id="gas">
        <elementArray>He  O  N</elementArray>
        <speciesArray datasrc="#species_data">HE  O2  N2 </speciesArray>
        <thermo model="IdealGas"/>
        <transport model="Mix"/>
      </phase>

      <!-- species definitions     -->
      <speciesData id="species_data">
        <!-- ...  -->
      </speciesData>
    </ctml>

Note

The order the species are listed in the Cantera XML file is the order used throughout Fuego. The last species listed (`N2` here) will be the “fracbal” species that is not solved for, but whose mass fraction is set to achieve a unity mass fraction sum.

Note

Older versions of the Cantera XML file may have referenced an `elements.xml` file in the `<elementArray>` tag, which would have required a separate `elements.xml` file defining valid elements and their molecular weights. This is no longer required unless you are using custom elements not in the periodic table. Simply removing that attribute from the `<elementArray>` will use the default periodic table.

Aside from changing the list of elements and species, one generally should not change any other parts of the `<phase>` block. Within the `<speciesData>` block, there should be an entry for each species, including `<thermo>` and `<transport>` sub-blocks.

    <!-- species HE    -->
    <species name="HE">
      <atomArray>He:1 </atomArray>
      <thermo>
        <NASA Tmax="1000.0" Tmin="300.0" P0="100000.0">
           <floatArray name="coeffs" size="7">
             2.500000000E+00,   0.000000000E+00,   0.000000000E+00,   0.000000000E+00,
             0.000000000E+00,  -7.453750000E+02,   9.153488000E-01</floatArray>
        </NASA>
        <NASA Tmax="5000.0" Tmin="1000.0" P0="100000.0">
           <floatArray name="coeffs" size="7">
             2.500000000E+00,   0.000000000E+00,   0.000000000E+00,   0.000000000E+00,
             0.000000000E+00,  -7.453750000E+02,   9.153489000E-01</floatArray>
        </NASA>
      </thermo>
      <transport model="gas_transport">
        <string title="geometry">atom</string>
        <LJ_welldepth units="K">10.200</LJ_welldepth>
        <LJ_diameter units="A">2.580</LJ_diameter>
        <dipoleMoment units="Debye">0.000</dipoleMoment>
        <polarizability units="A3">0.000</polarizability>
        <rotRelax>0.000</rotRelax>
      </transport>
    </species>

## 4.4.2.1. Thermodynamic Properties

The `<thermo>` section specifies standard thermodynamic polynomials for the different species over different temperature ranges. The common types of polynomials are described below.

### 4.4.2.1.1. NASA7

The NASA7 polynomial takes 7 coefficients (-) and expects one or two temperature ranges, as shown below.

    <thermo>
      <NASA Tmax="1000.0" Tmin="300.0" P0="100000.0">
          <floatArray name="coeffs" size="7">
            2.500000000E+00,   0.000000000E+00,   0.000000000E+00,   0.000000000E+00,
            0.000000000E+00,  -7.453750000E+02,   9.153488000E-01</floatArray>
      </NASA>
      <NASA Tmax="5000.0" Tmin="1000.0" P0="100000.0">
          <floatArray name="coeffs" size="7">
            2.500000000E+00,   0.000000000E+00,   0.000000000E+00,   0.000000000E+00,
            0.000000000E+00,  -7.453750000E+02,   9.153489000E-01</floatArray>
      </NASA>
    </thermo>

These coefficients define the following properties:

(4.1)

(4.2)

(4.3)

### 4.4.2.1.2. NASA9

The NASA9 polynomial takes 9 coefficients (-) and can use an arbitrary number of temperature ranges, as shown below.

    <thermo>
      <NASA9 Pref="1 bar" Tmax="1000.00" Tmin="200.00">
        <floatArray size="9">
          4.943650540e+04, -6.264116010e+02,  5.301725240e+00,  2.503813816e-03,
          -2.127308728e-07, -7.689988780e-10,  2.849677801e-13, -4.528198460e+04,
          -7.048279440e+00
        </floatArray>
      </NASA9>
      <NASA9 Pref="1 bar" Tmax="6000.00" Tmin="1000.00">
        <floatArray size="9">
          1.176962419e+05, -1.788791477e+03,  8.291523190e+00, -9.223156780e-05,
          4.863676880e-09, -1.891053312e-12,  6.330036590e-16, -3.908350590e+04,
          -2.652669281e+01
        </floatArray>
      </NASA9>
      <NASA9 Pref="1 bar" Tmax="20000.00" Tmin="6000.00">
        <floatArray size="9">
          -1.544423287e+09,  1.016847056e+06, -2.561405230e+02,  3.369401080e-02,
          -2.181184337e-06,  6.991420840e-11, -8.842351500e-16, -8.043214510e+06,
          2.254177493e+03
        </floatArray>
      </NASA9>
    </thermo>

These coefficients define the following properties:

(4.4)

(4.5)

(4.6)

### 4.4.2.1.3. Shomate

The Shomate polynomial takes 7 coefficients (-) and expects one or two temperature ranges, as shown below.

    <thermo>
      <Shomate Pref="1 bar" Tmax="1400.0" Tmin="298">
        <floatArray size="7">
            72.3870,    8.8501,    0.0007,         0,
            -1.1428, -197.3525,  131.4492
        </floatArray>
      </Shomate>
    </thermo>

Unlike the NASA polynomials, the Shomate polynomials are not normalized by the ideal gas constant. The expected units of , , and are `J/mol-K`, `kJ/mol`, and `J/mol-K`, respectively. These coefficients define the following properties, using a scaled temperature :

(4.7)

(4.8)

(4.9)

(4.10)

## 4.4.2.2. Transport Properties

The `<transport>` block in the Cantera file requires 6 entries:

> - Geometry - One of `atom` (for monatomic species like He), `linear` (for diatomic species like N2), or `nonlinear` (for all others)

> - Lennerd Jones Well Depth - Value in Kelvin for the species interaction potential depth.

> - Lennerd Jones Diameter - Value in angstroms for the species interaction diameter.

> - Dipole moment - Value in Debye determined from the molecular structure.

> - Polarizability - Vale un Angstroms cubed which affects interactions between charged and un-charged species.

> - Rotational Relaxation - Value that affects only thermal conductivity (not typically used in Fuego).

These values are typically tabulated in standard transport data sets from NIST or NASA. For un-common species, methods for estimating L-J parameters from other properties like critical point and boiling point properties can be found in Estimated Viscosities and Thermal Conductivities of Gases at High Temperatures, Svehla, 1962.

    <transport model="gas_transport">
      <string title="geometry">atom</string>
      <LJ_welldepth units="K">10.200</LJ_welldepth>
      <LJ_diameter units="A">2.580</LJ_diameter>
      <dipoleMoment units="Debye">0.000</dipoleMoment>
      <polarizability units="A3">0.000</polarizability>
      <rotRelax>0.000</rotRelax>
    </transport>

## 4.4.2.3. Resources

The following web resources and SAND reports can provide useful information for constructing Cantera files.

> - NASA Glenn Coefficients for Calculating Thermodynamic Properties of Individual Species (NASA/TP—2002-211556)

> - NIST Chemistry Webbook

> - A Fortran computer code package for the evaluation of gas-phase, multicomponent transport properties (SAND86-8246)

> - The Chemkin Thermodynamic Data Base (SAND87-8215B)