NAME
Physics::Ellipsometry::VASE::EMA - Effective Medium Approximation mixing models for composite thin films
SYNOPSIS
use PDL;
use Physics::Ellipsometry::VASE::EMA qw(ema_linear ema_bruggeman
ema_maxwell_garnett ema_looyenga);
use Physics::Ellipsometry::VASE::Dispersion qw(cauchy_nk);
my $lambda = sequence(500) * 2 + 300; # 300–1298 nm
# Dielectric functions of two constituent materials
my ($n_a, $k_a) = cauchy_nk($lambda, 1.46, 0.003, 0.0); # SiO2
my ($n_b, $k_b) = (ones($lambda), zeroes($lambda)); # void (air)
my $eps_a = ($n_a + i() * $k_a) ** 2;
my $eps_b = ($n_b + i() * $k_b) ** 2;
# 30% porosity via Bruggeman mixing
my $eps_eff = ema_bruggeman($eps_a, $eps_b, 0.30);
my $N_eff = sqrt($eps_eff);
my $n_eff = $N_eff->re;
my $k_eff = $N_eff->im->abs;
printf "n(500 nm) = %.3f (bulk SiO2 ≈ 1.46)\n",
$n_eff->at(100);
DESCRIPTION
Many thin films encountered in ellipsometry are not homogeneous single-phase materials. Surface roughness, porosity, inter-diffusion layers, nano-composites, and graded interfaces are all cases where the optical response arises from a mixture of two (or more) constituent materials at a scale smaller than the wavelength of light.
Effective Medium Approximation (EMA) theories provide the dielectric function of such a composite given the dielectric functions of the constituents and their volume fractions. The choice of EMA model depends on the microstructure:
Linear — simplest volume-weighted average; reasonable when the constituents have similar dielectric functions.
Bruggeman — symmetric in both constituents; no distinction between host and inclusion. Best for random mixtures, porous films, and surface roughness layers.
Maxwell-Garnett — asymmetric; treats one material as isolated spherical inclusions in a continuous host matrix. Best when the volume fraction of the inclusion is small (< 30%).
All three functions operate on the dielectric function ε = N² (not on n and k directly), because the mixing rules are derived in terms of ε.
Surface roughness modelling
A common use is modelling surface roughness as a 50/50 Bruggeman mix of the underlying film material and void:
my $eps_rough = ema_bruggeman($eps_film, $eps_void, 0.50);
This roughness layer is then included in the TMM stack with a thickness on the order of the RMS roughness.
FUNCTIONS
ema_linear
my $eps_eff = ema_linear($eps_a, $eps_b, $vf);
Linear (volume-weighted) mixing:
ε_eff = (1 − f) · ε_a + f · ε_b
where $vf (f) is the volume fraction of material B. This is the simplest mixing rule and does not account for local-field effects. It is exact when the two phases form a laminar (layered) structure with the electric field parallel to the layers.
# 20% TiO2 in SiO2 matrix (linear blend)
my $eps_mix = ema_linear($eps_sio2, $eps_tio2, 0.20);
ema_bruggeman
my $eps_eff = ema_bruggeman($eps_a, $eps_b, $vf);
Bruggeman EMA solves the self-consistent equation:
f_a · (ε_a − ε_eff)/(ε_a + 2·ε_eff)
+ f_b · (ε_b − ε_eff)/(ε_b + 2·ε_eff) = 0
For a two-component system this has the closed-form solution:
ε_eff = ( b + sqrt(b² + 8·ε_a·ε_b) ) / 4
where b = (3f − 1)·ε_b + (2 − 3f)·ε_a
The implementation selects the root with positive real part to ensure a physically meaningful result.
Bruggeman EMA is symmetric: neither material is privileged as host or inclusion. This makes it the standard choice for:
Surface roughness layers (50% film / 50% void)
Porous films (variable void fraction)
Interdiffusion or intermixed interfaces
Cermet and nano-composite films
# Surface roughness: 50% Ta2O5 + 50% void
my $eps_void = ones($lambda) + i() * zeroes($lambda); # ε = 1
my $eps_rough = ema_bruggeman($eps_ta2o5, $eps_void, 0.50);
# Include as a thin layer in the TMM stack
my ($psi, $delta) = psi_delta($lambda, $theta,
[$N_air, sqrt($eps_rough), $N_ta2o5, $N_si],
[2.0, 100.0], # 2 nm roughness, 100 nm film
);
ema_maxwell_garnett
my $eps_eff = ema_maxwell_garnett($eps_host, $eps_incl, $vf);
Maxwell-Garnett EMA treats material B as dilute spherical inclusions embedded in a continuous host matrix of material A:
ε_eff = ε_a · (ε_b + 2ε_a + 2f·(ε_b − ε_a))
/ (ε_b + 2ε_a − f·(ε_b − ε_a))
This model is asymmetric: swapping host and inclusion gives a different result. It is most accurate when the inclusion volume fraction is below about 30% and the inclusions are well separated.
Typical applications:
Metal nanoparticles in a dielectric (Au in SiO2)
Quantum dots in a polymer matrix
Dilute dopant phases
# 5% Au nanoparticles in SiO2 host
my $eps_composite = ema_maxwell_garnett($eps_sio2, $eps_au, 0.05);
CONVERTING BETWEEN ε AND N
The functions accept and return the complex dielectric function ε = ε₁ + iε₂. To convert to/from the complex refractive index N = n + ik:
# N → ε
my $eps = ($n + i() * $k) ** 2;
# ε → N
my $N_complex = sqrt($eps);
my $n = $N_complex->re;
my $k = $N_complex->im->abs;
ema_looyenga
my $eps_eff = ema_looyenga($eps_a, $eps_b, $volume_fraction_b);
The Looyenga mixing rule (1965) uses cube-root averaging:
eps_eff^(1/3) = (1-f)*eps_a^(1/3) + f*eps_b^(1/3)
This formula treats both components symmetrically (unlike Maxwell-Garnett) and is simpler than solving the self-consistent Bruggeman equation. It works well for random mixtures where neither material forms a clear host-inclusion geometry.
When to use Looyenga:
- - Random mixtures with comparable volume fractions of both phases
- - Porous materials (e.g., porous Si, aerogels)
- - Quick estimate without iterative solving
Example:
# Porous silicon (50% Si / 50% void)
my $eps_Si = pdl(15.0) + i() * pdl(0.2);
my $eps_void = pdl(1.0) + i() * pdl(0.0);
my $eps_eff = ema_looyenga($eps_void, $eps_Si, 0.5);
my $n_eff = sqrt($eps_eff)->re; # ~2.35
# Compare with Bruggeman for same system
my $eps_brug = ema_bruggeman($eps_void, $eps_Si, 0.5); # ~2.50
SEE ALSO
Physics::Ellipsometry::VASE, Physics::Ellipsometry::VASE::TMM, Physics::Ellipsometry::VASE::Dispersion, Physics::Ellipsometry::VASE::Materials
D.E. Aspnes, "Local-field effects and effective-medium theory: A microscopic perspective", Am. J. Phys. 50, 704 (1982).
H. Fujiwara, Spectroscopic Ellipsometry: Principles and Applications, John Wiley & Sons, 2007, Chapter 5.