NAME

Physics::Etch::Simulation - pattern/chamber/loading-aware etch simulation

SYNOPSIS

use Physics::Etch;
use Physics::Etch::Chamber;
use Physics::Etch::Layout;
use Physics::Etch::Loading;
use Physics::Etch::Simulation;

my $etch = Physics::Etch->dry_etch('silicon_nitride', thickness => 300);

my $chamber = Physics::Etch::Chamber->new(
    wafer_diameter_mm => 200, pressure_mtorr => 20, power_w => 300 );

my $layout  = Physics::Etch::Layout->from_gdsii_file('mask.gds', layer => 1);
my $loading = Physics::Etch::Loading->from_chamber($chamber);

my $sim = Physics::Etch::Simulation->new(
    process => $etch, chamber => $chamber,
    layout  => $layout, loading => $loading );

print $sim->report;
my $rows = $sim->features_by_cd;    # per-CD anisotropy / undercut / lag

DESCRIPTION

Couples the reactor, mask pattern and loading models to the base etch model. On run it:

1. hands the chamber's derived pressure and DC bias to the process;
2. computes macro loading from the layout open fraction and wafer area, lowering the global etch rate;
3. for every mask feature, converts CD to aspect ratio and applies ARDE (RIE lag) plus local micro-loading to get a per-feature rate, etch depth, undercut, anisotropy and sidewall angle;
4. flags features that fail to clear and reports the RIE-lag spread.

report renders the whole picture; features_by_cd and result expose the numbers.