Skip to main content

A python package for simulating Infrared Reflection Absorption Spectroscopy(IRAS) measurements

Project description

simulateIRAS

Description

A python package for simulating spectra and determining extinction coefficients for polarization- and azimuth-resolved infrared reflection absorption spectroscopy (IRAS) measurements for non-magnetic substrates. The simulations current utilize a three-layer (vacuum-adsorbate-substrate) model derived according to [1] and implemented in [2].




The three-layer (vacuum-adsorbate-substrate) model for light incident along the xz plane of a substrate in the xy plane gives:
$${\frac{\Delta R}{R}} \vert_{(s-pol)} = 8 \ \pi \ \tilde{\nu} \ d \ \sqrt{\epsilon^{s}_{y}} \ cos(\phi) \ Im(\frac{\epsilon^{s}_{y} \ - \ \tilde{\epsilon}^{a}_{y}}{\epsilon^{s}_{y} \ - \ \epsilon^{v}})$$
$${\frac{\Delta R}{R}} \vert_{(p-pol)} = 8 \ \pi \ \tilde{\nu} \ d \ \sqrt{\epsilon^{s}_{y}} \ cos(\phi) \ Im(\frac{\alpha}{\beta})$$ $$\alpha = (\epsilon^{s}_{x} \ - \ \tilde{\epsilon}^{a}_{x}) - (\frac{\epsilon^{s}_{x}}{\tilde{\epsilon}^{a}_{z}} \ - \ \frac{\tilde{\epsilon}^{a}_{x}}{\epsilon^{s}_{z}}) \ {\epsilon^{v}} \ sin^{2}(\phi)$$ $$\beta = (\epsilon^{s}_{x} \ - \ \epsilon^{v}) - (\frac{\epsilon^{s}_{x}}{\tilde{\epsilon}^{v}} \ - \ \frac{\epsilon^{v}}{\epsilon^{s}_{z}}) \ {\epsilon^{v}} \ sin^{2}(\phi)$$
Where:
$\tilde{\nu} =$ wavenumber
$d =$ adsorbate film thickness (approximate for coverage)
$\phi =$ angle of light incidence with respect to the surface normal direction
$\epsilon^{s}_{x} =$ dielectric constant of the substrate layer along the x-axis (in substrate plane along incident light)
$\epsilon^{s}_{y} =$ dielectric constant of the substrate layer along the y-axis (in substrate plane orthogonal to incident light)
$\epsilon^{s}_{z} =$ dielectric constant of the substrate layer along the z-axis (normal to substrate plane)
$\epsilon^{a}_{x} =$ dielectric constant of the adsorbate film along the x-axis (in substrate plane along incident light)
$\epsilon^{a}_{y} =$ dielectric constant of the adsorbate film along the y-axis (in substrate plane orthogonal to incident light)
$\epsilon^{a}_{z} =$ dielectric constant of the adsorbate film along the z-axis (normal to substrate plane)
$\epsilon^{v} =$ dielectric constant of the vacuum which is isotropic

Installation

The python package can be installed via PyPI (pip):

pip install simulateIRAS

We recommend importing in python as iras.

import simulateIRAS as iras

Examples

Example 1: Simulating polarization- and azimuth-resolved IRAS spectra

This example simulates the 4 polarization- and azimuth-resolved IRAS spectra with given k parameters k(x), k(y), k(z) for an adsorbate film on an isotropic, dielectric substrate. The python code, input files and output files are provided in "simulateIRAS/examples/simpleSimulation". The simulation requires the following inputs:

  1. incident angle of light relative to the surface normal
  2. complex index of refraction of the subtrate layer which here is wavelength independent for an isotropic substrate modelling anatase TiO2(101) as $n = 2.3 + 0.0i$
  3. k parameters of the adsorbate layer (imaginary part of the complex index of refraction) which here is for a water film
  4. real index of refraction of the adsorbate layer in the infinite wavenumber simulation limit which here is taken as $Real(n) = 1.37$ for a water film
  5. adsorbate film thickness

The Kramers–Kronig relations are used on the adsorbate k parameters (imaginary part of the complex index of refraction) to get the real part of the complex index of refraction for the adsorbate layer. The simulation then applies the three-layer (substrate-adsorbate-vacuum) model to simulate the 4 polarization- and azimuth-resolved IRAS spectra.
The input adsorbate k parameters and 4 polarization- and azimuth-resolved simulated IRAS spectra are plotted below:

Example 2: Determining extinction coefficients from polarization- and azimuth-resolved IRAS spectra

This example regresses the adsorbate k parameters k(x), k(y), k(y) by comparing the 4 polarization- and azimuth-resolved simulated and experimental IRAS spectra for an adsorbate film on isotropic, dielectric substrate. The python code, input files and output files are provided in "simulateIRAS/examples/dataRegression". The simulation requires the following inputs:

  1. 4 polarization- and azimuth-resolved IRAS spectra
  2. incident angle of light relative to the surface normal
  3. complex index of refraction of the subtrate layer which here is wavelength independent for an isotropic substrate modelling anatase TiO2(101) as $n = 2.3 + 0.0i$
  4. real index of refraction of the adsorbate layer in the infinite wavenumber simulation limit which here is taken as $Real(n) = 1.37$ for a water film
  5. adsorbate film thickness

The Kramers–Kronig relations are used on the regressed adsorbate k parameters (imaginary part of the complex index of refraction) to get the real part of the complex index of refraction for the adsorbate layer. The simulation then applies the three-layer (substrate-adsorbate-vacuum) model to simulate the 4 polarization- and azimuth-resolved IRAS spectra. First, the simulation regresses the adsorbate k(y) and k(x) parameters to the s(y) and s(x) experimental IRAS spectra. Second, the simulation regresses the adsorbate k(z) parameters to the p(xz) and p(yz) experimental IRAS spectra. Finally, the simulation regresses the adsorbate k(x), k(y) and k(z) parameters to the s(y), p(xz), s(x), p(yz) experimental IRAS spectra.
The regressed adsorbate k parameters and 4 polarization- and azimuth-resolved (solid) simulated and (dots) experimental IRAS spectra are plotted below:

References

[1] Chabal YJ (1987) Vibrational Properties at Semiconductor Surfaces and Interfaces. In: Le Lay G, Derrien J, Boccara N (eds) Semiconductor Interfaces: Formation and Properties. Springer Berlin Heidelberg, Berlin, Heidelberg
[2] O'Connor et al. In preparation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simulateIRAS-0.0.0.tar.gz (263.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simulateIRAS-0.0.0-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file simulateIRAS-0.0.0.tar.gz.

File metadata

  • Download URL: simulateIRAS-0.0.0.tar.gz
  • Upload date:
  • Size: 263.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for simulateIRAS-0.0.0.tar.gz
Algorithm Hash digest
SHA256 2d5365df63e0ef7fffb7002a718a78017a86d08023ce7e8c40aeebae65603021
MD5 700e2e2b658cfa1c7dcbdbfd2b6eacdc
BLAKE2b-256 da315b9aff459022d597c66831f1d7027de5adb0ec15cf41365e71983a991cd5

See more details on using hashes here.

File details

Details for the file simulateIRAS-0.0.0-py3-none-any.whl.

File metadata

  • Download URL: simulateIRAS-0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for simulateIRAS-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 270a073168417d5cdfdc1bf8dbba9dfbd204974fb52cf57aeec55c4d1488db0e
MD5 39dec3bffbfc37574464724df2b504a5
BLAKE2b-256 bd0794997b7f198460a96bbeb2711392bfadcc39e9e86bc9ae731441f74e9019

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page