Rapid Thermal Processing (RTP)¶
Rapid Thermal Processing provides fast heating and cooling for annealing, oxidation, nitridation, and other thermal treatments. RTP is essential for activating dopants, improving crystallinity, and modifying material properties without extended high-temperature exposure.
Overview¶
This schema package defines:
- DtuRTP - A rapid thermal processing step with temperature profiles, atmosphere control, and timing
The RTP process extends NOMAD's Process and Activity base classes, providing:
- Links to input samples/libraries and output (modified) samples
- Temperature profiles (ramp rates, hold times, cooling rates)
- Atmosphere control (gas composition, pressure)
- Multi-step thermal cycles
- Automated workflow integration
Typical Usage¶
- Select samples: Reference samples or libraries to be processed
- Define thermal profile: Set ramp-up rate, peak temperature, hold time, cooling rate
- Set atmosphere: Choose gas environment (Ar, O₂, N₂, forming gas, vacuum)
- Document equipment: Reference the RTP instrument used
- Link output: Updated sample properties (crystallinity, oxidation state, etc.)
Key Parameters¶
- Temperature profile: Ramp rate, peak temperature, hold time, cooling rate
- Atmosphere: Gas type, flow rate, pressure
- Sample positioning: Multiple samples, temperature uniformity considerations
- Cycle steps: Multi-step profiles for complex treatments
Common RTP Applications¶
- Crystallization: Improving as-deposited amorphous or poorly crystalline films
- Annealing: Stress relief, grain growth, defect reduction
- Oxidation/Nitridation: Forming oxide or nitride layers
- Dopant activation: Activating implanted or incorporated dopants
- Interface engineering: Promoting reactions at interfaces
Why Document RTP Details?¶
Thermal history critically affects material properties:
- Temperature affects: Phase transitions, grain size, crystallinity
- Ramp/cooling rates affect: Stress, defect density, phase stability
- Atmosphere affects: Oxidation state, composition, surface chemistry
- Time affects: Diffusion, grain growth, decomposition
Detailed records enable:
- Optimizing thermal treatments
- Understanding structure-property relationships
- Reproducing successful conditions
- Avoiding destructive over-processing
Parsing Workflow¶
The RTP parser automatically processes thermal treatment log files and extracts relevant process information through a multi-step workflow:
Data Logging¶
The logging of RTP-related signals includes thermal properties, process gases, and pressure data collection. This is achieved by combining the native software of the RTP tool (CX-Thermo) and the sputtering tool (Lesker Eklipse). Relevant logged quantities include:
- Gas flow rates
- Chamber pressure
- Chamber temperature
- Power applied to the lamps
Process Step Identification¶
The data is uploaded to the RTP entry in the form of two distinct log files and automatically processed using the developed parser. Similar to the sputtering data parser, the logic consists of unambiguously identifying the different steps of the annealing process.
The steps belong to one of three categories:
- Heating: Initial setpoint temperature is lower than final setpoint temperature
- Annealing plateau: Initial and final setpoint temperatures are identical
- Cooling: Initial setpoint temperature is higher than final setpoint temperature
These setpoints are timestamped, along with all other signals from both log files, making correlation possible. The timestamped setpoint temperature serves as the basis for the parser logic.
This approach remains valid even when experimentalists use multiple steps of one type (e.g., two heating steps with different ramps, or two heating steps separated by an intermediate annealing plateau), showcasing the high degree of adaptability to real laboratory workflows.
Parameter Extraction¶
From an experimental perspective, useful information not obtained directly from the log files is automatically extracted, including:
- Partial pressure of each gas present in the RTP chamber during annealing
- Heating and cooling rates
- Other derived parameters calculated from identified process events
Schema Population¶
Derived parameters are mapped to their corresponding fields in the RTP schema, similar to the sputtering workflow. This enables users to access process details organized:
- By individual step
- As an overview of the entire process
Visualization¶
Similar to the sputtering workflow, the annealing process benefits from automatic plot generation, enabling quick visualization of key aspects:
- Temperature profiles and setpoints as a function of time
- Atmosphere composition during annealing
- Pressure stability during annealing
This organized access to critical parameters makes it easier to identify trends or anomalies that might otherwise go unnoticed, reinforcing the FAIR-by-design principle.
Input Sample Handling¶
A key difference between sputtering and RTP processes:
- Sputtering: Uses bare substrates as input
- RTP: Uses previously deposited combinatorial libraries as input
Input samples can be:
- Whole combinatorial libraries from the sputtering process
- Child libraries created by cleaving a parent library
The user provides information about which input samples were introduced in the RTP chamber. By processing this information, output combinatorial libraries are automatically created and named according to established conventions.
Example: If four child combinatorial libraries are mounted horizontally on the sample holder, four independent output combinatorial libraries are created following the naming convention (by user, by iteration number, and position on holder) and referencing:
- The RTP process that generated them
- The corresponding parent combinatorial libraries each was cleaved from
Related Schemas¶
- Input entities: Samples and Libraries
- Atmosphere: Gas Supplies
- Instrument: DTUInstrument (RTP furnace)
- Preceded by: Sputtering, Thermal Evaporation
- Followed by: Characterization measurements
Schema Documentation¶
DtuRTPInputSampleMounting¶
description: Section containing information about the mounting of the combinatiorial libraries (input samples) on the susceptor.
inherits from: nomad.datamodel.data.ArchiveSection
properties:
| name | type | |
|---|---|---|
| name | str |
The name of the input sample mounting. |
| input_combi_lib | nomad_dtu_nanolab_plugin.schema_packages.sample.DTUCombinatorialLibrary |
The input sample (combinatorial library) that is used. |
| relative_position | str |
The relative position of the input sample on the susceptor. |
| position_x | float64 |
The x-coordinate of the input sample on the susceptor. unit= meter |
| position_y | float64 |
The y-coordinate of the input sample on the susceptor. unit= meter |
| rotation | float64 |
The angle between the initial position in the "mother" sample and the position on the susceptor. unit= radian |
normalization:
The normalizer for the DtuRTPInputSampleMounting class.
Args: archive (EntryArchive): The archive containing the section that is being normalized. logger (BoundLogger): A structlog logger.
RTPOverview¶
description: Section containing a human readable overview of the RTP process.
inherits from: nomad.datamodel.data.ArchiveSection
properties:
| name | type | |
|---|---|---|
| material_space | str |
The material space explored by the RTP process. |
| annealing_pressure | float64 |
Pressure in the RTP chamber during the annealing plateau unit= pascal |
| annealing_time | float64 |
Time spent at the annealing plateau of the RTP process. unit= second |
| annealing_temperature | float64 |
Temperature during the annealing plateau of the RTP process. unit= kelvin |
| annealing_ar_flow | float64 |
Argon flow used during the annealing plateau of the RTP process.The unit "cm^3/minute" is used equal to sccm. unit= meter ** 3 / second |
| annealing_n2_flow | float64 |
Nitrogen flow used during the annealing plateau of the RTP process. The unit "cm^3/minute" is used equal to sccm. unit= meter ** 3 / second |
| annealing_ph3_in_ar_flow | float64 |
Phosphine flow used during the annealing plateau of the RTP process. The unit "cm^3/minute" is used equal to sccm. unit= meter ** 3 / second |
| annealing_h2s_in_ar_flow | float64 |
H2S flow used during the annealing plateau of the RTP process.The unit "cm^3/minute" is used equal to sccm. unit= meter ** 3 / second |
| total_heating_time | float64 |
Total time spent until maximum (main annealing plateau)temperature is reached. unit= second |
| total_cooling_time | float64 |
Total time spent between the end of the main annealing plateau until the samples are cooled down to room temperature. unit= second |
| end_of_process_temperature | float64 |
Temperature at the cooling state of the RTP process, when the gases are shut off and final pump-purge procedure is initiated to remove samples from chamber. unit= kelvin |
| annealing_ph3_partial_pressure | float64 |
Partial pressure of PH3 during the annealing plateau of the RTP process. unit= pascal |
| annealing_h2s_partial_pressure | float64 |
Partial pressure of H2S during the annealing plateau of the RTP process. unit= pascal |
| annealing_n2_partial_pressure | float64 |
Partial pressure of N2 during the annealing plateau of the RTP process. unit= pascal |
| annealing_ar_partial_pressure | float64 |
Partial pressure of Ar during the annealing plateau of the RTP process. unit= pascal |
normalization:
The normalizer for the RTPOverview class.
Args: archive (EntryArchive): The archive containing the section that is being normalized. logger (BoundLogger): A structlog logger.
RTPStepOverview¶
description: Section containing a human readable overview of a certain step of the RTP process.
inherits from: nomad.datamodel.data.ArchiveSection
properties:
| name | type | |
|---|---|---|
| duration | float64 |
Duration of the step. unit= second |
| pressure | float64 |
Pressure in the RTP chamber during the step. unit= pascal |
| step_ar_flow | float64 |
Argon flow rate used during the step.The unit "cm^3/minute" is used equal to sccm. unit= meter ** 3 / second |
| step_n2_flow | float64 |
Nitrogen flow rate used during the step. The unit "cm^3/minute" is used equal to sccm. unit= meter ** 3 / second |
| step_ph3_in_ar_flow | float64 |
Phosphine flow rate used during the step.The unit "cm^3/minute" is used equal to sccm. unit= meter ** 3 / second |
| step_h2s_in_ar_flow | float64 |
H2S flow rate used during the step.The unit "cm^3/minute" is used equal to sccm. unit= meter ** 3 / second |
| initial_temperature | float64 |
Temperature at the beginning of the step. unit= kelvin |
| final_temperature | float64 |
Temperature at the end of the step. unit= kelvin |
| temperature_ramp | float64 |
Rate of temperature increase or decrease during the step unit= kelvin / second |
| step_ph3_partial_pressure | float64 |
Partial pressure of PH3 during the annealing plateau of the RTP process. unit= pascal |
| step_h2s_partial_pressure | float64 |
Partial pressure of H2S during the annealing plateau of the RTP process. unit= pascal |
| step_n2_partial_pressure | float64 |
Partial pressure of N2 during the annealing plateau of the RTP process. unit= pascal |
| step_ar_partial_pressure | float64 |
Partial pressure of Ar during the annealing plateau of the RTP process. unit= pascal |
normalization:
The normalizer for the DTUSteps class.
Args: archive (EntryArchive): The archive containing the section that is being normalized. logger (BoundLogger): A structlog logger.
DtuRTPSources¶
description: Information regarding the sources (gases) used in the RTP process.
inherits from: nomad_material_processing.vapor_deposition.cvd.general.CVDSource, nomad.datamodel.data.ArchiveSection
properties:
| name | type | |
|---|---|---|
| sources | str |
Automatically generated list of sources (gases) for this step shape= ['*'] |
normalization without further documentation
DTURTPSteps¶
description: Class representing each step in the RTP process.
inherits from: nomad_material_processing.vapor_deposition.cvd.general.CVDStep, nomad.datamodel.data.ArchiveSection
properties:
| name | type | |
|---|---|---|
| step_overview | RTPStepOverview |
sub-section |
| sources | DtuRTPSources |
sub-section, repeats |
normalization:
The normalizer for the DTURTPSteps class.
Args: archive (EntryArchive): The archive containing the section that is being normalized. logger (BoundLogger): A structlog logger.
DtuRTP¶
description: A synthesis method where a rapidly heated substrate is exposed to one or more volatile precursors, which react or decompose on the surface to produce a deposit. [database_cross_reference: https://orcid.org/0000-0002-0640-0422]
Synonyms: - rapid thermal chemical vapor deposition - rapid thermal CVD - RTCVD
inherits from: nomad_material_processing.vapor_deposition.cvd.general.ChemicalVaporDeposition, nomad.datamodel.metainfo.plot.PlotSection, nomad.datamodel.data.EntryData
links: http://purl.obolibrary.org/obo/CHMO_0001328
properties:
| name | type | |
|---|---|---|
| lab_id | str |
The ID of the run. Format: user_number_RTP. |
| location | str |
location of the experiment. default= DTU; IDOL Lab |
| log_file_eklipse | str |
Cell to upload the gases log file from the RTP process. |
| log_file_T2BDiagnostics | str |
Cell to upload the temperature log file from the RTP process. |
| samples_susceptor_before | str |
Cell to upload the image of the samples on susceptor before theRTP process. |
| samples_susceptor_after | str |
Cell to upload the image of the samples on susceptor after theRTP process. |
| used_gases | str |
Gases used in the process. shape= ['*'] |
| base_pressure | float64 |
Base pressure when ballast is OFF unit= pascal |
| base_pressure_ballast | float64 |
Base pressure when ballast is ON. unit= pascal |
| rate_of_rise | float64 |
Rate of rise of the pressure in the RTP chamber during static vacuum unit= pascal / second |
| chiller_flow | float64 |
Chiller flow rate during the RTP process. unit= meter ** 3 / second |
| input_samples | DtuRTPInputSampleMounting |
sub-section, repeats |
| overview | RTPOverview |
sub-section |
| steps | DTURTPSteps |
The steps of the deposition process. sub-section, repeats |
normalization:
The normalizer for the RTP class.
Args: archive (EntryArchive): The archive containing the section that is being normalized. logger (BoundLogger): A structlog logger.