OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
OpenFCST Class Documentation


This is the main page of the Fuel Cell Simulation Toolbox. This is a first attempt to develop an OpenSource fuel cell simulator. Currently, the program contains applications for two-dimensional modeling of an across-the-channel fuel cell anode, cathode and complete MEA using the finite element method. In addition to this applications the code contains classes to model oxygen, water and hydrogen diffusion in porous media, reaction kinetics in a fuel cell, electro-osmotic drag on a membrane, etc. This classes can be used to develop your own applications to model different parts of the fuel cell.

This code can also be used for fuel cell optimization using analytical sensitivities. For examples of problems solved using this code and a description of the numerical method used see:

Here is a snapshot of the oxygen mole fraction in the cathode obtained using one of my applications (AppCathodeAgglomerate): The figure shows Contour lines at the catalyst layer for the base electrode design at $dV=0.5V$ for (a) oxygen molar fraction [-], (b) potential in the solid phase [V], (c) potential in the electrolyte [V], (d) volumetric current density [ $A/cm^3$] and (e) final adaptive grid in the catalyst layer. (Note: output generated using Tecplot)



  1. Download a copy of the code from or e-mail Dr. Secanell ( to get access to the subversion version of the code (only for collaborators)
    1. The download comes with working versions of the deal.II finite element libraries and DAKOTA optimization software but you can download and configure your own versions. deal.II is available at and DAKOTA at
  2. Read the installation notes in INSTALL.txt in the fcst root folder
    1. Run the fcst_install script with the desired options.
  3. If you would like to build the packages on their own, it should be done in the following order.
    1. Configure deal.II $./configure –enable-threads –with-umfpack –with- (other options you woould like to include)
    2. $make all in deal.II
    3. Configure appframe (released in fcst/contrib) with ./configure –with-deal=path/to/deal (deal location)
    4. $make appframe libraries
    5. Configure DAKOTA libraries with: $./configure –without-graphics –with-plugin –prefix=./ (note: you will have to enter the absolute path to the Dakota - your current - directory)
    6. $make and $make install
    7. Configure FCST from the root folder with $./configure –with-deal=path/to/deal –with-dakota=path/to/dakota
    8. $make to run the makefile for fcst NOTE: If you want to generate documentation type: $make doc
See authors site