Set up and benchmarking
This is continuing the experiment that I started with my post The Solar Cell Diary- part 1, on this blog, writing about a research project from its inception. I chose to write about Si solar cells with a surface micro-structure.
My experimental partners will be using an ‘integrating sphere’ layout. The first challenge was to see if we could set up our software, Lumerical, to mimic this layout or at least ensure that there is equivalence. After some thought we realised that by allowing the simulations to run for a sufficiently long time in Lumerical, the set up would indeed be equivalent.
Then onto the next step: benchmarking!
Dreaded word…. Yet unless a method, setup etc. are properly benchmarked, one cannot trust the results. The purpose of benchmarking is to test the method (in our case the FDTD in Lumerical) for some known problems to determine the accuracy of the method, its robustness and stability. Only once this is done, is it prudent to use the method on a problem where the solution is not known. Otherwise one risks, dealing with two overlapping signals: is the method inaccurate or is there a problem with the setup/structure/our analysis.
For us benchmarking was broken down into two main steps:
a) Determining the positions of the source, monitor and PML
b) Choosing the mesh and other calculation parameters properly.
Fig. 1: Set up for simulation of solar cell
For step a, through trial and error, we found the distance between the source, monitor and PML, such that reflections from the cell surface all have time to travel to the monitor (and be recorded), while they do not have enough time to reflect off the PML (even PML will reflect some small amount of incident radiation) and contaminate the readings. Our numerical set up is shown in Fig. 1 and indicates the distances as well as the travel time for pulses.
In Step b, we determined mesh parameters such as spacing between points in the x,y and z directions. Our aim was to find a set/s of values of dx, dy and dz, for which the error was within acceptable limits. To do this, we compared our results for Reflection from a plain solar cell with theoretical as well as known experimental results. We define error as the difference in the reflection we obtain and that of analytical calculations. Figure 2, shows one of these comparisons with a plot of error as a percentage, versus wavelength for different values of dz, while we keep dx and dy constant with a value of 0.25 micron.
Fig. 2: Error in reflection as a function of wavelength for different dz.
In the figure, it can be seen that increasing dz even slightly produces fairly large error, especially at shorter wavelengths. By decreasing dz, the resolution and accuracy increase, however so does the computation time and memory requirements. The latter, can increase dramatically. For realistic problems it is extremely important to determine the acceptable error and then find mesh parameters that are feasible computationally. In my next post on this topic I hope to put up some results relating to the actual microstructure on the cell surface.
Meanwhile, please do email me if you have comments!