Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational...

39
Computer Simulation of Molecular Electrochemistry Experiments A Rational Approach Kai Ludwig and Bernd Speiser Institut f ¨ ur Organische Chemie, Universit ¨ at T ¨ ubingen Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.1/21

Transcript of Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational...

Page 1: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Computer Simulation of MolecularElectrochemistry Experiments

—A Rational Approach

Kai Ludwig and Bernd Speiser

Institut fur Organische Chemie, Universitat Tubingen

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.1/21

Page 2: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Simulation

mechanism, transport, geometry(physicochemical model)

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.2/21

Page 3: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Simulation

mechanism, transport, geometry(physicochemical model)

partial differential equations(mathematical model)

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.2/21

Page 4: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Simulation

mechanism, transport, geometry(physicochemical model)

partial differential equations(mathematical model)

concentration profiles, current/potential curves(numerical model)

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.2/21

Page 5: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Simulation and Molecular Electrochemistry

uses of simulation in molecular electrochemistry:

analyze experimental data by comparison tocalculations

predict experimental responses for complexsystems

numerical calculations: “digital simulation” (Feldberg,1969)

programs for specific purposes vs. software packages

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.3/21

Page 6: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Simulation Packages

purpose: help non-programmers to apply simulation in

everyday work

selection of more or less extended and popular simulation

packages in the literature:

EASI (Speiser, since 1990) — fixed list of mechanisms

Elsim (Bieniasz, since 1992) — complex mathematical

relationships

Digisim (Feldberg, Rudolph, et al., since 1994) — “any”

mechanism, windows style, CV

DigiElch (Rudolph, 2004) — variation of Digisim

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.4/21

Page 7: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Common Problems with Simulation Packages

complex code(difficult to understand and maintain)

extension difficult or impossible(mechanisms, geometries, transport phenomena,experiments)

proprietary code(distribution as binary executable)

limited testing(“open science” based on access to code)

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.5/21

Page 8: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

A Possible Rational Solution

based on two paradigms:

use object-oriented programming techniques

provide open-source code

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.6/21

Page 9: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

A Possible Rational Solution

based on two paradigms:

use object-oriented programming techniques

provide open-source code

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.6/21

Page 10: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Object-Oriented Methods I

definition:“writing program text decomposed in modules”(wikipedia.org) which encapsulate data and actions

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.7/21

Page 11: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Object-Oriented Methods I

definition:“writing program text decomposed in modules”(wikipedia.org) which encapsulate data and actions

use: large scale software projects

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.7/21

Page 12: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Object-Oriented Methods I

definition:“writing program text decomposed in modules”(wikipedia.org) which encapsulate data and actions

use: large scale software projects

possible advantages:

production of flexible, extensible code

re-use of tested code

localized debugging and maintenance

better understanding of real system

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.7/21

Page 13: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Object-Oriented Methods II

three common steps of working with the object-orientedparadigm:

analysis: identify concepts(in the real system)

design: describe interaction, define classes(construction plans for objects)

programming: implement in a programming language(write the code)

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.8/21

Page 14: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Object-Oriented Methods III

object: instantiation of a class

a program: collection of interacting objects

relations between classes (and objects):exchange of informationcompositionderivation

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.9/21

Page 15: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Object-Oriented Methods III

object: instantiation of a class

a program: collection of interacting objects

relations between classes (and objects):exchange of informationcompositionderivation

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.9/21

Page 16: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Object-Oriented Methods III

object: instantiation of a class

a program: collection of interacting objects

relations between classes (and objects):exchange of informationcompositionderivation

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.9/21

Page 17: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Object-Oriented Methods III

object: instantiation of a class

a program: collection of interacting objects

relations between classes (and objects):exchange of informationcompositionderivation

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.9/21

Page 18: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Object-Oriented Methods III

object: instantiation of a class

a program: collection of interacting objects

relations between classes (and objects):exchange of informationcompositionderivation

objects are “building blocks” of program

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.9/21

Page 19: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Technical Aspects of EChem++

programming language: C++

operating system: Linux

extended use of librariesQuantity quantity.sourceforge.net

Spirit spirit.sourceforge.net

GiNaC www.ginac.de

GMM++ www.gmm.insa-tlse.fr/getfem

VTK public.kitware.com/VTK

Qt www.trolltech.com

tree.hh www.damtp.cam.ac.uk/user/kp229/tree

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.10/21

Page 20: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Example Objects in EChem++ I

excitation functions: induce changes during experimentclass Segment, class ExcitationFunction

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.11/21

Page 21: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Example Objects in EChem++ I

excitation functions: induce changes during experimentclass Segment, class ExcitationFunction

E

t

E

t

E

t

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.11/21

Page 22: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Example Objects in EChem++ I

excitation functions: induce changes during experimentclass Segment, class ExcitationFunction

d

i

d

i

d

i

d

i

d

i

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.11/21

Page 23: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Example Objects in EChem++ I

excitation functions: induce changes during experimentclass Segment, class ExcitationFunction

Segment

LinearSegment<D,I>

D value( I )

D starting_value D end_value

I maximum()

I Imax

ConstantSegment<D,I>

D value( I )

D constant_value

PowerSegment<D,I>

D value( I )

D d_0 D d_1 I i_1 double power

SineSegment<D,I>

D value( I )

D offset D amplitude Frequency angular_frequencyPlaneAngle phase_shift

ExponentialSegment<D,I>

D value( I )

D d_0 D d_1 Frequency omega

DISegment<D,I>

virtual D value( I ) = 0

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.11/21

Page 24: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Example Objects in EChem++ I

excitation functions: induce changes during experimentclass Segment, class ExcitationFunction

ExcitationFunction

DIExcitationFunction<D,I>

virtual void add( DISegment<D,I> ) D value( I )

vector<D> values( vector<I> ) vector<D> values( I , int ) I maximum()

vector<DISegment*> segments

SDIExcitationFunction<D,I,S<D,I> >

void add( S<D,I> )

I maximum()

I Imax

DISegment<D,I>

virtual D value( I ) = 0

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.11/21

Page 25: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Example Objects in EChem++ II

reaction network:translate mechanisms into internal representationclass ReactionNetwork, class Law

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.12/21

Page 26: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Example Objects in EChem++ II

reaction network:translate mechanisms into internal representationclass ReactionNetwork, class Law

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.12/21

Page 27: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Example Objects in EChem++ II

reaction network:translate mechanisms into internal representationclass ReactionNetwork, class Law

reactionNetwork

reaction

boundaryOperatoreducts productsreactionArrow

+

reactionBlock

<=>reactionAddend

species

neutrum

A

reactionAddend

species

electron

e-

reactionAddend

species

neutrum

B

b< integer >

1

;

options

;

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.12/21

Page 28: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Example Objects in EChem++ II

reaction network:translate mechanisms into internal representationclass ReactionNetwork, class Law

Law

value() gradient() add( int , Law*) parameters()

ZeroLaw

value() gradient() add( int, Law*)

ButlerVolmer

value() gradient() add( int , Law*)

GenericRateLaw

value() gradient() add( int , Law*)

PowerRateLaw

value() gradient() add( int , Law*)

CompositeLaw

value() gradient() add( int , Law*)

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.12/21

Page 29: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Example Objects in EChem++ III

numerical integration:solve differential equations by adaptive multilevel finiteelement methodclass RotheRosenbrock, class MFEM

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.13/21

Page 30: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Example Objects in EChem++ III

numerical integration:solve differential equations by adaptive multilevel finiteelement methodclass RotheRosenbrock, class MFEM

integrate systems of

∂c

∂t= D

∂2c

∂x2+ ρ(c)

subject to appropriate initial and boundary conditions

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.13/21

Page 31: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Example Objects in EChem++ III

numerical integration:solve differential equations by adaptive multilevel finiteelement methodclass RotheRosenbrock, class MFEM

RotheRosenbrock

updateMeshData() step( u_new, r_new, eps_x, eta, un, tn, tau, coarseError )

RotheRos3P

updateMeshData() step( u_new, r_new, eps_x, eta, un, tn, tau, coarseError )

RotheROWDA3

updateMeshData() step( u_new, r_new, eps_x, eta, un, tn, tau, coarseError )

RotheRos2

updateMeshData() step( u_new, r_new, eps_x, eta, un, tn, tau, coarseError )

RotheRodasP

updateMeshData() step( u_new, r_new, eps_x, eta, un, tn, tau, coarseError )

Law kineticTerms

Law boundaryTerms

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.13/21

Page 32: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Proposed Electrochemical Simulation High Level Modules

HardwareControl

Experiment

ExcitationFunction

Analysis

Data

Model

Cell

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.14/21

Page 33: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Example Simulation I: pseudo-first order reaction

A ⇀↽ B + e− E0, ks, α,D

B + C −→ D k

assume: cyclic voltammetry, cC = 100 × cA, k = 100 s−1

treat follow-up reaction as

second order (e.g., in DigiSim)

pseudo-first order (power rate law: r = kcB; this work)

decouple stoichiometry and kinetics

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.15/21

Page 34: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Example Simulation II: non-triangular wave forms

A ⇀↽ B + e− E0, ks, α,D

assume: accumulation of B in diffusion layer by prolongedpotential-controlled oxidationvary excitation functions: E

t

use of more complicated, non-triangular waveforms

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.16/21

Page 35: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Example Simulation III: two working electrode system

A ⇀↽ B + e− E01 , ks,1, α1,D1

A + e− ⇀↽ C E02 , ks,2, α2,D2

B + C ⇀↽ 2A K,k

assume: generate oxidation and reduced form at two working

electrodesspecify electrode geometry: d = 50 µmk = 107 l mol−1 s−1

E0

1= +0.25 V, E0

2= −0.25 V

electrode 1 electrode 2

A ⇀↽ B + e−

diffusionց

A + e− ⇀↽ Cdiffusionտ

B + C ⇀↽ 2A

define complex geometries with multiple boundaries (currently only 1D)

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.17/21

Page 36: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

EChem++ and Open Source Paradigm

open-source software is open for . . .

use

modification

redistribution

in source form

apart from licence considerations, this is promoted within

EChem++ by . . .

modular, object-oriented design

extendability

free availability on the internet

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.18/21

Page 37: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Conclusion: The EChem++ Simulation Package

simulation software for molecular electrochemistry

code based on object-oriented methods

provides framework for extensions to additionalprocesses, conditions, etc.

already in present state some improvements aboveexisting software

open-source character

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.19/21

Page 38: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Invitation

download, test, report, contribute

http://echempp.sourceforge.net

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.20/21

Page 39: Computer Simulation of Molecular Electrochemistry Experiments …+/documents/… · A Rational Approach Kai Ludwig and Bernd Speiser Institut fu¨r Organische Chemie, Universitat

Acknowledgements

financial support:Deutsche Forschungsgemeinschaft

co-operation:excitation function: L. Rajendrangraphical user interface: A. Millers

Computer Simulation of Molecular Electrochemistry Experiments—A Rational Approach – p.21/21