echem++

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

Upload: joao-guilherme-siqueira-monteiro

Post on 07-Mar-2015

43 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ECHEM++

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: ECHEM++

Simulation

mechanism, transport, geometry(physicochemical model)

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

Page 3: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

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: ECHEM++

Invitation

download, test, report, contribute

http://echempp.sourceforge.net

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

Page 39: ECHEM++

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