Simulation Tools

We have developed computation and simulation tools that help the group interpret, fit, or understand data from nanostructured optoelectronic materials and devices, including X-ray and neutron scattering data, optical measurements, current-voltage data, incident photon to current efficiency data (ICPE or EQE), and capacitance-voltage data. These take the form of four separate programs. The first three focus on structural data and are discussed below. The "solar" code, which focuses on optolectronic and solar cell measurements, will be released in the near future.

When we started researching nanostructured thin film materials, there were no tools to correctly interpret grazing-incidence X-ray or neutron scattering (GISAXS and GISANS) data from periodic continuous nanostructured films, despite the fact that these are virtually the only techniques that allows one to dynamically probe the internal structure of a nanostructured film. As a result, we developed two simulation tools, NANOCELL and NANODIFT, both written in Mathematica. NANOCELL simulates the position of the GISAXS/GISANS peaks of an oriented periodic nanostructured thin film. It requires knowledge (or a guess) of the space group symmetry of the nanostructure and the orientation of the film. The code is used to determine if the observed GISAXS/GISANS pattern is commensurate with a given symmetry and orientation, and it can be used to numerically fit lattice constants to data. In addition, the code can be used to overlay the simulate and observed 2D data to determine if symmetry breaking occurs. The code accounts for multiple scattering and uses the distorted wave Born approximation (the typically used single scattering Born approximation fails miserably for the highly ordered films we have been able to synthesize).

The second code, NANODIFT, numerically simulates the 2D intensity distribution of X-ray or neutron scattering from an arbitrary 3D nanostructure in an X-ray or neutron beam. Similar to NANOCELL, it accounts for multiple scattering and employs the distorted wave Born approximation. It requires the user to input the values of the X-ray or neutron scattering contrast in a 3D matrix and numerically computes the inverse fouirer transform (inverse FFT) of the data within the context of the multiple scattering distorted wave Born approximation in order to calculate the scattering intensity. While "windowing" or finite-size effects can create artifacts in the data, apodization routines are used to minimize these artifacts and methods are in place to identify and distinguish the finite-size artifacts from true scattering data.


A Program to Simulate 2D SAXS and 2D GISAXS from Periodic Nanostructured Films


NANOCELL [1] is a program that simulates the 2D diffraction patterns from single crystals, samples with multiple domains or phases, oriented polycrystalline samples with rotational freedom about one axis (planar disorder), and samples that contain all orientations (powders). If details about the experimental setup are entered into NANOCELL, the calculated diffraction spots may be overlaid onto the experimental data to match the diffraction pattern. This enables clear determination of the nanostructure and its orientation, especially for cases where higher symmetries are broken by film contraction or fiber extension. An example of such a nanostructure determination using NANOCELL was shown by Tate [2].

In most self-assembled nanostructured thin films the number of observed diffraction spots is far too small to use programs like DICVOL, ITO, or TREOR to solve for the lattice constants. Instead, the solution of the lattice constants must be guided by the investigator by making educated guesses about the crystal system (cubic, hexagonal, etc) and the identity of given peaks (110, 210, etc.). This is a tedious process and becomes increasingly difficult for non-cubic systems, especially when an unknown lattice constant is an angle. NANOCELL facilitates this process in two ways. First, the 2D diffraction pattern can be quickly simulated for a given guess of lattice constants, space group, and orientation. Second, the user can enter N d-spacing and N guesses of the identities of the peaks. The code will then solve for the N unknown lattice constants.

Another key feature that makes the code particularly useful for nanostructured thin films, is its ability to define a structure, orientation, and disorder relative to the substrate and then simulate the 2D diffraction pattern for any arbitrary orientation of the substrate in the laboratory reference frame. This allows transmission 2D SAXS patterns as well as 2D grazing-angle of incidence SAXS (GISAXS) patterns to be calculated. Features are also incorporated into NANOCELL to model the many artifacts observed in GISAXS patterns from thin films. These features which are based the distorted wave Born approximation include the ability to calculate the refraction corrected position of diffraction peaks and the position of diffraction peaks that arise from the reflection of the incident wave off the film/substrate interface [1]. Additional strengths and capabilities are listed below.


  • Simulation of 2D GISAXS diffraction patterns from thin films with planar disorder (above the critical angle). Thin films with planar disorder have rotational freedom about the substrate normal, but a fixed orientation with respect to all other axes. These simulations account for the effects of refraction and reflection at the air/film and film/substrate interfaces.
  • Simulation of 2D diffraction pattern from a single crystal with an arbitrary orientation
  • Simulation of 2D diffraction pattern from multiple crystals each with an arbitrary orientation or fixed relationship with respect to each other.
  • Simulation of 2D diffraction patterns from randomly oriented polycrystalline samples.
  • Full rotation of the structure about the incident beam to sample all of reciprocal space. Each simulation may then be matched to experimental data.
  • Solves for N lattice constants from N guesses of d(hkl).


NANOCELL is free for academic institutions. However, there is license fee for industrial or private use. Any use of the program or code in publications, presentations, websites, or proposals should reference both the NANOCELL publication [1] and this website [3]. The source code is written in Mathematica and has been tested with both Mathematica 5 and 5.1. To obtain a copy of NANOCELL , please contact Prof. Hugh W. Hillhouse at . To use the program, open and execute the main source file. You may then perform calculations using the NANOCELL functions in separate working files. Several examples of Mathematica working files are posted below (they are also posted in HTML for viewing).

Development and Testing of NANOCELL

The NANOCELL source code is open and may be modified or extended by the end user. If you do add routines, please share the revised code ( ). We will include the changes in future versions with credit to the author. Also, if you find or fix a bug, please share this as well.

Most Recent Version

  • NANOCELL Version 2.0.5

Example Files

Example 1 is a step-by-step tutorial. Unfamiliar users should examine this file first.

  1. GISAXS Simulation with Experimental Overlay: Effects of refraction and reflection within the thin film HTML , Mathematica Notebook , Data File
  2. WAXS and SAXS comparison: Effects of the Ewald Sphere HTML, Mathematica Notebook
  3. Single Crystal Simulation: Simulation of Reciprocal Space Slice HTML, Mathematica Notebook
  4. Simulation of Multiple Crystals with Well Defined Orientations HTML, Mathematica Notebook
  5. Simulation of a Randomly Oriented Polycrystalline Sample using a 2D Detector. HTML, Mathematica Notebook


  1. Tate, M.P., Urade, V.N., Kowalski, J.D., Wei, T.C., Hamilton, B.D., Eggiman, B.W., & Hillhouse, H.W., "Simulation and Interpretation of 2D Diffraction Patterns from Self-Assembled Nanostructured Films at Arbitrary Angles of Incidence: from Grazing Incidence (above the critical angle) to Transmission Perpendicular to the Substrate," Journal of Physical Chemistry B, 110 (20) 9882-9892 (2006). Full Text
  2. Tate, M.P., Eggiman, B.W., Kowalski, J.D. & Hillhouse, H.W., "Order and Orientation Control of Mesoporous Silica Films on Conducting Gold Substrates Formed by Dip-Coating and Self-Assembly: A GISAXS and FESEM Study," Langmuir , 21 (22), 10112 - 10118, (2005). Full Text

Other Papers which use NANOCELL

  • Urade, V.N., Hillhouse, H.W., "Synthesis of Thermally Stable Highly Ordered Nanoporous Tin Oxide Thin Films with a 3D Face-Centered Orthorhombic Nanostructure," J. Phys. Chem. B, 109 (21), 10538 - 10541, (2005). Full Text
  • Eggiman, B.W., Tate, M.P., & Hillhouse, H.W., "The Rhombohedral Structure of Highly Ordered and Oriented Self-Assembled Nanoporous Silica Thin Films," Chemistry of Materials, 18 (3), 723-730 (2006). Full Text


Description coming...


Description coming...


Description coming...