FCSys.Regions.AnCLs

Anode catalyst layers

Information

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

Package Content

NameDescription
FCSys.Regions.AnCLs.AnCL AnCL Anode catalyst layer
FCSys.Regions.AnCLs.AnCGDL AnCGDL Integrated anode catalyst/gas diffusion layer

FCSys.Regions.AnCLs.AnCL FCSys.Regions.AnCLs.AnCL

Anode catalyst layer FCSys.Regions.AnCLs.AnCL

Information

This model represents the anode 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 conductivity (σ = 40*U.S/(12*U.cm)) is for SGL Carbon Group Sigracet® 10 BA (see AnGDLs.Sigracet10BA).

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

TypeNameDefaultDescription
replaceable model SubregionSubregions.Subregion (common…Base subregion model
CurrentAreicJ0U.A/U.cm^2Exchange current density @ 300 K [N/(L2.T)]
Geometry
LengthL_x[:]{28.7}*U.umLengths along the x axis [L]
LengthL_y[:]{8}*U.cmLengths along the y axis [L]
LengthL_z[:]{6.25}*U.cmLengths across the z axis [L]
NumberAbsoluteepsilon0.4Porosity [1]
Assumptions
Included transport axes
BooleaninclTransXtrueX
BooleaninclTransYfalseY
BooleaninclTransZfalseZ

Connectors

TypeNameDescription
replaceable model SubregionBase subregion model
BoundaryBusxNegative[n_y, n_z]Negative boundary along the x axis
BoundaryBusxPositive[n_y, n_z]Positive boundary along the x axis
BoundaryBusyNegative[n_x, n_z]Negative boundary along the y axis
BoundaryBusyPositive[n_x, n_z]Positive boundary along the y axis
BoundaryBuszNegative[n_x, n_y]Negative boundary along the z axis
BoundaryBuszPositive[n_x, n_y]Positive boundary along the z axis

Modelica definition

model AnCL "Anode 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_Q=inf),
        gas(
          common(k_Q=inf),
          k=fill(epsilon^(-0.5), 3),
          inclH2=true,
          inclH2O=true,
          H2(
            initEnergy=Init.none,
            upstreamX=false,
            final zeta=0,
            phi(each stateSelect=StateSelect.always, each fixed=true)),
          H2O(
            initEnergy=Init.none,
            upstreamX=false,
            final zeta=0)),
        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)),
        ionomer(
          k=fill((0.5*(1 - epsilon))^(-0.5), 3),
          'inclSO3-'=true,
          'inclH+'=true,
          inclH2O=true,
          'H+'(initEnergy=Init.none, sigma=0.1*U.S/U.cm),
          'SO3-'(epsilon=0.5*(1 - epsilon),T(each fixed=false, each stateSelect
                =StateSelect.default)),
          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,
            N0=0.1*U.C,
            T(each stateSelect=StateSelect.default))),
        volume(inclCapillary=true,capillary(R=5*U.um))),
    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) = U.A/U.cm^2 
    "Exchange current density @ 300 K";

protected 
  outer Conditions.Environment environment "Environmental conditions";

end AnCL;

FCSys.Regions.AnCLs.AnCGDL FCSys.Regions.AnCLs.AnCGDL

Integrated anode catalyst/gas diffusion layer FCSys.Regions.AnCLs.AnCGDL

Information

The default thickness is the total thickness of AnCL and AnGDL.

For more information, please see the AnCL model.

Extends from AnCLs.AnCL (Anode catalyst layer).

Parameters

TypeNameDefaultDescription
replaceable model SubregionSubregions.Subregion (common…Base subregion model
CurrentAreicJ0U.A/U.cm^2Exchange current density @ 300 K [N/(L2.T)]
Geometry
LengthL_x[:]{(28.7*U.um + 0.235*U.mm)}Lengths along the x axis [L]
LengthL_y[:]{8}*U.cmLengths along the y axis [L]
LengthL_z[:]{6.25}*U.cmLengths across the z axis [L]
NumberAbsoluteepsilon0.16Porosity [1]
Assumptions
Included transport axes
BooleaninclTransYfalseY
BooleaninclTransZfalseZ

Connectors

TypeNameDescription
BoundaryBusxNegative[n_y, n_z]Negative boundary along the x axis
BoundaryBusxPositive[n_y, n_z]Positive boundary along the x axis
BoundaryBusyNegative[n_x, n_z]Negative boundary along the y axis
BoundaryBusyPositive[n_x, n_z]Positive boundary along the y axis
BoundaryBuszNegative[n_x, n_y]Negative boundary along the z axis
BoundaryBuszPositive[n_x, n_y]Positive boundary along the z axis

Modelica definition

model AnCGDL "Integrated anode catalyst/gas diffusion layer"
  import Modelica.Constants.inf;

  extends AnCLs.AnCL(
    L_x={(28.7*U.um + 0.235*U.mm)},
    epsilon=0.16,
    subregions(
      gas(H2(each final eta=0), H2O(each final eta=0)),
      ionomer('H+_H2O'(each k_Phi={1,1,1}),'H+'(each sigma=0.8*U.S/U.cm)),
      liquid(H2O(each final eta=0))));

end AnCGDL;