Skip to content

Ellipsometry

Ellipsometry is a non-destructive optical technique for measuring film thickness, refractive index, and optical constants. It's particularly powerful for thin film characterization and in-situ growth monitoring.

Overview

This schema package defines:

  • DTUEllipsometryMeasurement - Ellipsometry measurements with angular/spectroscopic data, optical models, and fitted parameters

Ellipsometry measurements extend BaseMeasurement, providing:

  • Links to measured samples and instrument
  • Measurement configuration (spectroscopic, angle-resolved, time-resolved)
  • Raw ellipsometry data (Ψ, Δ vs. wavelength/angle)
  • Optical models (layers, materials, roughness)
  • Fitted parameters (thickness, refractive index, extinction coefficient)

Typical Usage

  1. Select samples: Reference samples to measure
  2. Configure measurement: Wavelength range, angles, polarizer/analyzer settings
  3. Measure Ψ and Δ: Raw ellipsometry parameters vs. wavelength and/or angle
  4. Build optical model: Layer stack with materials and approximate thicknesses
  5. Fit model: Optimize parameters to match measured data
  6. Extract results: Film thickness, n & k (refractive index and extinction), roughness

What Ellipsometry Tells You

  • Film thickness: Accurate to ~0.1 nm for single layers
  • Refractive index (n): Real part of optical constant
  • Extinction coefficient (k): Imaginary part, related to absorption
  • Optical bandgap: From absorption onset
  • Surface roughness: Interface quality
  • Layer structure: Multi-layer stacks with individual thicknesses

Ellipsometry Basics

Ellipsometry measures changes in polarization upon reflection:

  • Ψ (psi): Amplitude ratio between p and s polarizations
  • Δ (delta): Phase difference between p and s polarizations
  • These relate to sample optical properties through Fresnel equations
  • Modeling required: No direct inversion from Ψ,Δ to thickness/n/k

Key Parameters

  • Wavelength range: UV-Vis-NIR (typically 200-1000 nm)
  • Angle of incidence: Multiple angles improve sensitivity (e.g., 65°, 70°, 75°)
  • Spot size: Spatial resolution (typically few mm)
  • Optical model: Layer materials, thicknesses, roughness, grading

Ellipsometry for Thin Films

Ideal for:

  • Single and multi-layer films: Thickness determination
  • Transparent films: Refractive index without absorption
  • Semiconductors: Bandgap from absorption edge
  • Metals: Optical constants for plasmonic applications
  • In-situ monitoring: Real-time growth/etching

Schema Documentation

EllipsometryMappingResult

description: Results from a single ellipsometry measurement position. This class stores the optical constants (n, k), film properties (thickness, roughness), and fit parameters (MSE, dielectric constants) for one spatial position in an ellipsometry mapping measurement.

inherits from: nomad_measurements.mapping.schema.MappingResult

properties:

name type
position str The position of the ellipsometry measurement
thickness float64 The layer thickness at this position
unit=meter
roughness float64 The surface roughness at this position
unit=meter
mse float64 The Mean Squared Error (MSE) of the fit, a measure of the goodness-of-fit between the model and experimental data
epsilon_inf float64 The high-frequency dielectric constant (ε∞), representing thematerial's relative permittivity at optical frequencies
ir_pole_amp float64 The infrared pole amplitude, representing the strength of theinfrared oscillator in the dielectric function model
wavelength float64 The wavelength values in nm
shape=['*'], unit=nanometer
n float64 The refractive index n
shape=['*']
k float64 The extinction coefficient k
shape=['*']

normalization:

The normalizer for the EllipsometryMappingResult class.

Args: archive (EntryArchive): The archive containing the section that is being normalized. logger (BoundLogger): A structlog logger.

EllipsometryMetadata

inherits from: nomad.datamodel.data.EntryData

normalization:

Normalizer for the EllipsometryMetadata class.

Args: archive (EntryArchive): The archive containing the section that is being normalized. logger (BoundLogger): A structlog logger.

DTUEllipsometryMeasurement

description: Main schema for spectroscopic ellipsometry measurements. This class represents a complete ellipsometry measurement session, which may include data from multiple spatial positions. It handles data import from J.A. Woollam CompleteEASE export files and creates interactive visualizations of optical constants, thickness maps, and roughness maps.

The measurement data is imported from two types of exported text files: 1. n_and_k_file: Contains wavelength-dependent optical constants for each position 2. thickness_file: Contains film thickness, roughness, and fit parameters

The class automatically: - Parses the exported data files - Matches data from different files by spatial position - Creates interactive Plotly visualizations (1D line plots or 2D heatmaps) - Links to the sample being measured

inherits from: nomad_dtu_nanolab_plugin.schema_packages.basesections.DtuNanolabMeasurement, nomad.datamodel.metainfo.plot.PlotSection, nomad.datamodel.data.EntryData

properties:

name type
native_file str
n_and_k_file str The exported n and k text file from the CompleteEASE softwarefrom Woolam, containing wavelength, n, and k values for each position(see https://dtu-nanolab-materials-discovery.github.io/nomad-dtu-nanolab-plugin/for details on the data export procedure)
thickness_file str The exported thickness text file from the CompleteEASE softwarefrom Woolam, containing thickness and other parameters for each position(see https://dtu-nanolab-materials-discovery.github.io/nomad-dtu-nanolab-plugin/for details on the data export procedure)
metadata EllipsometryMetadata The metadata of the ellipsometry measurement
sub-section
results EllipsometryMappingResult The ellipsometry results.
sub-section, repeats

normalization:

Normalize and process the ellipsometry measurement data.

This method is called automatically by NOMAD during data ingestion. It: 1. Links the measurement to the sample being measured 2. Reads and parses the exported data files (if not already processed) 3. Generates interactive visualizations

Args: archive (EntryArchive): The archive containing the section that is being normalized. logger (BoundLogger): A structlog logger for debugging and info messages.