nextnano.com
 nextnano³
 Download | SearchCopyright | Publications
 * password protected

 

nextnano³ software

 

  Electrolyte

 

 

 
Up
 

 

Electrolyte

Definition of electrolyte: An aqueous solution containing dissolved ions that result from the dissociation of salts.

!-------------------------------------------------------------!
$electrolyte                                        optional  !
 electrolyte-number                 integer         required  !
 electrolyte-region                 double_array    required  !

 destination-directory              character       required  !
 pH-value                           double          required  !

 pH-value-sweep-active              character       optional  !
 pH-value-sweep-step-size           double          optional  !
 pH-value-sweep-number-of-steps     integer         optional  !
 electrolyte-equation               character       required  !
 extended-Poisson-Boltzmann         character       optional  !
 shift-PMF                          double          optional  !
 shift-water-density                double          optional  !
 read-in-water-density-from-file    character       optional  !
 filename-water-density             character       optional  !
 local-dielectric-constant          character       optional  !
 local-dielectric-constant-min-max  double_array    optional  !
 include-buffer                     character       required  !
 buffer-name                        character       optional  !
 buffer-concentration               double          optional  !
 pKa-temperature-dependence         character       optional  !
 pKa-ionic-strength-dependence      character       optional  !
 pKa-spatial-dependence             character       optional  !
$end_electrolyte                                    optional  !
!-------------------------------------------------------------!

 

Syntax

  • electrolyte-number    = 1
                          = 2
                          = integer
    So far only one electrolyte region is implemented.
     
  • electrolyte-region    = 100d0  2000d0  ! [nm]
    refers to region where the electrolyte/buffer has to be applied to, e.g. from 100 nm to 2000 nm in 1D (xmin xmax)
     - 1D simulation: xmin xmax
     - 2D simulation: xmin xmax  ymin ymax
     -
    3D simulation: xmin xmax  ymin ymax  zmin zmax 
  • destination-directory = electrolyte/
    Name of directory to which the files should be written. Must exist and directory name has to include the slash (\ for DOS and / for UNIX).
     
  • pH-value              =  0d0    ! pH = -lg(H+ concentration) = 11 -> concentration in [M]=[mol/l]
                          =  1d0    !
    (strong acid)
                          =  ...    !
                          =  6.5d0  !
                          =  7d0    !
    (neutral)
                          =  ...    !
                          = 14d0    !
    (strong base)
    Note: The negative decadic logarithm of the concentration of hydrogen ions is called the pH value.
    The pH value must be within the range 0 <= pH <= 14.
    The concentration of the ions in the electrolyte is relevant for the site-binding model and is given in units of [M]=[mol/l].
    Note: The pH value that is specified here generates automatically the relevant concentrations of H3O+ and OH- ions (and their corresponding anion and cation counterparts, i.e. conjugate base and conjugate acid). For details, see $electrolyte-ion-content.
     
  •  pH-value-sweep-active          = no    ! (default) The Poisson-Boltzmann equation is solved only
                                            !        for the pH value specified in pH-value.

                                            !
    Loop over pH values.
     pH-value-sweep-active          =
    yes   !                The Poisson-Boltzmann equation is solved several times, starting
                                            !        from the pH value specified in pH-value, then
     pH-value-sweep-step-size       = 0.5d0 !       
    it is increased by this step size (pH' = pH + 0.5)
     pH-value-sweep-number-of-steps = 14    !       
    'number-of-steps' times (in this example 14 sweeps).
                                            ! For each pH value the relevant output is written out,
                                            ! labelled by 'ind000.dat', 'ind001.dat', 'ind002.dat', ...
                                            ! Note: The total range of allowed sweeps must be within the range 0 < pH < 14.
     
  • electrolyte-equation = Poisson-Boltzmann            ! Poisson-Boltzmann equation
                         = Debye-Hueckel-approximation  ! Debye-Hückel approximation
                         = Stern-Grahame-model          ! Stern-Grahame model (not implemented yet)
    The Debye-Hückel (DH) approximation in the linearized form of the nonlinear Poisson-Boltzmann equation and is valid only for
     zi e (phi(x) - UG) < kBT, i.e. at room temperature and for UG = 0 V,  zi e phi(x) should be smaller than 25 meV.
    - i  :  ion-number  (For details, see $electrolyte-ion-content.)
    -
    zi:  ion-valency (For details, see $electrolyte-ion-content.)
    -
    e:     charge of electron
    - phi:   electrostatic potential in [V]
    - UG:   applied gate voltage   in [V]
    The Debye-Hückel approximation yields a limiting result to which general solutions must converge for small potentials. Particularly in the limit of zero ion concentrations the solution of DH becomes exact.
    For more information on these three models, have a look into the diploma theses of Michael Bayer and Christian Uhl, or the PhD thesis of Sebastian Luber.
     
  • extended-Poisson-Boltzmann = no  ! (default)
                               = PMF !
    potentials of mean force
    PMF
    should be used together with hydrophilic or hydrophobic local dielectric constant, see next specifier.
    See also this tutorial for more information:
    ==>
    Extended Poisson-Boltzmann equation: Potentials of mean force (PMF)

 

Hydrophobic/hydrophilic (i.e. nonpolar/polar) solid/liquid interfaces

  •  local-dielectric-constant          = constant-water-density  ! (default)
                                        = hydrophobic             !
    nonpolar surface (i.e. repelling  water)
                                        = hydrophilic             !  
     polar surface (i.e. attracting water)
                                        = hydrophobic-SAM         !
    nonpolar surface (i.e. repelling  water)
                                        = hydrophilic-SAM         !  
     polar surface (i.e. attracting water)
     local-dielectric-constant-min-max  = 1d0   78d0              !
    epsmin  epsmax   (static dielectric constant)

    The local dielectric constant enters the Poisson-Boltzmann equation.

    By default, inside the electrolyte the water density is assumed to be constant (constant-water-density).
    Alternatively, at the solid/electrolyte interface the water density can be assumed to vary locally:
    - hydrophobic for a nonpolar surface (i.e. repelling  water)
    - hydrophilic
    for a      polar surface (i.e. attracting water)

    Instead of assuming a constant value of approx. eps = ~ 80 for the static dielectric constant of water,
    one can assume a local dielectric constant eps(z) of water based on eq. (2) of the following paper:

         Reversed Anionic Hofmeister Series: The Interplay of Surface Charge and Surface Polarity
         N. Schwierz, D. Horinek, R. R. Netz
         Langmuir 26, 7370 (2010)

    This will lead to a spatial variation of the dielectric constant of the electrolyte according to the following equation:

    eps(z) = epsmin + ( epsmax - epsmin ) rho(z) / rho0

    epsmax is the dielectric constant of water (epsmax = 78)
    epsmin is the dielectric constant of e.g. vacuum (epsmax = 1) (because there is a distance of a few Angstrom where there are no ions at the solid/electrolyte interface) or a self-assembled monolayer (e.g. epsmin = epsSAM = 4).

    Here, the dielectric constant is assumed to be proportional to the water density rho(z) where rho0 is the bulk density of water.
    This density profile has been obtained by molecular dynamics simulations approximated by a fit function (Schwierz et al.).
    By using this fit function, we obtain the following figure for rho(z) / rho0 (solid/electrolyte interface at z = 0 nm):



    Note that the water is depleted from the interface in the hydrophobic case by about 0.4 nm.
    This feature works for both boundaries of the electrolyte. This feature has only been implemented/tested in 1D so far.
  • read-in-water-density-from-file = yes
    filename-water-density = "\\Home\My Documents\My nextnano input files\read_in_WaterDensityDiamond.dat"
    A file for the water density profile can also be read in. The data file should start at 0 nm (position of interface), the units are [nm], and at 0 nm it should hold: rho/rho0 = 0.
    Further away from the interface (> several nm), it should hold: rho/rho0 = 1.
  • shift-PMF                  = 0.1d0 ! [nm] (default: 0d0)
    The potentials of mean force VPMF(z) can be shifted by dz: VPMF(z - dz)
    A positive  value of dz shifts away from the solid/liquid interface.
    A negative value of dz shifts towards    the solid/liquid interface.
  • shift-water-density        = 0.1d0 ! [nm] (default: 0d0)
    The water density rho(z) can be shifted by dz: rho(z - dz)
    A positive  value of dz shifts away from the solid/liquid interface.
    A negative value of dz shifts towards    the solid/liquid interface.

 

 

Buffer solution

  • include-buffer       = no      ! (default)

    include-buffer       = yes     !
    buffer-name          = ACETATE !
    Acetate buffer
                         = HEPES   !
    Hepes buffer
                         = TRIS    !
    Tris buffer
                         = MOPS    !
    Mops buffer
                         = PBS     !
    PBS buffer (phosphate buffer)
                         = ...     !
    The allowed buffer names and their parameters can be found in the database: $buffer-solutions
    buffer-concentration = 10d-3   !
    10 mM of buffer (The units are [M] = [mol/l] = [mole/liter] = 1d-3 [mol/cm³].)

    If the buffer ions should be included in the electrolyte automatically (include-buffer = yes), then these ions must not be specified under the keyword $electrolyte-ion-content.
    Moreover, the names, the valencies and the total number of buffer ions are taken from the entries in the database and included into the electrolyte region automatically.
    From the total buffer concentration (buffer-concentration = 10d-3) the program internally calculates the concentration of each buffer ion species self-consistently, taking into account
    - the pH value (pH-value = ...)
    - the ionic strength (The pKa value depends on the ionic strength: "modified pKa' value".)
    - the temperature   (The pKa value depends on the temperature.)
        Note that the constant 'A' that is used to calculate the ionic strength dependence of the pKa value also depends on the temperature.)
        For details on 'A', see this keyword: $buffer-constant-A(T)
    For more details on these calculations, have a look at the keyword $buffer-solutions.
     
  • pKa-temperature-dependence     = yes  ! (default)   pKa' = pKa + dpKa/dT  *  DeltaT =
                                          !                       = pKa + dpKa/dT  *  (T - 298.15)
                                          ! where dpKa/dT is the temperature coefficient specified in the database (dpKa_dT = ...)
                                          !
    and DeltaT is the temperature difference to the reference temperature at 25° C.
                                   = no   !
    The temperature dependence of the pKa value is switched off.
                                          ! Note: The temperature dependence of the constant 'A' that is used to calculate the ionic
                                          ! strength dependence of the pKa value cannot be switch off.
                                          ! It can only fixed to a certain value, independent of temperature, by specifying only one value
                                          ! of T and A(T) in the database or in the input file.
     
  • pKa-ionic-strength-dependence  = yes  ! (default)
                                          !
    The ionic strength of an electrolyte influences the pKa value of the buffer.
                                          ! This dependence can be described by an equation (sometimes known as the
                                          ! Debye-Hückel relationship) where the constant A(T) enters.
                                          ! For details, see the description in the keyword $buffer-constant-A(T).
                                   = no   ! The ionic strength dependence of the pKa value is switched off.
     
  • pKa-spatial-dependence         = yes  ! (default)
                                          !
    This is very similar as pKa-ionic-strength-dependence but for each grid point.
                                          ! Generally, at each grid point, a different pH value, i.e. concentration of [H3O+] ions, is possible.
                                          ! Thus, the ionic strength, the modified pKa' value, the pH value and
                                          ! the concentration of the buffer ions is determined self-consistently
                                          ! within the Poisson-Boltzmann equation in the semiconductor/electrolyte system.
                                          ! The output of the spatially varying pH value, pKa' value, and ionic strength is described below.
                                   = no   ! The same pKa' value is assumed for all grid points.

 

 

Debye screening length

Information on the Debye screening length can be obtained from this file: DebyeScreeningLength.txt

1/kappa = [ SUMi=1N  [ epsilon epsilon0 kBT / (ci (zie)2) ] ]1/2

Example:

ion-number   ion-valency   ion-concentration [mol/l]    ion-name
         1   -1.000000     7.0000002E-03                PBS^-
         2   -2.000000     3.0000000E-03                PBS^2-
         3    1.000000     1.3000000E-02                PBS+
         4   -1.000000     2.0000001E-03                Cl-
         5    2.000000     1.0000000E-03                Ni2+
         6   -1.000000     0.1400000                    Cl-
         7    1.000000     0.1400000                    K
         8    1.000000     3.1622776E-08                H3O+
         9   -1.000000     1.0000000E-06                OH-
        10   -1.000000     3.1622776E-08                anion-
        11    1.000000     1.0000000E-06                cation+

--------------------------------------------------------------------


dielectric constant: epsilon = 80.00000

====================================================================
Debye screening length: 1/kappa = 0.772540134486749 [nm]
====================================================================

 

 

Ionic strength

  • Bulk ionic strength

    Information on the (bulk) ionic strength can be obtained from this file: IonicStrength.txt

         I = 1/2  SUMi=1N  (ci zi2)

         I = ionic strength in units of [ ] (or better: [concentration] = [M])
         i = number of ion species
         N = total number of different ion species
         ci = concentration of ion species 'i'
         zi = charge of ion species 'i'

    For details, see chapter 3 in
    R.J. Beynon, J.S. Easterby, "Buffer solutions: The basics", Oxford University Press (1996).

    Example:

ion-number   ion-valency   ion-concentration [mol/l]    ion-name
         1   -1.000000     1.0000000E-02                Cl-
         2    1.000000     1.0000000E-02                Na+
         3    1.000000     1.0000000E-07                H3O+
         4   -1.000000     1.0000000E-07                OH-
         5   -1.000000     1.0000000E-07                anion-
         6    1.000000     1.0000000E-07                cation+

--------------------------------------------------------------------

====================================================================
Ionic strength: I = 1.000020000000000E-002 [M]        ([M]= [mol/l])
====================================================================

  • Spatially varying ionic strength

    In addition, as the concentration of the ion species varies with the spatial grid coordinate, the ionic strength as a function of position is printed out into a file. Possible filenames are:
    - IonicStrength_vs_position1D.dat                          (1D)
    - IonicStrength_vs_position1D_ind001.dat                   (1D)
    - IonicStrength_vs_position2D.fld        / *.coord / *.dat (2D/3D)
    - IonicStrength_vs_position2D_ind004.fld / *.coord / *.dat (2D/3D)
    For the 1D output, the first column contains the grid point coordinate in units of [nm], the second column contains the ionic strength for this grid coordinate in units of [M].
    At the grid point coordinates where the electrolyte's ion concentration is identical to the bulk ion concentration, the ionic strength must be equal to the bulk ionic strength which is printed out to the file IonicStrength.txt. For further details on the bulk ionic strength, see the description above.
     
  • Spatially varying pH value and modified pKa' value
    The files
    -   pH_vs_position1D/2D/3D.dat
    -  pKa_vs_position1D/2D/3D.dat
    - pKa1_vs_position2D/3D.dat
    contain the grid point dependent pH value (calculated from the spatially varying H3O+ concentration) and the grid point dependent modified pKa' value(s).
     
  • Spatially varying concentration of buffer ions
    The files
    -  BufferIonConc_vs_position1D.dat
    -  BufferIonConc1_vs_position2D/3D.dat
    -  BufferIonConc2_vs_position2D/3D.dat
    contain the grid point dependent concentration of the buffer ions (calculated self-consistently from the spatially varying pH value, ionic strength and modified pKa' value(s)). Note that these concentrations do not represent the actual concentration ci(r) of the buffer ions (see equation below), they represent the concentration c0(r).
                  ci(r) = c0(r) exp [ - ( zi e ( phi(r) - UG ) ) / ( kB T ) ]

 

 

Buffer solution

Information on the properties of the buffer can be obtained from this file: Buffer1D.dat

Example:

===================================================================
Buffer name: PBS
===================================================================


-------------------------------------------------------------------
Input quantities:
-------------------------------------------------------------------
Buffer concentration: [PBS] = 1.000000000000000E-002 [M]

pH value:             pH    = 6.636000

Temperature:          T     = 298.1500 [K], i.e. 25.00000 [C]

The pKa value depends on temperature 'T'.
The pKa value depends on ionic strength 'I'.

z_acid     =  0.0000000000000  -1.0000000000000  -2.0000000000000
dpKa/dT    =  0.0044000000000  -0.0028000000000  -0.0260000000000
pKa (25 C)2.1500000000000   7.2100000000000  12.3300000000000



-------------------------------------------------------------------
Calculated quantities:
-------------------------------------------------------------------
pKa (T)    =  2.1500000000000   7.2100000000000  12.3300000000000
pKa'(T,I)  =  2.0815978725534   7.0047936176601  11.9879893627668

A = 0.511400000000000
Note: A always depends on temperature.

Ionic strength: I = 2.599208084382508E-002 [M]


Concentration of buffer ions:
-----------------------------
ion-number   ion-valency   ion-concentration [mol/l]   ion-name
              
0            ...                        H3PO4
         3    -1.000000     7.0038019E-03              H2PO4^-
         4    -2.000000     2.9959893E-03              HPO4^2-
         5    -3.000000     1.3321431E-08              PO4^3-
         6     1.000000     1.2995820E-02              Na^+

The concentration of all ions (not only the buffer ions), the ionic strength, as well as the pKa' value(s) as a function of pH are contained in this file:
BufferIonConc_vs_pH1D.dat
 

Oxide/electrolyte interface states (interface charges, so-called "site-binding model") can be specified here: $interface-states

More information on the electrolyte liquid and the Poisson-Boltzmann equation: $electrolyte-ion-content

 

Preliminary feature

  • If we have one Dirichlet boundary condition only, then this Dirichlet value is assigned to PhiInfinityV(1).
  • If we have two Dirichlet boundary conditions, then the second Dirichlet value is assigned to PhiInfinityV(1).
    (This means we assume that the electrolyte is at the right side of a 1D simulation.)