Multiscale simulation of copper electrodeposition (with Linda Petzold, Richard Alkire and Richard Braatz, Fall 2005 - present)
My research project is to develop efficient and scalable numerical methods for the multi-scale simulation of electrochemical phenomena, with particular application to copper electrodeposition, nucleation and growth. The physical system consists of a bulk electrolyte region governed by nonlinear partial differential equations with algebraic constraints stiffly coupled to a reacting moving surface that is modeled stochastically. Because dynamics span 4 orders of magnitude in space and 8+ orders of magnitude in time, existing numerical methods have been limited to two dimensions at low resolution while still suffering from numerical accuracy issues (negative chemical concentrations).

Above: Picture shows electrodeposition of copper into 3 adjacent nanoscale trenches.
I have developed a new algorithm to solve the governing electrolyte equations that is fast, scalable, stable and accurate. The increased speed makes 3D simulations now feasible even on a desktop PC. In addition, I have linked this algorithm to a complex (determististic) surface reaction model with moving boundary (using level set methods). Because of the stiff, destabilizing coupling between the surface and electrolyte codes, I had to develop a new Newton-like iteration technique to solve the linked system consistently. This code is currently being used to study infill of 3D via on-chip interconnects. Linkage to a kinetic Monte-Carlo (KMC) surface model is currently underway and will be used to study copper nucleation and growth dynamics.
To see a description of my algorithm for the electrolyte region, click here (or for a detailed version, click here).
To see a movie of 2D trench infill with void, click here.
To see a movie of 2D trench infill without void, click here.
Fortran code for simulating trench infill : buoni_trench_code.zip
Fortran code for simulating trench infill with applied potential input file : trench_code_plus_input_files.zip