Battery Geometries

Description of the models that are used to setup the geometry

BatteryGenerator1D

_images/1dmodel.png
class BatteryGenerator1D

setup 1D grid

xlength

vector of component lengths

  • x(1) : length of negative current collector (default = 25 micro meter)

  • x(2) : length of negative active material (default = 64 micro meter)

  • x(3) : length of separator (default = 15 micro meter)

  • x(4) : length of positive active material (default = 57 micro meter)

  • x(5) : length of positive current collector (default = 15 micro meter)

sepnx

discretization number for negative current collector (default = 10)

nenx

discretization number for negative active material (default = 10)

penx

discretization number for separator (default = 10)

nenr

discretization for solid diffusion (default = 10)

penr

discretization for solid diffusion (default = 10)

ccnenx

discretization number for positive current collector (default = 10)

ccpenx

discretization number for positive active material (default = 10)

fac

refinement factor (can be used to easily increase discretization refinement) see applyResolutionFactors method

include_current_collectors

boolean : true if grid for current collectors should be included

use_thermal

Face area in the transversal direction (default = 1)

BatteryGenerator2D

_images/runbattery2d.png
class BatteryGenerator2D

Setup 2D grid

xlength

Vector of components lengths in x direction

  • x(1) : length of negative current collector (default: 10 micrometer)

  • x(2) : length of negative active material (default: 100 micrometer)

  • x(3) : length of separator (default: 50 micrometer)

  • x(4) : length of positive active material (default: 80 micrometer)

  • x(5) : length of positive current collector (default: 10 micrometer)

ylength

length in y direction (default: 1 cm)

ccnenx

discretization number for negative current collector (default: 10)

nenx

discretization number for negative active material (default: 30)

sepnx

discretization number for separator (default: 30)

penx

discretization number for positive active material (default: 30)

ccpenx

discretization number for positive current collector (default: 10)

ny

discretization number in y direction (default: 10)

include_current_collectors

boolean: true if grid for current collectors should be included

use_thermal

boolean true if grid for thermal model should be setup.

externalHeatTransferCoefficientTab

heat transfer coefficient at tab boundary (default: 1e3)

externalHeatTransferCoefficient

heat transfer coefficient at boundary (default: 1e3)

BatteryGenerator3D

_images/runbattery3d.png
class BatteryGenerator3D

Setup 3D grid with tab

xlength

vector of x-lengths

  • x(1) : x-length of first tab (default: 4cm)

  • x(2) : x-length between the tabs (default: 2cm)

  • x(3) : x-length of last tab (default: 4cm)

ylength

vector of y-lengths

  • x(1) : y-length of first tab (default : 1mm)

  • x(2) : y-length between the tabs (default : 2cm)

  • x(3) : y-length of last tab (default : 1mm)

zlength

Vector of components lengths in z direction

  • z(1) : length of negative current collector (default: 10 micrometer)

  • z(2) : length of negative active material (default: 100 micrometer)

  • z(3) : length of separator (default: 50 micrometer)

  • z(4) : length of positive active material (default: 80 micrometer)

  • z(5) : length of positive current collector (default: 10 micrometer)

sep_nz

discretization number in z-direction for separator (default: 3)

ne_am_nz

discretization number in z-direction for positive active material (default: 3)

pe_am_nz

discretization number in z-direction for negative active material (default: 3)

ne_cc_nz

discretization number in z-direction for negative current collector (default: 3)

pe_cc_nz

discretization number in z-direction for positive current collector (default: 3)

int_elyte_nx

discretization number in x-direction interior region (default: 3)

ne_cc_nx

discretization number in x-direction negative tab region (default: 3)

pe_cc_nx

discretization number in x-direction positive tab region (default: 3)

elyte_ny

discretization number in y-direction interior region (default: 3)

ne_cc_ny

discretization number in y-direction negative tab region (default: 3)

pe_cc_ny

discretization number in y-direction positive tab region (default: 3)

externalHeatTransferCoefficientTab

Heat transfer coefficient at the tab

externalHeatTransferCoefficient

Heat transfer coefficient for the non-tab regions

setupGrid(gen, paramobj, params)

shorthands

SpiralBatteryGenerator

_images/jellyrollmodel.png
class SpiralBatteryGenerator

Setup a grid Jelly Roll model

nwindings

number of windings in the spiral

rInner

Inner Radius correspoding to the empty space in the middle

widthDict

Dictionary of widths for each component. The required key names for the dictionary are

  • ‘Separator’

  • ‘NegativeActiveMaterial’

  • ‘NegativeCurrentCollector’

  • ‘PositiveActiveMaterial’

  • ‘PositiveCurrentCollector’

nrDict

length of the battery

nas

number of cells in the angular direction

nL

number of discretization cells in the longitudonal

angleuniform

cell-valued vector giving component number (indexing is given by tagdict)

tagdict

dictionary giving the component number

tabparams

parameters for the tab on the positive current collector

positiveExtCurrentFaces

computed tab width (due to discretization, we cannot enforce the tab widths)

tabwidths

for the tabs (implemented only for aligned tabs now)

setupThermalModel(gen, paramobj, params)

paramobj is instance of BatteryInputParams

We recover the external coupling terms for the current collectors

CoinCellBatteryGenerator

_images/coincell.png
class CoinCellBatteryGenerator
compDims

Design params for the components

The format is a matlab table structure where the rows are labeled with

  • NegativeCurrentCollector

  • NegativeActiveMaterial

  • ElectrolyteSeparator

  • PositiveActiveMaterial

  • PositiveCurrentCollector

and the corresponding columns

  • thickness

  • diameter

  • numCellLayers : Discretization number in the layer

see example runCR

numAngular

Discretization number if the angular direction

BlockBatteryGenerator

not yet documented

CoinCellSectorBatteryGenerator

not yet documented

FlatBatteryGenerator

not yet documented

SectorBatteryGenerator

not yet documented

Base class

This is the base class that gather the methods to setup the different grid. This class will be usefull if you want to setup your own tailored grid.

class BatteryGenerator

Base class that add grids and coupling terms to a paramobj instance of BatteryInputParams (through method updateBatteryInputParams)

This class goes through the whole grid setup and is meant to be used as a base class.

Example : BatteryGenerator1D, BatteryGenerator2D, BatteryGenerator3D

G

Global grid It is stored here because is shared by many setup functions. It is constructed by the methode setupGrid()

updateBatteryInputParams(gen, paramobj, params)

This function is the main class function as it returns an updated paramobj object with grid structure

setupBatteryInputParams(gen, paramobj, params)

This is the main function which should be called by the derived class at the end of the updateBatteryInputParams() method The function set up the grid and the coupling terms and add those in the paramobj structure which is an instance of BatteryInputParams

setupGrid(gen, paramobj, params)

setup paramobj.G and update G Here, paramobj is an instance of BatteryInputParams

setupThermalModel(gen, paramobj, params)

Method that setups the grid and the coupling for the thermal model

setupElectrolyte(gen, paramobj, params)

Method that setups the grid and the coupling for the electrolyte model Here, paramobj is instance of ElectrolyteInputParams

setupElectrolyteGrid(gen, paramobj, params)

Setup the grid for the electrolyte Here, paramobj is instance of ElectrolyteInputParams

setupSeparatorGrid(gen, paramobj, params)

Setup the grid for the separator Here, paramobj is instance of BatteryInputParams

setupElectrodes(gen, paramobj, params)

Method that setups the grid and the coupling terms for both electrodes

setupElectrode(gen, paramobj, params)

Method that setups the grid and the coupling terms for an electrode Here, paramobj is instance of ElectrodeInputParams

setupElectrodeGrid(gen, paramobj, params)

Setup the grid for an electrode Here, paramobj is instance of ElectrodeInputParams

setupActiveMaterialGrid(gen, paramobj, params)

Setup the grid for the active material Here, paramobj is instance of ActiveMaterialInputParams

setupCurrentCollector(gen, paramobj, params)

Method that setups the grid and coupling terms for the current collectors Here, paramobj is instance of CurrentCollectorInputParams

setupCurrentCollectorGrid(gen, paramobj, params)

Setup a grid for a current collector Here, paramobj is instance of CurrentCollectorInputParams

setupElectrodeElectrolyteCoupTerm(gen, paramobj, params)

Setup the coupling terms between the electrode and electrolyte Here, paramobj is instance of BatteryInputParams

setupCurrentCollectorActiveMaterialCoupTerm(gen, paramobj, params)

Setup the coupling term between the current collector and the active material Here, paramobj is instance of ElectrodeInputParams

setupCurrentCollectorBcCoupTerm(gen, paramobj, params)

Setup the boundary locations for the current collector

setupActiveMaterialBcCoupTerm(gen, paramobj, params)

Setup the boundary locations for the active material (used in the absence of current collectors)