Table of Contents
Fetching ...

LPC3D: An Enhanced Parallel Software for Large-Scale Simulation of Adsorption in Porous Carbons and Supercapacitors

El Hassane Lahrar, Mathieu Salanne, Rudolf Weeber, Céline Merlet

Abstract

Simulations of electrochemical double layer capacitors based on porous carbon electrodes, energy storage systems which accumulate and release energy through reversible ion adsorption at electrode/electrolyte interfaces, are often performed at the microscopic scale, using molecular dynamics. Such simulations provide crucial information to understand the adsorption of ions and the effect of confinement on some electrochemical properties. However, their computational cost limits the size of the systems studied to a few nanometers and a few pores while experimental materials are highly heterogeneous with a distribution of particle and pore sizes. LPC3D is a software designed for mesoscopic simulations of porous carbon particles and carbon-based supercapacitors which allow for the inclusion of such heterogeneity. The code calculates quantities of adsorbed ions, diffusion coefficients and NMR spectra of ions / molecules adsorbed in porous carbon matrices. In this work, we report on a new implementation of LPC3D, written in Python using the PyStencils module which can generate optimized C++ and CUDA code. This implementation is parallel, can be run on CPU and GPU, and allows one to simulate systems going from a single carbon particle to a supercapacitor with hundreds of micrometers in length. Here, we apply the new implementation of LPC3D to the simulation of supercapacitors with porous carbon electrodes represented as monoliths or carbon films to investigate the influence of the microstructure on the resulting adsorption and spectroscopic properties.

LPC3D: An Enhanced Parallel Software for Large-Scale Simulation of Adsorption in Porous Carbons and Supercapacitors

Abstract

Simulations of electrochemical double layer capacitors based on porous carbon electrodes, energy storage systems which accumulate and release energy through reversible ion adsorption at electrode/electrolyte interfaces, are often performed at the microscopic scale, using molecular dynamics. Such simulations provide crucial information to understand the adsorption of ions and the effect of confinement on some electrochemical properties. However, their computational cost limits the size of the systems studied to a few nanometers and a few pores while experimental materials are highly heterogeneous with a distribution of particle and pore sizes. LPC3D is a software designed for mesoscopic simulations of porous carbon particles and carbon-based supercapacitors which allow for the inclusion of such heterogeneity. The code calculates quantities of adsorbed ions, diffusion coefficients and NMR spectra of ions / molecules adsorbed in porous carbon matrices. In this work, we report on a new implementation of LPC3D, written in Python using the PyStencils module which can generate optimized C++ and CUDA code. This implementation is parallel, can be run on CPU and GPU, and allows one to simulate systems going from a single carbon particle to a supercapacitor with hundreds of micrometers in length. Here, we apply the new implementation of LPC3D to the simulation of supercapacitors with porous carbon electrodes represented as monoliths or carbon films to investigate the influence of the microstructure on the resulting adsorption and spectroscopic properties.
Paper Structure (14 sections, 13 equations, 10 figures, 1 table)

This paper contains 14 sections, 13 equations, 10 figures, 1 table.

Figures (10)

  • Figure 1: Illustration of a 2D lattice gas model. The lattice, characterized by a lattice parameter $a$, is divided between two types of sites: accessible (fluid) and not accessible (porous matrix). If at a given timestep, a particle velocity points towards an obstacle, then at the next timestep, that particle remains at its original position. Otherwise, it moves to the neighboring site.
  • Figure 2: a) Different processes used in PyStencils to create and execute a kernel. b) Illustration of a lattice gas model update rule in 2D: The central site (in red) receives contributions from its four neighboring cells (in green), showing how particles and functions propagate to adjacent cells based on the update rules defined in the model.
  • Figure 3: Steps involved in conducting a calculation with the lattice-gas model
  • Figure 4: Runtime (in seconds per timestep of propagation) and memory usage for calculations done using the LP3CD code with various numbers of lattice sites, and conducted on CPU nodes exclusively
  • Figure 5: Evaluation of strong scaling performance of the LP3CD code. The dashed line indicate the ideal behaviour which would be observed if the code was perfectly parallel.
  • ...and 5 more figures