Thin-film silicon solar cells (TFSSC), which can be manufactured from abundant materials solely, contain nano-textured interfaces that scatter the incident light. We present an approximate very fast algorithm that allows optimizing the surface morphology of two-dimensional nano-textured interfaces. Optimized nano-textures scatter the light incident on the solar cell stronger leading to a higher short-circuit current density and thus efficiency. Our algorithm combines a recently developed scattering model based on the scalar scattering theory, the Perlin-noise algorithm to generate the nano textures and the simulated annealing algorithm as optimization tool. The results presented in this letter allow to push the efficiency of TFSSC towards their theoretical limit.
© 2013 OSA
With a global installed peak power of more than 100 GWp at the end of 2012, photovoltaic (PV) systems have become an important energy source for mankind . In order to enable the further growth of photovoltaics, it is desirable that solar cells are made from abundant materials solely. Silicon solar cells fulfill this requirement best and indeed, wafer-based crystalline silicon (c-Si) solar cells have by far the highest market share of all PV technologies, despite the high temperature and thus the large amount of energy needed to produce c-Si. In contrast, thin-film silicon solar cells (TFSSC) can be produced at much lower temperatures, but their current record efficiency of 12.4% is much lower than that of c-Si cells (25%) . To become competitive, the efficiency of TFSSC must be improved considerably.
Light trapping is widely used to enhance the absorption in the absorber layer of TFFSC and therefore to increase the current density. The most prevalent light-trapping technology is introducing nano-textured interfaces into the solar cells . Scattering of the incident light at these interfaces leads to a increased path length in the absorber and thus to enhanced absorption. The morphology of these interfaces has been optimized experimentally for a long time, albeit this optimization was constrained by the physical processes that constitute the nano-texture. As of late, however, techniques like nano-moulding allow to generate nano-textures with arbitrary morphologies . To use the full potential of this new freedom one question needs to be answered: how do nano-textures that scatter the light optimally look like?
Modeling is the silver bullet to solve this problem. In this manuscript we introduce a fast approximate method that gives novel insights into the design of optimized nano-textures. Before us, already several authors have tackled the optimization problems in recent years.
For performing optimizations of one-dimensional nano-textures, fast algorithms like the rigorous coupled wave approach [5–7] or Chandezon’s method [8, 9] were used by several authors [10–13]. Martins et al. succeeded in superposing one-dimensional gratings with different periods such that scattering into small angles was suppressed and thus more energy was scattered into large angles . In contrast, optimizations of two-dimensional textures were mainly performed by the finite difference time domain (FDTD) [15, 16] and the finite element method (FEM) , which are much slower and require much more computer power than the fast algorithms [18–20].
In contrast to the FDTD and FEM methods, the approximate algorithm presented in this manuscript can be used for optimizing two-dimensional nano-textures very fast. Due to the high speed, many more calculations can be performed, which allows us to study trends more thoroughly. Further, while methods like FEM and FDTD work best for periodic structures, our approach also works perfectly well for non-periodic nano textures that are most prevalent.
The optimization algorithm consists of three building blocks:
2.1. The scalar scattering model
First, we utilize a recently developed scattering model that enables us to investigate scattering by two-dimensional nano-textures . This scattering model is based on the fact that the field directly behind the scattering object and the scattered far field are related to each other via Fourier transforms. It uses a first order approximation to estimate the field directly behind the scattering object. The model predicts two descriptive far-field parameters of the scattered field: The angular intensity distribution (AID) that tells us how much light is scattered into a certain angle , and the haze that is equal to the fraction of the scattered light.
2.2. Generating nano-textures with the Perlin noise algorithm
Secondly, we need an algorithm to generate nano-textured surfaces on our computer. We used the Perlin noise algorithm that was developed by Ken Perlin in the 1980s [23, 24]. For our application Perlin noise is very well suited since it combines randomness with well-controlled lateral feature sizes. For example, to generate a random texture with a lateral feature size ℓ of 1 on a square with side length 10, we have to assign a random number z(x,y) between 0 and 1 to every point of the square with integer coordinates, e.g. (3,5). The values of the points in between these integer coordinates are then given as an interpolation of the neighboring integer coordinates. We used a cosine interpolation in order to assure that the first derivatives of the surface are continuous. Also other interpolations, like linear interpolations could be used, however they would not alter the final result of this work. In the cosine interpolation, the points in the square enclosed by the square (0,0), (0,1), (1,0), (1,1) are given by
Figure 1(a) shows an example of a texture generated with Perlin noise, whose lateral feature size ℓ is one sixteenth of the side length of the square. (The lateral feature size ℓ is not to be confused with the correlation length.) In this and all subsequent textures the average plane was subtracted. The points in between were interpolated with cosine functions as in Eqs. (1) and (2). When we superpose different generations of Perlin noise with lateral feature size 1, ½, ¼... with respect to the side length, we can generate a fractal surface texture that looks like “cloudy sky”, as illustrated in Fig. 1(b). We just have to assure that the rms roughness σr of each generation scales with its feature size, i.e.Fig. 1 have no length or height scales because at this point, the scales are completely arbitrary. They only need to be scaled later at a later stage, when they are used for simulating scattering of light.
2.3. The simulated annealing algorithm
The third building block is the optimization algorithm itself. We used the simulated annealing algorithm [25,26], which is a Monte-Carlo algorithm . It allows optimizing systems, which are controlled by a set of parameters c, via a cost function C that is minimized during the optimization. An optimized set of system parameters is found by “cooling” the system just as a molten metal crystallizes to configurations of lowest potential energy when it is cooled. By cooling the system fast, small crystals will emerge. Their energy will be slightly higher than that of the large crystals emerging when the system is cooled down slowly. Thus there is a trade-off between the cooling rate and the quality of the optimization. In detail the optimization is done as follows:
Before the optimization starts a cost function must be defined that is minimized during the optimization just as the energy of a molten metal is minimized during cooling. Further an initial set of parameters c0 needs to be chosen, usually with random numbers, and a starting temperature T0 needs to be set. At the beginning of every optimization step one system parameter is chosen randomly that is slightly varied (or “tweaked”) depending on a random number. Next, the cost Ci is calculated with the changed parameter set ci. If Ci < Ca, where the subscript a denotes the last accepted set of parameters, ci is accepted as new parameter set, ca = ci. Else, Ci is accepted according to the probability
2.4. Optimizing nano-textures
To study optimized surface textures we combined the Perlin noise algorithm with simulated annealing. We generated textures similar to the fractal textures in Eq. (3) but with the difference that we used variable sets of coefficients c = (c1, c2, c4 ...) instead of the fractal set (1, ½, ¼...). To obtain results that are independent of a single generated texture, we performed the optimizations for ten Perlin textures simultaneously. At the beginning of every optimization run we made ten Perlin textures of every generation and we randomly chose an initial set of coefficients c0. Thus, we had ten different textures generated with the same set of coefficients,
We further used the random search method. In that method the set of coefficients c is kept constant throughout a simulation run. However, for every optimization step a new set of textures is generated, which is added onto the last accepted set . The so obtained texture then is renormalized such that the total rms roughness stays constant. This texture is accepted according to the same rules as in the simulated annealing algorithm.
3. Optimization results
As first optimization we performed a random search for fractal textures. As a cost function we used the (negative) haze in transmission at 600 nm at an interface between TCO and air. For this optimization one wavelength was sufficient since the haze of random textures decreases monotonically with the wavelength if the refractive indices of the materials do not vary too strongly with wavelength . As a reference surface we used Asahi U-type , which is one of the best TCOs for a-Si:H single junction TFSSC available on the market. This TCO has a pyramid-like structure and an rms roughness σr ≈ 40 nm, as illustrated on the right of Fig. 2(a). During this and all subsequent optimizations, the rms roughness of the texture was kept constant at 40 nm.
Figures 2(a) and (b) show the results of this optimization. While the haze indeed is significantly higher than that of the reference, the AID of the fractal surface decays much faster, i.e. the light is scattered into much smaller angles. Therefore also the (simulated) EQE is smaller than that of the reference sample. The EQE was simulated with the ASA software . Here and in all forthcoming ASA simulations we used the same electrical parameters, optical constants and layer thicknesses. We assumed one scattering layer between the TCO and the silicon, as illustrated on the right of Fig. 2(c). The haze and AID of this layer were calculated with a scattering model publisher by us earlier .
This result reconfirms that the haze alone is not sufficient to judge the effectiveness of a scattering surface, but that also the AID must be taken into account. Further this optimization shows that fractal interfaces are not suitable light scatterers. We therefore performed simulated annealing optimizations to find optimized sets of coefficients c. We performed optimizations for TCO-air and TCO-silicon interfaces.
As cost function for the TCO-air system, we used the absorption in a layer, whose thickness is equal to its penetration depth during one pass,
The results of these optimizations were very surprising: Independent of whether the optimization was done for one or two wavelengths, only one generation of Perlin textures survived while all other generations were suppressed. In the case of 600 nm the surviving texture has a feature size of 312 nm. This result is independent of the σr of the texture, at least for values between 40 and 200 nm.
For the TCO-silicon system we considered the absorption in a 300-nm thick a-Si:H layer at a single pass. Again we only considered the light that was scattered into angles larger than 10°. Further, we limited the wavelength range from 600 to 900 nm, with a step size of 50 nm. We did not take wavelengths shorter than 600 nm into account since for these wavelengths the penetration depth in a-Si:H is much shorter than the layer thickness, thus the light is absorbed in any case. We weighted the cost function with the incident photon flux in each of these intervals, according to the AM 1.5 spectrum. As cost-function we thus obtained
Again we obtained the same result: all generations except one were suppressed. In this case the optimizations led to an optimal feature size of 78 nm. This feature size is much smaller than the optimal feature size at TCO-air interfaces, which can be understood from the fact that the wavelength inside a-Si:H is a factor nSi shorter than in air, where the refractive index in Si nSi is about 4. Table 1 summarizes the optimal lateral feature size for TCO-air and TCO-silicon systems.
4. Parameter study
To evaluate and understand the results from the optimization we studied the influence of ℓ and σr on the scattering parameters and the performance of solar cells in more detail. Figures 3(a) and 4(a) show the haze and AID of Perlin textures with different lateral feature sizes ℓ at TCO-air interfaces. The rms roughness of the Perlin textures was constant, σr = 40 nm. To obtain optimized textures, a short random search was performed for every value of ℓ. While the haze increases slightly with ℓ, the AID decays much faster. We therefore have to take the trade-off between increasing haze and faster decaying AID into account. At very small lateral feature sizes the haze decays because the light does not see a nano texture anymore but experiences the surface as an effective medium .
Besides studying the influence of changing ℓ when σr is kept constant, we also investigated the influence of a changing σr when ℓ is constant in Figs. 3(b) and 4(b). As expected, the haze reacts strongly upon changing σr. However, the AIDT does not change the shape at all, it merely shifts towards higher intensities.
These results indicate that the shape of the AIDT is controlled by lateral features while the vertical features (and especially σr) control the haze. However, larger values of ℓ are beneficial for the haze as well.
Nano-textures with small ℓ size but a high σr (i.e. textures with sharp spikes) are very interesting from an optical point of view but have a detrimental effect on the electrical properties of the solar cell [4, 29, 30]. Modulated surface textures (MST) could be a possible solution to this problem. MST have been studied e.g. by Isabella et al.[31, 32]. In an MST, nano textures with low σr and ℓ are superposed with textures with high σr and ℓ. With this approach high σr values and small lateral features can be combined without the creation of sharp spikes. Figures 3(c) and 4(c) show the haze and AIDT of textures that were created by superposing the texture with ℓ = 312 nm and σr = 40 nm with a texture with ℓ = 1250 nm such that the total σr value is 80, 120 and 160 nm, respectively. We observe that the haze of these structures is higher than that of the ℓ = 312 nm structures shown in Fig. 3(b). However, the AIDT is only higher at narrow angles; at large angles the superposed texture shows hardly any effect. This shows that MST indeed can have a beneficial effect on the haze and the AIDT at small angles, however, they do not improve scattering into large angles.
We also take a look at (simulated) EQE curves of solar cells with Perlin textures with different lateral feature sizes. Again we assumed one rough interface between the TCO and the silicon layers. Figure 5(a) shows the EQE for Perlin textures with different values of ℓ and σr = 40 nm. According to Table 1, the optimal lateral feature size is 78 nm. There seems to be hardly any difference between 78 and 156 nm feature size. The simulated EQE of a solar cell with Asahi-U [see Fig. 2(c)] would be nearly identical to that of the 156 nm Perlin texture, which can be understood from the fact that the Asahi-U correlation length of 175 nm is close to this value. Thus, the lateral dimensions of Asahi-U are very optimized.
In Fig. 5(b) we studied the effect of superposing textures with different lateral feature sizes (78 and 312 nm) while keeping σr constant. The calculated EQE is highest for the cell with the pure 78 nm texture and lowest for cell with the pure 312 nm texture. The EQE of the cell with a superposed texture lies in between those values, confirming the optimization results that a texture with one optimized lateral feature size is superior to a texture consisting of a superposition of textures with different ℓ values.
Figure 5(c) shows the EQE for Perlin textures with different values of ℓ and σr = 80 nm. Here the 78 nm texture is slightly superior to the 156 nm texture. In an experiment, however, the sharper spikes of the 78 nm texture could induce higher electrical losses making the 156 nm texture more optimal in the end.
We also carried out simulations performed on cells with a flat TCO-Si interface but a nano-textured interface between Si and the back metal. There, cells with an ℓ = 39 nm nano texture show the highest current density (Jsc=14.9 mA/cm2), which decreases with increasing lateral feature size.
To discuss the results presented above we relate them to recent research results from other authors. First, we want to mention recent results by Boccard et al. on a highly efficient a-Si:H/nc-Si:H tandem solar cell with an initial efficiency of 14.1% . Their cell contains a MST with very large smooth features from etched glass and small sharp features from ZnO:B. Even though they see a beneficial effect of the MST they argue that this effect is not only due to enhanced light trapping, but also due to less parasitic absorption in the doped layers, electrodes and back reflectors. Further, the loss in Voc compared to their flat cell is lower than that of the reference single-texture cell, which can be attributed to less defects in the active layers of the MST-cell.
Secondly, we compare the results presented in Figs. 5(a) and (c) to results for optimized periodic gratings for a-Si:H cells. Čampa et al. found that for one-dimensional rectangular gratings a period (height) of 300 nm (300 nm) is optimal . Isabella et al. reported an optimal period (height) of 400 nm (300 nm) for one-dimensional rectangular gratings and 500 nm (450 nm) for two-dimensional gratings .
We found the optimal lateral feature size of the Perlin textures to be between 78 and 156 nm for a-Si:H. At first sight, there seems to be a big discrepancy between our results and those from Čampa et al. and Isabella et al. To resolve this discrepancy we take another look at Perlin textures, e.g. in Fig. 6(a). We observe that most features are clustered in small groups of similar height that we call grains. Two of these grains are indicated in Fig. 6(a). The scattering is mainly controlled by the grains and not by the small features that build up the grains.
In real TCOs the grain size is determined by crystal growth processes and can be studied by the correlation length. In contrast, the grains that we observe in the Perlin textures are generated randomly. Thus, the correlation length cannot be used to analyze them. We therefore performed a grain analysis, as shown in Fig. 6(b) and (c). In (b) we used the threshold algorithm: The points with a height above 50% of the maximal height of the texture belong to grains. In (c), the watershed algorithm was used. In this algorithm, a drop of water is placed at every point of the surface. Then the drops will flow together at the local minima (in this case the tops) and form little lakes – the grains. Both algorithms are described by Klapetek [35, 36]. As we can see, the grains obtained with the watershed algorithm are much better defined. To analyze the grain size we look at the radius r that a disk with the area of the grain would have.
Table 2 shows the average grain size radius r̄ for the textures with different ℓ. We see that the differences between r̄ obtained by the two methods are very small. Roughly speaking, r̄ ≈ 2ℓ. As we see from Fig. 6(c) the texture can be interpreted as a randomized two-dimensional grating with period 2r̄, which is approximately 4ℓ. The optimal feature sizes between 78 and 156 nm therefore correspond to periods between 312 and 625 nm, which is in agreement with the findings by Čampa et al. and Isabella et al..
In this manuscript we investigated the design of optimized interface morphologies with a scattering model based on the scalar scattering theory. In order to generate random nano-textures we superposed textures with different lateral feature sizes ℓ that were generated with the Perlin noise algorithm. An optimization performed with the simulated annealing algorithm revealed that textures with one optimized ℓ have a broader AID than textures made up from superpositions of different ℓ, if the rms roughness σr is kept constant. These results were confirmed by ASAsimulations of the EQE and short circuit current. Further, the haze increases if σr increases. However, a combination of optimized ℓ and high σr may lead to sharp spikes that deteriorate the solar cell. Modulated surface textures are a way to overcome this problem by combining textures with large ℓ and σr with textures with optimized small ℓ. Such textures have a high haze and strong forward scattering. However, scattering into large angles is mainly controlled by the small features and cannot be increased with the MST concept.
The authors want to thank Arno Smets, Olindo Isabella, Mark Workum, Serge Solntsev and Rudi Santbergen from the Delft University of Technology and Corsin Battaglia from the University of California Berkeley for the stimulating discussion. Nuon Helianthos is acknowledged for funding this project.
References and links
1. C. Winneker, ed., Global Market Outlook (European Photovoltaic Industry Association, May 2013).
2. M. A. Green, K. Emery, Y. Hishikawa, W. Warta, and E. D. Dunlop, “Solar cell efficiency tables (version 40),” Prog. Photovolt: Res. Appl. 20, 606–614 (2012) [CrossRef] .
3. H. W. Deckman, C. R. Wronski, H. Witzke, and E. Yablonovitch, “Optically enhanced amorphous silicon solar cells,” Appl. Phys. Lett. 42, 968–970 (1983) [CrossRef] .
4. C. Battaglia, J. Escarré, K. Söderström, M. Charrière, M. Despeisse, F. Haug, and C. Ballif, “Nanomoulding of transparent zinc oxide electrodes for efficient light trapping in solar cells,” Nat. Photonics 5, 535–538 (2011) [CrossRef] .
5. M. G. Moharam and T. K. Gaylord, “Rigorous coupled-wave analysis of planar-grating diffraction,” J. Opt. Soc. Am. 71, 811–818 (1981) [CrossRef] .
6. M. G. Moharam and T. K. Gaylord, “Diffraction analysis of dielectric surface-relief gratings,” J. Opt. Soc. Am. 72, 1385–1392 (1982) [CrossRef] .
7. M. G. Moharam, D. A. Pommet, E. B. Grann, and T. K. Gaylord, “Stable implementation of the rigorous coupled-wave analysis for surface-relief gratings: enhanced transmittance matrix approach,” J. Opt. Soc. Am. A 12, 1077–1085 (1995) [CrossRef] .
8. J. Chandezon, G. Raoult, and D. Maystre, “A new theoretical method for diffraction gratings and its numerical application,” J. Optics 11, 235–241 (1980) [CrossRef] .
9. J. Chandezon, M. T. Dupuis, G. Cornet, and D. Maystre, “Multicoated gratings: a differential formalism applicable in the entire optical region,” J. Opt. Soc. Am. 72, 839–846 (1982) [CrossRef] .
10. S. Fahr, C. Rockstuhl, and F. Lederer, “Engineering the randomness for enhanced absorption in solar cells,” Appl. Phys. Lett. 92, 171114 (2008) [CrossRef] .
11. R. Dewan, V. Jovanov, C. Haase, H. Stiebig, and D. Knipp, “Simple and fast method to optimize nanotextured interfaces of thin-film silicon solar cells,” Appl. Phys. Express 3, 092301 (2010) [CrossRef] .
12. M. Peters, M. Rüdiger, H. Hauser, M. Hermle, and B. Bläsi, “Diffractive gratings for crystalline silicon solar cells — optimum parameters and loss mechanisms,” Prog. Photovolt: Res. Appl. 20, 862–873 (2012) [CrossRef] .
13. K. Bittkau and T. Beckers, “Near-field study of light scattering at rough interfaces of a-Si:H/μc-Si:H tandem solar cells,” Phys. Status Solidi A 207, 661–666 (2010) [CrossRef] .
14. E. R. Martins, J. Li, Y. Liu, J. Zhou, and T. F. Krauss, “Engineering gratings for light trapping in photovoltaics: the supercell concept,” Phys. Rev. B 86, 041404 (2012) [CrossRef] .
15. K. Yee, “Numerical solution of initial boundary value problems involving Maxwell’s equations in isotropic media,” IEEE T. Antenn. Propag. 14, 302–307 (1966) [CrossRef] .
16. A. Taflove and S. C. Hagness, Computational Electrodynamics: The Finite-Difference Time-Domain Method, 3rd ed. (Artech House, 2005).
17. J. Jin, The finite element method in electromagnetics(John Wiley & Sons, 2002).
18. C. Rockstuhl, S. Fahr, K. Bittkau, T. Beckers, R. Carius, F.-J. Haug, T. Söderström, C. Ballif, and F. Lederer, “Comparison and optimization of randomly textured surfaces in thin-film solar cells,” Opt. Express 18, A335–A341 (2010) [CrossRef] [PubMed] .
19. R. Dewan, I. Vasilev, V. Jovanov, and D. Knipp, “Optical enhancement and losses of pyramid textured thin-film silicon solar cells,” J. Appl. Phys. 110, 013101 (2011) [CrossRef] .
20. O. Isabella, S. Solntsev, D. Caratelli, and M. Zeman, “3-D optical modeling of thin-film silicon solar cells on diffraction gratings,” Prog. Photovolt: Res. Appl. 21, 94–108 (2013) [CrossRef] .
21. K. Jäger, M. Fischer, R. A. C. M. M. van Swaaij, and M. Zeman, “A scattering model for nano-textured interfaces and its application in opto-electrical simulations of thin-film silicon solar cells,” J. Appl. Phys. 111, 083108 (2012) [CrossRef] .
22. K. Jäger, O. Isabella, R. A. C. M. M. van Swaaij, and M. Zeman, “Angular resolved scattering measurements of nano-textured substrates in a broad wavelength range,” Meas. Sci. Technol. 22, 105601 (2011) [CrossRef] .
23. K. Perlin, “An image synthesizer,” SIGGRAPH Comput. Graph. 19, 287–296 (1985) [CrossRef] .
24. K. Perlin, “Better acting in computer games: the use of procedural methods,” Comput. Graph. 26, 3–11 (2002) [CrossRef] .
26. V. Černý, “Thermodynamical approach to the traveling salesman problem: An efficient simulation algorithm,” J. Optimiz. Theory App. 45, 41–51 (1985) [CrossRef] .
27. N. Metropolis and S. Ulam, “The Monte Carlo Method,” J. Amer. Stat. Assoc. 44, 335–341 (1949) [CrossRef] .
28. K. Sato, Y. Gotoh, Y. Wakayama, Y. Hayashi, K. Adachi, and N. Nishimura, “Highly Textured SnO2:F TCO Films for a-Si Solar Cells,” Rep. Res. Lab., Asahi Glass Co. Ltd. 42, 129–137 (1992).
29. H. Sakai, T. Yoshida, T. Hama, and Y. Ichikawa, “Effects of surface morphology of transparent electrode on the open-circuit voltage in a-Si:H solar cells,” Jpn. J. Appl. Phys. 29, 630–635 (1990) [CrossRef] .
30. M. Python, D. Dominé, T. Söderström, F. Meillaud, and C. Ballif, “Microcrystalline silicon solar cells: effect of substrate temperature on cracks and their role in post-oxidation,” Prog. Photovolt: Res. Appl. 18, 491–499 (2010) [CrossRef] .
31. O. Isabella, J. Krč, and M. Zeman, “Modulated surface textures for enhanced light trapping in thin-film silicon solar cells,” Appl. Phys. Lett. 97, 101106 (2010) [CrossRef] .
32. O. Isabella, F. Moll, J. Krč, and M. Zeman, “Modulated surface textures using zinc-oxide films for solar cells applications,” Phys. Status Solidi A 207, 642–646 (2010) [CrossRef] .
33. M. Boccard, C. Battaglia, S. Hänni, K. Söderström, J. Escarré, S. Nicolay, F. Meillaud, M. Despeisse, and C. Ballif, “Multiscale transparent electrode architecture for efficient light management and carrier collection in solar cells,” Nano Lett. 12, 1344–1348 (2012) [CrossRef] [PubMed] .
34. A. Čampa, O. Isabella, R. van Erven, P. Peeters, H. Borg, J. Krč, M. Topič, and M. Zeman, “Optimal design of periodic surface texture for thin-film a-Si:H solar cells,” Prog. Photovolt: Res. Appl. 18, 160–167 (2010) [CrossRef] .
35. P. Klapetek, “Characterization of randomly rough surfaces in nanometric scale using methods of modern metrology,” Ph.D. thesis, Masaryk University, Brno, Czech Republic (2003).
36. P. Klapetek, D. Nečas, and C. Anderson, Gwyddion user guide (2012). http://www.gwyddion.net.