Agentic PrimitivesAP

Study reproduced ·

Reproducing Long et al. 2012: where the germanium goes under a dry oxide on thin SiGe

Long et al. 2012: 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 (8 within, 2 near, 16 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/long_2012.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

E. Long, A. Azarov, F. Kløw, A. Galeckas, A. Yu. Kuznetsov and S. Diplas, “Ge redistribution in SiO2/SiGe structures under thermal oxidation: Dynamics and predictions”, J. Appl. Phys. 111, 024308 (2012), doi:10.1063/1.3677987.

Long 2012 is the source the conserved-germanium program follows: “under a pure SiO2 oxide every silicon atom in the oxide came out of the alloy and every germanium atom stayed”, with the paper's N_ox = 2.21 × 10²² cm⁻³ and its fit of the alloy density. It is also the only paper we hold with germanium depth profiles of dry-oxidized SiGe at five temperatures and three times, and its central claim (at a given oxide thickness the profile does not depend on temperature from 800 to 1000 °C) is a direct test of a program in which the oxide thickness alone fixes the germanium dose.

How well can this study be reproduced?

Moderate. Two wafers (80 nm Si0.85Ge0.15 and 70 nm Si0.80Ge0.20 on a 100 nm Si buffer), one gas (dry O2, 1 atm), temperature and time at temperature for every profile, and the oxide thickness printed in every legend. A simulation must supply the furnace push and pull, the starting surface (a native oxide that holds some GeO2) and the RBS depth resolution. The germanium profiles exist only as graphs; Figure 5 is raw counts.

Sample described0 of 5 properties we need are stated and encoded the same
History described2 of 8 steps are stated and encoded the same; 1 are stated by the paper and absent from our history; 3 are ours because the paper is silent
Timing1 of 3 simulated steps have a stated duration; 4 of 4 other steps have none; 4 timing gaps listed below
How the results are givenOxide thicknesses printed in the figure legends (ellipsometry); germanium against depth only as Figures 6 and 7 (RBS, read from the graph here); Figure 5 as raw counts; Figure 8 doses as a scatter plot
Repeatability stated by the authorsEllipsometry against RBS: a sample standard deviation of 3.8 nm (PDF p. 3). No repeat oxidations reported
Internal consistencyFair. The 850 °C sample is 75 min and 356 Å in Figures 2-3 but 60 min and 315 Å in Figure 7; the x = 0.15 and x = 0.20 series have near-identical times and thicknesses; the un-oxidized 80 nm layer is about 58 nm wide on the RBS depth scale
Is our model independent of this paper's data?Yes. No program of ours was fitted to these data. The inventory program takes N_ox and the alloy density from this paper (constants, not fitted to its profiles)
Outcome8 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.

Si(100) under 100 nm Si bufferSi0.85Ge0.15, 80 nm 80 nmGe-rich layer 3.03 nmsurface before (−0.526 nm)
Step 1 of 7 · recorded, not simulated
Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
temperature 25 °C
elapsed 0 s of 35 min
timing in the paper: not stated. Growth method, temperature and time not stated

“Epitaxial layers of Si1XGeX on a 100-nm Si buffer layer were grown on (100)-oriented Si substrates.”; supplied by the NSE-IM2NP team and NanoTecMat platform (acknowledgments, PDF p. 10)

The simulation at this moment
oxide thickness0 nm20.4
germanium at the interface24.8 %
enriched layer, e-folding depth3.03 nm
germanium fraction at 10 nm below the interface0.151 0.18
germanium fraction at 30 nm below the interface0.15 0.155
alloy consumed0.526 nm
right column: the paper, at the end of the history
GrowthStorageLoadRampUp5 minOxidation25 minRampDown5 minMeasure9000 °CThe same history to true scale (35 min 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. 2 same, 5 approximated, 5 assumed, 1 not in ours.

✓2 same≈5 approximated?5 assumed✕1 not in ours
Sample: what the paper saysWhat we simulate
Layer
“The Si1XGeX layer thicknesses for the two wafers used were 80 nm and 70 nm for X = 0.15 and X = 0.20, respectively.”
PDF p. 3
≈approximated
COMPOSITION: Si0.85Ge0.15 or Si0.80Ge0.20; FILM recorded, read by no program
Every SiGe program treats the alloy as infinite. At 150 min the 80 nm layer has lost about 26 nm of silicon-equivalent thickness to the oxide; Long's Figure 6 shows the layer nearly consumed into one Ge-rich layer.
Buffer and substrate
“Epitaxial layers of Si1XGeX on a 100-nm Si buffer layer were grown on (100)-oriented Si substrates.”
PDF p. 3
≈approximated
ORIENTATION: Si100; buffer in FILM only
Starting surface
“The native oxides were not removed prior to oxidation.” 51 Å and 55 Å (legends); XPS finds oxidized germanium in it (Figures 1-2)
PDF p. 3
≈approximated
STARTING_OXIDE_NM: 5.1 / 5.5; CLEAN: not_stated (no clean; the vocabulary has no word for “native oxide kept”)
Recorded, but neither SiGe program reads STARTING_OXIDE_NM: both start from a 1 nm hypothesis.
Doping
not stated
PDF p. 3
?assumed
not in our sample
Strain
not stated (epitaxial on Si; pseudomorphic presumably)
PDF p. 3
?assumed
not in our sample
History: what the paper saysWhat we simulate
Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
“Epitaxial layers of Si1XGeX on a 100-nm Si buffer layer were grown on (100)-oriented Si substrates.”; supplied by the NSE-IM2NP team and NanoTecMat platform (acknowledgments, PDF p. 10)
PDF p. 3
✕not in ours
COMPOSITION on the sample; the layer stack is recorded (FILM) and read by no program
Native oxide kept
“The native oxides were not removed prior to oxidation.” Native oxide 51 Å (x = 0.15) and 55 Å (x = 0.20) by ellipsometry (Figure 6 and 5 legends)
PDF p. 3
≈approximated
STARTING_OXIDE_NM on the sample; no SiGe program reads it (Rabie starts from 1 nm, the inventory from 1 nm)
Into the tube furnace
“The thermal oxidation was done using a tube furnace at ambient pressure flushed with dry O2”
PDF p. 3
?assumed
not in our history
Push and heat-up (not described)
not stated
PDF p. 3
?assumed
RUN RampUp DURATION 300 TEMP 600->900 AMBIENT dry_O2
Five minutes from 600 °C in dry oxygen is ours; the paper states only the temperature and time at temperature.
Dry oxidation, 900 °C, 25 min
Figure legends: “900C-25min”; “tube furnace at ambient pressure flushed with dry O2 at 800 C, 850 C, 900 C, 950 C, and 1000 C”
PDF p. 6
✓same
RUN Oxidation DURATION 1500 TEMP 900->900 AMBIENT dry_O2
Dry oxygen at 1 atm (“ambient pressure”); flow not stated.
Pull and cool-down (not described)
not stated
PDF p. 3
?assumed
RUN RampDown DURATION 300 TEMP 900->600 AMBIENT dry_O2
Five minutes down to 600 °C in dry oxygen is ours.
Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
“Oxide and pile-up layer thicknesses were determined by fitting simulated curves to the experimentally determined RBS spectra.”; ellipsometry at 632.8 and 830 nm, three-layer model, sample standard deviation 3.8 nm against RBS
PDF p. 3
✓same
the observables Thickness, Ge_at_10nm, Ge_at_30nm
The RBS depth resolution is not stated.
Germanium in the oxide
“The XPS profiles show limited oxidized Ge in the native oxide, while no oxidized Ge is present in the thermal oxide”
PDF p. 10
≈approximated
the inventory program puts none in the oxide; the Rabie program reports a GeO2 fraction of the oxide
The Rabie program's GeO2 fraction (4.6 to 13.6% at the end of these histories) contradicts the XPS.

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.

Si0.85Ge0.15, 900 °C, 25 min

#StepStarts atLastsEnds atTemperatureRateGasIs the timing in the paper?
1Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si0 snot simulatednot stated. Growth method, temperature and time not stated
2Native oxide kept0 snot simulatednot stated. Time in air since growth not stated
3Into the tube furnace0 snot simulatednot stated. Load temperature, push rate and gas during the push not stated
4Push and heat-up (not described)0 s5 min5 min600 → 900 °C+1 °C/sdry_O2not stated; assumed. not stated; 1 to 20 min searched
5Dry oxidation, 900 °C, 25 min5 min25 min30 min900 → 900 °Chelddry_O2stated. time at temperature stated in the legends; whether it includes the push is not stated
6Pull and cool-down (not described)30 min5 min35 min900 → 600 °C-1 °C/sdry_O2not stated; assumed. not stated; 1 to 20 min searched
7Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)35 minnot simulatednot stated

Simulated time in this history: 35 min.

Across the samples

SampleRampUpOxidationRampDownTotal
Si0.85Ge0.15, 900 °C, 25 min5 min at 600→900 °C25 min at 900 °C5 min at 900→600 °C35 min
Si0.85Ge0.15, 900 °C, 67 min5 min at 600→900 °C1 h 07 min at 900 °C5 min at 900→600 °C1 h 17 min
Si0.85Ge0.15, 900 °C, 150 min5 min at 600→900 °C2 h 30 min at 900 °C5 min at 900→600 °C2 h 40 min
Si0.85Ge0.15, 800 °C, 240 min (similar oxide)5 min at 600→800 °C4 h 00 min at 800 °C5 min at 800→600 °C4 h 10 min
Si0.85Ge0.15, 850 °C, 60 min (similar oxide)5 min at 600→850 °C1 h 00 min at 850 °C5 min at 850→600 °C1 h 10 min
Si0.85Ge0.15, 950 °C, 25 min (similar oxide)5 min at 600→950 °C25 min at 950 °C5 min at 950→600 °C35 min
Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)5 min at 600→1000 °C20 min at 1000 °C5 min at 1000→600 °C30 min
Si0.80Ge0.20, 900 °C, 25 min5 min at 600→900 °C25 min at 900 °C5 min at 900→600 °C35 min
Si0.80Ge0.20, 900 °C, 67 min5 min at 600→900 °C1 h 07 min at 900 °C5 min at 900→600 °C1 h 17 min
Si0.80Ge0.20, 900 °C, 150 min5 min at 600→900 °C2 h 30 min at 900 °C5 min at 900→600 °C2 h 40 min
Si0.85Ge0.15, 850 °C, 75 min (XPS profile)5 min at 600→850 °C1 h 15 min at 850 °C5 min at 850→600 °C1 h 25 min

Timing the paper does not give

  • Push and pull of the tube furnace: load temperature, rate, gas.
  • Whether the stated time includes the push.
  • Time in air between growth and oxidation (the native oxide is given instead).
  • Conditions of the other 12 points of this work in Figure 8.

What the second reading changed

  • SOURCE.md and ontology/library.json describe the paper as “photoemission depth profiles at two temperatures (Figures 1 to 3)”. The profiles that carry the paper are RBS (Figures 5-7) at five temperatures; XPS (Figures 1-3) shows chemistry at two.
  • The inventory program's comment says it follows Long p. 6. Long's Eq. 7 counts the whole germanium in a box-shaped pile-up of uniform X_pileup; the program puts the same dose, x N_ox X/(1−X), as the excess above X in an exponential. The two count different germanium (see the reading).
  • The inventory program cites N_ox and the alloy density at “p. 6” and “p. 7”; both are on article page 024308-6, PDF p. 7.
  • No dataset holds this paper; library.json lists it as held, unused. Every number here is graph-read or a printed legend.
  • The native oxides (51 and 55 Å) are part of every measured oxide thickness; both SiGe programs start from 1 nm.

Their terms and ours

The paper saysWe writeKind in our vocabularyNote
pile-up / snow-plow / germanium-rich layer (GRL)Ge_at_interface; Enriched_layer_efold_width; Ge_at_10nmobservables (target: composition_profile)Long: “poorly defined in the literature and can only be described reliably as the tendency to increase the Ge concentration in a region adjacent to the oxidation front” (PDF p. 6).
t_pileup (Eq. 7: a box of uniform X_pileup)Enriched_layer_efold_width (an exponential)observable, different shapeA box of height X_p holding the dose has the thickness of an exponential's e-folding depth only if they count the same germanium; see the reading.
X_pileupGe_at_interfaceobservableThe program's interface value; RBS reports a smoothed peak about 10 nm below the front.
N_ox = 2.21e22 Si atoms/cm³PARAMETER N_ox (sourced)parameterTaken from this paper by the inventory program.
N_SiGe = (5.0214 − 0.5286X − 0.0517X²)e22PARAMETERs N_a, N_b, N_c (sourced)parameterTaken from this paper (after Dismukes 1964).
Q_sub: silicon dose from the substrate(none)not modelledThe inventory program excludes it explicitly.
tube furnace at ambient pressure flushed with dry O2AMBIENT dry_O2; RUN RampUp / Oxidation / RampDownambient and RUNsThe push and pull are ours.
native oxide not removedSTARTING_OXIDE_NM; CLEANsample fieldsNot read by any SiGe program.
RBS depth profile (2 MeV He, 100° detector)Ge_at_10nm, Ge_at_30nmobservableNo observation model of RBS depth resolution is written; profiles are compared raw and after a 4 nm Gaussian.
Massoud model with Si constants (the paper's own simulation)(none)not usedOur dry SiGe growth is Rabie's wet program or Deal and Grove's dry silicon law.

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>.

Si0.85Ge0.15, 900 °C, 25 min

# Si0.85Ge0.15, 900 °C, 25 min
SAMPLE x15_900C_25min {
    FAMILY: SiGe_oxide
    COMPOSITION: Si0.85Ge0.15
    ORIENTATION: Si100
    CLEAN: not_stated
    STARTING_OXIDE_NM: 5.1
    FILM: Si0.85Ge0.15_80nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
    EVENT Growth KIND deposition TIMING assumed                  # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
    EVENT Storage KIND storage TIMING assumed                    # Native oxide kept
    EVENT Load KIND load TIMING assumed                          # Into the tube furnace
    RUN RampUp DURATION 300 TEMP 600->900 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    RUN Oxidation DURATION 1500 TEMP 900->900 AMBIENT dry_O2 TIMING stated
    RUN RampDown DURATION 300 TEMP 900->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    EVENT Measure KIND measurement TIMING assumed                # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}

Si0.85Ge0.15, 900 °C, 67 min

# Si0.85Ge0.15, 900 °C, 67 min
SAMPLE x15_900C_67min {
    FAMILY: SiGe_oxide
    COMPOSITION: Si0.85Ge0.15
    ORIENTATION: Si100
    CLEAN: not_stated
    STARTING_OXIDE_NM: 5.1
    FILM: Si0.85Ge0.15_80nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
    EVENT Growth KIND deposition TIMING assumed                  # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
    EVENT Storage KIND storage TIMING assumed                    # Native oxide kept
    EVENT Load KIND load TIMING assumed                          # Into the tube furnace
    RUN RampUp DURATION 300 TEMP 600->900 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    RUN Oxidation DURATION 4020 TEMP 900->900 AMBIENT dry_O2 TIMING stated
    RUN RampDown DURATION 300 TEMP 900->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    EVENT Measure KIND measurement TIMING assumed                # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}

Si0.85Ge0.15, 900 °C, 150 min

# Si0.85Ge0.15, 900 °C, 150 min
SAMPLE x15_900C_150min {
    FAMILY: SiGe_oxide
    COMPOSITION: Si0.85Ge0.15
    ORIENTATION: Si100
    CLEAN: not_stated
    STARTING_OXIDE_NM: 5.1
    FILM: Si0.85Ge0.15_80nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
    EVENT Growth KIND deposition TIMING assumed                  # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
    EVENT Storage KIND storage TIMING assumed                    # Native oxide kept
    EVENT Load KIND load TIMING assumed                          # Into the tube furnace
    RUN RampUp DURATION 300 TEMP 600->900 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    RUN Oxidation DURATION 9000 TEMP 900->900 AMBIENT dry_O2 TIMING stated
    RUN RampDown DURATION 300 TEMP 900->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    EVENT Measure KIND measurement TIMING assumed                # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}

Si0.85Ge0.15, 800 °C, 240 min (similar oxide)

# Si0.85Ge0.15, 800 °C, 240 min (similar oxide)
SAMPLE x15_800C_240min {
    FAMILY: SiGe_oxide
    COMPOSITION: Si0.85Ge0.15
    ORIENTATION: Si100
    CLEAN: not_stated
    STARTING_OXIDE_NM: 5.1
    FILM: Si0.85Ge0.15_80nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
    EVENT Growth KIND deposition TIMING assumed                  # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
    EVENT Storage KIND storage TIMING assumed                    # Native oxide kept
    EVENT Load KIND load TIMING assumed                          # Into the tube furnace
    RUN RampUp DURATION 300 TEMP 600->800 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    RUN Oxidation DURATION 14400 TEMP 800->800 AMBIENT dry_O2 TIMING stated
    RUN RampDown DURATION 300 TEMP 800->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    EVENT Measure KIND measurement TIMING assumed                # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}

Si0.85Ge0.15, 850 °C, 60 min (similar oxide)

# Si0.85Ge0.15, 850 °C, 60 min (similar oxide)
SAMPLE x15_850C_60min {
    FAMILY: SiGe_oxide
    COMPOSITION: Si0.85Ge0.15
    ORIENTATION: Si100
    CLEAN: not_stated
    STARTING_OXIDE_NM: 5.1
    FILM: Si0.85Ge0.15_80nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
    EVENT Growth KIND deposition TIMING assumed                  # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
    EVENT Storage KIND storage TIMING assumed                    # Native oxide kept
    EVENT Load KIND load TIMING assumed                          # Into the tube furnace
    RUN RampUp DURATION 300 TEMP 600->850 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    RUN Oxidation DURATION 3600 TEMP 850->850 AMBIENT dry_O2 TIMING stated
    RUN RampDown DURATION 300 TEMP 850->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    EVENT Measure KIND measurement TIMING assumed                # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}

Si0.85Ge0.15, 950 °C, 25 min (similar oxide)

# Si0.85Ge0.15, 950 °C, 25 min (similar oxide)
SAMPLE x15_950C_25min {
    FAMILY: SiGe_oxide
    COMPOSITION: Si0.85Ge0.15
    ORIENTATION: Si100
    CLEAN: not_stated
    STARTING_OXIDE_NM: 5.1
    FILM: Si0.85Ge0.15_80nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
    EVENT Growth KIND deposition TIMING assumed                  # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
    EVENT Storage KIND storage TIMING assumed                    # Native oxide kept
    EVENT Load KIND load TIMING assumed                          # Into the tube furnace
    RUN RampUp DURATION 300 TEMP 600->950 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    RUN Oxidation DURATION 1500 TEMP 950->950 AMBIENT dry_O2 TIMING stated
    RUN RampDown DURATION 300 TEMP 950->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    EVENT Measure KIND measurement TIMING assumed                # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}

Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)

# Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)
SAMPLE x15_1000C_20min {
    FAMILY: SiGe_oxide
    COMPOSITION: Si0.85Ge0.15
    ORIENTATION: Si100
    CLEAN: not_stated
    STARTING_OXIDE_NM: 5.1
    FILM: Si0.85Ge0.15_80nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
    EVENT Growth KIND deposition TIMING assumed                  # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
    EVENT Storage KIND storage TIMING assumed                    # Native oxide kept
    EVENT Load KIND load TIMING assumed                          # Into the tube furnace
    RUN RampUp DURATION 300 TEMP 600->1000 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    RUN Oxidation DURATION 1200 TEMP 1000->1000 AMBIENT dry_O2 TIMING stated
    RUN RampDown DURATION 300 TEMP 1000->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    EVENT Measure KIND measurement TIMING assumed                # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}

Si0.80Ge0.20, 900 °C, 25 min

# Si0.80Ge0.20, 900 °C, 25 min
SAMPLE x20_900C_25min {
    FAMILY: SiGe_oxide
    COMPOSITION: Si0.80Ge0.20
    ORIENTATION: Si100
    CLEAN: not_stated
    STARTING_OXIDE_NM: 5.5
    FILM: Si0.80Ge0.20_70nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
    EVENT Growth KIND deposition TIMING assumed                  # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
    EVENT Storage KIND storage TIMING assumed                    # Native oxide kept
    EVENT Load KIND load TIMING assumed                          # Into the tube furnace
    RUN RampUp DURATION 300 TEMP 600->900 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    RUN Oxidation DURATION 1500 TEMP 900->900 AMBIENT dry_O2 TIMING stated
    RUN RampDown DURATION 300 TEMP 900->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    EVENT Measure KIND measurement TIMING assumed                # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}

Figure 5 gives raw RBS counts against channel, not germanium fraction; only the oxide is scored. The peak count over the un-oxidized plateau is about 1.14, 1.65 and 2.27 at 25, 67 and 150 min (graph read).

Si0.80Ge0.20, 900 °C, 67 min

# Si0.80Ge0.20, 900 °C, 67 min
SAMPLE x20_900C_67min {
    FAMILY: SiGe_oxide
    COMPOSITION: Si0.80Ge0.20
    ORIENTATION: Si100
    CLEAN: not_stated
    STARTING_OXIDE_NM: 5.5
    FILM: Si0.80Ge0.20_70nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
    EVENT Growth KIND deposition TIMING assumed                  # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
    EVENT Storage KIND storage TIMING assumed                    # Native oxide kept
    EVENT Load KIND load TIMING assumed                          # Into the tube furnace
    RUN RampUp DURATION 300 TEMP 600->900 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    RUN Oxidation DURATION 4020 TEMP 900->900 AMBIENT dry_O2 TIMING stated
    RUN RampDown DURATION 300 TEMP 900->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    EVENT Measure KIND measurement TIMING assumed                # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}

Figure 5 gives raw RBS counts against channel, not germanium fraction; only the oxide is scored. The peak count over the un-oxidized plateau is about 1.14, 1.65 and 2.27 at 25, 67 and 150 min (graph read).

Si0.80Ge0.20, 900 °C, 150 min

# Si0.80Ge0.20, 900 °C, 150 min
SAMPLE x20_900C_150min {
    FAMILY: SiGe_oxide
    COMPOSITION: Si0.80Ge0.20
    ORIENTATION: Si100
    CLEAN: not_stated
    STARTING_OXIDE_NM: 5.5
    FILM: Si0.80Ge0.20_70nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
    EVENT Growth KIND deposition TIMING assumed                  # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
    EVENT Storage KIND storage TIMING assumed                    # Native oxide kept
    EVENT Load KIND load TIMING assumed                          # Into the tube furnace
    RUN RampUp DURATION 300 TEMP 600->900 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    RUN Oxidation DURATION 9000 TEMP 900->900 AMBIENT dry_O2 TIMING stated
    RUN RampDown DURATION 300 TEMP 900->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    EVENT Measure KIND measurement TIMING assumed                # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}

Figure 5 gives raw RBS counts against channel, not germanium fraction; only the oxide is scored. The peak count over the un-oxidized plateau is about 1.14, 1.65 and 2.27 at 25, 67 and 150 min (graph read).

Si0.85Ge0.15, 850 °C, 75 min (XPS profile)

# Si0.85Ge0.15, 850 °C, 75 min (XPS profile)
SAMPLE x15_850C_75min_xps {
    FAMILY: SiGe_oxide
    COMPOSITION: Si0.85Ge0.15
    ORIENTATION: Si100
    CLEAN: not_stated
    STARTING_OXIDE_NM: 5.1
    FILM: Si0.85Ge0.15_80nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
    EVENT Growth KIND deposition TIMING assumed                  # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
    EVENT Storage KIND storage TIMING assumed                    # Native oxide kept
    EVENT Load KIND load TIMING assumed                          # Into the tube furnace
    RUN RampUp DURATION 300 TEMP 600->850 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    RUN Oxidation DURATION 4500 TEMP 850->850 AMBIENT dry_O2 TIMING stated
    RUN RampDown DURATION 300 TEMP 850->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
    EVENT Measure KIND measurement TIMING assumed                # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile), XPS with Ar+ etch
}

The paper's own pair of 850 °C labels disagree: Figures 2-3 say 75 min and 356 Å, Figure 7 says 60 min and 315 Å. Both are run.

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/sige_inventory/conserved_germanium.isl.template, as it is written. Every equation the simulation uses is in this text; the runtime holds no physics.

# ==============================================================================
# ISL MODEL: GERMANIUM CONSERVED UNDER A GROWING OXIDE ON A SiGe ALLOY
#
# Under a pure SiO2 oxide every silicon atom in the oxide came out of the alloy and every germanium atom stayed
# (Long et al., J. Appl. Phys. 111, 024308 (2012), p. 6). The germanium released by an oxide of thickness x on an
# alloy of fraction X is therefore
#     dose = x N_ox X / (1 - X)        atoms per cm^2,
# and it sits in a layer under the oxide. The layer is taken to fall off exponentially with depth from its peak value
# ge_i at the interface:  X(z) = X + (ge_i - X) exp(-z / width), so its dose is N (ge_i - X) width, which fixes the width.
#
# What sets the peak ge_i is not derived here. Where the dose is large it is the relation fitted to Mueller 2023
# (a floor plus a share of the starting fraction; experiments/sige_interface); where the dose is small it is limited by
# what the dose can fill in a layer no thinner than min_width. So a start of zero germanium gives zero germanium everywhere.
#
# Oxide growth is the silicon law, with the alloy's effect not modelled: dry from Deal and Grove 1965, steam and wet
# oxygen from the oxidant solubility and diffusivity of Rabie et al. 2005. Neither is a SiGe growth law (the transport
# program of Rabie runs 6 to 8 times slow away from its one case), so thickness here is an assumption, and the width and
# the dose scale with it.
# Not included: germanium lost as GeO2, silicon supplied from the substrate, oxidation of the layer itself (all
# of which matter once the alloy is consumed), and the effect of strain.
# Fields in {{braces}} are filled by scripts/run_sige_inventory.py.
# ==============================================================================
SAMPLE {sample_id} {{
    FAMILY: SiGe_oxide
    COMPOSITION: {composition}
}}
STATE x_ox {{ UNIT: cm; INITIAL: x_native; MIN: 0; MAX: 1.0e-3 }}
STATE ge_i {{ UNIT: 1; INITIAL: ge_start; MIN: 0; MAX: 1 }}
CONTROL T {{ UNIT: K }}
CONTROL p_O2 {{ UNIT: atm }}
CONTROL p_H2O {{ UNIT: atm }}
CONTROL p_N2 {{ UNIT: atm }}
CONTROL p_Ar {{ UNIT: atm }}
PARAMETER ge_start {{ VALUE: {ge_start}; UNIT: 1; STATUS: sourced; SOURCE: the sample's stated composition }}
# ---- conservation (sourced) ---------------------------------------------------------------------------------------
PARAMETER N_ox {{ VALUE: 2.21e22; UNIT: cm^-3; STATUS: sourced; SOURCE: Long et al. 2012, p. 6, silicon atoms per cm3 of oxide, agent-read }}
PARAMETER N_a {{ VALUE: 5.0214e22; UNIT: cm^-3; STATUS: sourced; SOURCE: Long et al. 2012, p. 7, alloy atomic density after Dismukes, constant term, agent-read }}
PARAMETER N_b {{ VALUE: 0.5286e22; UNIT: cm^-3; STATUS: sourced; SOURCE: Long et al. 2012, p. 7, linear term in the germanium fraction, agent-read }}
PARAMETER N_c {{ VALUE: 0.0517e22; UNIT: cm^-3; STATUS: sourced; SOURCE: Long et al. 2012, p. 7, quadratic term in the germanium fraction, agent-read }}
# ---- the peak value (fitted to Mueller 2023 in experiments/sige_interface; not refitted here) -----------------------
PARAMETER floor_ge {{ VALUE: 0.3; UNIT: 1; STATUS: fitted }}
PARAMETER share_ge {{ VALUE: 0.8; UNIT: 1; STATUS: fitted }}
PARAMETER settle_time {{ VALUE: 30.0; UNIT: s; STATUS: hypothesis }}
PARAMETER min_width {{ VALUE: 1.0e-7; UNIT: cm; STATUS: hypothesis }}
PARAMETER soft {{ VALUE: 1.0e-3; UNIT: 1; STATUS: constant }}
# ---- growth: the silicon laws -------------------------------------------------------------------------------------
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 }}
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 }}
# Steam and wet oxygen: a parabolic-linear law at 800 C fitted to the four oxide thicknesses of LeGoues 1989 as printed by Rabie 2005
# (scripts/run_sige_inventory.py), with the temperature dependence of the parabolic rate taken from Rabie's oxidant diffusivity.
PARAMETER B_w800 {{ VALUE: 3.0e-14; UNIT: cm^2 s^-1; STATUS: fitted }}
PARAMETER A_wet {{ VALUE: 1.0e-5; UNIT: cm; STATUS: fitted }}
PARAMETER E_ox {{ VALUE: 0.71; UNIT: eV; STATUS: sourced; SOURCE: Rabie et al. 2005 Table II, activation energy of oxidant diffusivity in the oxide, wet O2, agent-read }}
PARAMETER T_w {{ VALUE: 1073.15; UNIT: K; STATUS: constant }}
PARAMETER x_native {{ VALUE: 1.0e-7; UNIT: cm; STATUS: hypothesis }}
PARAMETER p_ref {{ VALUE: 1.0; UNIT: atm; STATUS: constant }}
PARAMETER k_B {{ VALUE: 8.617333262e-5; UNIT: eV K^-1; STATUS: constant }}
PARAMETER eps_n {{ VALUE: 1.0e12; UNIT: cm^-3; STATUS: constant }}
PARAMETER eps_w {{ VALUE: 1.0e-9; UNIT: cm; STATUS: constant }}
PARAMETER z_10 {{ VALUE: 1.0e-6; UNIT: cm; STATUS: constant }}
PARAMETER z_30 {{ VALUE: 3.0e-6; UNIT: cm; STATUS: constant }}
QUANTITY B_dry {{ UNIT: cm^2 s^-1; EQUATION: B_dry = B0 * exp(-E_B / (k_B * T)) }}
QUANTITY A_dry {{ UNIT: cm; EQUATION: A_dry = B_dry / (BA0 * exp(-E_BA / (k_B * T))) }}
QUANTITY B_wet {{ UNIT: cm^2 s^-1; EQUATION: B_wet = B_w800 * exp((E_ox / k_B) * (1 / T_w - 1 / T)) }}
# ---- conservation ---------------------------------------------------------------------------------------------------
QUANTITY N_alloy {{ UNIT: cm^-3; EQUATION: N_alloy = N_a - N_b * ge_start - N_c * ge_start * ge_start }}
QUANTITY dose {{ UNIT: cm^-2; EQUATION: dose = x_ox * N_ox * ge_start / (1 - ge_start) }}
QUANTITY line {{ UNIT: 1; EQUATION: line = floor_ge + share_ge * ge_start }}
QUANTITY supply_cap {{ UNIT: 1; EQUATION: supply_cap = ge_start + dose / (N_alloy * min_width) }}
QUANTITY target {{ UNIT: 1; EQUATION: target = (line + supply_cap - sqrt((line - supply_cap) * (line - supply_cap) + soft * soft)) / 2 }}
QUANTITY oxidizing {{ UNIT: 1; EQUATION: oxidizing = 1 - (p_N2 + p_Ar) / p_ref }}
QUANTITY width {{ UNIT: cm; EQUATION: width = dose / (N_alloy * (ge_i - ge_start) + eps_n) }}
CONTROL_TRAJECTORY {trajectory_id} {{
{runs}
}}
OPERATOR F_SiliconOxideGrowth : OxideGrowth {{
    EQUATION: d(x_ox)/dt = (p_O2 / p_ref) * B_dry / (2 * x_ox + A_dry) + (p_H2O / p_ref) * B_wet / (2 * x_ox + A_wet)
}}
# The peak settles toward the value the alloy allows while it is being oxidized.
OPERATOR F_PeakEnrichment : Relaxation {{
    EQUATION: d(ge_i)/dt = -oxidizing * (ge_i - target) / settle_time
}}
OBSERVATION_MODEL Obs_Thickness {{ TARGET: Thickness; UNIT: cm; EQUATION: Thickness = x_ox }}
OBSERVATION_MODEL Obs_Ge_At_Interface {{ TARGET: Ge_at_interface; UNIT: 1; EQUATION: Ge_at_interface = ge_i }}
OBSERVATION_MODEL Obs_Width {{ TARGET: Enriched_layer_efold_width; UNIT: cm; EQUATION: Enriched_layer_efold_width = width }}
OBSERVATION_MODEL Obs_Extent {{ TARGET: Enriched_layer_extent; UNIT: cm; EQUATION: Enriched_layer_extent = 3 * width }}
OBSERVATION_MODEL Obs_Consumed {{ TARGET: Consumed_alloy; UNIT: cm; EQUATION: Consumed_alloy = x_ox * N_ox / (N_alloy * (1 - ge_start)) }}
OBSERVATION_MODEL Obs_Ge_10 {{ TARGET: Ge_at_10nm; UNIT: 1; EQUATION: Ge_at_10nm = ge_start + (ge_i - ge_start) * exp(-z_10 / (width + eps_w)) }}
OBSERVATION_MODEL Obs_Ge_30 {{ TARGET: Ge_at_30nm; UNIT: 1; EQUATION: Ge_at_30nm = ge_start + (ge_i - ge_start) * exp(-z_30 / (width + eps_w)) }}
EVALUATION_CONTRACT {contract_id} {{
    FROZEN: true
    DATASET: data/derived/sige_interface_germanium.csv
    DATASET_DIGEST: sha256:{dataset_sha256}
    SPLIT: {split}
    TARGET: Ge_at_interface = {target_value} +/- {tolerance} abs
}}

Our simulation against the paper

8 within, 2 near, 16 off of 26 numbers. Tolerance is stated per row; nothing was fitted for this page.

✓8 within tolerance≈2 within twice the tolerance✕16 outside
simulation below the paper ← 0 → simulation above the paper-100%-50%0%+50%+100%Si0.85Ge0.15, 900 °C, 25 minoxide thicknessours 30.2 · paper 20.4 nm✕ outside (+48%)Si0.85Ge0.15, 900 °C, 25 mingermanium fraction at 10 nm below the interfaceours 0.153 · paper 0.18 ≈ within twice the tolerance (-15%)Si0.85Ge0.15, 900 °C, 25 mingermanium fraction at 30 nm below the interfaceours 0.15 · paper 0.155 ✓ within tolerance (-3.2%)Si0.85Ge0.15, 900 °C, 67 minoxide thicknessours 65.2 · paper 35.4 nm✕ outside (+84%)Si0.85Ge0.15, 900 °C, 67 mingermanium fraction at 10 nm below the interfaceours 0.189 · paper 0.215 ≈ within twice the tolerance (-12%)Si0.85Ge0.15, 900 °C, 67 mingermanium fraction at 30 nm below the interfaceours 0.151 · paper 0.155 ✓ within tolerance (-2.8%)Si0.85Ge0.15, 900 °C, 150 minoxide thickness+126% ▸ours 134 · paper 59 nm✕ outsideSi0.85Ge0.15, 900 °C, 150 mingermanium fraction at 10 nm below the interfaceours 0.258 · paper 0.33 ✕ outside (-22%)Si0.85Ge0.15, 900 °C, 150 mingermanium fraction at 30 nm below the interfaceours 0.164 · paper 0.15 ✓ within tolerance (+9.4%)Si0.85Ge0.15, 800 °C, 240 min (similar oxide)oxide thickness+383% ▸ours 197 · paper 40.8 nm✕ outsideSi0.85Ge0.15, 800 °C, 240 min (similar oxide)germanium fraction at 10 nm below the interfaceours 0.16 · paper 0.24 ✕ outside (-33%)Si0.85Ge0.15, 800 °C, 240 min (similar oxide)germanium fraction at 30 nm below the interfaceours 0.15 · paper 0.15 ✓ within tolerance (0.0%)Si0.85Ge0.15, 850 °C, 60 min (similar oxide)oxide thicknessours 59.1 · paper 31.5 nm✕ outside (+88%)Si0.85Ge0.15, 850 °C, 60 min (similar oxide)germanium fraction at 10 nm below the interfaceours 0.152 · paper 0.235 ✕ outside (-35%)Si0.85Ge0.15, 850 °C, 60 min (similar oxide)germanium fraction at 30 nm below the interfaceours 0.15 · paper 0.15 ✓ within tolerance (0.0%)Si0.85Ge0.15, 950 °C, 25 min (similar oxide)oxide thicknessours 30.3 · paper 39.2 nm✕ outside (-23%)Si0.85Ge0.15, 950 °C, 25 min (similar oxide)germanium fraction at 10 nm below the interfaceours 0.179 · paper 0.245 ✕ outside (-27%)Si0.85Ge0.15, 950 °C, 25 min (similar oxide)germanium fraction at 30 nm below the interfaceours 0.15 · paper 0.145 ✓ within tolerance (+3.7%)Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)oxide thicknessours 26.1 · paper 38.1 nm✕ outside (-31%)Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)germanium fraction at 10 nm below the interfaceours 0.216 · paper 0.235 ✓ within tolerance (-7.9%)Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)germanium fraction at 30 nm below the interfaceours 0.153 · paper 0.14 ✓ within tolerance (+9.5%)Si0.80Ge0.20, 900 °C, 25 minoxide thicknessours 30.5 · paper 19.6 nm✕ outside (+56%)Si0.80Ge0.20, 900 °C, 67 minoxide thicknessours 66.1 · paper 35.6 nm✕ outside (+86%)Si0.80Ge0.20, 900 °C, 150 minoxide thickness+136% ▸ours 136 · paper 57.5 nm✕ outsideSi0.85Ge0.15, 850 °C, 75 min (XPS profile)oxide thickness+101% ▸ours 71.4 · paper 35.6 nm✕ outsideSi0.85Ge0.15, 850 °C, 75 min (XPS profile)germanium at the interfaceours 44.8 · paper 28 %✕ outside (+60%)
The pale green band is the tolerance. Bars past ±100% are cut and carry their value.
Sample and historyQuantityThe paperOur simulationDifferenceVerdictWhat the program's own evaluation saysWhere in the paper
Si0.85Ge0.15, 900 °C, 25 minoxide thickness20.4 nm30.2 nm+48%off (±18.6%)outside the tested scopeFigure 6 legend “900C-25min-204Å”, PDF p. 6; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation
Si0.85Ge0.15, 900 °C, 25 mingermanium fraction at 10 nm below the interface0.180.153-15%near (±10%)outside the tested scopeFigure 6 at −100 Å, PDF p. 6 (read from the graph; RBS profile, depth resolution not stated)
Si0.85Ge0.15, 900 °C, 25 mingermanium fraction at 30 nm below the interface0.1550.15-3%within (±10%)outside the tested scopeFigure 6 at −300 Å, PDF p. 6 (read from the graph; RBS profile, depth resolution not stated)
Si0.85Ge0.15, 900 °C, 67 minoxide thickness35.4 nm65.2 nm+84%off (±10.7%)outside the tested scopeFigure 6 legend “900C-67min-354Å”, PDF p. 6; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation
Si0.85Ge0.15, 900 °C, 67 mingermanium fraction at 10 nm below the interface0.2150.189-12%near (±10%)outside the tested scopeFigure 6 at −100 Å, PDF p. 6 (read from the graph; RBS profile, depth resolution not stated)
Si0.85Ge0.15, 900 °C, 67 mingermanium fraction at 30 nm below the interface0.1550.151-3%within (±10%)outside the tested scopeFigure 6 at −300 Å, PDF p. 6 (read from the graph; RBS profile, depth resolution not stated)
Si0.85Ge0.15, 900 °C, 150 minoxide thickness59 nm134 nm+126%off (±10%)outside the tested scopeFigure 6 legend “900C-150min-590Å”, PDF p. 6; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation
Si0.85Ge0.15, 900 °C, 150 mingermanium fraction at 10 nm below the interface0.330.258-22%off (±10%)outside the tested scopeFigure 6 at −100 Å, PDF p. 6 (read from the graph; RBS profile, depth resolution not stated)
Si0.85Ge0.15, 900 °C, 150 mingermanium fraction at 30 nm below the interface0.150.164+9%within (±10%)outside the tested scopeFigure 6 at −300 Å, PDF p. 6 (read from the graph; RBS profile, depth resolution not stated)
Si0.85Ge0.15, 800 °C, 240 min (similar oxide)oxide thickness40.8 nm197 nm+383%off (±10%)outside the tested scopeFigure 7 legend “800C-4hr-408Å”, PDF p. 7; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation
Si0.85Ge0.15, 800 °C, 240 min (similar oxide)germanium fraction at 10 nm below the interface0.240.16-33%off (±10%)outside the tested scopeFigure 7 at −100 Å, PDF p. 7 (read from the graph; RBS profile, depth resolution not stated)
Si0.85Ge0.15, 800 °C, 240 min (similar oxide)germanium fraction at 30 nm below the interface0.150.15+0%within (±10%)outside the tested scopeFigure 7 at −300 Å, PDF p. 7 (read from the graph; RBS profile, depth resolution not stated)
Si0.85Ge0.15, 850 °C, 60 min (similar oxide)oxide thickness31.5 nm59.1 nm+88%off (±12.1%)outside the tested scopeFigure 7 legend “850C-60min-315Å”, PDF p. 7; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation
Si0.85Ge0.15, 850 °C, 60 min (similar oxide)germanium fraction at 10 nm below the interface0.2350.152-35%off (±10%)outside the tested scopeFigure 7 at −100 Å, PDF p. 7 (read from the graph; RBS profile, depth resolution not stated)
Si0.85Ge0.15, 850 °C, 60 min (similar oxide)germanium fraction at 30 nm below the interface0.150.15+0%within (±10%)outside the tested scopeFigure 7 at −300 Å, PDF p. 7 (read from the graph; RBS profile, depth resolution not stated)
Si0.85Ge0.15, 950 °C, 25 min (similar oxide)oxide thickness39.2 nm30.3 nm-23%off (±10%)outside the tested scopeFigure 7 legend “950C-25min-392Å”, PDF p. 7; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation
Si0.85Ge0.15, 950 °C, 25 min (similar oxide)germanium fraction at 10 nm below the interface0.2450.179-27%off (±10%)outside the tested scopeFigure 7 at −100 Å, PDF p. 7 (read from the graph; RBS profile, depth resolution not stated)
Si0.85Ge0.15, 950 °C, 25 min (similar oxide)germanium fraction at 30 nm below the interface0.1450.15+4%within (±10%)outside the tested scopeFigure 7 at −300 Å, PDF p. 7 (read from the graph; RBS profile, depth resolution not stated)
Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)oxide thickness38.1 nm26.1 nm-31%off (±10%)outside the tested scopeFigure 7 legend “1000C-20min-381Å”, PDF p. 7; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation
Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)germanium fraction at 10 nm below the interface0.2350.216-8%within (±10%)outside the tested scopeFigure 7 at −100 Å, PDF p. 7 (read from the graph; RBS profile, depth resolution not stated)
Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)germanium fraction at 30 nm below the interface0.140.153+9%within (±10%)outside the tested scopeFigure 7 at −300 Å, PDF p. 7 (read from the graph; RBS profile, depth resolution not stated)
Si0.80Ge0.20, 900 °C, 25 minoxide thickness19.6 nm30.5 nm+56%off (±19.4%)outside the tested scopeFigure 5 legend and text “25min-196Å”, PDF p. 5; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation
Si0.80Ge0.20, 900 °C, 67 minoxide thickness35.6 nm66.1 nm+86%off (±10.7%)outside the tested scopeFigure 5 legend and text “67min-356Å”, PDF p. 5; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation
Si0.80Ge0.20, 900 °C, 150 minoxide thickness57.5 nm136 nm+136%off (±10%)outside the tested scopeFigure 5 legend and text “150min-575Å”, PDF p. 5; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation
Si0.85Ge0.15, 850 °C, 75 min (XPS profile)oxide thickness35.6 nm71.4 nm+101%off (±10.7%)outside the tested scopeFigure 2 and 3 captions, PDF p. 4; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation
Si0.85Ge0.15, 850 °C, 75 min (XPS profile)germanium at the interface28 %44.8 %+60%off (±10%)outside the tested scopeFigure 3 (Ge3d, detection depth 11.7 nm), peak near the interface read from the graph, PDF p. 4; the text says “roughly double that of the intrinsic SiGe” (PDF p. 4)

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 x15_900C_150min, x15_900C_25min, x15_900C_67min 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
Push and heat-up (not described): durationnot stated; 1 to 20 min searched60 to 1200 s300 s60 s3 of 9 within tolerance, median error 15.1%3 of 9 within tolerance, median error 15.2%
Pull and cool-down (not described): durationnot stated; 1 to 20 min searched60 to 1200 s300 s60 s3 of 9 within tolerance, median error 15.1%3 of 9 within tolerance, median error 15.2%

Together: RampUp duration 98.85 s (was 300); RampDown duration 60 s (was 300).

As reproduced: 8 of 26 within tolerance, median error 29.1%. Aligned: 9 of 26 within tolerance, median error 26.2%. On the held-out samples only: 5 of 17 within tolerance, median error 33.4% as reproduced, 5 of 17 within tolerance, median error 35.2% aligned.

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

VariantAloneWith the aligned history
no push or pull (isothermal)9 of 26 within tolerance, median error 25.3%9 of 26 within tolerance, median error 25.3%
push and pull in nitrogen7 of 26 within tolerance, median error 29.9%8 of 26 within tolerance, median error 26.4%

Two timing unknowns were searched, the furnace push (1 to 20 min) and pull (1 to 20 min), chosen on the three Si0.85Ge0.15 samples oxidized at 900 °C for 25, 67 and 150 min (Figure 6, 9 numbers); the temperature series of Figure 7, the Si0.80Ge0.20 series of Figure 5 and the 850 °C XPS sample are the test (17 numbers). Two variants were tried: no push or pull, and push and pull in nitrogen.

Short ramps win, and win nothing on the test. As reproduced 8 of 26 within tolerance (median error 29.1%); aligned 9 of 26 (26.2%), with the push at 99 s and the pull at 60 s, the bottom of their ranges. The gain is one training number: the 25 min oxide comes down toward the measured 20.4 nm because the Rabie program grows oxide in every step at its wet rates. On the test cases 5 of 17 before and after, and the median error rises from 33.4% to 35.2%. Without any push or pull, 9 of 26 (25.3%); with push and pull in nitrogen, 7 of 26 alone and 8 of 26 on the aligned history. The data rule out long ramps in oxygen only in the sense that every extra minute adds oxide to a program that already grows too much at 800 to 900 °C.

What the five within-tolerance test numbers are. Four are the germanium fraction 30 nm below the front (0.14 to 0.155 measured, 0.150 to 0.153 predicted): both programs leave the alloy untouched there, and so do the samples. They test only that nothing happens deep in the layer. The fifth is the germanium at 10 nm at 1000 °C (0.235 measured, 0.212 aligned), where the inventory program happens to grow its thickest oxide (25 nm).

With heating and cooling transitions (the section above): a hot push of 1 to 5 min in nitrogen keeps 8 of 26 and lowers the median error to 26.8%; a 60 to 120 min cold-furnace ramp keeps 8 of 26 and raises it to 35.1%, moving 11 numbers by more than 2%. Cooling fast or five times slower changes nothing. The cold ramp hurts for the same reason long pushes do: the Rabie program oxidizes during the ramp.

✓5 within tolerance≈1 within twice the tolerance✕11 outside
simulation below the paper ← 0 → simulation above the paper-100%-50%0%+50%+100%Si0.85Ge0.15, 800 °C, 240 min (similar oxide)oxide thickness+371% ▸ours 192 · paper 40.8 nm✕ outsideSi0.85Ge0.15, 800 °C, 240 min (similar oxide)germanium fraction at 10 nm below the interfaceours 0.16 · paper 0.24 ✕ outside (-34%)Si0.85Ge0.15, 800 °C, 240 min (similar oxide)germanium fraction at 30 nm below the interfaceours 0.15 · paper 0.15 ✓ within tolerance (0.0%)Si0.85Ge0.15, 850 °C, 60 min (similar oxide)oxide thicknessours 53.2 · paper 31.5 nm✕ outside (+69%)Si0.85Ge0.15, 850 °C, 60 min (similar oxide)germanium fraction at 10 nm below the interfaceours 0.152 · paper 0.235 ✕ outside (-35%)Si0.85Ge0.15, 850 °C, 60 min (similar oxide)germanium fraction at 30 nm below the interfaceours 0.15 · paper 0.15 ✓ within tolerance (0.0%)Si0.85Ge0.15, 950 °C, 25 min (similar oxide)oxide thicknessours 24.2 · paper 39.2 nm✕ outside (-38%)Si0.85Ge0.15, 950 °C, 25 min (similar oxide)germanium fraction at 10 nm below the interfaceours 0.176 · paper 0.245 ✕ outside (-28%)Si0.85Ge0.15, 950 °C, 25 min (similar oxide)germanium fraction at 30 nm below the interfaceours 0.15 · paper 0.145 ✓ within tolerance (+3.6%)Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)oxide thicknessours 20 · paper 38.1 nm✕ outside (-47%)Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)germanium fraction at 10 nm below the interfaceours 0.212 · paper 0.235 ✓ within tolerance (-9.9%)Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)germanium fraction at 30 nm below the interfaceours 0.153 · paper 0.14 ✓ within tolerance (+9.0%)Si0.80Ge0.20, 900 °C, 25 minoxide thicknessours 24.4 · paper 19.6 nm≈ within twice the tolerance (+24%)Si0.80Ge0.20, 900 °C, 67 minoxide thicknessours 60.1 · paper 35.6 nm✕ outside (+69%)Si0.80Ge0.20, 900 °C, 150 minoxide thickness+126% ▸ours 130 · paper 57.5 nm✕ outsideSi0.85Ge0.15, 850 °C, 75 min (XPS profile)oxide thicknessours 65.6 · paper 35.6 nm✕ outside (+84%)Si0.85Ge0.15, 850 °C, 75 min (XPS profile)germanium at the interfaceours 44.8 · paper 28 %✕ outside (+60%)
The pale green band is the tolerance. Bars past ±100% are cut and carry their value.

5 within, 1 near, 11 off of 17 numbers with the aligned settings (the samples used to choose the unknowns are left out).

SampleQuantityThe paperAs reproduced aboveAlignedDifferenceVerdictHow
Si0.85Ge0.15, 800 °C, 240 min (similar oxide)oxide thickness40.8 nm197192+371%off (±10%)test
Si0.85Ge0.15, 800 °C, 240 min (similar oxide)germanium fraction at 10 nm below the interface0.240.160.16-34%off (±10%)test
Si0.85Ge0.15, 800 °C, 240 min (similar oxide)germanium fraction at 30 nm below the interface0.150.150.15+0%within (±10%)test
Si0.85Ge0.15, 850 °C, 60 min (similar oxide)oxide thickness31.5 nm59.153.2+69%off (±12%)test
Si0.85Ge0.15, 850 °C, 60 min (similar oxide)germanium fraction at 10 nm below the interface0.2350.1520.152-35%off (±10%)test
Si0.85Ge0.15, 850 °C, 60 min (similar oxide)germanium fraction at 30 nm below the interface0.150.150.15+0%within (±10%)test
Si0.85Ge0.15, 950 °C, 25 min (similar oxide)oxide thickness39.2 nm30.324.2-38%off (±10%)test
Si0.85Ge0.15, 950 °C, 25 min (similar oxide)germanium fraction at 10 nm below the interface0.2450.1790.176-28%off (±10%)test
Si0.85Ge0.15, 950 °C, 25 min (similar oxide)germanium fraction at 30 nm below the interface0.1450.150.15+4%within (±10%)test
Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)oxide thickness38.1 nm26.120-47%off (±10%)test
Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)germanium fraction at 10 nm below the interface0.2350.2160.212-10%within (±10%)test
Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)germanium fraction at 30 nm below the interface0.140.1530.153+9%within (±10%)test
Si0.80Ge0.20, 900 °C, 25 minoxide thickness19.6 nm30.524.4+24%near (±19%)test
Si0.80Ge0.20, 900 °C, 67 minoxide thickness35.6 nm66.160.1+69%off (±11%)test
Si0.80Ge0.20, 900 °C, 150 minoxide thickness57.5 nm136130+126%off (±10%)test
Si0.85Ge0.15, 850 °C, 75 min (XPS profile)oxide thickness35.6 nm71.465.6+84%off (±11%)test
Si0.85Ge0.15, 850 °C, 75 min (XPS profile)germanium at the interface28 %44.844.8+60%off (±10%)test

What alignment cannot fix: the oxide thickness, and through it the germanium. This is case (d): programs exist and miss, and no history unknown can repair them. (1) No dry SiGe growth law. The predictor's SiGe oxide comes from the Rabie program, whose constants were chosen for wet oxygen at 800 °C and which does not read the gas: it gives 30, 65 and 134 nm at 900 °C for 20.4, 35.4 and 59.0 nm measured, 197 nm at 800 °C (4 h) for 40.8 nm, and too little at 950 and 1000 °C (30 and 26 nm for 39 and 38 nm). The inventory program grows its own oxide by Deal and Grove's dry silicon law: 8.1, 18.5 and 37.1 nm at 900 °C, 11 nm at 800 °C, 7.8 nm at 850 °C. Long's dry SiGe oxide is 1.5 to 4 times thicker than that silicon law gives, from a 5 nm native oxide. On one history the two programs disagree by a factor of 3.6 (134 against 37 nm at 150 min), and the measured value lies between them.

(2) The germanium follows the wrong oxide. Because the inventory width is the dose over the peak excess and the dose is proportional to the oxide, the 10 nm values at 800 and 850 °C (0.16 and 0.15 against 0.24 and 0.235) are low because the program grew 11 and 8 nm of oxide where 41 and 32 nm grew. Long's central result, that the profile at a given oxide thickness does not depend on temperature, is something the inventory program would reproduce if it were given the measured oxide: its width has no temperature in it. Through its own growth law it predicts a spread of 0.152 to 0.216 at 10 nm across Figure 7 where Long measures 0.215 to 0.245.

(3) Neither program has a finite layer, or the 5 nm native oxide. At 150 min Long's 80 nm layer is nearly turned into one Ge-rich layer (Figure 6); both programs keep an infinite Si0.85Ge0.15 under the front. Both start from 1 nm of oxide where 5.1 and 5.5 nm were present; STARTING_OXIDE_NM is recorded and read by neither.

(4) The 850 °C XPS sample's interface value (28% in Figure 3) is far below the relation's 44.8%, but XPS with an 11.7 nm detection depth and long etch steps smooths the interface as RBS does. Long says “roughly double” (about 30%) for the 15% alloy; the relation, fitted on Mueller's wet oxidations, says three times.

What our language and ontology cannot yet say

  • One oxide per history, from a growth law for the gas. Two programs grow 134 and 37 nm on the same 150 min history (59 nm measured); the inventory's germanium dose follows its own oxide. The predictor should take one oxide thickness (or a stated one: MEASURED_OXIDE_NM as an input, as done for the nanowire program's RUN_FLAT_OXIDE_NM) and feed it to every composition program. With the stated oxide the inventory program's width is a prediction of Long's profiles with nothing grown.
  • A dry-oxygen SiGe growth program, or a refusal. The Rabie program runs dry histories at its wet 800 °C constants and labels them “direction only”. Long gives eleven dry oxide thicknesses at 800 to 1000 °C on two compositions; they would fit or test one.
  • STARTING_OXIDE_NM read by the SiGe programs. The native oxide is 5 nm here (a quarter of the 25 min oxide), and it carries GeO2 (XPS). Neither SiGe program reads it.
  • Layered sample with a finite alloy. LAYER SiGe { COMPOSITION: Si0.85Ge0.15; THICKNESS: 80 nm } on LAYER Si { THICKNESS: 100 nm }: needed to say when the pile-up consumes the layer (Long's Figure 6 at 150 min, and his Eq. 8).
  • An observation model for the instrument's depth resolution. RBS and XPS report a profile smoothed by about 5 nm (estimated here from the un-oxidized edge) and 3.5 or 11.7 nm (Ge2p, Ge3d). A statement such as OBSERVATION_MODEL ... RESOLUTION gaussian 5 nm would let a sharp predicted profile be compared with a measured one without the hand-written smoothing in this study file.
  • A depth profile as a target. Results are scalars at chosen depths (10 nm, 30 nm). Long's data are profiles with the front aligned at zero by the authors; a profile target (depth series, with the front position as an unknown) would score the whole shape.
  • The conserved dose in the inventory program. Its comment follows Long's Eq. 7 (the germanium of the consumed alloy, x N_ox X/(1−X)) but places that dose as the excess above X in an exponential. Counting atoms with the alloy shrinking by the silicon removed gives an excess of x N_ox X, as scripts/analyse_germanium_inventory.py already uses. The program's width is 1/(1−X) too large: 18% at X = 0.15, 100% at X = 0.5. A predictor change, not a language one; it is listed here because this paper is its source.
  • A clean word for “native oxide not removed”. The CLEAN vocabulary has no entry for an uncleaned surface; not_stated is wrong here, because the paper does state 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.

HistoryWithin toleranceMedian errorChanged numbers
as the paper states it (above)8 of 2631.4%
heat-up A (hot push), fast cooling8 of 2626.8%8 of 26 moved by more than 2%
heat-up A (hot push), slow cooling8 of 2626.8%8 of 26 moved by more than 2%
heat-up B (cold-furnace ramp), fast cooling8 of 2635.1%11 of 26 moved by more than 2%
heat-up B (cold-furnace ramp), slow cooling8 of 2635.1%11 of 26 moved by more than 2%

The paper's own conclusions

The paper statesWhat we find
No germanium in the thermal oxide at 800-1000 °C; oxidized germanium only in the native oxide (XPS)The inventory program puts none in the oxide; the Rabie program, run for every SiGe history, reports 4.6 to 13.6% GeO2 in the oxidecontradicted by one of our programs
Longer oxidation raises the germanium in the pile-up and finally consumes the layer into one Ge-rich layerBoth programs raise the near-interface germanium with time; neither has a finite layer, so neither can consume itdirection only
At a given oxide thickness the profile does not depend on temperature (800-1000 °C)The inventory width depends only on the oxide and a temperature-free peak, so it agrees in form; but each program grows a different oxide at each temperature, so the predicted profiles at Figure 7's conditions differ (see the reading)agrees in form
Si dose in the oxide equals the Si dose taken from the pile-up for thin oxides; thicker ones lie 30-50% above the line (Figure 8)The inventory program assumes the balance and does not test it; see the reading for which germanium it countsassumed, not tested

What the reproduction shows

The measured profiles against the two programs (PYTHONPATH=. python -m reproductions.long_2012; numbers as that function prints them, with the push and pull as written above). The RBS depth resolution is not stated. Fitting the un-oxidized sample's edge at the front (Figure 6) as a step seen through a Gaussian gives σ = 5.0 nm. Both programs' profiles were smoothed with it before comparison; Long's depth zero is his own alignment of the oxidation front.

Germanium is conserved in the samples. The area under the un-oxidized and the 150 min profiles of Figure 6 is 9.57 and 9.47 nm (germanium fraction × depth): 1% apart, inside the graph reading. This is the premise of the inventory program and Long's “little or no diffusion of Ge into the substrate”, and it holds.

At 900 °C, with each program's own oxide. At 10 nm below the front, after smoothing: 25 min, measured 0.180, Rabie 0.198, inventory 0.163; 67 min, 0.215, 0.239, 0.202; 150 min, 0.330, 0.280, 0.261. The root-mean-square difference over 5 to 30 nm is 0.017, 0.036, 0.052 for Rabie and 0.010, 0.023, 0.052 for the inventory, against 0.017, 0.034, 0.115 for no redistribution at all (a flat 0.15). So at 25 and 67 min the measured enrichment is small enough that a flat profile does about as well as either program; at 150 min both programs capture half of the departure from flat. Both programs put the peak at the front (0.53 and 0.45 before smoothing, 0.31 and 0.28 after) where Long's profile peaks at 0.33 about 10 nm below it, and both are narrower: the measured germanium stays above 0.165 from about 3 to 28 nm below the front, while the inventory's e-folding depth is 9.8 nm and Rabie's 9.5 nm.

The inventory width, given Long's oxide instead of its own. With the thermal part of the 150 min oxide (59.0 − 5.1 = 53.9 nm) the program's dose x N_ox X/(1−X) is 4.25 nm of excess germanium and its peak 0.448, so its e-folding depth would be 14.3 nm (3 e-folds 43 nm). The exact atom balance (the alloy loses only the oxidized silicon) needs 3.62 nm of excess, giving 12.1 nm. Long's own Eq. 7 box (X_pileup = 0.33) is 13.2 nm. The measured excess above 0.15 in the top 40 nm, read from the smoothed profile, is 2.97 nm; the rest is spread across the front by the resolution and into the depleted bottom of the finite layer. With the measured oxide the inventory program's width would be within 20% of what Long's data and Long's own relation imply; with its own oxide it is 9.8 nm at 150 min (20 to 30% narrower), and at 800 and 850 °C (2.9 and 2.1 nm, against 8.0 and 5.9 nm from the exact balance with the measured oxide) about 3 times too narrow.

How faithfully the inventory program follows Long. It takes N_ox (2.21e22 cm⁻³) and the alloy density fit exactly as printed (PDF p. 7) and the premise that the thermal oxide holds no germanium (Long's XPS). It departs in four places: (1) the dose it places as excess is Long's total germanium of the consumed alloy, which over-counts by 1/(1−X); (2) the shape is an exponential from a peak at the front, where Long's Eq. 7 is a uniform box and his Figure 6 shows a peak about 10 nm in; (3) the peak value is the relation fitted on Mueller's wet oxidations (0.45 for a 15% alloy), where Long measures “roughly double” (XPS) and 0.18 to 0.33 by RBS, and computes in Figs. 9-11 a peak set by the balance of oxidation and silicon diffusion, which the program does not have; (4) growth is Deal and Grove's dry silicon law, where Long's paper uses Massoud's silicon model for its simulations and its measured SiGe oxides are 1.5 to 4 times thicker than the program's silicon law gives.

What we would like Emily to check

  1. Is the RBS depth scale reliable to 25%? The un-oxidized 80 nm layer is about 58 nm wide in Figure 6, and the conversion of energy to depth needs a density the paper does not give.
  2. Should the conserved germanium excess be X N_ox x (all atoms but the oxidized silicon stay; the alloy shrinks by the silicon removed) rather than X N_ox x /(1 − X), the germanium of the consumed alloy that the program places above the background?
  3. Figure 8's thick-oxide points lie 30 to 50% above the line. Long reads that as an apparent negative Q_sub. Could it instead be the pile-up's own background germanium being counted as extracted (Eq. 9 counts X_pileup, not X_pileup − X)?
  4. Are the 850 °C samples of Figures 2-3 (75 min, 356 Å) and Figure 7 (60 min, 315 Å) two samples?