Thin film solar cells have the potential to significantly decrease the cost of photovoltaics. However, it is critical to trap light in the solar cell to increase light absorption, i.e. to increase the conversion efficiency. For this purpose, nanosized structures, such as textured surface and nano–particle deposition on the surface, have been proposed.
In this example, we consider a n/p crystalline silicon thinfilm solar cell with nanosized metal (silver or gold) particles distributed on its surface, as shown above, and explain how to simulate the light absorption using FDTD. We assume that the particles are periodically located as shown below in the snapshot of FDTD’ layout editor (Fig.1). According to the simulation results, silver nanoparticles can enhance absorption over the solar spectrum range by approximately 20%.
Fig.1 Screenshot of layout editor with periodic array of nanoparticles
We consider simulations for normal and oblique incidence. The main difference between the two simulations is the type of plane wave source. For oblique incidence we use the Broadband Fixed Angle Source Technique (BFAST).
Normal incidence
Simulation setup
The simulation file solar_plasmonic_normal.fsp shows the setup for one unit cell of the structure using appropriate boundary conditions, as discussed in Typical simulation setup in FDTD. For the two metals in the simulation, silver and gold, we use material data from the Material database, modifying some of the default fitting parameters to improve the material fit over the solar spectrum range from 400 nm to 1100 nm. In terms of the mesh, we use the auto nonuniform setting with accuracy 2 and two mesh override regions: (1) "mesh_particle" for the abruptly changing field distribution around the particle at the resonance frequency (dx = dy = dz = 5 nm), and (2) "mesh_space" for the small gap between the particle and the surface (dz = 1 nm).
To calculate the power absorbed in the silicon substrate, two power monitors are used: (1) "monitor_surface", right on top of the substrate, and (2) "monitor_bottom", located at 0.5 µm below the surface. Using the script function "transmission", the absorbed power can be easily calculated by
P_absorbed =transmission ("monitor_surface")(transmission ("monitor_bottom"))
We calculate the absorbed power for setups with and without the metallic nanospheres in order to determine the enhancement factors g(λ) and G, as described in Solar cell methodology. We also use the analysis group "pabs_adv" to find the absorption density (Watts/um^3) and plot it for a cross section of the structure.
Results
Fig. 2 shows the results of the absorption enhancement g(λ) for nanoparticles with diameters D = 100 nm and D = 200 nm, fixing the period of the structure to be 400 nm. For both gold and silver particles, light absorption is enhanced and suppressed above and below the surface plasmon resonance frequency, respectively, as discussed in Ref. [1]. The results for gold particles with D = 100 nm are in good agreement with those in Fig.5 from Ref.[1] where the finiteelement method is used.
(a)
(b)
Fig.2 Absorption enhancement g(λ) for plasmonic solar cell with (a) silver and (b) gold nanospheres.
To obtain these results, run the script solar_plasmonic_normal_qe.lsf. The file solar_plasmonic_normal.fsp is required. The script file creates two versions of the original simulation file: solar_cell.fsp and solar_cell_bare.fsp, with and without particles, respectively. For the simulation with nanospheres, a nested sweep is used for the material (silver and gold) and particle diameter. In each configuration the absorbed power is calculated and the combined results for the enhancement g(λ) are plotted as shown above. The script also calculates the overall enhancement G for the wavelength range from 400 nm to 1100 nm:
Ag, D = 100 nm 
Ag, D = 200 nm 
Au, D = 100 nm 
Au, D = 200 nm 


G 
1.124 
1.200 
1.001 
0.791 
The enhancement for silver nanoparticles is substantial (up to 20%), while for gold nanoparticles the enhancement is quite small; in fact, for D = 200 nm the gold particles reduce the integrated quantum efficiency of the solar cell. The reason for the higher efficiency of silver is that the peak wavelength of g(λ) for this material is closer to the sun spectrum peak around 500 nm as shown in Fig. 2. For a detailed analysis, you can sweep over more values of sphere diameter and periodicity.
Finally, Fig.3 shows the profile of the optical absorption per unit volume at a wavelength 0.62 um with and without silver nanoparticles (D = 200 nm). We actually plot the logarithm of the absorption density using the same color scale to facilitate the comparison between the two configurations. It is clear that the particle increases absorption in the silicon substrate by enhancing the forward scattering due to the surface plasmon resonance.
(a)
(b)
Fig. 3. Absorption profile of plasmonic solar cell (a) and bare solar cell (b).
The absorption per unit volume (Watt/m^3), normalized to source power, can be calculated using the analysis group "pabs_adv"; if "Pabs" is integrated over the volume, we get the absorption portion relative to the incident power. See the Absorption measurements page for more information on measuring absorption. You can use the following script to create the plots above:
runanalysis; Pab0= getresult("pabs_adv","Pabs"); x=Pab0.x; y=Pab0.y; z=Pab0.z; f=Pab0.f; w0=0.621;# wavelength interested to plot in um f0=c/w0*1e6; nw=find(f,f0); ny=find(y,0); pabxz=pinch(Pab0.Pabs(1:length(x),ny,1:length(z),nw)); image(x*1e6,z*1e6,pabxz*1e18,"x um","z um"," Absorption density watt/um^3"); image(x*1e6,z*1e6,log(pabxz*1e18),"x um","z um"," Absorption density watt/um^3, log(Pabs)");
Oblique incidence
Simulation setup
The setup for this simulation is essentially the same as the one described in the normal incidence example. The main difference is the use of BFAST for the plane wave type in the source settings. We follow the guidelines described in the Source  BFAST page, keeping the default settings for the advanced options.
Regarding the use of symmetric/antisymmetric boundary conditions, it is important to remember that a nonzero injection angle breaks the symmetry in the plane of incidence (XZ plane in this example); therefore, the antisymmetric boundary conditions for x min and x max cannot be used as in the normal incidence case. In the y direction, however, the symmetry is preserved, and so we can keep symmetric boundary conditions for y min and y max. As discussed in the Source  BFAST page, BFAST will automatically override the antisymmetric boundary conditions for x max and x min, while keeping the symmetric boundary conditions for y min and y max.
The results discussed in the next two sections can be obtained by running the script solar_plasmonic_oblique_qe.lsf together with the simulation file solar_plasmonic_oblique.fsp. For simplicity, we have only considered silver nanospheres with a 200 nm diameter. We also modified some of the original settings in the normal incidence example to make the simulation faster:
 increased the autoshutoff minimum value from 1e6 to 1e5;
 increased the mesh step in the mesh override region "mesh_particle" from dx = dy = dz = 5 nm to dx = dy = dz = 10 nm.
However, in the last section we show more accurate results obtained by modifying these settings back to the original ones.
Comparison with Bloch/periodic BC at normal incidence
First, we compare the results from BFAST with the calculation using Bloch/periodic boundary conditions at normal incidence. Fig.4 shows agreement between the two approaches for identical simulation setups. In terms of simulation speed, BFAST is slower than the simulation with Bloch/periodic boundary conditions; therefore, for normal incidence the latter should be used. However, when the source is at an angle, BFAST is the most convenient technique for calculating g(λ).
Fig.4 Enhancement factor for light at normal incidence using BFAST and the usual Bloch/periodic boundary conditions.
Results for oblique incidence
For oblique incidence, BFAST has an important advantage over calculations using Bloch boundary conditions because it does not require to sweep over the center wavelength of the source to get accurate results. This is particularly important in applications where the wavelength varies over a broad range, as in this example. BFAST only requires a single simulation for the entire wavelength range, which takes longer than a single simulation with Bloch boundary conditions, but for the wavelength resolution used in this example, BFAST is faster than running several simulations using Bloch boundary conditions.
The results for an incidence angle of 25 degrees using BFAST are shown in Fig.5.
Fig.5 Enhancement factor for light incident at 25 degrees using BFAST.
The enhancement factor G in this case is less than 1, namely 0.959. This calculation shows the sensitivity of the enhancement to the incidence angle and suggests that this type of solar cell works better at normal incidence. A more careful analysis can be done with a sweep over incidence angles.
Higher accuracy results
As discussed in Simulation setup, the accuracy of the results shown above can be improved by using some of the original settings in the normal incidence example. However, be aware that these settings increase the time to run the simulation about five times, which is quite noticeable in the BFAST simulation.
 Reduce the autoshutoff minimum value from 1e5 to 1e6. This reduces the artificial oscillations at long wavelengths.
 Reduce the mesh step in the mesh override region from dx = dy = dz = 10 nm to dx = dy = dz = 5 nm. This increases the accuracy in the short wavelength regime.
The results for improved accuracy are shown in Fig.6; as expected, the "Bloch/period BC" results for normal incidence are identical to those of Fig.2a in the normal incidence example. With higher accuracy the overall enhancement factor for oblique incidence is G=0.981, still less than 1.
(a)
(b)
Fig.6 Absorption enhancement g(λ) with high accuracy settings for (a) normal and (b) oblique incidence. Compare with Figs.4 and 5.
Finally, the absorption per unit volume (Watt/m^3) can be calculated using the analysis group "pabs_adv" following the procedure described in the normal incidence example. The results are shown below in Fig.7 for silver nanoparticles (D = 200 nm) at a wavelength 0.62 um.
Fig.7 Absorption profile of plasmonic solar cell at oblique incidence.
The enhancement for silver nanoparticles is substantial (up to 20%), while for gold nanoparticles the enhancement is quite small; in fact, for D = 200 nm the gold particles reduce the integrated quantum efficiency of the solar cell. The reason for the higher efficiency of silver is that the peak wavelength of g(λ) for this material is closer to the sun spectrum peak around 500 nm as shown in Fig. 2. For a detailed analysis, you can sweep over more values of sphere diameter and periodicity.
Finally, Fig.3 shows the profile of the optical absorption per unit volume at a wavelength 0.62 um with and without silver nanoparticles (D = 200 nm). We actually plot the logarithm of the absorption density using the same color scale to facilitate the comparison between the two configurations. It is clear that the particle increases absorption in the silicon substrate by enhancing the forward scattering due to the surface plasmon resonance.
(a)
(b)
Fig. 3. Absorption profile of plasmonic solar cell (a) and bare solar cell (b).
The absorption per unit volume (Watt/m^3), normalized to source power, can be calculated using the analysis group "pabs_adv"; if "Pabs" is integrated over the volume, we get the absorption portion relative to the incident power. See the Absorption measurements page for more information on measuring absorption. You can use the following script to create the plots above:
runanalysis; Pab0= getresult("pabs_adv","Pabs"); x=Pab0.x; y=Pab0.y; z=Pab0.z; f=Pab0.f; w0=0.621;# wavelength interested to plot in um f0=c/w0*1e6; nw=find(f,f0); ny=find(y,0); pabxz=pinch(Pab0.Pabs(1:length(x),ny,1:length(z),nw)); image(x*1e6,z*1e6,pabxz*1e18,"x um","z um"," Absorption density watt/um^3"); image(x*1e6,z*1e6,log(pabxz*1e18),"x um","z um"," Absorption density watt/um^3, log(Pabs)");
Oblique incidence
Simulation setup
The setup for this simulation is essentially the same as the one described in the normal incidence example. The main difference is the use of BFAST for the plane wave type in the source settings. We follow the guidelines described in the Source  BFAST page, keeping the default settings for the advanced options.
Regarding the use of symmetric/antisymmetric boundary conditions, it is important to remember that a nonzero injection angle breaks the symmetry in the plane of incidence (XZ plane in this example); therefore, the antisymmetric boundary conditions for x min and x max cannot be used as in the normal incidence case. In the y direction, however, the symmetry is preserved, and so we can keep symmetric boundary conditions for y min and y max. As discussed in the Source  BFAST page, BFAST will automatically override the antisymmetric boundary conditions for x max and x min, while keeping the symmetric boundary conditions for y min and y max.
The results discussed in the next two sections can be obtained by running the script solar_plasmonic_oblique_qe.lsf together with the simulation file solar_plasmonic_oblique.fsp. For simplicity, we have only considered silver nanospheres with a 200 nm diameter. We also modified some of the original settings in the normal incidence example to make the simulation faster:
 increased the autoshutoff minimum value from 1e6 to 1e5;
 increased the mesh step in the mesh override region "mesh_particle" from dx = dy = dz = 5 nm to dx = dy = dz = 10 nm.
However, in the last section we show more accurate results obtained by modifying these settings back to the original ones.
Comparison with Bloch/periodic BC at normal incidence
First, we compare the results from BFAST with the calculation using Bloch/periodic boundary conditions at normal incidence. Fig.4 shows agreement between the two approaches for identical simulation setups. In terms of simulation speed, BFAST is slower than the simulation with Bloch/periodic boundary conditions; therefore, for normal incidence the latter should be used. However, when the source is at an angle, BFAST is the most convenient technique for calculating g(λ).
Fig.4 Enhancement factor for light at normal incidence using BFAST and the usual Bloch/periodic boundary conditions.
Results for oblique incidence
For oblique incidence, BFAST has an important advantage over calculations using Bloch boundary conditions because it does not require to sweep over the center wavelength of the source to get accurate results. This is particularly important in applications where the wavelength varies over a broad range, as in this example. BFAST only requires a single simulation for the entire wavelength range, which takes longer than a single simulation with Bloch boundary conditions, but for the wavelength resolution used in this example, BFAST is faster than running several simulations using Bloch boundary conditions.
The results for an incidence angle of 25 degrees using BFAST are shown in Fig.5.
Fig.5 Enhancement factor for light incident at 25 degrees using BFAST.
The enhancement factor G in this case is less than 1, namely 0.959. This calculation shows the sensitivity of the enhancement to the incidence angle and suggests that this type of solar cell works better at normal incidence. A more careful analysis can be done with a sweep over incidence angles.
Higher accuracy results
As discussed in Simulation setup, the accuracy of the results shown above can be improved by using some of the original settings in the normal incidence example. However, be aware that these settings increase the time to run the simulation about five times, which is quite noticeable in the BFAST simulation.
 Reduce the autoshutoff minimum value from 1e5 to 1e6. This reduces the artificial oscillations at long wavelengths.
 Reduce the mesh step in the mesh override region from dx = dy = dz = 10 nm to dx = dy = dz = 5 nm. This increases the accuracy in the short wavelength regime.
The results for improved accuracy are shown in Fig.6; as expected, the "Bloch/period BC" results for normal incidence are identical to those of Fig.2a in the normal incidence example. With higher accuracy the overall enhancement factor for oblique incidence is G=0.981, still less than 1.
(a)
(b)
Fig.6 Absorption enhancement g(λ) with high accuracy settings for (a) normal and (b) oblique incidence. Compare with Figs.4 and 5.
Finally, the absorption per unit volume (Watt/m^3) can be calculated using the analysis group "pabs_adv" following the procedure described in the normal incidence example. The results are shown below in Fig.7 for silver nanoparticles (D = 200 nm) at a wavelength 0.62 um.
Fig.7 Absorption profile of plasmonic solar cell at oblique incidence.
Related publications
[1] S. H. Lim, W. Mar, P. Matheu, D. Derkacs, and E. T. Yu, "Photocurrent spectroscopy of optical absorption enhancement via scattering from surface plasmon polaritons in gold nanoparticles," J. Appl. Phys. 101, 104309 (2007).
[2] C. Rockstuhl, S. Fahr, and F. Lederer, "Absorption enhancement in solar cells by localized plasmon polaritons," J. Appl. Phys. 104, 123102 (2008).