This page is best viewed by Mozilla Firefox 21.0 at a screen resolution of 1024 x 768 pixels.

The program of electron transport in bulk GaAs using Monte Carlo method consists of main program and some subroutines named *param*, *initia*, *smc*, and *out*. Inside *smc *subroutine, there are also subroutines named *drift*(*tau*) and *scat*. The parameters involved here are *tem* (lattice temperature), *cimp* (impurity concentration), *tmax (*total simulation time), and *fx* (applied electric field). The flowchart of main program is shown in Fig 1.

The Gamma and L valleys are engaged here. The scattering mechanisms taken into account are those to acoustic acoustic phonons, non-polar optical phonons and impurities. The non-parabolicity of bands are included except for the scattering by polar optical phonon, for which the parabolic band model is assumed. The other parameters such as *q* (magnitude of electronic charge), *h* (Plank’s constant), *bk* (Boltzmann’s constant) , *ep0*(permittivity of free space), and *am0* (electron mass in vacuum) are declared in *param *subroutine. This subroutine output are *gm *(gamma), and *swk *(scattering rate). The flowchart of *param *subroutine as part of program of electron transport in bulk GaAs using Monte Carlo method is shown in Fig 2.

The *initia *subroutine provides initial condition for particles and also some outputs such as: *iv *(valley index) for Gamma and L valleys; *kx*, *ky*, and *kz*, i.e., the component of wave vector in x, y, and z direction. This subroutine as part of program of electron transport in bulk GaAs using Monte Carlo method is shown in Fig 3.

Then, the particle motion during simulation time is calculated in *smc *subroutine. Here, *tau *(the flight time) is generated by random number generator. After the free flight, the electron will be scattered again by one of the scattering mechanisms, including self-scattering. Figure 4 shows the *smc *subroutine as part of program of electron transport in bulk GaAs using Monte Carlo method.

If we assume that only the electric field in x-component is non zero, then the *drift*(*tau*) subroutine will produce the carrier velocity and energy by monitoring each electron flight and then taking an average over all flights. The calculation is processed in *drift*(*tau*) subroutine. The *drift*(*tau*) subroutine as part of program of electron transport in bulk GaAs using Monte Carlo method is shown in Fig 5.

For isotropic scattering, (i.e., if the scattered electron has the same probability of being in any direction after scattering), the components *k’x*, *k’y* and* k’z* can be found in *scat* subroutine. Figure 6 shows the *scat *subroutine as part of program of electron transport in bulk GaAs using Monte Carlo method.

Figure 7 shows the *rnd *subroutine as part of program of electron transport in bulk GaAs using Monte Carlo method that generates random number generator.

Figure 8 shows the *out *subroutine as part of program of electron transport in bulk GaAs using Monte Carlo method that displays the output paramaters such as *ve *(mean velocity), *en *(mean energy).

If you want to learn more about Monte Carlo method, you can read “Numerical Simulation Of Submicron Semiconductor Devices” by Kazutaka Tomizawa.

*Acknowledgment*

I want to acknowledge Assoc. Prof. Dr. Ah Heng You (Multimedia University, Malaysia) who giving me discussions on many topics of Monte Carlo Method.

By Anak Agung Ngurah Gde Sapteka, University of Indonesia.

great job, gung!