Geometry models

Description of the models that are used to setup the geometry

Base class

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 setup by function setupBatteryGrid

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)

main function : add grid and coupling to paramobj structure

setupGrid(gen, paramobj, params)

paramobj is instance of BatteryInputParams setup paramobj.G and update gen.G

setupThermalModel(gen, paramobj, params)

paramobj is instance of BatteryInputParams

setupElectrolyte(gen, paramobj, params)

paramobj is instance of ElectrolyteInputParams

setupElectrolyteGrid(gen, paramobj, params)

paramobj is instance of ElectrolyteInputParams setup paramobj.G

setupSeparatorGrid(gen, paramobj, params)

paramobj is instance of SeparatorInputParams setup paramobj.G

setupElectrodes(gen, paramobj, params)

paramobj is instance of BatteryInputParams

setupElectrode(gen, paramobj, params)

paramobj is instance of ElectrodeInputParams

setupElectrodeGrid(gen, paramobj, params)

paramobj is instance of ElectrodeInputParams setup paramobj.G

setupActiveMaterialGrid(gen, paramobj, params)

paramobj is instance of ActiveMaterialInputParams setup paramobj.G

setupCurrentCollector(gen, paramobj, params)

paramobj is instance of CurrentCollectorInputParams

setupCurrentCollectorGrid(gen, paramobj, params)

paramobj is instance of CurrentCollectorInputParams setup paramobj.G

setupElectrodeElectrolyteCoupTerm(gen, paramobj, params)

paramobj is instance of BatteryInputParams setup paramobj.couplingTerms

setupCurrentCollectorActiveMaterialCoupTerm(gen, paramobj, params)

paramobj is instance of ElectrodeInputParams setup paramobj.couplingTerm

setupCurrentCollectorBcCoupTerm(gen, paramobj, params)

paramobj is instance of CurrentCollectorInputParams setup paramobj.couplingTerm

setupActiveMaterialBcCoupTerm(gen, paramobj, params)

default setup

BatteryGenerator1D

class BatteryGenerator1D

setup 1D grid

xlength

length of components in x direction - default values

sepnx

discretization number for negative current collector - default value

nenx

discretization number for negative active material - default value

penx

discretization number for separator - default value

nenr

discretization for solid diffusion - default value

penr

discretization for solid diffusion - default value

ccnenx

discretization number for positive current collector - default value

ccpenx

discretization number for positive active material - default value

fac

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

include_current_collectors

flag : true if grid for current collectors should be included

setupGrid(gen, paramobj, ~)

paramobj is instance of BatteryInputParams setup paramobj.G

setupThermalModel(gen, paramobj, params)

paramobj is instance of BatteryInputParams

BatteryGenerator2D

class BatteryGenerator2D

Setup 2D grid

xlength

length of components in x direction - default values

ylength

length in y direction - default values

ccnenx

discretization number for negative current collector - default value

nenx

discretization number for negative active material - default value

sepnx

discretization number for separator - default value

penx

discretization number for positive active material - default value

ccpenx

discretization number for positive current collector - default value

ny

discretization number in y direction - default value

include_current_collectors

flag: true if grid for current collectors should be included

use_thermal

flag, true if grid for thermal model should be setup.

externalHeatTransferCoefficientTab

heat transfer coefficient at tab boundary - default value

externalHeatTransferCoefficient

heat transfer coefficient at boundary - default value

setupElectrodes(gen, paramobj, params)

setup grid and coupling term

setupThermalModel(gen, paramobj, params)

paramobj is instance of BatteryInputParams

We recover the external coupling terms

BatteryGenerator3D

class BatteryGenerator3D

Setup 3D grid with tab

BlockBatteryGenerator

class BlockBatteryGenerator

CoinCellBatteryGenerator

class CoinCellBatteryGenerator
compDims

Design params for the components (electrodes, current collectors etc)

tagdict

dictionary giving the component number

negativeExtCurrentFaces

Heat parameters

setupElectrodes(gen, paramobj, params)

shorthands

setupCurrentCollectorBcCoupTerm(gen, paramobj, params)

paramobj is instance of CurrentCollectorInputParams

setupThermalModel(gen, paramobj, params)

paramobj is instance of BatteryInputParams

CoinCellSectorBatteryGenerator

class CoinCellSectorBatteryGenerator
thickness

Design params

angle

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

tagdict

dictionary giving the component number

setupElectrodes(gen, paramobj, params)

shorthands

setupCurrentCollectorBcCoupTerm(gen, paramobj, params)

paramobj is instance of CurrentCollectorInputParams

setupThermalModel(gen, paramobj, params)

paramobj is instance of BatteryInputParams

FlatBatteryGenerator

class FlatBatteryGenerator

SectorBatteryGenerator

class SectorBatteryGenerator

SpiralBatteryGenerator

class SpiralBatteryGenerator

Setup 3D grid with tab

nwindings

number of windings in the spiral

rInner

Inner Radius (for the empty space in the middle)

widthDict

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

nrDict
  • ‘Separator’

  • ‘NegativeActiveMaterial’

  • ‘NegativeCurrentCollector’

  • ‘PositiveActiveMaterial’

  • ‘PositiveCurrentCollector’

L

length of the battery

nas

number of cells in the angular direction

nL

number of discretization cells in the longitudonal

angleuniform
tag

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)

windingnumbers

for the tabs (implemented only for aligned tabs now)

setupElectrodes(gen, paramobj, params)

shorthands

setupCurrentCollectorBcCoupTerm(gen, paramobj, params)

paramobj is instance of CurrentCollectorInputParams

setupThermalModel(gen, paramobj, params)

paramobj is instance of BatteryInputParams

We recover the external coupling terms for the current collectors