Agentic PrimitivesAP

Study reproduced ·

Reproducing Deal and Grove 1965: the linear-parabolic law and the constants our growth program takes from it

Deal and Grove 1965: the sample and the timing of its process history as the paper states them, our encoding beside them item by item, the simulation in ISL, and how far it lands from the paper's numbers (35 within, 5 near, 4 off).

Richard Pedersen · Agentic Trust Labs · Rich Canvas

One of the [studies we reproduced](/writing/interface-studies-reproduced) for [Questions we need Emily to answer](/writing/questions-for-emily-testing-a-theory-of-the-interface), the companion to [the essay](/writing/testing-a-theory-of-the-interface-with-an-ontology). Generated by `scripts/reproduce_studies.py` from `reproductions/deal_grove_1965.py`. Every value from the paper was read by an AI agent and has not been checked by a person; the sample and history were re-read from the PDF alone by a second agent that had not seen our earlier transcription.

The study and why we depend on it

B. E. Deal and A. S. Grove, “General relationship for the thermal oxidation of silicon”, J. Appl. Phys. 36, 3770 (1965).

The planar growth program, experiments/vitkavage_dit/oxide_growth.isl.template, takes its constants from this paper: B and B/A are a least-squares Arrhenius fit to Table II (scripts/derive_deal_grove_constants.py, reading our transcription data/primary_sources/deal_grove_1965_jap_36_3770/tables_agent_read_UNVERIFIED.csv), and every oxide starts at the paper's 230 Å intercept. This page checks three things: that our transcription of Table II agrees with a second reading, how far the Arrhenius fit departs from the table at each temperature, and how the program does against the paper's own thickness points, dry at six temperatures and wet at two.

How well can this study be reproduced?

Moderate. The gas, the temperature and the substrate are stated, and the rate constants are printed. The history around the oxidation is not: no times are tabulated, nothing is said about insertion, time zero, withdrawal or cooling, and the paper does not say whether each point is a fresh slice. The 230 Å intercept for dry oxygen is a model choice the authors make to cover a fast first regime they do not describe, and they give it four ways (200, 210, 230, 250 Å).

Sample described2 of 5 properties we need are stated and encoded the same
History described2 of 6 steps are stated and encoded the same; 2 are stated by the paper and absent from our history; 2 are ours because the paper is silent
Timing0 of 2 simulated steps have a stated duration; 4 of 4 other steps have none; 6 timing gaps listed below
How the results are givenRate constants in printed Tables I and II; thickness only on log-log and linear figures (Figs. 1, 2, 5, 6), read by an agent, about ±5–10% on the log axes
Repeatability stated by the authorsThickness accuracy ±25 Å below 0.20 μm and ±40 Å above; B ±2%, A ±2% to ±12% (wet), dry “of the same order”
Internal consistencyGood. The intercept is given as 200, 210, 230 ± 30 and 250 Å in different places; the abstract claims 700–1300 °C and 0.1–1 atm, which come from other workers' data
Is our model independent of this paper's data?No. The program's constants are an Arrhenius fit to Table II, and Table II is the authors' fit to these same thicknesses. Agreement here checks our transcription, our derivation and the law's form, not a prediction
Outcome35 of 44 numbers within tolerance

The grade is ours and is about the paper as a source for simulation, not about the quality of the experiment: high means the sample, every step and its timing are stated well enough that a simulation needs no choices of ours; moderate that some choices are ours and are listed; low that the result depends on choices the paper does not constrain.

The sample and its history, played back

The sample is drawn from the simulation: layer heights and the read-outs are what the ISL programs compute at each moment of the history. Steps the language cannot state (a clean, a metallization, a measurement) are on the clock and marked as recorded, not simulated.

Si(111)
Step 1 of 6 · recorded, not simulated
Mechanically polished slices
temperature 25 °C
elapsed 0 s of 25 h 00 min 01 s
timing in the paper: not stated

“circular slices 22 mm in diameter and mechanically polished to 200 μ thickness”

The simulation at this moment
oxide thickness0 nm
consumed substrate0 nm
PolishCleanPush1 sOxidation25 hUnloadMeasure12000 °CThe same history to true scale (25 h 00 min 01 s simulated). Steps with no stated duration take no width.Temperature through the history. Step widths grow with the logarithm of duration; the bar under each step is how well our encoding matches the paper.
Drag the sample to turn it. Click the clock to move through the history.Layer heights are the simulated thicknesses, drawn to one scale within the film; the substrate is cut short.

Does our sample and history match the paper's?

Left: the paper's own words, with the page of the PDF. Right: what we simulate. 4 same, 1 approximated, 3 assumed, 3 not in ours.

✓4 same≈1 approximated?3 assumed✕3 not in ours
Sample: what the paper saysWhat we simulate
Substrate
“(111) surface oriented, Czochralski pulled, with an initial dislocation count of less than 100 cm-2”
PDF p. 5
✓same
FAMILY: Si_Planar; ORIENTATION: Si111
Doping
“1.3 Ω·cm, p-type boron doped (CB = 1.45×10^16 cm-3)”
PDF p. 5
✓same
DOPING: p_type_boron_1.45e16 (recorded; no program reads it)
Slices
“circular slices 22 mm in diameter and mechanically polished to 200 μ thickness”; “placed flat on a quartz boat”
PDF p. 5
✕not in ours
not in our sample
Starting oxide
“no initial oxide could be detected by experimental techniques”; for dry oxygen the authors adopt xi = 230 Å as an initial condition standing for a fast first regime
PDF p. 6
≈approximated
the program starts every oxide at x_i = 23 nm (PARAMETER, STATUS sourced); the sample cannot carry it
The 230 Å is a property of the law, not of the slice; for wet oxygen the paper's xi is zero and our program still starts at 23 nm.
Number of slices
not stated; figures show close pairs of points at one time
PDF p. 5
?assumed
one sample per temperature and gas, its thickness read at each plotted time
History: what the paper saysWhat we simulate
Mechanically polished slices
“circular slices 22 mm in diameter and mechanically polished to 200 μ thickness”
PDF p. 5
✕not in ours
not in our sample
Organic and inorganic rinses, ultrasonic
“Cleaning procedures prior to oxidation included both organic and inorganic rinses using ultrasonic agitation to insure noncontaminated surfaces.”
PDF p. 5
✕not in ours
CLEAN: not_stated; the vocabulary has no solvent-and-acid ultrasonic rinse
Chemicals and the delay before oxidation are not given.
Insertion into the tube at 1200 °C, time before counting starts
not stated: “Silicon slices were placed flat on a quartz boat during oxidation.”
PDF p. 5
?assumed
RUN Push DURATION 1 TEMP 1200->1200 AMBIENT dry_O2
A step of 1 s that changes nothing; it is there so the time a slice spends in the gas before the clock starts can be searched (VARY).
Dry oxidation at 1200 °C, up to 25 h
“purified dry oxygen (water content less than 5ppm)”; “Oxidation temperature was controlled to ±1°C over the range 700° to 1200°C.”
PDF p. 5
✓same
RUN Oxidation DURATION 90000 TEMP 1200->1200 AMBIENT dry_O2
Withdrawn and cooled
not stated
PDF p. 5
?assumed
the history ends when the oxidation ends
Thickness by multiple-beam interferometry
“Oxide thicknesses were determined using multiple-beam interferometric techniques. Accuracy … for oxides thicker than 0.20 μ was ±40 Å. For thinner oxides, the accuracy was ±25 Å.”
PDF p. 5
✓same
the observable Thickness
Whether each point is a separate slice or one slice measured and put back is not stated.

The timing of the history

Time is counted from the start of the first simulated step. A step the language cannot state takes no simulated time; where the paper gives its duration, the duration is in the last column. Stated means the paper gives the duration; partly stated that it gives a bound or a range; not stated; assumed that the duration in our history is ours.

Dry oxygen, 1200 °C

#StepStarts atLastsEnds atTemperatureRateGasIs the timing in the paper?
1Mechanically polished slices0 snot simulatednot stated
2Organic and inorganic rinses, ultrasonic0 snot simulatednot stated. Not given
3Insertion into the tube at 1200 °C, time before counting starts0 s1 s1 s1200 → 1200 °Chelddry_O2not stated; assumed. Push rate, warm-up and whether time zero is insertion or the gas switch: not given
4Dry oxidation at 1200 °C, up to 25 h1 s25 h 00 min25 h 00 min 01 s1200 → 1200 °Chelddry_O2partly stated. Times exist only as plotted points; the paper tabulates none
5Withdrawn and cooled25 h 00 min 01 snot simulatednot stated. Withdrawal, cooling gas and rate: not given
6Thickness by multiple-beam interferometry25 h 00 min 01 snot simulatednot stated

Simulated time in this history: 25 h 00 min 01 s.

Across the samples

SamplePushOxidationTotal
Dry oxygen, 1200 °C1 s at 1200 °C25 h 00 min at 1200 °C25 h 00 min 01 s
Dry oxygen, 1100 °C1 s at 1100 °C26 h 00 min at 1100 °C26 h 00 min 01 s
Dry oxygen, 1000 °C1 s at 1000 °C28 h 00 min at 1000 °C28 h 00 min 01 s
Dry oxygen, 920 °C1 s at 920 °C23 h 00 min at 920 °C23 h 00 min 01 s
Dry oxygen, 800 °C1 s at 800 °C68 h 00 min at 800 °C68 h 00 min 01 s
Dry oxygen, 700 °C1 s at 700 °C120 h 00 min at 700 °C120 h 00 min 01 s
Wet oxygen, 920 °C1 s at 920 °C36 min at 920 °C36 min 01 s
Wet oxygen, 1100 °C1 s at 1100 °C2 h 00 min at 1100 °C2 h 00 min 01 s

Timing the paper does not give

  • No time is tabulated: every oxidation time on this page is read from a figure.
  • Whether each plotted point is a separate slice oxidized once, or one slice taken out, measured and put back. Close pairs of points at one time suggest duplicate slices.
  • Insertion: push rate, warm-up of the slice, and whether time zero is insertion into the hot tube or the switch to oxygen.
  • The gas during loading, warm-up and withdrawal, and how the slices were cooled.
  • The delay between cleaning and oxidation, and between oxidation and measurement.
  • Durations and temperatures of the argon-carrier and flow-rate experiments.

What the second reading changed

  • Our transcription of Table II (tables_agent_read_UNVERIFIED.csv) and the second reading agree in all 24 cells: none differs.
  • The program does not carry the paper's activation energies. It carries a least-squares Arrhenius line through the six Table II rows: E_B = 1.286 eV against the paper's 28.5 kcal/mole (1.236 eV), and E_BA = 2.030 eV against 46.0 kcal/mole (1.995 eV). At the table's own temperatures the line is off the table by up to 15% (B at 1200 °C, B/A at 800 °C); see the table below.
  • The 230 Å intercept is used for every oxide, also for wet oxygen, where the paper takes xi = 0. Our language cannot state a starting oxide on the sample, so the wet histories start at 23 nm.
  • The paper says B is proportional to the oxidant pressure and A is not. Our operator multiplies the whole rate by p_O2/p_ref, which also scales B/A. For the 1 atm dry oxidations here this changes nothing; for any mixture it does.
  • SOURCE.md in the source folder still says “The programs have not yet been changed to the sourced values”. The template now carries the derived values with STATUS sourced; the note is out of date.
  • The dry oxygen had “water content less than 5ppm”. Our histories write dry_O2, which the language reads as pure oxygen.

Their terms and ours

The paper saysWe writeKind in our vocabularyNote
x0: oxide thicknessThicknessobservable (target: layer_thickness)
B: parabolic rate constant; B/A: linear rate constantB0, E_B, BA0, E_BAPARAMETER, STATUS sourcedArrhenius fits to Table II, not the paper's own activation energies (28.5 and 46.0 kcal/mole from Figs. 9 and 11).
A = 2Deff(1/k + 1/h)B / (B/A)derived inside the OPERATOR
xi: initial thickness (230 Å, dry)x_iPARAMETER, STATUS sourced; INITIAL of the state x_oxA model choice for the fast first regime. The language has no sample field for a starting oxide.
τ = (xi² + A xi)/B(implicit)follows from x_iStarting the state at x_i is the same as the paper's time shift τ.
purified dry oxygen (water < 5 ppm), 760 Torrdry_O2ambientCould be written mix:O2=0.999995,H2O=5e-6; no program reads the water.
wet oxygen (O2 bubbled through water at 95 °C), p(H2O) ≈ 640 Torrmix:H2O=0.8421,O2=0.1579ambient (mixture)The named ambient wet_O2 has no partial pressures in the language. As a mixture the gas class is steam; the 1965 program reads its 0.158 atm of oxygen and nothing else.
B proportional to oxidant partial pressure, A independent of it(p_O2 / p_ref) on the rateOPERATOROur operator scales the whole rate by p_O2, so A is not kept independent of pressure.
multiple-beam interferometryThicknessobservable
C*: solubility of the oxidant in the oxide; N1: oxidant molecules per unit volume of oxide(none)domain terms, not in the program

The simulation in our language

Each sample is one history file: a SAMPLE and a CONTROL_TRAJECTORY. This is the whole input; run it with PYTHONPATH=. python -m isl_harness.predict <file>.

Dry oxygen, 1200 °C

# Dry oxygen, 1200 °C
SAMPLE Slice_dry_1200C {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron_1.45e16
}
CONTROL_TRAJECTORY History {
    EVENT Polish KIND other TIMING assumed                       # Mechanically polished slices
    EVENT Clean KIND clean TIMING assumed                        # Organic and inorganic rinses, ultrasonic
    RUN Push DURATION 1 TEMP 1200->1200 AMBIENT dry_O2 TIMING assumed VARY duration 1..1800
    RUN Oxidation DURATION 90000 TEMP 1200->1200 AMBIENT dry_O2 TIMING bound
    EVENT Unload KIND other TIMING assumed                       # Withdrawn and cooled
    EVENT Measure KIND measurement TIMING assumed                # Thickness by multiple-beam interferometry
}

Dry oxygen, 1100 °C

# Dry oxygen, 1100 °C
SAMPLE Slice_dry_1100C {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron_1.45e16
}
CONTROL_TRAJECTORY History {
    EVENT Polish KIND other TIMING assumed                       # Mechanically polished slices
    EVENT Clean KIND clean TIMING assumed                        # Organic and inorganic rinses, ultrasonic
    RUN Push DURATION 1 TEMP 1100->1100 AMBIENT dry_O2 TIMING assumed VARY duration 1..1800
    RUN Oxidation DURATION 93600 TEMP 1100->1100 AMBIENT dry_O2 TIMING bound
    EVENT Unload KIND other TIMING assumed                       # Withdrawn and cooled
    EVENT Measure KIND measurement TIMING assumed                # Thickness by multiple-beam interferometry
}

Dry oxygen, 1000 °C

# Dry oxygen, 1000 °C
SAMPLE Slice_dry_1000C {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron_1.45e16
}
CONTROL_TRAJECTORY History {
    EVENT Polish KIND other TIMING assumed                       # Mechanically polished slices
    EVENT Clean KIND clean TIMING assumed                        # Organic and inorganic rinses, ultrasonic
    RUN Push DURATION 1 TEMP 1000->1000 AMBIENT dry_O2 TIMING assumed VARY duration 1..1800
    RUN Oxidation DURATION 100800 TEMP 1000->1000 AMBIENT dry_O2 TIMING bound
    EVENT Unload KIND other TIMING assumed                       # Withdrawn and cooled
    EVENT Measure KIND measurement TIMING assumed                # Thickness by multiple-beam interferometry
}

Dry oxygen, 920 °C

# Dry oxygen, 920 °C
SAMPLE Slice_dry_920C {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron_1.45e16
}
CONTROL_TRAJECTORY History {
    EVENT Polish KIND other TIMING assumed                       # Mechanically polished slices
    EVENT Clean KIND clean TIMING assumed                        # Organic and inorganic rinses, ultrasonic
    RUN Push DURATION 1 TEMP 920->920 AMBIENT dry_O2 TIMING assumed VARY duration 1..1800
    RUN Oxidation DURATION 82800 TEMP 920->920 AMBIENT dry_O2 TIMING bound
    EVENT Unload KIND other TIMING assumed                       # Withdrawn and cooled
    EVENT Measure KIND measurement TIMING assumed                # Thickness by multiple-beam interferometry
}

Dry oxygen, 800 °C

# Dry oxygen, 800 °C
SAMPLE Slice_dry_800C {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron_1.45e16
}
CONTROL_TRAJECTORY History {
    EVENT Polish KIND other TIMING assumed                       # Mechanically polished slices
    EVENT Clean KIND clean TIMING assumed                        # Organic and inorganic rinses, ultrasonic
    RUN Push DURATION 1 TEMP 800->800 AMBIENT dry_O2 TIMING assumed VARY duration 1..1800
    RUN Oxidation DURATION 244800 TEMP 800->800 AMBIENT dry_O2 TIMING bound
    EVENT Unload KIND other TIMING assumed                       # Withdrawn and cooled
    EVENT Measure KIND measurement TIMING assumed                # Thickness by multiple-beam interferometry
}

Dry oxygen, 700 °C

# Dry oxygen, 700 °C
SAMPLE Slice_dry_700C {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron_1.45e16
}
CONTROL_TRAJECTORY History {
    EVENT Polish KIND other TIMING assumed                       # Mechanically polished slices
    EVENT Clean KIND clean TIMING assumed                        # Organic and inorganic rinses, ultrasonic
    RUN Push DURATION 1 TEMP 700->700 AMBIENT dry_O2 TIMING assumed VARY duration 1..1800
    RUN Oxidation DURATION 432000 TEMP 700->700 AMBIENT dry_O2 TIMING bound
    EVENT Unload KIND other TIMING assumed                       # Withdrawn and cooled
    EVENT Measure KIND measurement TIMING assumed                # Thickness by multiple-beam interferometry
}

Wet oxygen, 920 °C

# Wet oxygen, 920 °C
SAMPLE Slice_wet_920C {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron_1.45e16
}
CONTROL_TRAJECTORY History {
    EVENT Polish KIND other TIMING assumed                       # Mechanically polished slices
    EVENT Clean KIND clean TIMING assumed                        # Organic and inorganic rinses, ultrasonic
    RUN Push DURATION 1 TEMP 920->920 AMBIENT mix:H2O=0.8421,O2=0.1579 TIMING assumed VARY duration 1..1800
    RUN Oxidation DURATION 2160 TEMP 920->920 AMBIENT mix:H2O=0.8421,O2=0.1579 TIMING bound
    EVENT Unload KIND other TIMING assumed                       # Withdrawn and cooled
    EVENT Measure KIND measurement TIMING assumed                # Thickness by multiple-beam interferometry
}

Wet oxygen, 1100 °C

# Wet oxygen, 1100 °C
SAMPLE Slice_wet_1100C {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron_1.45e16
}
CONTROL_TRAJECTORY History {
    EVENT Polish KIND other TIMING assumed                       # Mechanically polished slices
    EVENT Clean KIND clean TIMING assumed                        # Organic and inorganic rinses, ultrasonic
    RUN Push DURATION 1 TEMP 1100->1100 AMBIENT mix:H2O=0.8421,O2=0.1579 TIMING assumed VARY duration 1..1800
    RUN Oxidation DURATION 7200 TEMP 1100->1100 AMBIENT mix:H2O=0.8421,O2=0.1579 TIMING bound
    EVENT Unload KIND other TIMING assumed                       # Withdrawn and cooled
    EVENT Measure KIND measurement TIMING assumed                # Thickness by multiple-beam interferometry
}

The programs the predictor ran on these histories: experiments/deal_qss/two_equilibria.isl.template, experiments/vitkavage_dit/oxide_growth.isl.template, scripts/search_growth.py (structure generated from the grammar), scripts/search_trap_density.py (structure generated from the grammar).

The model itself, experiments/vitkavage_dit/oxide_growth.isl.template, as it is written. Every equation the simulation uses is in this text; the runtime holds no physics.

# ==============================================================================
# ISL MODEL: DRY THERMAL OXIDATION OF SILICON (growth sector)
#
# Linear-parabolic (Deal-Grove) growth written as one ISL operator. Nothing is
# fitted to the test data: every parameter keeps the value declared here.
#
# Provenance of the constants: the rate constants are an Arrhenius fit to Table II of
# Deal and Grove (1965), which is for (111) silicon; see scripts/derive_deal_grove_constants.py.
# The orientation factor for other faces is not in that paper and remains a hypothesis.
# Fields in {{braces}} are filled by scripts/run_vitkavage_growth.py.
# ==============================================================================
SAMPLE {sample_id} {{
    FAMILY: Si_Planar
    ORIENTATION: Si{orientation}
}}
# Oxide thickness. The initial value is Deal and Grove's effective starting thickness
# for dry oxygen, which stands in for the fast initial regime their model does not describe.
STATE x_ox {{
    UNIT: cm
    INITIAL: x_i
    MIN: 0
    MAX: 1.0e-3
}}
CONTROL T {{ UNIT: K }}
CONTROL p_O2 {{ UNIT: atm }}
# Parabolic rate constant B = B0 * exp(-E_B / kT).
PARAMETER B0 {{ VALUE: 3.6053e-09; UNIT: cm^2 s^-1; STATUS: sourced; SOURCE: Deal and Grove, J. Appl. Phys. 36, 3770 (1965), Table II, dry oxygen on (111), Arrhenius least-squares fit, table agent-read }}
PARAMETER E_B {{ VALUE: 1.2860; UNIT: eV; STATUS: sourced; SOURCE: Deal and Grove, J. Appl. Phys. 36, 3770 (1965), Table II, dry oxygen on (111), Arrhenius least-squares fit, table agent-read }}
# Linear rate constant B/A on (111) = BA0 * exp(-E_BA / kT).
PARAMETER BA0 {{ VALUE: 2.4265e-01; UNIT: cm s^-1; STATUS: sourced; SOURCE: Deal and Grove, J. Appl. Phys. 36, 3770 (1965), Table II, dry oxygen on (111), Arrhenius least-squares fit, table agent-read }}
PARAMETER E_BA {{ VALUE: 2.0303; UNIT: eV; STATUS: sourced; SOURCE: Deal and Grove, J. Appl. Phys. 36, 3770 (1965), Table II, dry oxygen on (111), Arrhenius least-squares fit, table agent-read }}
# Orientation factor on the linear rate, relative to (111).
PARAMETER r_or {{ VALUE: {r_or}; UNIT: 1; STATUS: hypothesis }}
# Effective initial thickness for dry oxygen.
PARAMETER x_i {{ VALUE: 2.3e-6; UNIT: cm; STATUS: sourced; SOURCE: Deal and Grove, J. Appl. Phys. 36, 3770 (1965), stated intercept 230 +/- 30 angstrom for dry oxygen, agent-read }}
# Both rate constants are proportional to oxidant pressure; the constants above are for 1 atm.
PARAMETER p_ref {{ VALUE: 1.0; UNIT: atm; STATUS: constant }}
PARAMETER k_B {{ VALUE: 8.617333262e-5; UNIT: eV K^-1; STATUS: constant }}
CONTROL_TRAJECTORY {trajectory_id} {{
    RUN Oxidation DURATION {duration_s} TEMP {T_C}->{T_C} AMBIENT dry_O2
}}
# dx/dt = B / (2x + A), with A = B / (B/A).
OPERATOR F_LinearParabolicGrowth : OxideGrowth {{
    EQUATION: d(x_ox)/dt = (p_O2 / p_ref) * B0 * exp(-E_B / (k_B * T)) / (2 * x_ox + B0 * exp(-E_B / (k_B * T)) / (r_or * BA0 * exp(-E_BA / (k_B * T))))
}}
OBSERVATION_MODEL Obs_Oxide_Thickness {{
    TARGET: Thickness
    UNIT: cm
    EQUATION: Thickness = x_ox
}}
# Silicon consumed by the oxide grown in this recipe: 0.44 of its thickness, by the ratio of molar volumes.
OBSERVATION_MODEL Obs_Consumed_Silicon {{
    TARGET: Consumed_substrate
    UNIT: cm
    EQUATION: Consumed_substrate = 0.44 * (x_ox - x_i)
}}
EVALUATION_CONTRACT {contract_id} {{
    FROZEN: true
    DATASET: data/derived/vitkavage_1990_thickness.csv
    DATASET_DIGEST: sha256:{dataset_sha256}
    SPLIT: test
    TARGET: Thickness = {target} +/- {tolerance} rel
}}

Our simulation against the paper

35 within, 5 near, 4 off of 44 numbers. Tolerance is stated per row; nothing was fitted for this page.

✓35 within tolerance≈5 within twice the tolerance✕4 outside
simulation below the paper ← 0 → simulation above the paper-100%-50%0%+50%+100%Dry oxygen, 1200 °C, 0.27 hoxide thicknessours 102 · paper 85 nm≈ within twice the tolerance (+20%)Dry oxygen, 1200 °C, 1 hoxide thicknessours 207 · paper 200 nm✓ within tolerance (+3.3%)Dry oxygen, 1200 °C, 25 hoxide thicknessours 1110 · paper 1080 nm✓ within tolerance (+3.0%)Dry oxygen, 1100 °C, 0.53 hoxide thicknessours 90.7 · paper 87 nm✓ within tolerance (+4.2%)Dry oxygen, 1100 °C, 2.4 hoxide thicknessours 212 · paper 200 nm✓ within tolerance (+5.8%)Dry oxygen, 1100 °C, 26 hoxide thicknessours 764 · paper 830 nm✓ within tolerance (-7.9%)Dry oxygen, 1000 °C, 2.2 hoxide thicknessours 111 · paper 105 nm✓ within tolerance (+5.2%)Dry oxygen, 1000 °C, 28 hoxide thicknessours 485 · paper 530 nm✓ within tolerance (-8.6%)Dry oxygen, 920 °C, 1.5 hoxide thicknessours 48.8 · paper 49 nm✓ within tolerance (-0.3%)Dry oxygen, 920 °C, 2 hoxide thicknessours 56.5 · paper 58 nm✓ within tolerance (-2.6%)Dry oxygen, 920 °C, 4 hoxide thicknessours 84.1 · paper 86 nm✓ within tolerance (-2.2%)Dry oxygen, 920 °C, 6 hoxide thicknessours 108 · paper 111 nm✓ within tolerance (-2.5%)Dry oxygen, 920 °C, 8 hoxide thicknessours 130 · paper 131 nm✓ within tolerance (-0.9%)Dry oxygen, 920 °C, 10 hoxide thicknessours 150 · paper 151 nm✓ within tolerance (-1.0%)Dry oxygen, 920 °C, 12 hoxide thicknessours 168 · paper 170 nm✓ within tolerance (-1.3%)Dry oxygen, 920 °C, 23 hoxide thicknessours 252 · paper 240 nm✓ within tolerance (+5.0%)Dry oxygen, 800 °C, 8.4 hoxide thicknessours 41.8 · paper 43 nm✓ within tolerance (-2.8%)Dry oxygen, 800 °C, 8.4 hoxide thicknessours 41.8 · paper 38 nm✓ within tolerance (+10.0%)Dry oxygen, 800 °C, 17 hoxide thicknessours 59.8 · paper 68 nm≈ within twice the tolerance (-12%)Dry oxygen, 800 °C, 68 hoxide thicknessours 150 · paper 170 nm≈ within twice the tolerance (-12%)Dry oxygen, 800 °C, 68 hoxide thicknessours 150 · paper 150 nm✓ within tolerance (-0.3%)Dry oxygen, 700 °C, 16 hoxide thicknessours 27.1 · paper 18.6 nm✕ outside (+46%)Dry oxygen, 700 °C, 16 hoxide thicknessours 27.1 · paper 16.6 nm✕ outside (+63%)Dry oxygen, 700 °C, 24 hoxide thicknessours 29.1 · paper 20.5 nm✕ outside (+42%)Dry oxygen, 700 °C, 24 hoxide thicknessours 29.1 · paper 18.2 nm✕ outside (+60%)Dry oxygen, 700 °C, 32 hoxide thicknessours 31.1 · paper 27.6 nm✓ within tolerance (+13%)Dry oxygen, 700 °C, 32 hoxide thicknessours 31.1 · paper 26.2 nm≈ within twice the tolerance (+19%)Dry oxygen, 700 °C, 48 hoxide thicknessours 35.2 · paper 34.7 nm✓ within tolerance (+1.3%)Dry oxygen, 700 °C, 48 hoxide thicknessours 35.2 · paper 33 nm✓ within tolerance (+6.5%)Dry oxygen, 700 °C, 78 hoxide thicknessours 42.6 · paper 43.7 nm✓ within tolerance (-2.5%)Dry oxygen, 700 °C, 78 hoxide thicknessours 42.6 · paper 43 nm✓ within tolerance (-0.9%)Dry oxygen, 700 °C, 93 hoxide thicknessours 46.3 · paper 46.5 nm✓ within tolerance (-0.4%)Dry oxygen, 700 °C, 93 hoxide thicknessours 46.3 · paper 44.4 nm✓ within tolerance (+4.3%)Dry oxygen, 700 °C, 120 hoxide thicknessours 52.9 · paper 53.7 nm✓ within tolerance (-1.5%)Dry oxygen, 700 °C, 120 hoxide thicknessours 52.9 · paper 51.3 nm✓ within tolerance (+3.2%)Wet oxygen, 920 °C, 0.117 hoxide thicknessours 43.4 · paper 42 nm✓ within tolerance (+3.3%)Wet oxygen, 920 °C, 0.23 hoxide thicknessours 79.7 · paper 78 nm✓ within tolerance (+2.2%)Wet oxygen, 920 °C, 0.3 hoxide thicknessours 100 · paper 102 nm✓ within tolerance (-1.6%)Wet oxygen, 920 °C, 0.4 hoxide thicknessours 128 · paper 131 nm✓ within tolerance (-2.4%)Wet oxygen, 920 °C, 0.5 hoxide thicknessours 154 · paper 155 nm✓ within tolerance (-1.0%)Wet oxygen, 920 °C, 0.6 hoxide thicknessours 178 · paper 181 nm✓ within tolerance (-1.9%)Wet oxygen, 1100 °C, 0.05 hoxide thicknessours 114 · paper 100 nm≈ within twice the tolerance (+14%)Wet oxygen, 1100 °C, 0.64 hoxide thicknessours 511 · paper 520 nm✓ within tolerance (-1.7%)Wet oxygen, 1100 °C, 2 hoxide thicknessours 940 · paper 920 nm✓ within tolerance (+2.2%)
The pale green band is the tolerance. Bars past ±100% are cut and carry their value.
Oxide thickness against time, dry oxygen
030060090112000306090120time in Oxidation (h)oxide thickness (nm)1200 °C1100 °C1000 °C920 °C800 °C700 °Cour simulationthe paper
Oxide thickness against time, wet oxygen
0254508762102000.511.52time in Oxidation (h)oxide thickness (nm)920 °C1100 °Cour simulationthe paper
Sample and historyQuantityThe paperOur simulationDifferenceVerdictWhat the program's own evaluation saysWhere in the paper
Dry oxygen, 1200 °C, 0.27 hoxide thickness85 nm102 nm+20%near (±10%)supported within scopeFig. 2 (log axes), PDF p. 3, graph reading
Dry oxygen, 1200 °C, 1 hoxide thickness200 nm207 nm+3%within (±10%)supported within scopeFig. 2 (log axes), PDF p. 3, graph reading
Dry oxygen, 1200 °C, 25 hoxide thickness1.08e+03 nm1.11e+03 nm+3%within (±10%)supported within scopeFig. 2 (log axes), PDF p. 3, graph reading
Dry oxygen, 1100 °C, 0.53 hoxide thickness87 nm90.7 nm+4%within (±10%)supported within scopeFig. 2 (log axes), PDF p. 3, graph reading
Dry oxygen, 1100 °C, 2.4 hoxide thickness200 nm212 nm+6%within (±10%)supported within scopeFig. 2 (log axes), PDF p. 3, graph reading
Dry oxygen, 1100 °C, 26 hoxide thickness830 nm764 nm-8%within (±10%)supported within scopeFig. 2 (log axes), PDF p. 3, graph reading
Dry oxygen, 1000 °C, 2.2 hoxide thickness105 nm110 nm+5%within (±10%)supported within scopeFig. 2 (log axes), PDF p. 3, graph reading
Dry oxygen, 1000 °C, 28 hoxide thickness530 nm485 nm-9%within (±10%)supported within scopeFig. 2 (log axes), PDF p. 3, graph reading
Dry oxygen, 920 °C, 1.5 hoxide thickness49 nm48.8 nm-0%within (±10%)supported within scopeFig. 5 (linear axes), PDF p. 6, and the 23 h point of Fig. 2; graph reading
Dry oxygen, 920 °C, 2 hoxide thickness58 nm56.5 nm-3%within (±10%)supported within scopeFig. 5 (linear axes), PDF p. 6, and the 23 h point of Fig. 2; graph reading
Dry oxygen, 920 °C, 4 hoxide thickness86 nm84.1 nm-2%within (±10%)supported within scopeFig. 5 (linear axes), PDF p. 6, and the 23 h point of Fig. 2; graph reading
Dry oxygen, 920 °C, 6 hoxide thickness111 nm108 nm-3%within (±10%)supported within scopeFig. 5 (linear axes), PDF p. 6, and the 23 h point of Fig. 2; graph reading
Dry oxygen, 920 °C, 8 hoxide thickness131 nm130 nm-1%within (±10%)supported within scopeFig. 5 (linear axes), PDF p. 6, and the 23 h point of Fig. 2; graph reading
Dry oxygen, 920 °C, 10 hoxide thickness151 nm150 nm-1%within (±10%)supported within scopeFig. 5 (linear axes), PDF p. 6, and the 23 h point of Fig. 2; graph reading
Dry oxygen, 920 °C, 12 hoxide thickness170 nm168 nm-1%within (±10%)supported within scopeFig. 5 (linear axes), PDF p. 6, and the 23 h point of Fig. 2; graph reading
Dry oxygen, 920 °C, 23 hoxide thickness240 nm252 nm+5%within (±10%)supported within scopeFig. 5 (linear axes), PDF p. 6, and the 23 h point of Fig. 2; graph reading
Dry oxygen, 800 °C, 8.4 hoxide thickness43 nm41.8 nm-3%within (±10%)supported within scopeFig. 2 (log axes), PDF p. 3, graph reading; pairs at one time are two points on the figure
Dry oxygen, 800 °C, 8.4 hoxide thickness38 nm41.8 nm+10%within (±10%)supported within scopeFig. 2 (log axes), PDF p. 3, graph reading; pairs at one time are two points on the figure
Dry oxygen, 800 °C, 17 hoxide thickness68 nm59.8 nm-12%near (±10%)supported within scopeFig. 2 (log axes), PDF p. 3, graph reading; pairs at one time are two points on the figure
Dry oxygen, 800 °C, 68 hoxide thickness170 nm150 nm-12%near (±10%)supported within scopeFig. 2 (log axes), PDF p. 3, graph reading; pairs at one time are two points on the figure
Dry oxygen, 800 °C, 68 hoxide thickness150 nm150 nm-0%within (±10%)supported within scopeFig. 2 (log axes), PDF p. 3, graph reading; pairs at one time are two points on the figure
Dry oxygen, 700 °C, 16 hoxide thickness18.6 nm27.1 nm+46%off (±15.1%)supported within scopeFig. 6 (linear axes), PDF p. 6, graph reading; pairs at one time are two points on the figure
Dry oxygen, 700 °C, 16 hoxide thickness16.6 nm27.1 nm+63%off (±15.1%)supported within scopeFig. 6 (linear axes), PDF p. 6, graph reading; pairs at one time are two points on the figure
Dry oxygen, 700 °C, 24 hoxide thickness20.5 nm29.1 nm+42%off (±15.1%)supported within scopeFig. 6 (linear axes), PDF p. 6, graph reading; pairs at one time are two points on the figure
Dry oxygen, 700 °C, 24 hoxide thickness18.2 nm29.1 nm+60%off (±15.1%)supported within scopeFig. 6 (linear axes), PDF p. 6, graph reading; pairs at one time are two points on the figure
Dry oxygen, 700 °C, 32 hoxide thickness27.6 nm31.1 nm+13%within (±15.1%)supported within scopeFig. 6 (linear axes), PDF p. 6, graph reading; pairs at one time are two points on the figure
Dry oxygen, 700 °C, 32 hoxide thickness26.2 nm31.1 nm+19%near (±15.1%)supported within scopeFig. 6 (linear axes), PDF p. 6, graph reading; pairs at one time are two points on the figure
Dry oxygen, 700 °C, 48 hoxide thickness34.7 nm35.2 nm+1%within (±15.1%)supported within scopeFig. 6 (linear axes), PDF p. 6, graph reading; pairs at one time are two points on the figure
Dry oxygen, 700 °C, 48 hoxide thickness33 nm35.2 nm+7%within (±15.1%)supported within scopeFig. 6 (linear axes), PDF p. 6, graph reading; pairs at one time are two points on the figure
Dry oxygen, 700 °C, 78 hoxide thickness43.7 nm42.6 nm-2%within (±15.1%)supported within scopeFig. 6 (linear axes), PDF p. 6, graph reading; pairs at one time are two points on the figure
Dry oxygen, 700 °C, 78 hoxide thickness43 nm42.6 nm-1%within (±15.1%)supported within scopeFig. 6 (linear axes), PDF p. 6, graph reading; pairs at one time are two points on the figure
Dry oxygen, 700 °C, 93 hoxide thickness46.5 nm46.3 nm-0%within (±15.1%)supported within scopeFig. 6 (linear axes), PDF p. 6, graph reading; pairs at one time are two points on the figure
Dry oxygen, 700 °C, 93 hoxide thickness44.4 nm46.3 nm+4%within (±15.1%)supported within scopeFig. 6 (linear axes), PDF p. 6, graph reading; pairs at one time are two points on the figure
Dry oxygen, 700 °C, 120 hoxide thickness53.7 nm52.9 nm-1%within (±15.1%)supported within scopeFig. 6 (linear axes), PDF p. 6, graph reading; pairs at one time are two points on the figure
Dry oxygen, 700 °C, 120 hoxide thickness51.3 nm52.9 nm+3%within (±15.1%)supported within scopeFig. 6 (linear axes), PDF p. 6, graph reading; pairs at one time are two points on the figure
Wet oxygen, 920 °C, 0.117 hoxide thickness42 nm43.4 nm+3%within (±10%)supported within scopeFig. 5 (linear axes, open circles), PDF p. 6, graph reading
Wet oxygen, 920 °C, 0.23 hoxide thickness78 nm79.7 nm+2%within (±10%)supported within scopeFig. 5 (linear axes, open circles), PDF p. 6, graph reading
Wet oxygen, 920 °C, 0.3 hoxide thickness102 nm100 nm-2%within (±10%)supported within scopeFig. 5 (linear axes, open circles), PDF p. 6, graph reading
Wet oxygen, 920 °C, 0.4 hoxide thickness131 nm128 nm-2%within (±10%)supported within scopeFig. 5 (linear axes, open circles), PDF p. 6, graph reading
Wet oxygen, 920 °C, 0.5 hoxide thickness155 nm154 nm-1%within (±10%)supported within scopeFig. 5 (linear axes, open circles), PDF p. 6, graph reading
Wet oxygen, 920 °C, 0.6 hoxide thickness181 nm178 nm-2%within (±10%)supported within scopeFig. 5 (linear axes, open circles), PDF p. 6, graph reading
Wet oxygen, 1100 °C, 0.05 hoxide thickness100 nm114 nm+14%near (±10%)supported within scopeFig. 1 (log axes), PDF p. 2, graph reading
Wet oxygen, 1100 °C, 0.64 hoxide thickness520 nm511 nm-2%within (±10%)supported within scopeFig. 1 (log axes), PDF p. 2, graph reading
Wet oxygen, 1100 °C, 2 hoxide thickness920 nm940 nm+2%within (±10%)supported within scopeFig. 1 (log axes), PDF p. 2, graph reading

Aligning the simulation: what the unstated things would have to be

Every step whose timing or temperature the paper leaves open carries a range in the history above (VARY). scripts/align_study.py searched those ranges against the paper's numbers through the same predictor, first one unknown at a time, then all together. No parameter a program declares fitted was touched. The unknowns were chosen on dry_1100, dry_1200 only; every other number is a test they played no part in.

UnknownWhat the paper saysRange searchedThe reproduction usedBest aloneScore at the reproduction's valueBest score alone
Insertion into the tube at 1200 °C, time before counting starts: durationPush rate, warm-up and whether time zero is insertion or the gas switch: not given1 to 1800 s1 s1 s5 of 6 within tolerance, median error 5.0%5 of 6 within tolerance, median error 5.0%

Together: Push duration 1 s (was 1).

As reproduced: 35 of 44 within tolerance, median error 3.1%. Aligned: 35 of 44 within tolerance, median error 3.1%. On the held-out samples only: 30 of 38 within tolerance, median error 2.5% as reproduced, 30 of 38 within tolerance, median error 2.5% aligned.

Choices of program or material property, each scored on its own and on top of the aligned history:

VariantAloneWith the aligned history
wet written as the named ambient wet_O227 of 44 within tolerance, median error 6.2%27 of 44 within tolerance, median error 6.2%
wet written as steam at 1 atm28 of 44 within tolerance, median error 6.2%28 of 44 within tolerance, median error 6.2%

Time zero. The only history unknown is how long a slice sat in the gas before the clock started (Push, 1 s to 30 min). It was chosen on the 1100 and 1200 °C curves, where a few minutes matter most. None is best: 5 of 6 within tolerance at 1 s, 3.5 s and 12 s, falling to 3 of 6 at 8.6 min and 2 of 6 at 30 min (median error from 5.0% to 22.9%). With the 230 Å start, 2.5 min before time zero still leaves 5 of 6 (median 7.3%); somewhere between 2.5 and 8.6 min the data rule it out. The aligned history is the reproduced one, so the test score is unchanged: 22 of 38 on the other six cases.

Wet oxygen. Written as the stated mixture (640 Torr water, 120 Torr oxygen) the gas reaches the programs as steam. The 1965 program reads only its 0.158 atm of oxygen and grows 23.4 to 24.8 nm at 920 °C against the paper's 42 to 181 nm, and 68.5 against 920 nm after 2 h at 1100 °C. Written as the named wet_O2 or as steam, the same program grows nothing at all (23.0 nm, its starting value): the two variants score the same as the mixture because every wet point is far off either way. The thin-oxide program does not run on any wet history. The support label says “steam and wet oxygen steps grow nothing in it”, which is wrong for the mixture: it grows the oxygen share.

The starting oxide. It could not be searched as an unknown (see the side calculation below the conclusions): 200 to 230 Å fit best, as the paper says.

✓30 within tolerance≈4 within twice the tolerance✕4 outside
simulation below the paper ← 0 → simulation above the paper-100%-50%0%+50%+100%Dry oxygen, 1000 °C, 2.2 hoxide thicknessours 111 · paper 105 nm✓ within tolerance (+5.2%)Dry oxygen, 1000 °C, 28 hoxide thicknessours 485 · paper 530 nm✓ within tolerance (-8.6%)Dry oxygen, 920 °C, 1.5 hoxide thicknessours 48.8 · paper 49 nm✓ within tolerance (-0.3%)Dry oxygen, 920 °C, 2 hoxide thicknessours 56.5 · paper 58 nm✓ within tolerance (-2.6%)Dry oxygen, 920 °C, 4 hoxide thicknessours 84.1 · paper 86 nm✓ within tolerance (-2.2%)Dry oxygen, 920 °C, 6 hoxide thicknessours 108 · paper 111 nm✓ within tolerance (-2.5%)Dry oxygen, 920 °C, 8 hoxide thicknessours 130 · paper 131 nm✓ within tolerance (-0.9%)Dry oxygen, 920 °C, 10 hoxide thicknessours 150 · paper 151 nm✓ within tolerance (-1.0%)Dry oxygen, 920 °C, 12 hoxide thicknessours 168 · paper 170 nm✓ within tolerance (-1.3%)Dry oxygen, 920 °C, 23 hoxide thicknessours 252 · paper 240 nm✓ within tolerance (+5.0%)Dry oxygen, 800 °C, 8.4 hoxide thicknessours 41.8 · paper 43 nm✓ within tolerance (-2.8%)Dry oxygen, 800 °C, 8.4 hoxide thicknessours 41.8 · paper 38 nm✓ within tolerance (+10.0%)Dry oxygen, 800 °C, 17 hoxide thicknessours 59.8 · paper 68 nm≈ within twice the tolerance (-12%)Dry oxygen, 800 °C, 68 hoxide thicknessours 150 · paper 170 nm≈ within twice the tolerance (-12%)Dry oxygen, 800 °C, 68 hoxide thicknessours 150 · paper 150 nm✓ within tolerance (-0.3%)Dry oxygen, 700 °C, 16 hoxide thicknessours 27.1 · paper 18.6 nm✕ outside (+46%)Dry oxygen, 700 °C, 16 hoxide thicknessours 27.1 · paper 16.6 nm✕ outside (+63%)Dry oxygen, 700 °C, 24 hoxide thicknessours 29.1 · paper 20.5 nm✕ outside (+42%)Dry oxygen, 700 °C, 24 hoxide thicknessours 29.1 · paper 18.2 nm✕ outside (+60%)Dry oxygen, 700 °C, 32 hoxide thicknessours 31.1 · paper 27.6 nm✓ within tolerance (+13%)Dry oxygen, 700 °C, 32 hoxide thicknessours 31.1 · paper 26.2 nm≈ within twice the tolerance (+19%)Dry oxygen, 700 °C, 48 hoxide thicknessours 35.2 · paper 34.7 nm✓ within tolerance (+1.3%)Dry oxygen, 700 °C, 48 hoxide thicknessours 35.2 · paper 33 nm✓ within tolerance (+6.5%)Dry oxygen, 700 °C, 78 hoxide thicknessours 42.6 · paper 43.7 nm✓ within tolerance (-2.5%)Dry oxygen, 700 °C, 78 hoxide thicknessours 42.6 · paper 43 nm✓ within tolerance (-0.9%)Dry oxygen, 700 °C, 93 hoxide thicknessours 46.3 · paper 46.5 nm✓ within tolerance (-0.4%)Dry oxygen, 700 °C, 93 hoxide thicknessours 46.3 · paper 44.4 nm✓ within tolerance (+4.3%)Dry oxygen, 700 °C, 120 hoxide thicknessours 52.9 · paper 53.7 nm✓ within tolerance (-1.5%)Dry oxygen, 700 °C, 120 hoxide thicknessours 52.9 · paper 51.3 nm✓ within tolerance (+3.2%)Wet oxygen, 920 °C, 0.117 hoxide thicknessours 43.4 · paper 42 nm✓ within tolerance (+3.3%)Wet oxygen, 920 °C, 0.23 hoxide thicknessours 79.7 · paper 78 nm✓ within tolerance (+2.2%)Wet oxygen, 920 °C, 0.3 hoxide thicknessours 100 · paper 102 nm✓ within tolerance (-1.6%)Wet oxygen, 920 °C, 0.4 hoxide thicknessours 128 · paper 131 nm✓ within tolerance (-2.4%)Wet oxygen, 920 °C, 0.5 hoxide thicknessours 154 · paper 155 nm✓ within tolerance (-1.0%)Wet oxygen, 920 °C, 0.6 hoxide thicknessours 178 · paper 181 nm✓ within tolerance (-1.9%)Wet oxygen, 1100 °C, 0.05 hoxide thicknessours 114 · paper 100 nm≈ within twice the tolerance (+14%)Wet oxygen, 1100 °C, 0.64 hoxide thicknessours 511 · paper 520 nm✓ within tolerance (-1.7%)Wet oxygen, 1100 °C, 2 hoxide thicknessours 940 · paper 920 nm✓ within tolerance (+2.2%)
The pale green band is the tolerance. Bars past ±100% are cut and carry their value.

30 within, 4 near, 4 off of 38 numbers with the aligned settings (the samples used to choose the unknowns are left out).

SampleQuantityThe paperAs reproduced aboveAlignedDifferenceVerdictHow
Dry oxygen, 1000 °C, 2.2 hoxide thickness105 nm110110+5%within (±10%)test
Dry oxygen, 1000 °C, 28 hoxide thickness530 nm485485-9%within (±10%)test
Dry oxygen, 920 °C, 1.5 hoxide thickness49 nm48.848.8-0%within (±10%)test
Dry oxygen, 920 °C, 2 hoxide thickness58 nm56.556.5-3%within (±10%)test
Dry oxygen, 920 °C, 4 hoxide thickness86 nm84.184.1-2%within (±10%)test
Dry oxygen, 920 °C, 6 hoxide thickness111 nm108108-3%within (±10%)test
Dry oxygen, 920 °C, 8 hoxide thickness131 nm130130-1%within (±10%)test
Dry oxygen, 920 °C, 10 hoxide thickness151 nm150150-1%within (±10%)test
Dry oxygen, 920 °C, 12 hoxide thickness170 nm168168-1%within (±10%)test
Dry oxygen, 920 °C, 23 hoxide thickness240 nm252252+5%within (±10%)test
Dry oxygen, 800 °C, 8.4 hoxide thickness43 nm41.841.8-3%within (±10%)test
Dry oxygen, 800 °C, 8.4 hoxide thickness38 nm41.841.8+10%within (±10%)test
Dry oxygen, 800 °C, 17 hoxide thickness68 nm59.859.8-12%near (±10%)test
Dry oxygen, 800 °C, 68 hoxide thickness170 nm150150-12%near (±10%)test
Dry oxygen, 800 °C, 68 hoxide thickness150 nm150150-0%within (±10%)test
Dry oxygen, 700 °C, 16 hoxide thickness18.6 nm27.127.1+46%off (±15%)test
Dry oxygen, 700 °C, 16 hoxide thickness16.6 nm27.127.1+63%off (±15%)test
Dry oxygen, 700 °C, 24 hoxide thickness20.5 nm29.129.1+42%off (±15%)test
Dry oxygen, 700 °C, 24 hoxide thickness18.2 nm29.129.1+60%off (±15%)test
Dry oxygen, 700 °C, 32 hoxide thickness27.6 nm31.131.1+13%within (±15%)test
Dry oxygen, 700 °C, 32 hoxide thickness26.2 nm31.131.1+19%near (±15%)test
Dry oxygen, 700 °C, 48 hoxide thickness34.7 nm35.235.2+1%within (±15%)test
Dry oxygen, 700 °C, 48 hoxide thickness33 nm35.235.2+7%within (±15%)test
Dry oxygen, 700 °C, 78 hoxide thickness43.7 nm42.642.6-2%within (±15%)test
Dry oxygen, 700 °C, 78 hoxide thickness43 nm42.642.6-1%within (±15%)test
Dry oxygen, 700 °C, 93 hoxide thickness46.5 nm46.346.3-0%within (±15%)test
Dry oxygen, 700 °C, 93 hoxide thickness44.4 nm46.346.3+4%within (±15%)test
Dry oxygen, 700 °C, 120 hoxide thickness53.7 nm52.952.9-1%within (±15%)test
Dry oxygen, 700 °C, 120 hoxide thickness51.3 nm52.952.9+3%within (±15%)test
Wet oxygen, 920 °C, 0.117 hoxide thickness42 nm43.443.4+3%within (±10%)test
Wet oxygen, 920 °C, 0.23 hoxide thickness78 nm79.779.7+2%within (±10%)test
Wet oxygen, 920 °C, 0.3 hoxide thickness102 nm100100-2%within (±10%)test
Wet oxygen, 920 °C, 0.4 hoxide thickness131 nm128128-2%within (±10%)test
Wet oxygen, 920 °C, 0.5 hoxide thickness155 nm154154-1%within (±10%)test
Wet oxygen, 920 °C, 0.6 hoxide thickness181 nm178178-2%within (±10%)test
Wet oxygen, 1100 °C, 0.05 hoxide thickness100 nm114114+14%near (±10%)test
Wet oxygen, 1100 °C, 0.64 hoxide thickness520 nm511511-2%within (±10%)test
Wet oxygen, 1100 °C, 2 hoxide thickness920 nm940940+2%within (±10%)test

What alignment cannot fix. The dry misses are the program's constants, not the history: the Arrhenius line through Table II is off the table by up to 15%, and the 1200 °C short-time point and the 800 °C long-time points follow it. Using the table's own B and B/A at each temperature, or the paper's activation energies, is a change to sourced constants, not a history unknown, and was not made here. The 700 °C early points need a starting regime that grows from below 230 Å. Wet oxygen needs a program with water as the oxidant (Table I); none exists.

How to read the scores: the constants come from Table II, which the authors fitted to these thicknesses, so even the held-out cases are not an independent test. They test our transcription (confirmed cell by cell by the second reading), our derivation and the graph reading.

What our language and ontology cannot yet say

  • A starting oxide on the sample. The 230 Å is a PARAMETER of the program and applies to every history, wet included, where the paper's own start is zero. A sample field such as STARTING_OXIDE: 0 nm (read by the growth programs, with the program's intercept as its default) would let wet and dry slices of one preparation differ, and would let the alignment search it.
  • Water as an oxidant. wet_O2 has no partial pressures; written as a mixture the water reaches no program, and the 1965 program grows the 16% oxygen share. A wet growth program (Table I constants, B with 16.3 kcal/mole) reading p_H2O is needed before any wet history means anything.
  • Pressure on B only. The paper's law has B proportional to the oxidant pressure and A independent of it. Our operator scales the whole rate. A program that reads p_O2 only in B would be the paper's law for mixtures, which Study B (Krzeminski's 10% oxygen ramp) needs.
  • One slice measured several times. The language cannot say that a curve's points are the same slice taken out, measured and put back (an EVENT unload, measure, reload between RUNs of one sample) or separate slices. The paper does not say which; the language should at least be able to write both.
  • A support label per gas. The planar growth program's label claims wet and steam steps grow nothing, but a mixture makes it grow the oxygen share. The label should be computed from what the program reads (p_O2) rather than from the gas class.

With heating and cooling transitions

No paper we hold states how its wafers heated up or cooled down. The project owner specified scenarios for one Vitkavage wafer (isl_harness/vitkavage_transitions.py); isl_harness/thermal_transitions.py applies the same numbers to every sample here: a heat-up in nitrogen before the first furnace step (a hot push of 1 to 5 min, or a cold-furnace ramp of 60 to 120 min), the owner's radiative cooling knots after the last furnace step or after the paper's own pull (fast, or every time multiplied by 5), and ramps around an anneal at 300 to 500 °C. The paper's own steps are kept as written. All transitions are assumptions, written in the history with TIMING assumed.

HistoryWithin toleranceMedian errorChanged numbers
as the paper states it (above)35 of 443.2%
heat-up A (hot push), fast cooling35 of 443.2%0 of 44 moved by more than 2%
heat-up A (hot push), slow cooling35 of 443.2%0 of 44 moved by more than 2%
heat-up B (cold-furnace ramp), fast cooling35 of 443.2%0 of 44 moved by more than 2%
heat-up B (cold-furnace ramp), slow cooling35 of 443.2%0 of 44 moved by more than 2%

The paper's own conclusions

The paper statesWhat we find
x0² + A x0 = B(t + τ) describes dry and wet oxidation from 700 to 1200 °C (their own data) and 300 to 20 000 ÅThe program is this law with Arrhenius constants. On dry oxygen 27 of 35 graph points are within tolerance; the misses are the first 700 °C points (below the 230 Å start) and points where the Arrhenius line leaves Table IIdry reproduced; wet not
Table II: B and B/A for dry oxygen at 700–1200 °COur transcription agrees with the second reading in every cell; the program's Arrhenius line departs from the table by up to 15% in B and 15% in B/Atranscription right; fit within 15%
Activation energies, dry: 28.5 kcal/mole for B, 46.0 for B/A (Figs. 9 and 11)Our fit to Table II alone: 29.7 and 46.8 kcal/mole (1.286 and 2.030 eV)close, not the same
B is proportional to the oxidant's partial pressure; A is notThe program multiplies the whole rate by p_O2, so A moves with pressure; and it has no water as an oxidantdiffers
Wet oxidation: xi = 0, B = 0.287 μm²/h and B/A = 1.27 μm/h at 1000 °C (Table I)No program has wet constants. Written as a mixture, the 1965 program grows the oxide in 0.158 atm of dry oxygen and lands far below the paperno program

What the reproduction shows

Table II against the program. The program's B and B/A at each temperature of Table II, from the constants in the template (dry oxygen, (111), 1 atm). Table values are our transcription, which the second reading confirms.

T (°C)B, Table II (μm²/h)B, programdifferenceB/A, Table II (μm/h)B/A, programdifference
12000.0450.0517+15%1.120.99-12%
11000.0270.0247-8%0.300.309+3%
10000.01170.0105-10%0.0710.0802+13%
9200.00490.0048-2%0.02080.0232+12%
8000.00110.00119+8%0.00300.00255-15%
700not determined0.0002840.000260.000267+3%

The scatter of the table about a straight Arrhenius line is in the table itself: each row is the authors' fit of x0 against t/x0 at one temperature, with A known to ±12% at high temperature. The largest departures are B at 1200 °C (line 15% above the table) and B/A at 800 °C (line 15% below). The 1200 °C point at 0.27 h, 20% above the figure, and the 800 °C points at 17 and 68 h, 12% below, sit where the line leaves the table.

The starting oxide, outside the language. The sample cannot state a starting oxide, so x_i could not be searched by the alignment. It was varied directly in the template (a side calculation, PARAMETER x_i replaced, the same 35 dry points and tolerances): 100 Å gives 15 of 35 within tolerance (median error 17.1%), 150 Å 20 (11.3%), 200 Å 28 (5.4%), 210 Å 28 (5.0%), 230 Å 27 (4.2%), 250 Å 26 (6.1%). The paper's own range, 200 to 250 Å, is where the data put it; they cannot choose inside it. No value fixes the first four points at 700 °C (16.6 to 20.5 nm at 16 and 24 h), which lie below every starting thickness in that range: at 700 °C the fast first regime is not a step at time zero.

What we would like Emily to check

  1. Deal and Grove give the dry intercept as 200, 210, 230 ± 30 and 250 Å in different places. Is it right for a growth program to start every dry oxide at 230 Å, or should that number belong to the sample (its starting surface) rather than to the law?
  2. Our constants are a least-squares line through Table II, not the authors' own activation energies from Figs. 9 and 11 (which also use other data). Which should a program use?
  3. Would the points of Figs. 1 and 2 be separate slices, or one slice re-measured? Does it matter for oxides of this thickness?
  4. The paper says A does not depend on pressure. Our program scales the whole rate with oxygen pressure. For mixtures of a few percent oxygen in nitrogen, which is right?