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/rabie_2005.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
M. A. Rabie, Y. M. Haddara and J. Carette, “A kinetic model for the oxidation of silicon germanium alloys”, J. Appl. Phys. 98, 074904 (2005).
The challenge's reference model for SiGe oxidation. Our SiGe growth program is this paper's model written in ISL with the constants it chose for one experiment (LeGoues et al.: 14% germanium, wet oxygen, 800 °C), and the predictor runs that program for every SiGe history. This page writes all four experiments the paper simulates as histories, so it shows both the reproduction of the one case and what happens when its constants are carried to the other three.
How well can this study be reproduced?
Low. A modelling paper. The four experiments it simulates are other groups' and are described by three words each: germanium fraction, temperature, gas. Nothing about the alloy layer, the furnace, the steam pressure in “wet oxygen”, the loading or the time at which the germanium-rich layer was measured. Its rate constants and interdiffusivity are refitted for each experiment, so its agreement with the thickness curves is not a test of the model.
| Sample described | 1 of 5 properties we need are stated and encoded the same |
| History described | 0 of 6 steps are stated and encoded the same; 0 are stated by the paper and absent from our history; 3 are ours because the paper is silent |
| Timing | 0 of 2 simulated steps have a stated duration; 3 of 3 other steps have none; 5 timing gaps listed below |
| How the results are given | Thickness only on Figures 3 to 5 (read by eye); the germanium-rich layer (50 nm, up to 75%) and the GeO2 fraction (35%) as sentences; rate constants, solubilities and diffusivities in printed tables |
| Repeatability stated by the authors | Not stated; the authors write that “the present experimental data is not sufficient to make the parameter extraction reliable” (PDF p. 8) |
| Internal consistency | Fair. The Figure 10 caption names the wrong experiment; the wet-oxygen diffusivity is given two ways (Table II against the text); the stated range for EGe (0.7 to 0.9 eV) does not contain the value used (0.6 eV) |
| Is our model independent of this paper's data? | No for the LeGoues thickness: our program carries the paper's own constants for that experiment. Partly for the germanium at the interface (a relation fitted to Müller 2023, never to LeGoues). The Liu and Zhang curves are a test of carrying one experiment's constants to another, which the paper itself does not do |
| Outcome | 3 of 26 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.
not stated: Rabie et al. give only the germanium fraction, the temperature and the gas of each experiment they model
| oxide thickness | 0 nm | |
| alloy consumed | 0.525 nm | |
| GeO2 fraction of the oxide | 0.411 % | |
| germanium at the interface | 16.3 % | 75 |
| enriched layer, extent (3 e-folds) | 39.2 nm | 50 |
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. 1 same, 3 approximated, 6 assumed, 1 differs.
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.
LeGoues et al. (Ref. 1): 14% Ge, wet oxygen, 800 °C
| # | Step | Starts at | Lasts | Ends at | Temperature | Rate | Gas | Is the timing in the paper? |
|---|---|---|---|---|---|---|---|---|
| 1 | Alloy grown and cleaned (not described) | 0 s | not simulated | not stated. Nothing stated | ||||
| 2 | Into the hot furnace (not described) | 0 s | 1 min | 1 min | 600 → 800 °C | +3.33 °C/s | mix:H2O=0.55,O2=0.45 | not stated; assumed. Load temperature, push rate and the moment time zero is counted from: none given |
| 3 | Wet oxidation, 800 °C | 1 min | 3 h 00 min | 3 h 01 min | 800 → 800 °C | held | mix:H2O=0.55,O2=0.45 | partly stated. Times appear only on the axis of Figure 4 (0 to 180 min); whether each point is a separate sample is not stated |
| 4 | Unloaded and cooled (not described) | 3 h 01 min | not simulated | not stated. Not described | ||||
| 5 | Oxide thickness (technique not stated) | 3 h 01 min | not simulated | not stated |
Simulated time in this history: 3 h 01 min.
Across the samples
| Sample | Push | Oxidation | Total |
|---|---|---|---|
| LeGoues et al. (Ref. 1): 14% Ge, wet oxygen, 800 °C | 1 min at 600→800 °C | 3 h 00 min at 800 °C | 3 h 01 min |
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C | 1 min at 500→700 °C | 8 h 00 min at 700 °C | 8 h 01 min |
| Liu et al. (Ref. 12): 28% Ge, steam, 700 °C | 1 min at 500→700 °C | 8 h 00 min at 700 °C | 8 h 01 min |
| Zhang et al. (Ref. 13): 50% Ge, wet oxygen, 1000 °C | 1 min at 800→1000 °C | 45 min at 1000 °C | 46 min |
Timing the paper does not give
- Every oxidation time is read from a figure axis; the text gives none.
- Whether each point on a curve is a separate sample or one sample re-oxidized.
- Load temperature, push and the moment time zero is counted from, for all four experiments.
- The time at which LeGoues' germanium-rich layer (50 nm, up to 75%) was measured, and the time of the simulated profiles in Figures 7 and 8.
- Cooling and unloading: nothing is said.
What the second reading changed
- The stored LeGoues recipe is one step, 180 min of
wet_O2at 800 °C.wet_O2carries no partial pressures, so the inventory program runs it as pure steam (p_H2O = 1). Written as the 55% steam that the paper's own C* implies, the inventory's enriched layer falls from 91 to 69 nm and the alloy consumed from 65 to 49 nm; the Rabie program's thickness does not change because it does not read the gas. - The germanium-rich layer (50 nm, up to 75%) has no time in the paper. Our dataset row puts it at 180 min, the last point of Figure 4, and scores it as a value (75%) although the paper says “up to”.
- The predictor runs the LeGoues constants (800 °C, wet oxygen, 14%) for any SiGe history and labels the result “direction only”, not “outside the tested scope”, at 700 °C in steam or 1000 °C in wet oxygen. On this page that gives a third of the measured oxide for Liu and a tenth for Zhang.
- Table II gives wet-oxygen diffusivity constants (D0 = 7.94e-7 cm²/s, E = 0.71 eV) but the text says the wet-oxygen values “were the same as those of H2O” (0.78 eV). Our program uses Table II.
- The program's interface condition is the silicon balance (F3 + F5) − (F3 + F4) yi, not the paper's Eq. 13 (F3 + F5 − F4); this is stated in the program.
Their terms and ours
| The paper says | We write | Kind in our vocabulary | Note |
|---|---|---|---|
| Lox: oxide thickness | Thickness | observable (target: layer_thickness); quantity oxide-thickness | |
| y: silicon fraction in the alloy; yi at the interface | FIELD y; Si_at_front | a field on a grid travelling with the front | The paper's figures label curves by y in percent (64, 72, 86, 50), not by germanium. |
| Ge-rich layer | Ge_at_interface; Enriched_layer_extent | observable (target: composition_profile) | The predictor reports germanium at the interface from the enrichment relation, not from this program; the Rabie program's own value (51.5%) is computed and dropped. |
| θ: GeO2 fraction in the oxide | GeO2_fraction | observable | |
| k1, k2, k3: reaction rate constants | k1, k2, k3 | PARAMETER, STATUS sourced (Table III, LeGoues row) | Per experiment in the paper; one row in ours. |
| DSiGe: effective Si-Ge interdiffusivity | D_SiGe | PARAMETER, STATUS sourced (Table V, LeGoues row) | |
| C*, Dox: oxidant solubility and diffusivity in the oxide | C_Si_star, C_Ge_star, D0_ox, E_ox | PARAMETER, STATUS sourced (Tables II and IV, wet O2) | |
| F5: replacement reaction Si + GeO2 → SiO2 + Ge | F5 | QUANTITY in operator F_AlloyInterdiffusion | |
| wet oxygen: “a mixture of both H2O and O2” | mix:H2O=0.55,O2=0.45 | ambient by partial pressure | The language's wet_O2 has no pressures. 0.55 is the ratio of the paper's two C* values, not a stated pressure. |
| steam | steam | ambient (p_H2O = 1 atm) | Pressure not stated. |
| consumed thickness of the SiGe alloy (Table VI) | Consumed_alloy | observable of the inventory program | Table VI values are the paper's simulation, not measurements; not compared. |
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>.
LeGoues et al. (Ref. 1): 14% Ge, wet oxygen, 800 °C
# LeGoues et al. (Ref. 1): 14% Ge, wet oxygen, 800 °C
SAMPLE Alloy_legoues {
FAMILY: SiGe_oxide
COMPOSITION: Si0.86Ge0.14
CLEAN: not_stated
}
CONTROL_TRAJECTORY History {
EVENT Prepare KIND other TIMING assumed # Alloy grown and cleaned (not described)
RUN Push DURATION 60 TEMP 600->800 AMBIENT mix:H2O=0.55,O2=0.45 TIMING assumed VARY duration 5..1200
RUN Oxidation DURATION 10800 TEMP 800->800 AMBIENT mix:H2O=0.55,O2=0.45 TIMING bound
EVENT Unload KIND other TIMING assumed # Unloaded and cooled (not described)
EVENT Measure KIND measurement TIMING assumed # Oxide thickness (technique not stated)
}Liu et al. (Ref. 12): 36% Ge, steam, 700 °C
# Liu et al. (Ref. 12): 36% Ge, steam, 700 °C
SAMPLE Alloy_liu36 {
FAMILY: SiGe_oxide
COMPOSITION: Si0.64Ge0.36
CLEAN: not_stated
}
CONTROL_TRAJECTORY History {
EVENT Prepare KIND other TIMING assumed # Alloy grown and cleaned (not described)
RUN Push DURATION 60 TEMP 500->700 AMBIENT steam TIMING assumed VARY duration 5..1200
RUN Oxidation DURATION 28800 TEMP 700->700 AMBIENT steam TIMING bound
EVENT Unload KIND other TIMING assumed # Unloaded and cooled (not described)
EVENT Measure KIND measurement TIMING assumed # Oxide thickness (technique not stated)
}Liu et al. (Ref. 12): 28% Ge, steam, 700 °C
# Liu et al. (Ref. 12): 28% Ge, steam, 700 °C
SAMPLE Alloy_liu28 {
FAMILY: SiGe_oxide
COMPOSITION: Si0.72Ge0.28
CLEAN: not_stated
}
CONTROL_TRAJECTORY History {
EVENT Prepare KIND other TIMING assumed # Alloy grown and cleaned (not described)
RUN Push DURATION 60 TEMP 500->700 AMBIENT steam TIMING assumed VARY duration 5..1200
RUN Oxidation DURATION 28800 TEMP 700->700 AMBIENT steam TIMING bound
EVENT Unload KIND other TIMING assumed # Unloaded and cooled (not described)
EVENT Measure KIND measurement TIMING assumed # Oxide thickness (technique not stated)
}Zhang et al. (Ref. 13): 50% Ge, wet oxygen, 1000 °C
# Zhang et al. (Ref. 13): 50% Ge, wet oxygen, 1000 °C
SAMPLE Alloy_zhang {
FAMILY: SiGe_oxide
COMPOSITION: Si0.50Ge0.50
CLEAN: not_stated
}
CONTROL_TRAJECTORY History {
EVENT Prepare KIND other TIMING assumed # Alloy grown and cleaned (not described)
RUN Push DURATION 60 TEMP 800->1000 AMBIENT mix:H2O=0.55,O2=0.45 TIMING assumed VARY duration 5..1200
RUN Oxidation DURATION 2700 TEMP 1000->1000 AMBIENT mix:H2O=0.55,O2=0.45 TIMING bound
EVENT Unload KIND other TIMING assumed # Unloaded and cooled (not described)
EVENT Measure KIND measurement TIMING assumed # Oxide thickness (technique not stated)
}The programs the predictor ran on these histories: experiments/rabie_sige/legoues_800C_14Ge.isl, experiments/sige_interface/interface_enrichment.isl.template, experiments/sige_inventory/conserved_germanium.isl.template.
The model itself, experiments/rabie_sige/legoues_800C_14Ge.isl, as it is written. Every equation the simulation uses is in this text; the runtime holds no physics.
# ==============================================================================
# ISL MODEL: WET OXIDATION OF A SiGe ALLOY WITH GERMANIUM PILE-UP
#
# The kinetic model of Rabie, Haddara and Carette, J. Appl. Phys. 98, 074904 (2005),
# written in ISL for one of the experiments they model: LeGoues et al., 800 C, wet
# oxygen, Si0.86Ge0.14. Every constant is taken from that paper's tables, where the
# reaction rates and the interdiffusivity were chosen by its authors for this experiment.
# Nothing is fitted here. Matching the thickness data is therefore a reproduction of
# a published model in this language, not an independent prediction.
#
# The silicon fraction y of the alloy is a FIELD on a grid that travels with the
# oxidation front. Seen from the front, alloy flows toward it at the front speed.
#
# One deliberate difference from the paper: its interface condition (Eq. 13) sets the
# diffusive silicon supply to F3 + F5 - F4. Balancing silicon atoms at the front gives
# (F3 + F5) - (F3 + F4) y_i, in the same units. This program uses the balanced form, so
# the silicon removed from the alloy is exactly the silicon oxidized.
# ==============================================================================
SAMPLE Alloy_LeGoues_800C {
FAMILY: SiGe_oxide
COMPOSITION: Si0.86Ge0.14
}
# Depth below the oxidation front, on a grid that travels with it.
GRID z { UNIT: cm; FROM: 0; TO: 1.0e-5; CELLS: 100 }
FIELD y { UNIT: 1; GRID: z; INITIAL: y_bulk; MIN: 0; MAX: 1 }
STATE L_ox { UNIT: cm; INITIAL: L_0; MIN: 0; MAX: 1.0e-3 }
# Thickness-equivalent of GeO2 in the oxide: the oxide's GeO2 fraction is G_ox / L_ox.
STATE G_ox { UNIT: cm; INITIAL: 0; MIN: 0; MAX: 1.0e-3 }
# Silicon and germanium atoms taken from the alloy, per unit area, for the balance check.
STATE N_Si_out { UNIT: cm^-2; INITIAL: 0; MIN: 0; MAX: 1.0e20 }
CONTROL T { UNIT: K }
# ---- reaction rates and interdiffusivity chosen by Rabie et al. for this experiment ----
PARAMETER k1 { VALUE: 3.8333e-6; UNIT: cm s^-1; STATUS: sourced; SOURCE: Rabie et al. 2005 Table III, 2300 nm/min, Ge oxidation, agent-read }
PARAMETER k2 { VALUE: -1.6667e-7; UNIT: cm s^-1; STATUS: sourced; SOURCE: Rabie et al. 2005 Table III, -100 nm/min, agent-read }
PARAMETER k3 { VALUE: 2.5e-8; UNIT: cm s^-1; STATUS: sourced; SOURCE: Rabie et al. 2005 Table III, 15 nm/min, replacement reaction, agent-read }
PARAMETER D_SiGe { VALUE: 4.9167e-16; UNIT: cm^2 s^-1; STATUS: sourced; SOURCE: Rabie et al. 2005 Table V, 2.95 nm^2/min, agent-read }
# ---- oxidant in the oxide ---------------------------------------------------------------
PARAMETER C_Si_star { VALUE: 1.647e19; UNIT: cm^-3; STATUS: sourced; SOURCE: Rabie et al. 2005 Table II, wet O2, agent-read }
PARAMETER C_Ge_star { VALUE: 2.471e19; UNIT: cm^-3; STATUS: sourced; SOURCE: Rabie et al. 2005 Table IV, wet O2, agent-read }
PARAMETER D0_ox { VALUE: 7.94e-7; UNIT: cm^2 s^-1; STATUS: sourced; SOURCE: Rabie et al. 2005 Table II, wet O2, agent-read }
PARAMETER E_ox { VALUE: 0.71; UNIT: eV; STATUS: sourced; SOURCE: Rabie et al. 2005 Table II, wet O2, agent-read }
PARAMETER h_gas { VALUE: 2.7778; UNIT: cm s^-1; STATUS: sourced; SOURCE: Rabie et al. 2005, 1e8 um/h stated below Eq. 7b, agent-read }
PARAMETER N1_Si { VALUE: 4.4e22; UNIT: cm^-3; STATUS: sourced; SOURCE: Rabie et al. 2005 Table I, wet oxidation, agent-read }
PARAMETER N1_Ge { VALUE: 4.87e22; UNIT: cm^-3; STATUS: sourced; SOURCE: Rabie et al. 2005 Table I, wet oxidation, agent-read }
PARAMETER N_SiO2 { VALUE: 2.2e22; UNIT: cm^-3; STATUS: sourced; SOURCE: Rabie et al. 2005 Section IV, agent-read }
PARAMETER N_GeO2 { VALUE: 2.436e22; UNIT: cm^-3; STATUS: sourced; SOURCE: Rabie et al. 2005 Section IV, agent-read }
# ---- assumptions ------------------------------------------------------------------------
# The alloy is given silicon's atomic density; the paper uses C_Si without stating its value.
PARAMETER C_at { VALUE: 5.0e22; UNIT: cm^-3; STATUS: hypothesis }
# "A layer of oxide of very small thickness" (paper); 1 nm assumed.
PARAMETER L_0 { VALUE: 1.0e-7; UNIT: cm; STATUS: hypothesis }
PARAMETER y_bulk { VALUE: 0.86; UNIT: 1; STATUS: sourced; SOURCE: Rabie et al. 2005, 14% Ge alloy of LeGoues et al., agent-read }
PARAMETER k_B { VALUE: 8.617333262e-5; UNIT: eV K^-1; STATUS: constant }
# ---- the paper's algebra, each expression written once ------------------------------------
QUANTITY theta { UNIT: 1; EQUATION: theta = G_ox / L_ox }
QUANTITY y_i { UNIT: 1; EQUATION: y_i = left(y) }
QUANTITY k_eff { UNIT: cm s^-1; EQUATION: k_eff = k1 + k2 * y_i }
QUANTITY C_star { UNIT: cm^-3; EQUATION: C_star = theta * C_Ge_star + (1 - theta) * C_Si_star }
QUANTITY D_ox { UNIT: cm^2 s^-1; EQUATION: D_ox = D0_ox * exp(-E_ox / (k_B * T)) }
QUANTITY N1 { UNIT: cm^-3; EQUATION: N1 = 1 / (theta / N1_Ge + (1 - theta) / N1_Si) }
QUANTITY N_ox { UNIT: cm^-3; EQUATION: N_ox = 1 / (theta / N_GeO2 + (1 - theta) / N_SiO2) }
QUANTITY C_i { UNIT: cm^-3; EQUATION: C_i = C_star / (1 + k_eff / h_gas + k_eff * L_ox / D_ox) }
QUANTITY F3 { UNIT: cm^-2 s^-1; EQUATION: F3 = (k1 + k2) * y_i * C_i }
QUANTITY F4 { UNIT: cm^-2 s^-1; EQUATION: F4 = k1 * (1 - y_i) * C_i }
QUANTITY F5 { UNIT: cm^-2 s^-1; EQUATION: F5 = k3 * theta * N_ox * y_i }
# F3, F4 and F5 count oxidant molecules. Each oxide unit takes N1 / N_SiO2 of them (two for water),
# so atoms leave the alloy at N_SiO2 / N1 times those fluxes. Front speed is the paper's Eq. 18.
QUANTITY atoms_per_oxidant { UNIT: 1; EQUATION: atoms_per_oxidant = N_SiO2 / N1 }
QUANTITY v_front { UNIT: cm s^-1; EQUATION: v_front = atoms_per_oxidant * (F3 + F4) / C_at }
QUANTITY Si_removal { UNIT: cm^-2 s^-1; EQUATION: Si_removal = atoms_per_oxidant * (F3 + F5) }
CONTROL_TRAJECTORY Oxidation_800C {
RUN WetOxidation DURATION 10800.0 TEMP 800.0->800.0 AMBIENT wet_O2
}
# Paper Eq. 10 and Eq. 19.
OPERATOR F_OxideGrowth : OxideGrowth {
EQUATION: d(L_ox)/dt = (F3 + F4) / N1
EQUATION: d(G_ox)/dt = (F4 - F5) / N1
}
# Paper Eq. 12 on the travelling grid, with the balanced interface condition. Silicon leaves
# the alloy through the front at the rate it is oxidized; far from the front the alloy is undisturbed.
OPERATOR F_AlloyInterdiffusion : Transport {
FLUX: J(y) = -D_SiGe * grad(y) + upwind(y, -v_front)
BOUNDARY: y AT left FLUX = -Si_removal / C_at
BOUNDARY: y AT right VALUE = y_bulk
EQUATION: d(N_Si_out)/dt = Si_removal
}
OBSERVATION_MODEL Obs_Oxide_Thickness { TARGET: Thickness; UNIT: cm; EQUATION: Thickness = L_ox }
OBSERVATION_MODEL Obs_Interface_Si { TARGET: Si_at_front; UNIT: 1; EQUATION: Si_at_front = left(y) }
OBSERVATION_MODEL Obs_Si_In_Grid { TARGET: Si_in_grid; UNIT: cm; EQUATION: Si_in_grid = integral(y) }
OBSERVATION_MODEL Obs_Si_Oxidized { TARGET: Si_oxidized; UNIT: cm^-2; EQUATION: Si_oxidized = N_Si_out }
OBSERVATION_MODEL Obs_GeO2_Fraction { TARGET: GeO2_fraction; UNIT: 1; EQUATION: GeO2_fraction = G_ox / L_ox }
EVALUATION_CONTRACT Contract_LeGoues_800C {
FROZEN: true
DATASET: data/derived/rabie_2005_legoues_thickness.csv
DATASET_DIGEST: sha256:DATASET_SHA256
SPLIT: reproduce
TARGET: Thickness @ 600 = 2.0e-6 +/- 6.0e-7 abs
TARGET: Thickness @ 2700 = 5.2e-6 +/- 6.0e-7 abs
TARGET: Thickness @ 7200 = 9.6e-6 +/- 9.6e-7 abs
TARGET: Thickness @ 10800 = 1.36e-5 +/- 1.36e-6 abs
}Our simulation against the paper
3 within, 23 off of 26 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 |
|---|---|---|---|---|---|---|---|
| LeGoues et al. (Ref. 1): 14% Ge, wet oxygen, 800 °C | germanium at the interface | 75 % | 44 % | -41% | off (±10%) | outside the tested scope | text, PDF p. 7: “up to 75% Ge” (an upper value; time not stated, taken at the last point, 180 min) |
| LeGoues et al. (Ref. 1): 14% Ge, wet oxygen, 800 °C | enriched layer, extent (3 e-folds) | 50 nm | 66 nm | +32% | off (±10%) | outside the tested scope | text, PDF p. 7: “A 50-nm-thick Ge-rich layer” |
| LeGoues et al. (Ref. 1): 14% Ge, wet oxygen, 800 °C, 10 min | oxide thickness | 20 nm | 10.2 nm | -49% | off (±10%) | direction only | data/derived/rabie_2005_legoues_thickness.csv: Figure 4, read by eye (±3 nm); the dataset's own tolerance is ±6 nm on the first two points, 10% on the others |
| LeGoues et al. (Ref. 1): 14% Ge, wet oxygen, 800 °C, 45 min | oxide thickness | 52 nm | 39.2 nm | -25% | off (±10%) | direction only | data/derived/rabie_2005_legoues_thickness.csv: Figure 4, read by eye (±3 nm); the dataset's own tolerance is ±6 nm on the first two points, 10% on the others |
| LeGoues et al. (Ref. 1): 14% Ge, wet oxygen, 800 °C, 120 min | oxide thickness | 96 nm | 99.5 nm | +4% | within (±10%) | direction only | data/derived/rabie_2005_legoues_thickness.csv: Figure 4, read by eye (±3 nm); the dataset's own tolerance is ±6 nm on the first two points, 10% on the others |
| LeGoues et al. (Ref. 1): 14% Ge, wet oxygen, 800 °C, 180 min | oxide thickness | 136 nm | 146 nm | +7% | within (±10%) | direction only | data/derived/rabie_2005_legoues_thickness.csv: Figure 4, read by eye (±3 nm); the dataset's own tolerance is ±6 nm on the first two points, 10% on the others |
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C | GeO2 fraction of the oxide | 35 % | 31.5 % | -10% | within (±10%) | outside the tested scope | text, PDF p. 7: “35% for the Si0.64Ge0.36 sample” (RBS) |
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C, 30 min | oxide thickness | 220 nm | 27.7 nm | -87% | off (±10%) | outside the tested scope | Figure 3 (diamonds, y = 64), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C, 60 min | oxide thickness | 350 nm | 52.9 nm | -85% | off (±10%) | outside the tested scope | Figure 3 (diamonds, y = 64), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C, 120 min | oxide thickness | 450 nm | 101 nm | -78% | off (±10%) | outside the tested scope | Figure 3 (diamonds, y = 64), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C, 180 min | oxide thickness | 590 nm | 145 nm | -75% | off (±10%) | outside the tested scope | Figure 3 (diamonds, y = 64), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C, 240 min | oxide thickness | 660 nm | 187 nm | -72% | off (±10%) | outside the tested scope | Figure 3 (diamonds, y = 64), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C, 360 min | oxide thickness | 830 nm | 262 nm | -68% | off (±10%) | outside the tested scope | Figure 3 (diamonds, y = 64), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C, 480 min | oxide thickness | 950 nm | 331 nm | -65% | off (±10%) | outside the tested scope | Figure 3 (diamonds, y = 64), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Liu et al. (Ref. 12): 28% Ge, steam, 700 °C, 30 min | oxide thickness | 170 nm | 27.1 nm | -84% | off (±10%) | outside the tested scope | Figure 3 (triangles, y = 72), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Liu et al. (Ref. 12): 28% Ge, steam, 700 °C, 60 min | oxide thickness | 220 nm | 51.7 nm | -77% | off (±10%) | outside the tested scope | Figure 3 (triangles, y = 72), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Liu et al. (Ref. 12): 28% Ge, steam, 700 °C, 120 min | oxide thickness | 340 nm | 98.2 nm | -71% | off (±10%) | outside the tested scope | Figure 3 (triangles, y = 72), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Liu et al. (Ref. 12): 28% Ge, steam, 700 °C, 180 min | oxide thickness | 450 nm | 142 nm | -69% | off (±10%) | outside the tested scope | Figure 3 (triangles, y = 72), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Liu et al. (Ref. 12): 28% Ge, steam, 700 °C, 240 min | oxide thickness | 500 nm | 182 nm | -64% | off (±10%) | outside the tested scope | Figure 3 (triangles, y = 72), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Liu et al. (Ref. 12): 28% Ge, steam, 700 °C, 360 min | oxide thickness | 580 nm | 256 nm | -56% | off (±10%) | outside the tested scope | Figure 3 (triangles, y = 72), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Liu et al. (Ref. 12): 28% Ge, steam, 700 °C, 480 min | oxide thickness | 760 nm | 324 nm | -57% | off (±10%) | outside the tested scope | Figure 3 (triangles, y = 72), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Zhang et al. (Ref. 13): 50% Ge, wet oxygen, 1000 °C, 5 min | oxide thickness | 180 nm | 6.35 nm | -96% | off (±10%) | outside the tested scope | Figure 5 (diamonds, y = 50), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Zhang et al. (Ref. 13): 50% Ge, wet oxygen, 1000 °C, 10 min | oxide thickness | 230 nm | 10.9 nm | -95% | off (±10%) | outside the tested scope | Figure 5 (diamonds, y = 50), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Zhang et al. (Ref. 13): 50% Ge, wet oxygen, 1000 °C, 20 min | oxide thickness | 280 nm | 20.2 nm | -93% | off (±10%) | outside the tested scope | Figure 5 (diamonds, y = 50), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Zhang et al. (Ref. 13): 50% Ge, wet oxygen, 1000 °C, 36 min | oxide thickness | 375 nm | 35.5 nm | -91% | off (±10%) | outside the tested scope | Figure 5 (diamonds, y = 50), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
| Zhang et al. (Ref. 13): 50% Ge, wet oxygen, 1000 °C, 45 min | oxide thickness | 400 nm | 44.1 nm | -89% | off (±10%) | outside the tested scope | Figure 5 (diamonds, y = 50), read by eye by the second reader (±10 to 20 nm); not in any dataset of ours |
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 legoues 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 |
|---|---|---|---|---|---|---|
| Into the hot furnace (not described): duration | Load temperature, push rate and the moment time zero is counted from: none given | 5 to 1200 s | 60 s | 193.1 s | 2 of 6 within tolerance, median error 28.3% | 2 of 6 within tolerance, median error 26.8% |
Together: Push duration 193.1 s (was 60).
As reproduced: 3 of 26 within tolerance, median error 69.8%. Aligned: 3 of 26 within tolerance, median error 69.4%. On the held-out samples only: 1 of 20 within tolerance, median error 76.0% as reproduced, 1 of 20 within tolerance, median error 75.4% 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 |
|---|---|---|
| wet oxygen as 30% steam | 4 of 26 within tolerance, median error 69.8% | 4 of 26 within tolerance, median error 69.4% |
| wet oxygen as 90% steam | 3 of 26 within tolerance, median error 71.4% | 3 of 26 within tolerance, median error 71.1% |
| wet oxygen as pure steam (as the stored recipe is run) | 3 of 26 within tolerance, median error 71.4% | 3 of 26 within tolerance, median error 71.1% |
One timing unknown was searched, the push into the furnace before the figure's clock starts (5 s to 20 min, in the oxidation gas, from 200 °C below the oxidation temperature), chosen on the LeGoues case alone; the Liu and Zhang curves are the test. The steam fraction of “wet oxygen” is a choice of material input, tried as variants (30%, 90%, pure steam) against the 55% the paper's own C* implies.
The push does not fix the LeGoues curve's shape. Our program, with the paper's constants, gives 9.4, 38.4, 98.8 and 145 nm at 10, 45, 120 and 180 min with no push, against 20, 52, 96 and 136 nm read from Figure 4. The measured curve starts about 10 nm higher and rises more slowly; the program's is nearly a straight line through the origin, as the paper's own line in Figure 4 is. A longer push lifts every point by the same few nanometres: at 193 s (the search's choice, 2 of 6 LeGoues numbers within tolerance, median error 27% against 28% at 60 s) the 10 min point is 12.0 nm and the 180 min point 147.5 nm; at 8 min the 10 min point reaches 16 nm and the 180 min point leaves its tolerance (151 nm). No push puts both ends within 10%. What the early points want is a starting oxide of about 10 nm or a fast initial regime, and the starting oxide is a hypothesis inside the program (1 nm), not something the history can state.
The steam fraction moves only the inventory program. The Rabie program does not read the gas, so its thickness, GeO2 fraction and the germanium at the interface are the same at every fraction. The inventory's germanium-rich layer extent is 47 nm at 30% steam, 66 nm at 55%, 86.5 nm at 90% and 91.6 nm as pure steam, against the 50 nm printed; 30% steam brings it within tolerance (4 of 26 numbers instead of 3). That is not evidence for 30% steam: the inventory's wet growth constants were fitted on this same experiment with wet oxygen run as pure steam, so a lower fraction simply grows less oxide in that program, and the layer extent follows the oxide.
The other three experiments are out of reach of any unknown in the history. With the LeGoues constants, the Liu and Zhang curves are 56 to 96% low at every point (1 of 20 test numbers within tolerance, median error 76% before and 75% after alignment); the one within tolerance is the GeO2 fraction of Liu's 36% alloy (31.5% against 35% by RBS). The paper reaches those curves by refitting k1, k2, k3 and DSiGe for each experiment (Table III: k1 + k2 runs from 1950 nm/min at 700 °C to 8 × 10^5 nm/min at 1000 °C), not by anything in the history.
1 within, 19 off of 20 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 |
|---|---|---|---|---|---|---|---|
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C | GeO2 fraction of the oxide | 35 % | 31.5 | 31.5 | -10% | within (±10%) | test |
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C, 30 min | oxide thickness | 220 nm | 27.7 | 29.6 | -87% | off (±10%) | test |
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C, 60 min | oxide thickness | 350 nm | 52.9 | 54.7 | -84% | off (±10%) | test |
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C, 120 min | oxide thickness | 450 nm | 101 | 102 | -77% | off (±10%) | test |
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C, 180 min | oxide thickness | 590 nm | 145 | 147 | -75% | off (±10%) | test |
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C, 240 min | oxide thickness | 660 nm | 187 | 188 | -72% | off (±10%) | test |
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C, 360 min | oxide thickness | 830 nm | 262 | 264 | -68% | off (±10%) | test |
| Liu et al. (Ref. 12): 36% Ge, steam, 700 °C, 480 min | oxide thickness | 950 nm | 331 | 332 | -65% | off (±10%) | test |
| Liu et al. (Ref. 12): 28% Ge, steam, 700 °C, 30 min | oxide thickness | 170 nm | 27.1 | 29 | -83% | off (±10%) | test |
| Liu et al. (Ref. 12): 28% Ge, steam, 700 °C, 60 min | oxide thickness | 220 nm | 51.7 | 53.5 | -76% | off (±10%) | test |
| Liu et al. (Ref. 12): 28% Ge, steam, 700 °C, 120 min | oxide thickness | 340 nm | 98.2 | 99.8 | -71% | off (±10%) | test |
| Liu et al. (Ref. 12): 28% Ge, steam, 700 °C, 180 min | oxide thickness | 450 nm | 142 | 143 | -68% | off (±10%) | test |
| Liu et al. (Ref. 12): 28% Ge, steam, 700 °C, 240 min | oxide thickness | 500 nm | 182 | 183 | -63% | off (±10%) | test |
| Liu et al. (Ref. 12): 28% Ge, steam, 700 °C, 360 min | oxide thickness | 580 nm | 256 | 258 | -56% | off (±10%) | test |
| Liu et al. (Ref. 12): 28% Ge, steam, 700 °C, 480 min | oxide thickness | 760 nm | 324 | 325 | -57% | off (±10%) | test |
| Zhang et al. (Ref. 13): 50% Ge, wet oxygen, 1000 °C, 5 min | oxide thickness | 180 nm | 6.35 | 8.37 | -95% | off (±10%) | test |
| Zhang et al. (Ref. 13): 50% Ge, wet oxygen, 1000 °C, 10 min | oxide thickness | 230 nm | 10.9 | 13 | -94% | off (±10%) | test |
| Zhang et al. (Ref. 13): 50% Ge, wet oxygen, 1000 °C, 20 min | oxide thickness | 280 nm | 20.2 | 22.4 | -92% | off (±10%) | test |
| Zhang et al. (Ref. 13): 50% Ge, wet oxygen, 1000 °C, 36 min | oxide thickness | 375 nm | 35.5 | 37.6 | -90% | off (±10%) | test |
| Zhang et al. (Ref. 13): 50% Ge, wet oxygen, 1000 °C, 45 min | oxide thickness | 400 nm | 44.1 | 46.2 | -88% | off (±10%) | test |
What alignment cannot fix. The LeGoues germanium at the interface (75% measured, 44% from the enrichment relation the predictor reports, 51.5% from the Rabie program, 45% from the paper's own model) does not depend on any unknown we can write. The Liu and Zhang thicknesses need the paper's per-experiment constants, which our program does not carry; the predictor applies the 800 °C wet-oxygen constants to 700 °C steam and 1000 °C wet oxygen and labels the result “direction only” instead of refusing it or marking it outside its scope.
How to read the aligned numbers: the push was chosen on the LeGoues case, whose constants are the paper's fit to the same curve, so the LeGoues rows are not a test and are not shown in the aligned table. The Liu and Zhang rows are a test of transfer, which the program fails.
What our language and ontology cannot yet say
- Wet oxygen by its steam pressure, or by its source.
wet_O2carries no partial pressures. A history should be able to saymix:H2O=x,O2=1-x, as here, or name the source (BUBBLER 95 C,PYROGENIC H2:O2 1.8) from which the pressure follows. Here the fraction moves the layer extent from 47 to 92 nm. - Constants that belong to a condition, and a refusal outside it. The program's k1, k2, k3 and DSiGe are the paper's for 800 °C, wet oxygen, 14%. A parameter should carry the conditions it was chosen for (
VALID T 800; AMBIENT wet; GE 0.14), so the predictor labels or refuses a 700 °C steam history instead of answering it. - Programs that read the gas. The Rabie program ignores the ambient entirely: a push or a cooling in nitrogen would grow oxide in it, and dry oxidations (David 2015) are run with wet-oxygen constants.
- A starting oxide on the sample. The model's initial oxide (“very small thickness Lox”) is a 1 nm hypothesis inside the program. The early LeGoues points ask for about 10 nm; a
STARTING_OXIDEfield would make that an unknown the alignment can search. - Report every observable a program computes. The Rabie program computes the germanium at the front (51.5% here) and the predictor drops it, reporting the enrichment relation's 44% under the same name. Two programs answering one target should both be reported, each with its name.
- A measurement with no time. “A 50-nm-thick Ge-rich layer was obtained with up to 75% Ge” has no oxidation time. A result should be able to say
AT unknown(or a range of times) and be compared over that range, not at the time we chose. - An upper value as data. “Up to 75%” is scored as 75 ± 10%. A result should carry
≤,≥orabout, so that a program giving 60% is not counted as wrong by the same rule as one giving 44%. - A finite alloy layer. The source experiments are epilayers of unstated thickness; Table VI consumes up to 425 nm of alloy. The sample cannot say how thick the alloy is or what lies under it.
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) | 3 of 26 | 71.1% | |
| heat-up A (hot push), fast cooling | 2 of 26 | 70.6% | 12 of 26 moved by more than 2% |
| heat-up A (hot push), slow cooling | 2 of 26 | 70.6% | 13 of 26 moved by more than 2% |
| heat-up B (cold-furnace ramp), fast cooling | 0 of 26 | 68.6% | 23 of 26 moved by more than 2% |
| heat-up B (cold-furnace ramp), slow cooling | 0 of 26 | 68.6% | 24 of 26 moved by more than 2% |
The paper's own conclusions
| The paper states | What we find | |
|---|---|---|
| The model is “in excellent agreement” with the oxide thickness in all four experiments | With the LeGoues constants, our program agrees on LeGoues (the paper's own fit). Carried to Liu and Zhang it is far low: the paper refits k1, k2, k3 and DSiGe for each | reproduced on the fitted case only |
| LeGoues: Ge-rich layer up to 75% Ge, 50 nm; the model gives 45% and about 35 nm | The Rabie program gives 51.5% (computed, not reported by the predictor); the enrichment relation the predictor reports gives 44% | direction right, amount low |
| LeGoues: pure SiO2; the model gives under 5% GeO2 | 8.6% GeO2 in our program | differs from the paper's model |
| Liu 36%: 35% GeO2 in the oxide, uniform; no Ge-rich layer | see the table: the GeO2 fraction is close although the thickness is a third of the measured | see the table |
| Zhang: mixed oxide for 10 min, then pure SiO2 | Not compared: the paper gives no fraction | not tested |
What we would like Emily to check
- In LeGoues' wet oxidation, is a steam fraction near 0.55 plausible, and was it a bubbler or pyrogenic steam?
- Is the germanium-rich layer of 50 nm, up to 75%, the state after 180 min, the last point of Figure 4?
- Rabie refits the reaction constants for each experiment. Would you accept a model that needs that as a reference, or should a reference model carry one set of constants across temperatures?
- Liu reports a mixed oxide and no germanium-rich layer at 700 °C in steam, LeGoues a pure oxide and a rich layer at 800 °C in wet oxygen. Is the difference the temperature, the gas, or the alloy?