Professional Documents
Culture Documents
Kai Ludwig and Bernd Speiser Institut fur Organische Chemie, Universitat Tubingen
Simulation
Simulation
Simulation
uses of simulation in molecular electrochemistry: analyze experimental data by comparison to calculations predict experimental responses for complex systems numerical calculations: digital simulation (Feldberg, 1969) programs for specic purposes vs. software packages
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) xed 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
complex code (difcult to understand and maintain) extension difcult or impossible (mechanisms, geometries, transport phenomena, experiments) proprietary code (distribution as binary executable) limited testing (open science based on access to code)
Object-Oriented Methods I
denition: writing program text decomposed in modules (wikipedia.org) which encapsulate data and actions
Object-Oriented Methods I
denition: writing program text decomposed in modules (wikipedia.org) which encapsulate data and actions use: large scale software projects
Object-Oriented Methods I
denition: writing program text decomposed in modules (wikipedia.org) which encapsulate data and actions use: large scale software projects possible advantages: production of exible, extensible code re-use of tested code localized debugging and maintenance better understanding of real system
Object-Oriented Methods II
three common steps of working with the object-oriented paradigm: analysis: identify concepts (in the real system) design: describe interaction, dene classes (construction plans for objects) programming: implement in a programming language (write the code)
object: instantiation of a class a program: collection of interacting objects relations between classes (and objects): exchange of information composition derivation
object: instantiation of a class a program: collection of interacting objects relations between classes (and objects): exchange of information composition derivation
object: instantiation of a class a program: collection of interacting objects relations between classes (and objects): exchange of information composition derivation
object: instantiation of a class a program: collection of interacting objects relations between classes (and objects): exchange of information composition derivation
object: instantiation of a class a program: collection of interacting objects relations between classes (and objects): exchange of information composition derivation objects are building blocks of program
excitation functions: induce changes during experiment class Segment, class ExcitationFunction
excitation functions: induce changes during experiment class Segment, class ExcitationFunction
excitation functions: induce changes during experiment class Segment, class ExcitationFunction
excitation functions: induce changes during experiment class Segment, class ExcitationFunction
excitation functions: induce changes during experiment class 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> ) DISegment<D,I> virtual D value( I ) = 0 I maximum() I Imax
reaction network: translate mechanisms into internal representation class ReactionNetwork, class Law
reaction network: translate mechanisms into internal representation class ReactionNetwork, class Law
reaction network: translate mechanisms into internal representation class ReactionNetwork, class Law
reactionNetwork reactionBlock reaction educts reactionAddend species neutrum A + reactionArrow products reactionAddend species neutrum B ; options boundaryOperator b< integer 1 > ;
reaction network: translate mechanisms into internal representation class ReactionNetwork, class Law
numerical integration: solve differential equations by adaptive multilevel nite element method class RotheRosenbrock, class MFEM
numerical integration: solve differential equations by adaptive multilevel nite element method class RotheRosenbrock, class MFEM
numerical integration: solve differential equations by adaptive multilevel nite element method class RotheRosenbrock, class MFEM
RotheRosenbrock kineticTerms Law Law
updateMeshData() step( u_new, r_new, eps_x, eta, boundaryTerms 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 )
Model
B + e
E 0 , ks , , D k
B + C D
assume: cyclic voltammetry, cC = 100 cA , k = 100 s1 treat follow-up reaction as second order (e.g., in DigiSim) pseudo-rst order (power rate law: r = kcB ; this work) decouple stoichiometry and kinetics
A B + e
E 0 , ks , , D
assume: accumulation of B in diffusion layer by prolonged potential-controlled oxidation E vary excitation functions:
K, k
assume: generate oxidation and reduced form at two working electrode 1 electrode 2 electrodes
specify electrode geometry: d = 50 m k = 107 l mol1 s1
0 0 E1 = +0.25 V, E2 = 0.25 V
A B + e diffusion
B + C 2A
diffusion A + e C dene complex geometries with multiple boundaries (currently only 1D)
simulation software for molecular electrochemistry code based on object-oriented methods provides framework for extensions to additional processes, conditions, etc. already in present state some improvements above existing software open-source character
Invitation
Acknowledgements
nancial support: Deutsche Forschungsgemeinschaft co-operation: excitation function: L. Rajendran graphical user interface: A. Millers