This work simulates the electrodeposition of copper onto the inner surface of a submicron rectangular trench with an (additive-free) electrolytic solution containing 0.5 M CuSO_{4} and 1 M H_{2}SO_{4}. The kinetic Monte Carlo code, used to simulate near-surface behavior, provided concentrations to the continuum code, while the continuum code, which simulated transport of the species in a diffusion layer region, passed fluxes back to the Monte Carlo code. Simulations were performed under galvanostatic (constant current) control, although the code was also able to simulate potentiostatic as well as potentiodynamic (time-dependent) control.

#### Monte Carlo code

The 3-D kinetic Monte Carlo code simulated mesoscale behavior in the near-surface region during deposit growth with use of cubic mesoparticles that represented clusters of molecules of various species in the deposition bath. A mesoscale simulation approach has been described elsewhere (Maroudas, 2000), and is important for simulating surface roughness evolution that cannot be accurately described by a continuum approach. The mesoparticle approach has been widely used (Birdsall and Langdon, 1985; Bird, 1994; Lu et al., 2001). In the present work, mesoparticles were assumed to be homogeneous in both phase and composition. The user specifies the species, the steps of the reaction sequence in which they participate, the parameters required for each action, and the operating variables.

The Monte Carlo simulation domain had periodic boundary conditions in the *x*- and *y*-directions, an impenetrable boundary at the bottom of the trench (in the *z*-direction), and a link to the continuum code at the top boundary, where the flux of mesoparticles into the domain from the continuum region was obtained as described in the next section. The initial trench aspect ratio used for the simulations reported here was 2:1. The trench width of 0.50 μm was used for the simulations presented here, and the mesoparticle size was 12.5 nm, which gave a simulation space that was 70 mesoparticles wide, 120 mesoparticles high, and 6 mesoparticles deep, within which the trench was 40 mesoparticles wide and 80 mesoparticles high. The additional height in the Monte Carlo space allowed the deposit to grow on the external surface adjacent to the trench.

At a given Monte Carlo time step, a mesoparticle can only make a maximum of one move. The moves that a mesoparticle makes are a function of the location of the particle in the simulation space and the number and type of nearest neighbors. All actions are computed as frequencies, with units of s^{−1} for homogeneity.

Bulk diffusion is used to move species through the bulk electrolyte, and it is typically the most computationally demanding part of the simulations. Bulk-diffusion coefficients are generally large compared to reaction rates, so the bulk-diffusion coefficients typically dictate the dynamics of the system, since the Monte Carlo time step is computed as 1/(frequency of an action). The movement of a particle by bulk diffusion to one of its six nearest-neighbor sites is simulated by a random-walk mechanism

- (3)

Surface diffusion is used to specify how a particle can maneuver along a solid surface. Surface-diffusion coefficients are typically not as high as bulk-diffusion coefficients, and particles tend to only surface diffuse for a short amount of time before they incorporate into the surface. The movement of a particle by surface diffusion is also simulated by a random-walk mechanism

- (4)

The Δ*E* is computed at each Monte Carlo time step as a function of the local surface morphology and makes it more facile or difficult for a particle to diffuse into one location or another depending on the value of Δ*E*.

The code can model adsorption with and without charge transfer. If the adsorption occurs with charge transfer, a mesoparticle of charge is consumed and the number of mesoparticles of charge consumed in the simulations is tracked and used to compute the current in the system. The reaction is a combination of Arrhenius and Tafel kinetics

- (5)

The energy barrier in the reaction frequency is computed as a function of the six nearest neighbors of the particle.

The Monte Carlo time step must be small enough to capture the full dynamics of the system, so the time step is dictated by the time scale of action of the fastest species. To compute the time step, all of the possible frequencies for each species are computed. Then the inverse of each summed frequency is computed. The Monte Carlo time step *t*_{MC} is then selected as the smallest inverse summed frequency

- (6)

- (1)

In the simulations presented here the Monte Carlo time step was ∼4.34 × 10^{−8} s, and the simulations involved ∼1.04 × 10^{9} time steps. During the Monte Carlo simulation, mesoparticles are selected in the Monte Carlo domain and the simulation code looks at the “menu” of possible moves defined for the species, which is called the probability array

- (8)

where ρ_{j} is the probability array for species *j* that contains a vector of probability bands. If all of the elements of ρ_{j} are summed, then the value of the summation will be less than 1 for all species, except the fastest reacting species in the system. If the summation is less than 1, then there is a nonzero probability of rejecting moves in the code for all species except the fastest reacting species in the system. In Eq. 8, each *f*_{i}*t*_{MC} defines a “probability band” or bounds on an action. The values of *f*_{i}*t*_{MC} have to be between 0 and 1. To determine what move a particle is going to make at a certain time step, the probability array is first constructed for that species. Then a random-number generator is called and it returns a random number between 0 and 1. The probability bands within which that number falls dictate the action that the particle takes at that time step. For all species other than the fastest moving species, there is a region in the probability array for which “do nothing” is an option, that is, the upper probability band is less than 1. If a random number is selected that is between this upper probability band and 1, then the particle does not do anything during the current time step. If a particle does not do anything during the current time step, then it has implicitly rejected a move. Once a move is selected, another random number is computed that tells the species to which free space it should move.

The galvanostatic simulations reported here required development of a controller to manipulate the system overpotential to obtain the desired current density (Drews, 2001). In addition, step-potential programs were used to determine the dynamics in the system and to tune the controller to compensate for the dynamics.

In a previous study, dimensionless scaling arguments were used to show that fluid convection and ohmic solution resistance are not important within submicron trenches (Takahashi et al., 1999). Moreover, concentration gradients would be expected in a trench only if the parameter

- (9)

is greater than 1. For a typical trench simulation in this study (0.50 μm deep with deposition occurring at 15 mA/cm^{2}) the ξ_{D} parameter is 0.01 for cupric ions. The small value of ξ_{D} indicates that one would expect insignificant cupric ion depletion in the trench during electrolysis. In view of these physical expectations, and in order to reduce the computational time involved in tracking many species, the assumption was made for the Monte Carlo region to include only cupric ions in the volume of the trench. While the cupric concentration gradients are expected to be small in this investigation, it is important to retain bulk diffusion in the code for future applications, which will include consideration of dilute species for which concentration variations may be significant. The cupric ions move through the electrolyte in the Monte Carlo domain via a random-walk mechanism that simulates diffusion.

#### Finite difference codes

The finite difference model solved a system of coupled nonlinear partial differential equations and algebraic equations. Originally developed (Webb et al., 2002) for another application, the code was modified to address continuum transport in the diffusion layer outside the Monte Carlo region. Figure 1 shows the geometry of the continuum domain, along with the Monte Carlo region in the inset. The height of the continuum domain corresponded to the diffusion-layer thickness, which was 50 μm. A mesh of unequally spaced nodes was used. A necklace of ten nodes existed at the interface between the Monte Carlo and continuum codes. The width of the Monte Carlo-continuum boundary was set to 0.875 μm, of which 0.50 μm was the width of the trench and 0.1875 μm on either side of the trench were the trench walls.

The dilute solution approximation was used to describe transport by diffusion and migration, and the solution was stagnant. The transport parameters were assumed to be independent of concentration. Elemental material balances were used for each species, *i*, containing the base species, *k*

- (10)

The equations for reaction equilibria describing relationships among the concentrations of the chemical species

- (11)

along with the electrical neutrality assumption

- (12)

completed the equation set. For a system involving *n* species, the set of Eqs. 10–12 provide *n* + 1 equations for the *n* + 1 unknowns (*n* species plus the solution potential).

At the upper, left, and right boundaries, the concentrations of all species were ascribed their bulk values, and zero potential with respect to the reference electrode was specified

- (13)

At the boundary linked to the Monte Carlo code, the fluxes of the nonreactive ions were equal to zero

- (14)

Additionally, for the boundary linked to the Monte Carlo code, the cupric ion flux was given by

- (15)

The boundary conditions for the linked boundary were completed with the addition of the equation of electroneutrality

- (16)

In summary, the set of equations given by Eqs. 10–12 along with the boundary conditions given by Eqs. 13–16 form a system of coupled nonlinear partial differential equations mixed with coupled nonlinear algebraic equations. The set of equations was solved simultaneously to obtain the cupric-ion flux at the boundary linked to the Monte Carlo code.

The system of coupled nonlinear partial differential equations and algebraic equations was solved numerically by the finite difference method. Second-order centered finite differences, in two-dimensions, were used to approximate the solution of the set of nonlinear partial differential equations by transforming them into a set of nonlinear algebraic equations. Second-order forward- and backward-difference approximations were used on the boundaries. The finite difference form of the partial differential equations was obtained from partial Taylor series expansion by using unequally spaced nodes, and a fully implicit scheme was implemented to step forward in time.

A line-search Newton method was used for the nonlinear set of equations where the Jacobian was hand coded. The Jacobian matrix was stored in the AIJ sparse matrix format. The resulting linear system from application of Newton's method was solved using the GMRES Krylov subspace method with ASM preconditioner. The model used PETSc (Portable, Extensible Toolkit for Scientific Computation) (http://www.mcs.anl.gov/petsc), which was developed for the parallel solution of systems of equations resulting from the discretization of partial differential equations and is particularly useful for this application, due to the large system of equations that must be solved. PETSc provided an efficient set of tools to solve the system of linear and nonlinear equations and boundary conditions, an efficient storage method to reduce memory requirements for the very large and very sparse matrix associated with the set of equations, and an efficient method to parallelize the structured grid with a distributed array. PETSc allowed for easy change of the solution method for both the nonlinear system and the resulting linear system of equations for determination of the most efficient solution technique for the set of equations. This model extended our previous 1-D finite difference model due the fact that it is a 2-D code that solves for the migration contribution to the flux. Additionally, the 2-D code is necessary to accurately simulate the effect of diffusion-limited additives in a trench, in which significant 2-D variations in the additive concentrations would be present. In the simulations presented here, the finite difference code computes steady-state flux information to pass to the Monte Carlo model, although it is capable of transient simulations.