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/song_2004.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
Y. Song, S. Dhar, L. C. Feldman, G. Chung and J. R. Williams, “Modified Deal Grove model for the thermal oxidation of silicon carbide”, J. Appl. Phys. 95, 4953 (2004).
The challenge's reference for SiC. The graph holds 43 thicknesses read from its Figures 3 to 5, and the SiC growth program is the silicon growth operator unchanged with this paper's tabulated rate constants. The 1050 °C curves are held out: their constants are interpolated from the neighbouring temperatures, not read from the paper.
How well can this study be reproduced?
High for growth. One step, fully stated: dry oxygen at one atmosphere at a stated temperature. The weakness is in the data, not the history: thickness appears only on figures, and the paper does not say whether the points of a curve are separate samples.
| Sample described | 3 of 5 properties we need are stated and encoded the same |
| History described | 2 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 |
| Timing | 0 of 2 simulated steps have a stated duration; 4 of 4 other steps have none; 5 timing gaps listed below |
| How the results are given | Thickness only in Figures 3 to 5 (read from the page by an agent, about ±2 nm); rate constants in printed tables |
| Repeatability stated by the authors | Not stated; RBS and ellipsometry “agreed well within the limits of experimental errors” |
| Internal consistency | Good. One ratio in the text (1.60) has no temperature and differs from the table's |
| Is our model independent of this paper's data? | No, except at 1050 °C. The rate constants are the paper's own fits to these curves, so agreement at the tabulated temperatures shows we read the paper correctly; only the 1050 °C curves, whose constants we interpolate, test anything |
| Outcome | 21 of 24 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.
“Samples were cleaned by acetone, methanol and 5% HF solution in successive steps.”
| oxide thickness | 0 nm | |
| consumed substrate | 0 nm |
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. 5 same, 1 approximated, 2 assumed, 3 not in ours.
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.
C face (000-1), 1150 °C
| # | Step | Starts at | Lasts | Ends at | Temperature | Rate | Gas | Is the timing in the paper? |
|---|---|---|---|---|---|---|---|---|
| 1 | Acetone, methanol, 5% HF | 0 s | not simulated | not stated | ||||
| 2 | Loaded at once into the furnace | 0 s | not simulated | not stated. Furnace temperature at loading, push, ramp and the moment time zero is counted from: none given | ||||
| 3 | Time in oxygen at 1150 °C before the clock starts | 0 s | 1 s | 1 s | 1150 → 1150 °C | held | dry_O2 | not stated; assumed. Not stated; searched from 0 to 30 min |
| 4 | Dry oxidation at 1150 °C | 1 s | 6 h 00 min | 6 h 00 min 01 s | 1150 → 1150 °C | held | dry_O2 | partly stated. Times appear only on the figures' axes (0.25 to 6 h); the paper does not say whether one sample was oxidized cumulatively or a separate sample was used for each time |
| 5 | Unloaded and cooled | 6 h 00 min 01 s | not simulated | not stated. Not described | ||||
| 6 | Thickness by RBS and ellipsometry | 6 h 00 min 01 s | not simulated | not stated |
Simulated time in this history: 6 h 00 min 01 s.
Across the samples
| Sample | BeforeClock | Oxidation | Total |
|---|---|---|---|
| C face (000-1), 1150 °C | 1 s at 1150 °C | 6 h 00 min at 1150 °C | 6 h 00 min 01 s |
| C face (000-1), 1050 °C | 1 s at 1050 °C | 6 h 00 min at 1050 °C | 6 h 00 min 01 s |
| C face (000-1), 950 °C | 1 s at 950 °C | 6 h 00 min at 950 °C | 6 h 00 min 01 s |
| a face (11-20), 1150 °C | 1 s at 1150 °C | 6 h 00 min at 1150 °C | 6 h 00 min 01 s |
| a face (11-20), 1050 °C | 1 s at 1050 °C | 6 h 00 min at 1050 °C | 6 h 00 min 01 s |
| Si face (0001), 1150 °C | 1 s at 1150 °C | 6 h 00 min at 1150 °C | 6 h 00 min 01 s |
| Si face (0001), 1050 °C | 1 s at 1050 °C | 6 h 00 min at 1050 °C | 6 h 00 min 01 s |
Timing the paper does not give
- Whether each point is a separate sample or one sample oxidized again and again. If cumulative, every point includes the earlier unloads and reloads.
- The moment time zero is counted from: loading, reaching temperature, or admitting oxygen. For the shortest times (15 and 30 min) this matters.
- Loading temperature, push rate and ramp.
- Cooling and unloading: nothing is said.
- The oxidation times themselves are only on the figure axes.
What the second reading changed
- Our stored recipe (one hold in dry oxygen at the stated temperature) is what the paper states. The second reading found nothing our encoding contradicts.
- The paper never says whether the points on a curve are separate samples or one sample re-oxidized. Our simulation treats each time as an uninterrupted oxidation from a clean surface.
- The Si-face activation energies rest on three temperatures: Figure 5 plots 950 and 1000 °C points but the tables have no constants there. We kept only the three tabulated temperatures.
- Figures 3 to 5 do not say whether the plotted thickness is from RBS or ellipsometry; in Figure 2 the two differ visibly at 6 h on the C face.
Their terms and ours
| The paper says | We write | Kind in our vocabulary | Note |
|---|---|---|---|
| X: oxide thickness | Thickness | observable (target: layer_thickness); quantity oxide-thickness | |
| B: parabolic rate constant; B/A: linear rate constant | B, B_over_A | PARAMETER, STATUS sourced (Tables I and II) | One pair per face and temperature, as the paper tabulates them. |
| τ (time offset) | (zero) | INITIAL of the state x_ox | The paper sets τ to zero. |
| C face, Si face, a face | ORIENTATION: 4H_SiC_C_face … | sample field; process factor orientation | |
| dry oxidation at atmospheric pressure, 1 l/min | dry_O2 | ambient | Flow is not expressible and no program reads it. |
| CO out-diffusion | FLUX of carbon out of the oxide | operator kind Transport | The paper's modification of Deal-Grove enters through A and B; the growth law keeps its form. |
| RBS / spectroscopic ellipsometry | Thickness | observable | Two techniques, one observable; the paper says they agree within error. |
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>.
C face (000-1), 1150 °C
# C face (000-1), 1150 °C
SAMPLE SiC_C_1150 {
FAMILY: SiC_SiO2
ORIENTATION: 4H_SiC_C_face
CLEAN: not_stated
DOPING: n_type
}
CONTROL_TRAJECTORY History {
EVENT Clean KIND clean TIMING assumed # Acetone, methanol, 5% HF
EVENT Load KIND load TIMING assumed # Loaded at once into the furnace
RUN BeforeClock DURATION 1 TEMP 1150->1150 AMBIENT dry_O2 TIMING assumed VARY duration 1..1800
RUN Oxidation DURATION 21600 TEMP 1150->1150 AMBIENT dry_O2 TIMING bound
EVENT Unload KIND other TIMING assumed # Unloaded and cooled
EVENT Measure KIND measurement TIMING assumed # Thickness by RBS and ellipsometry
}C face (000-1), 1050 °C
# C face (000-1), 1050 °C
SAMPLE SiC_C_1050 {
FAMILY: SiC_SiO2
ORIENTATION: 4H_SiC_C_face
CLEAN: not_stated
DOPING: n_type
}
CONTROL_TRAJECTORY History {
EVENT Clean KIND clean TIMING assumed # Acetone, methanol, 5% HF
EVENT Load KIND load TIMING assumed # Loaded at once into the furnace
RUN BeforeClock DURATION 1 TEMP 1050->1050 AMBIENT dry_O2 TIMING assumed VARY duration 1..1800
RUN Oxidation DURATION 21600 TEMP 1050->1050 AMBIENT dry_O2 TIMING bound
EVENT Unload KIND other TIMING assumed # Unloaded and cooled
EVENT Measure KIND measurement TIMING assumed # Thickness by RBS and ellipsometry
}C face (000-1), 950 °C
# C face (000-1), 950 °C
SAMPLE SiC_C_950 {
FAMILY: SiC_SiO2
ORIENTATION: 4H_SiC_C_face
CLEAN: not_stated
DOPING: n_type
}
CONTROL_TRAJECTORY History {
EVENT Clean KIND clean TIMING assumed # Acetone, methanol, 5% HF
EVENT Load KIND load TIMING assumed # Loaded at once into the furnace
RUN BeforeClock DURATION 1 TEMP 950->950 AMBIENT dry_O2 TIMING assumed VARY duration 1..1800
RUN Oxidation DURATION 21600 TEMP 950->950 AMBIENT dry_O2 TIMING bound
EVENT Unload KIND other TIMING assumed # Unloaded and cooled
EVENT Measure KIND measurement TIMING assumed # Thickness by RBS and ellipsometry
}a face (11-20), 1150 °C
# a face (11-20), 1150 °C
SAMPLE SiC_a_1150 {
FAMILY: SiC_SiO2
ORIENTATION: 4H_SiC_a_face
CLEAN: not_stated
DOPING: n_type
}
CONTROL_TRAJECTORY History {
EVENT Clean KIND clean TIMING assumed # Acetone, methanol, 5% HF
EVENT Load KIND load TIMING assumed # Loaded at once into the furnace
RUN BeforeClock DURATION 1 TEMP 1150->1150 AMBIENT dry_O2 TIMING assumed VARY duration 1..1800
RUN Oxidation DURATION 21600 TEMP 1150->1150 AMBIENT dry_O2 TIMING bound
EVENT Unload KIND other TIMING assumed # Unloaded and cooled
EVENT Measure KIND measurement TIMING assumed # Thickness by RBS and ellipsometry
}a face (11-20), 1050 °C
# a face (11-20), 1050 °C
SAMPLE SiC_a_1050 {
FAMILY: SiC_SiO2
ORIENTATION: 4H_SiC_a_face
CLEAN: not_stated
DOPING: n_type
}
CONTROL_TRAJECTORY History {
EVENT Clean KIND clean TIMING assumed # Acetone, methanol, 5% HF
EVENT Load KIND load TIMING assumed # Loaded at once into the furnace
RUN BeforeClock DURATION 1 TEMP 1050->1050 AMBIENT dry_O2 TIMING assumed VARY duration 1..1800
RUN Oxidation DURATION 21600 TEMP 1050->1050 AMBIENT dry_O2 TIMING bound
EVENT Unload KIND other TIMING assumed # Unloaded and cooled
EVENT Measure KIND measurement TIMING assumed # Thickness by RBS and ellipsometry
}Si face (0001), 1150 °C
# Si face (0001), 1150 °C
SAMPLE SiC_Si_1150 {
FAMILY: SiC_SiO2
ORIENTATION: 4H_SiC_Si_face
CLEAN: not_stated
DOPING: n_type
}
CONTROL_TRAJECTORY History {
EVENT Clean KIND clean TIMING assumed # Acetone, methanol, 5% HF
EVENT Load KIND load TIMING assumed # Loaded at once into the furnace
RUN BeforeClock DURATION 1 TEMP 1150->1150 AMBIENT dry_O2 TIMING assumed VARY duration 1..1800
RUN Oxidation DURATION 21600 TEMP 1150->1150 AMBIENT dry_O2 TIMING bound
EVENT Unload KIND other TIMING assumed # Unloaded and cooled
EVENT Measure KIND measurement TIMING assumed # Thickness by RBS and ellipsometry
}Si face (0001), 1050 °C
# Si face (0001), 1050 °C
SAMPLE SiC_Si_1050 {
FAMILY: SiC_SiO2
ORIENTATION: 4H_SiC_Si_face
CLEAN: not_stated
DOPING: n_type
}
CONTROL_TRAJECTORY History {
EVENT Clean KIND clean TIMING assumed # Acetone, methanol, 5% HF
EVENT Load KIND load TIMING assumed # Loaded at once into the furnace
RUN BeforeClock DURATION 1 TEMP 1050->1050 AMBIENT dry_O2 TIMING assumed VARY duration 1..1800
RUN Oxidation DURATION 21600 TEMP 1050->1050 AMBIENT dry_O2 TIMING bound
EVENT Unload KIND other TIMING assumed # Unloaded and cooled
EVENT Measure KIND measurement TIMING assumed # Thickness by RBS and ellipsometry
}The programs the predictor ran on these histories: experiments/sic_interface_states/one_way_anneal.isl.template, experiments/song_sic/oxide_growth_sic.isl.template.
The model itself, experiments/song_sic/oxide_growth_sic.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 4H-SiC (growth sector on a second material)
#
# The OPERATOR and OBSERVATION_MODEL blocks below are copied character for character
# from experiments/vitkavage_dit/oxide_growth.isl.template, the silicon program; a test
# checks that they are identical. Only the declared parameters differ.
#
# Song et al. (2004) fit their SiC data with the same linear-parabolic law, reading its
# two constants as including out-diffusion of the carbon product. The constants here are
# Arrhenius fits to that paper's Tables I and II, per crystal face
# (scripts/build_song_dataset.py). Nothing is fitted by us.
# Fields in {{braces}} are filled by scripts/run_song_sic.py.
# ==============================================================================
SAMPLE {sample_id} {{
FAMILY: SiC_SiO2
ORIENTATION: 4H_SiC_{face}_face
}}
STATE x_ox {{
UNIT: cm
INITIAL: x_i
MIN: 0
MAX: 1.0e-3
}}
CONTROL T {{ UNIT: K }}
CONTROL p_O2 {{ UNIT: atm }}
PARAMETER B0 {{ VALUE: {B0}; UNIT: cm^2 s^-1; STATUS: sourced; SOURCE: {source} }}
PARAMETER E_B {{ VALUE: {E_B}; UNIT: eV; STATUS: sourced; SOURCE: {source} }}
PARAMETER BA0 {{ VALUE: {BA0}; UNIT: cm s^-1; STATUS: sourced; SOURCE: {source} }}
PARAMETER E_BA {{ VALUE: {E_BA}; UNIT: eV; STATUS: sourced; SOURCE: {source} }}
# The constants above are already specific to the crystal face, so no further factor is applied.
PARAMETER r_or {{ VALUE: 1.0; UNIT: 1; STATUS: constant }}
# The paper sets the time offset to zero and reports a native oxide of about 2 angstrom.
PARAMETER x_i {{ VALUE: 2.0e-8; UNIT: cm; STATUS: sourced; SOURCE: Song et al., J. Appl. Phys. 95, 4953 (2004), native oxide about 2 angstrom, agent-read }}
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
}}
EVALUATION_CONTRACT {contract_id} {{
FROZEN: true
DATASET: data/derived/song_2004_sic_thickness.csv
DATASET_DIGEST: sha256:{dataset_sha256}
SPLIT: {split}
{targets}
}}Our simulation against the paper
21 within, 3 near of 24 numbers. Tolerance is stated per row; nothing was fitted for this page.
| Sample and history | Quantity | The paper | Our simulation | Difference | Verdict | What the program's own evaluation says | Where in the paper |
|---|---|---|---|---|---|---|---|
| C face (000-1), 1150 °C, 1 h | oxide thickness | 89.9 nm | 89.5 nm | -0% | within (±10%) | supported within scope | Figure 3, read from the page |
| C face (000-1), 1150 °C, 2 h | oxide thickness | 141 nm | 142 nm | +0% | within (±10%) | supported within scope | Figure 3, read from the page |
| C face (000-1), 1150 °C, 4 h | oxide thickness | 219 nm | 217 nm | -1% | within (±10%) | supported within scope | Figure 3, read from the page |
| C face (000-1), 1150 °C, 6 h | oxide thickness | 278 nm | 275 nm | -1% | within (±10%) | supported within scope | Figure 3, read from the page |
| C face (000-1), 1050 °C, 2 h | oxide thickness | 78.5 nm | 74.3 nm | -5% | within (±10%) | supported within scope | Figure 3, read from the page |
| C face (000-1), 1050 °C, 4 h | oxide thickness | 125 nm | 115 nm | -8% | within (±10%) | supported within scope | Figure 3, read from the page |
| C face (000-1), 1050 °C, 6 h | oxide thickness | 159 nm | 146 nm | -8% | within (±10%) | supported within scope | Figure 3, read from the page |
| C face (000-1), 950 °C, 4 h | oxide thickness | 55.1 nm | 54.7 nm | -1% | within (±10%) | supported within scope | Figure 3, read from the page |
| C face (000-1), 950 °C, 6 h | oxide thickness | 72.2 nm | 70.1 nm | -3% | within (±10%) | supported within scope | Figure 3, read from the page |
| a face (11-20), 1150 °C, 1 h | oxide thickness | 69.5 nm | 71.9 nm | +3% | within (±10%) | supported within scope | Figure 4, read from the page |
| a face (11-20), 1150 °C, 2 h | oxide thickness | 115 nm | 118 nm | +3% | within (±10%) | supported within scope | Figure 4, read from the page |
| a face (11-20), 1150 °C, 4 h | oxide thickness | 187 nm | 186 nm | -1% | within (±10%) | supported within scope | Figure 4, read from the page |
| a face (11-20), 1150 °C, 6 h | oxide thickness | 246 nm | 239 nm | -3% | within (±10%) | supported within scope | Figure 4, read from the page |
| a face (11-20), 1050 °C, 1 h | oxide thickness | 29.5 nm | 30.5 nm | +3% | within (±10%) | supported within scope | Figure 4, read from the page |
| a face (11-20), 1050 °C, 2 h | oxide thickness | 47.9 nm | 49.4 nm | +3% | within (±10%) | supported within scope | Figure 4, read from the page |
| a face (11-20), 1050 °C, 4 h | oxide thickness | 81.5 nm | 77.1 nm | -5% | within (±10%) | supported within scope | Figure 4, read from the page |
| a face (11-20), 1050 °C, 6 h | oxide thickness | 107 nm | 98.7 nm | -8% | within (±10%) | supported within scope | Figure 4, read from the page |
| Si face (0001), 1150 °C, 1 h | oxide thickness | 15.9 nm | 16.1 nm | +1% | within (±10%) | supported within scope | Figure 5, read from the page |
| Si face (0001), 1150 °C, 2 h | oxide thickness | 21 nm | 24.3 nm | +16% | near (±10%) | supported within scope | Figure 5, read from the page |
| Si face (0001), 1150 °C, 4 h | oxide thickness | 36.5 nm | 36 nm | -1% | within (±10%) | supported within scope | Figure 5, read from the page |
| Si face (0001), 1150 °C, 6 h | oxide thickness | 43.7 nm | 45.1 nm | +3% | within (±10%) | supported within scope | Figure 5, read from the page |
| Si face (0001), 1050 °C, 2 h | oxide thickness | 8.4 nm | 9.48 nm | +13% | near (±10%) | supported within scope | Figure 5, read from the page |
| Si face (0001), 1050 °C, 4 h | oxide thickness | 14 nm | 14 nm | -0% | within (±10%) | supported within scope | Figure 5, read from the page |
| Si face (0001), 1050 °C, 6 h | oxide thickness | 15.3 nm | 17.4 nm | +14% | near (±10%) | supported within scope | Figure 5, read from the page |
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 C_1150, C_950, Si_1150, a_1150 only; every other number is a test they played no part in.
| Unknown | What the paper says | Range searched | The reproduction used | Best alone | Score at the reproduction's value | Best score alone |
|---|---|---|---|---|---|---|
| Time in oxygen at 1150 °C before the clock starts: duration | Not stated; searched from 0 to 30 min | 1 to 1800 s | 1 s | 1 s | 13 of 14 within tolerance, median error 1.1% | 13 of 14 within tolerance, median error 1.1% |
Together: BeforeClock duration 1 s (was 1).
As reproduced: 21 of 24 within tolerance, median error 3.0%. Aligned: 21 of 24 within tolerance, median error 3.0%. On the held-out samples only: 8 of 10 within tolerance, median error 6.5% as reproduced, 8 of 10 within tolerance, median error 6.5% aligned.
Choices of program or material property, each scored on its own and on top of the aligned history:
| Variant | Alone | With the aligned history |
|---|---|---|
| clock starts 5 min before the oxygen reaches the sample | 21 of 24 within tolerance, median error 3.4% | 21 of 24 within tolerance, median error 3.4% |
| clock starts 10 min before the oxygen reaches the sample | 20 of 24 within tolerance, median error 6.2% | 20 of 24 within tolerance, median error 6.2% |
| one sample per curve, oxidized cumulatively, 5 min in oxygen before the clock at each reload | 21 of 24 within tolerance, median error 5.3% | 21 of 24 within tolerance, median error 5.3% |
| one sample per curve, oxidized cumulatively, 15 min in oxygen before the clock at each reload | 12 of 24 within tolerance, median error 10.1% | 12 of 24 within tolerance, median error 10.1% |
What was searched. The paper states the gas, the temperature and the times on the figure axes. It does not say when time zero is, or whether the points of a curve are separate pieces. Time zero was written as one unknown step before the oxidation, time in oxygen at temperature before the clock starts (1 s to 30 min; the language does not allow a zero-length step, so 1 s stands for none). The opposite sign, a clock that starts before the oxygen arrives, and the cumulative reading were declared as variants. The unknown was chosen on the 1150 and 950 °C curves (14 points); the 1050 °C curves (10 points), whose rate constants we interpolate, are the test.
A long offset is ruled out; a short one cannot be told from none. On the 14 chosen points, 13 are within tolerance for any offset from 1 s to 148 s (median error 1.1% at 1 s, 2.4% at 148 s), 12 at 8.6 min (3.0%) and 8 at 30 min (7.3%, every point high). The search keeps 1 s. This is not independent of the paper: Song et al. fitted their rate constants with the time offset set to zero, and our program uses those constants, so a zero offset is built into the numbers being compared.
The held-out 1050 °C curves do not change: 8 of 10 within tolerance, median error 6.5%, before and after. The two that fail are the Si face at 2 h and 6 h, 13% and 14% high; the C face at 1050 °C is 5 to 8% low at every time. Those are errors of the interpolated constants, not of the timing.
The variants. A clock that starts 5 min before the oxygen reaches the sample: 21 of 24 (median 3.4%), and on the 1050 °C points alone 8 of 10 (median 8.2%, computed from the same rows); 10 min: 20 of 24 (median 6.2%), 7 of 10 at 1050 °C. One sample per curve, oxidized cumulatively, with 5 min in oxygen before the clock at each reload: 21 of 24 (median 5.3%); on the chosen points the median rises from 1.1% to 4.1%, on the 1050 °C points it falls from 6.5% to 5.4% (signed +0.2%). With 15 min per reload: 12 of 24 (median 10.1%, every point high). So the data allow at most a few minutes of extra oxygen per reload if the curves are cumulative, and they do not choose between separate pieces and one piece re-oxidized.
8 within, 2 near of 10 numbers with the aligned settings (the samples used to choose the unknowns are left out).
| Sample | Quantity | The paper | As reproduced above | Aligned | Difference | Verdict | How |
|---|---|---|---|---|---|---|---|
| C face (000-1), 1050 °C, 2 h | oxide thickness | 78.5 nm | 74.3 | 74.3 | -5% | within (±10%) | test |
| C face (000-1), 1050 °C, 4 h | oxide thickness | 125 nm | 115 | 115 | -8% | within (±10%) | test |
| C face (000-1), 1050 °C, 6 h | oxide thickness | 159 nm | 146 | 146 | -8% | within (±10%) | test |
| a face (11-20), 1050 °C, 1 h | oxide thickness | 29.5 nm | 30.5 | 30.5 | +3% | within (±10%) | test |
| a face (11-20), 1050 °C, 2 h | oxide thickness | 47.9 nm | 49.4 | 49.4 | +3% | within (±10%) | test |
| a face (11-20), 1050 °C, 4 h | oxide thickness | 81.5 nm | 77.1 | 77.1 | -5% | within (±10%) | test |
| a face (11-20), 1050 °C, 6 h | oxide thickness | 107 nm | 98.7 | 98.7 | -8% | within (±10%) | test |
| Si face (0001), 1050 °C, 2 h | oxide thickness | 8.4 nm | 9.48 | 9.48 | +13% | near (±10%) | test |
| Si face (0001), 1050 °C, 4 h | oxide thickness | 14 nm | 14 | 14 | -0% | within (±10%) | test |
| Si face (0001), 1050 °C, 6 h | oxide thickness | 15.3 nm | 17.4 | 17.4 | +14% | near (±10%) | test |
The thickness curves cannot test their own time zero, because the program's rate constants were fitted to these curves under the paper's assumption of no offset. A test needs either the paper's 0.25 h and 0.5 h points (not in our dataset) or another laboratory's curve at one of these temperatures.
The remaining error at 1050 °C is in the constants: at 1050 °C the program's B and B/A come from an Arrhenius fit to the paper's tables, interpolated from the neighbouring temperatures rather than read from the paper. No history change reaches it.
What our language and ontology cannot yet say
- A clock reference for a RUN:
TIME_ZERO at_load | at_temperature | at_gas_on(or a signedOFFSET <s>), so that “time” on a figure axis can be stated as what it is. Here the offset had to be an extra 1 s step, because a RUN cannot have zero duration and VARY cannot go negative. - Measurements part-way through a history:
MEASURE <observable> AFTER <step>followed by more steps, so a cumulatively oxidized sample (oxidize, unload, measure, reload, oxidize) is one history with several measured points. Today each point has to be a separate sample built by a variant function. - An optional or repeated step (
REPEAT <n> { … }) for the reload of a cumulative series, with its own VARY on the per-reload time. - OFFCUT as a field a program reads, so that this on-axis data and Kobayashi's 4° off-axis epilayers are not the same sample to the growth program; and a word for the measurement technique (RBS or ellipsometry) on an observable.
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.
| History | Within tolerance | Median error | Changed numbers |
|---|---|---|---|
| as the paper states it (above) | 21 of 24 | 3.0% | |
| heat-up A (hot push), fast cooling | 21 of 24 | 3.0% | 0 of 24 moved by more than 2% |
| heat-up A (hot push), slow cooling | 21 of 24 | 3.0% | 0 of 24 moved by more than 2% |
| heat-up B (cold-furnace ramp), fast cooling | 21 of 24 | 3.0% | 0 of 24 moved by more than 2% |
| heat-up B (cold-furnace ramp), slow cooling | 21 of 24 | 3.0% | 0 of 24 moved by more than 2% |
The paper's own conclusions
| The paper states | What we find | |
|---|---|---|
| Growth is fastest on the C face and slowest on the Si face, with the a face between | Reproduced: the three faces order the same way at every temperature | direction right |
| Activation energy of B/A: 1.29, 1.20, 1.34 eV for the C, a and Si faces; of B: 1.99, 2.94, 3.12 eV | Not derived by us: the program takes the tabulated constants at each temperature | not tested |
| Thickness against time follows X² + AX = Bt on all three faces | A power law in thickness does as well on these points; a 24 h oxidation would separate them | not singled out |
What we would like Emily to check
- In work of this kind, would each oxidation time be a fresh 5 mm piece, or the same piece put back in the furnace?
- Is the thickness in Figures 3 to 5 the ellipsometric one?
- For the Si face, are three temperatures enough for you to accept an activation energy of 3.12 eV for B?