## FCSys.Regions.CaCLs

Cathode catalyst layers

### Information

Extends from Modelica.Icons.Package (Icon for standard packages).

### Package Content

Name | Description
--- | ---
CaCL | Cathode catalyst layer
CaCGDL | Integrated cathode catalyst/gas diffusion layer

## FCSys.Regions.CaCLs.CaCL

Cathode catalyst layer

### Information

This model represents the cathode catalyst layer of a PEMFC. The x axis extends from the anode to the cathode. By default, the cross-sectional area in the yz plane is 50 cm2.

The default thickness (Lx = `{28.7*U.um}`) is from [Gurau1998]. The default thermal conductivity of the carbon (θ = `U.m*U.K/(1.18*U.W)`) represents a compressed SGL Sigracet 10 BA gas diffusion layer [Nitta2008]. The default electronic mobility (σ = `40*U.S/(12*U.cm)`) is for SGL Carbon Group Sigracet® 10 BA (see CAGDLs.Sigracet10BA). The default activation energy for the oxygen reduction reaction (`E_A = 73.2e3*U.J/U.mol`) is from [Siversten2005].

Default assumptions (may be adjusted):

1. All of the species have the same temperature, even in different phases.
2. Half of the solid is graphite and half is ionomer (by volume).

For more information, please see the Region model.

Extends from Region (Base model for a 3D array of subregions).

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
replaceable model Subregion | Subregions.Subregion (common… | Base subregion model
CurrentAreic | J0 | 0.11*U.mA/U.cm^2 | Exchange current density @ 300 K [N/(L2.T)]
Geometry
Length | L_x[:] | {28.7}*U.um | Lengths along the x axis [L]
Length | L_y[:] | {8}*U.cm | Lengths along the y axis [L]
Length | L_z[:] | {6.25}*U.cm | Lengths across the z axis [L]
NumberAbsolute | epsilon | 0.4 | Porosity [1]
Assumptions
Included transport axes
Boolean | inclTransX | true | X
Boolean | inclTransY | false | Y
Boolean | inclTransZ | false | Z

### Connectors

Type | Name | Description
--- | --- | ---
replaceable model Subregion | Base subregion model
BoundaryBus | xNegative[n_y, n_z] | Negative boundary along the x axis
BoundaryBus | xPositive[n_y, n_z] | Positive boundary along the x axis
BoundaryBus | yNegative[n_x, n_z] | Negative boundary along the y axis
BoundaryBus | yPositive[n_x, n_z] | Positive boundary along the y axis
BoundaryBus | zNegative[n_x, n_y] | Negative boundary along the z axis
BoundaryBus | zPositive[n_x, n_y] | Positive boundary along the z axis

### Modelica definition

    model CaCL "Cathode catalyst layer"
      import Modelica.Constants.inf;
      // extends FCSys.Icons.Names.Top4;

      extends Region(
        L_x={28.7}*U.um,
        L_y={8}*U.cm,
        L_z={6.25}*U.cm,
        final inclTransX=true,
        inclTransY=false,
        inclTransZ=false,
        redeclare replaceable model Subregion = Subregions.Subregion (
            common(k_Q=0),
            gasLiq(k_Phi={2,2,2}, k_Q=inf),
            gas(
              common(k_Q=inf),
              k=fill(epsilon^(-0.5), 3),
              inclH2O=true,
              inclN2=true,
              inclO2=true,
              H2O(
                initEnergy=Init.none,
                upstreamX=false,
                phi(each stateSelect=StateSelect.always, each fixed=true),
                zeta=100*Characteristics.H2O.Gas.zeta()),
              N2(
                initEnergy=Init.none,
                upstreamX=false,
                zeta=100*Characteristics.N2.Gas.zeta()),
              O2(
                initEnergy=Init.none,
                upstreamX=false,
                I(each stateSelect=StateSelect.always, each fixed=true),
                zeta=100*Characteristics.O2.Gas.zeta(),
                p_stop=12*U.Pa)),
            graphite(
              k=fill((0.5*(1 - epsilon))^(-0.5), 3),
              'inclC+'=true,
              'incle-'=true,
              'incle-Transfer'=true,
              'C+'(theta=U.m*U.K/(1.18*U.W)*(0.5*(1 - epsilon))^1.5, epsilon=0.5*(1 -
                    epsilon)),
              'e-'(sigma=40*U.S/(12*U.cm)/(0.5*(1 - epsilon))^1.5),
              'e-Transfer'(E_A=0.46*U.V)),
            ionomer(
              k=fill((0.5*(1 - epsilon))^(-0.5), 3),
              'inclSO3-'=true,
              'inclH+'=true,
              inclH2O=true,
              'SO3-'(epsilon=0.5*(1 - epsilon), T(each fixed=false, each
                    stateSelect=StateSelect.default)),
              'H+'(initEnergy=Init.none, sigma=40*U.S/U.m),
              H2O(initEnergy=Init.none,phi(each stateSelect=StateSelect.always,
                    each fixed=true))),
            liquid(
              k=fill(epsilon^(-0.5), 3),
              inclH2O=true,
              H2O(
                upstreamX=false,
                epsilon_IC=1e-5,
                phi(each stateSelect=StateSelect.always, each fixed=true),
                each initEnergy=Init.none,
                mu=100*Characteristics.H2O.Liquid.mu(),
                T(each stateSelect=StateSelect.default))),
            volume(kappa=6.46e-6*U.mm^2)),
        subregions(graphite('e-Transfer'(final I0=J0*subregions.A[Axis.x]))));

      // See the documentation layer of Phases.PartialPhase regarding the
      // settings of k for each phase.

      parameter Q.NumberAbsolute epsilon(nominal=1) = 0.4 "Porosity";

      parameter Q.CurrentAreic J0(min=0) = 0.11*U.mA/U.cm^2
        "Exchange current density @ 300 K";

      // Auxiliary variables (for analysis)
      output Q.Potential Deltaw[n_y, n_z]=-subregions[n_x, :, :].graphite.'e-'.g_boundaries[
          1, Side.p] - subregions[1, :, :].ionomer.'H+'.g_boundaries[1, Side.n] if
        environment.analysis "Electrical potential differences over the yz plane";

    protected
      outer Conditions.Environment environment "Environmental conditions";

    initial equation

    end CaCL;

## FCSys.Regions.CaCLs.CaCGDL

Integrated cathode catalyst/gas diffusion layer

### Information

The default thickness is the total thickness of CaCL and CaGDL.

For more information, please see the CaCL model.

Extends from CaCLs.CaCL (Cathode catalyst layer).

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
replaceable model Subregion | Subregions.Subregion (common… | Base subregion model
CurrentAreic | J0 | 0.11*U.mA/U.cm^2 | Exchange current density @ 300 K [N/(L2.T)]
Geometry
Length | L_x[:] | {(28.7*U.um + 0.3*U.mm)} | Lengths along the x axis [L]
Length | L_y[:] | {8}*U.cm | Lengths along the y axis [L]
Length | L_z[:] | {6.25}*U.cm | Lengths across the z axis [L]
NumberAbsolute | epsilon | 0.5 | Porosity [1]
Assumptions
Included transport axes
Boolean | inclTransY | false | Y
Boolean | inclTransZ | false | Z

### Connectors

Type | Name | Description
--- | --- | ---
BoundaryBus | xNegative[n_y, n_z] | Negative boundary along the x axis
BoundaryBus | xPositive[n_y, n_z] | Positive boundary along the x axis
BoundaryBus | yNegative[n_x, n_z] | Negative boundary along the y axis
BoundaryBus | yPositive[n_x, n_z] | Positive boundary along the y axis
BoundaryBus | zNegative[n_x, n_y] | Negative boundary along the z axis
BoundaryBus | zPositive[n_x, n_y] | Positive boundary along the z axis

### Modelica definition

    model CaCGDL "Integrated cathode catalyst/gas diffusion layer"
      extends CaCLs.CaCL(
        L_x={(28.7*U.um + 0.3*U.mm)},
        epsilon=0.5,
        subregions(
          common(each k_Phi={0.3,0.3,0.3}),
          gas(H2(each final eta=0),H2O(each final eta=0)),
          ionomer('H+'(each sigma=650*U.S/U.m)),
          liquid(H2O(each final eta=0))));

    end CaCGDL;