Electrolyte data

LiquidElectrolytes.solvepressureFunction
solvepressure(electrolyte)

Check if pressure is to be solved for using the pressure Laplace equation derived from the Navier-Stokes equation in mechanical equilibrium or if the pressure is obtained from the (Navier)-Stokes solver.

source
LiquidElectrolytes.chargedensity!Function
chargedensity!(q, sol,electrolyte)

Calculate charge density from solution (on the whole grid), putting the resulti into q and returning this vector.

source
LiquidElectrolytes.vrelFunction
vrel(ic,electrolyte)

Calculate relative (wrt. solvent) molar volume of i-th species $v_{i,rel}=κ_i+\frac{v_i}{v_0}$.

source

Poisson-Boltzmann

Poisson-Nernst-Planck

LiquidElectrolytes.set_model!Method
set_model!(electrolyte, model)

Force the electrolyte data to be consistent to given model. The following models are supported:

  • :default, :DGL: Dreyer/Guhlke/Landstorfer model (varying solvation, molar volumes, molar mass, solve for pressure)
  • :BAO: Borukhov/Andelman/Orland ($κ_i=0$, $M_i=M_0$, solvepressure=false)
  • :DGM: Dreyer/Guhlke/Müller ($κ_i=0$, $v_i=v_0$)
  • :ρconst: Constant density ($M_i=M_0v_i/v_0$) (for consistent coupling with stokes)
source
LiquidElectrolytes.sfluxFunction
sflux(ic,dϕ,ck,cl,γk,γl,bar_ck,bar_cl,electrolyte; evelo=0.0)

Sedan flux, see Gaudeul/Fuhrmann 2022

Appearantly first described by Yu, Zhiping and Dutton, Robert, SEDAN III, www-tcad.stanford.edu/tcad/programs/sedan3.html

see also the 198? Fortran code available via https://web.archive.org/web/20210518233152/http://www-tcad.stanford.edu/tcad/programs/oldftpable.html

Verification calculation is in the paper.

source
LiquidElectrolytes.afluxFunction
aflux(ic,dϕ,ck,cl,γk,γl,bar_ck,bar_cl,electrolyte; evelo=0)

Flux expression based on activities, see Fuhrmann, CPC 2015 ??? Do we need to divide the velocity by the inverse activity coefficient ?

source
LiquidElectrolytes.cfluxFunction
cflux(ic,dϕ,ck,cl,γk,γl,bar_ck,bar_cl,electrolyte; evelo = 0)

Flux expression based on central differences, see Gaudeul/Fuhrmann 2022

source
LiquidElectrolytes.dμexFunction
 dμex(γk, γl, electrolyte)

Calculate differences of excess chemical potentials from activity coefficients

source

Poisson-Nernst-Planck-Stokes

LiquidElectrolytes.flowsolver

Electrochemical calculations

LiquidElectrolytes.splitzFunction
splitz(range::AbstractRange)

If range contains zero, split it into two parts, one with values <=0 and one with values >=0. Otherwise, return the range or its reverse, such that first value always is the one with the smallest absolute value.

source
splitz(range::Vector)

Version of splitz(range::AbstractRange) for vectors.

source