Tasks Overview

There are a lot of tasks defined in the package. All of these methods are available in alab_experiment_helper.tasks. You can use them like this

from alab_experiment_helper.tasks import *
from alab_experiment_helper import Experiment

...
experiment = Experiment(name="test")
samples = [experiment.add_sample(name="sample1"), experiment.add_sample(name="sample2")]

heating(samples, **task_params)
# more operations goes here

Here is the brief introduction to each tasks.

Dispensing

Dispensing refers to the process done by Labman robot. It is the first step of the experiment. A .csv file is required as the input file for Labman system.

dispensing(samples, input_file_path)[source]

Dispense samples according to the given recipes in .csv format.

The number of input samples must be equal to the number of recipes * replicates.

Parameters
  • samples (List[Sample]) – the samples to be operated on, in this setting, each sample is a crucible

  • input_file_path (Union[str, Path]) – the path to the input file, which is a csv file.

Heating

Heating refers to the operation to put the sample into the box furnace and heat it to certain temperature. For convenience, there is a simple_heating to make the tasks easier.

simple_heating(samples, temperature, duration_hour, ramp_rate_per_min=5)[source]

Simple heating task. The furnace will be ramped up with the given ramp_temp_per_min and then hold at this temperature for the given duration_hour at given temperature. After dwelling, it will be cooled down to some temperature (set by the driver, e.g. 400 °C) and be taken out of the furnace.

Parameters
  • samples (List[Sample]) – List of samples to heat.

  • temperature (int) – Temperature (°C) to heat to, which should be a number between 0 and 1100. It specifies the temperature of dwelling.

  • duration_hour (float) – Duration of heating in hours (e.g. 12 hours). It specifies the duration hours of dwelling. It will first be converted to minute (rounded to integer) in the driver code.

  • ramp_rate_per_min (int) – Temperature change per minute during heating up process (e.g. 5 °C/min). By default, it is 5 °C/min.

Also, there is a heating function to submit more complex heating tasks.

heating(samples, setpoints)[source]

The heating task, where the function takes a list of setpoints. Each setpoint is a list of two values, the first one is the temperature (°C) and the second one is the duration (minutes), which is similar to the heating profile configuration in the real furnace.

Parameters
  • samples (List[Sample]) – The samples to be heated

  • setpoints (List[List[int]]) – The setpoints to be used for heating.

Heating with Atmosphere

This operation will send samples to the tube furnace and heat them with certain atmosphere. Apart from the atmosphere and flow rate, this operation has same parameter as heating.

heating_with_atmosphere(samples, setpoints, atmosphere, flow_rate=100)[source]

Annealing in the tube furnaces. You can select the atmosphere for heating. Four samples at a time for heating. The parameter setpoints is a list of [temperature, duration] pairs. The temperature is in °C and the duration is in minutes. The range of flow_rate should be between 0 and 1000.

Parameters
  • samples (List[Sample]) – the samples to heat

  • setpoints (List[List[int]]) – list of [temperature, duration], e.g., [[300, 60], [300, 7200]] means to heat up to 300°C in 60 min in and keep it at 300°C for 12 h.

  • atmosphere (Literal[‘Ar’, ‘N2’, ‘vacuum’]) – the gas atmosphere for the operation. You can choose between Ar, N2 and vacuum.

  • flow_rate (float) – the flow rate of the gas in the furnace.

Scraping

Scraping is the operation to remove the sample powders out of the crucible after annealing. Since it will use a ball milling method, user need to specify the shaking time and the number of milling balls for shaking.

scraping(samples, duration_min=6, ball_number=8)[source]

Move the sample out of crucibles with ball milling. The duration_min specifies the duration of the shaking, and the ball_number specifies the number of balls to be used (5mm Al2O3 balls).

Parameters
  • samples (Sample) – The sample to be operated on.

  • duration_min (int) – The duration of the shaking in minutes.

  • ball_number (int) – The number of balls to be used (dispensed by milling ball dispenser).

XRD

Do XRD on the sample.

xrd(sample, *, schema='fast_10min')[source]

Do xrd on the given sample with the given schema. The schema is either fast_10min or slow_30min.

Parameters
  • sample (Sample) – Sample to do xrd on.

  • schema (Literal[‘fast_10min’, ‘slow_30min’]) – Schema to use. By default, a fast 10min schema is used.

Disposing

Dispose the samples to the right position (later human will decide to waste or store the samples).

disposing(sample)[source]

Store the sample in the storage positions