The vector_magnet module

A software representation of the Oxford Heliox 3He insert.

Classes

VectorMagnet

class src.instruments.vector_magnet.VectorMagnet(experiment, name='Vector Magnet', spec=None)[source]

A Vector Magnet.

Parameters :

experiment : Experiment

The experiment which owns the instrument.

name : str

The name of the instrument. Typically, it will always be ‘Vector Magnet’.

Methods

directGetFieldCartesian()[source]

Get the magnetic field in Cartesian coordinates.

Returns :

float :

The x-component of the magnetic field.

float :

The y-component of the magnetic field.

float :

The z-component of the magnetic field.

directGetFieldRampRates()[source]

Read the magnetic field sweep rates directly from the power supplies.

Returns :

float :

The ramp rate for the x-component of the magnetic field in Tesla/min.

float :

The ramp rate for the y-component of the magnetic field in Tesla/min.

float :

The ramp rate for the z-component of the magnetic field in Tesla/min.

directGetFieldSetpoints()[source]

Read the field setpoints from the power supplies.

Returns :

float :

The magnetic field setpoint in the x-direction in Tesla.

float :

The magnetic field setpoint in the y-direction in Tesla.

float :

The magnetic field setpoint in the z-direction in Tesla.

directGetFieldSpherical()[source]

Get the magnetic field in Cartesian coordinates.

Returns :

float :

The magnitude of the magnetic field in Tesla.

float :

The azimuthal angle of the magnetic field vector, measured in degrees down from the positive z-axis.

float :

The polar angle of the magnetic field vector, measured in degrees counter-clockwise from the positive x-axis.

directGetHe3SetpointAndPid()[source]

Read the He3 temperature setpoint and PID values from the controller.

Returns :

float :

The setpoint for the He3 pot.

float :

The proportional band value for the controller.

float :

The integral action time for the controller.

float :

The derivative action time for the controller.

directGetTemperatureHe3()[source]

Read the He3 pot temperature from the temperature controller.

Returns :

float :

The temperature of the He3 pot.

directGetTemperatureHeatSwitch()[source]

Read the heat switch temperature from the temperature controller.

Returns :

float :

The temperature of the heat switch.

directGetTemperatureIntPlate()[source]

Read the intermediate plate temperature from the controller.

Returns :

float :

The temperature of the intermediate plate.

directGetTemperatureMagnet()[source]

Read the magnet temperature from the temperature controller.

Returns :

float :

The temperature of the magnet plate.

directGetTemperaturePT1Plate()[source]

Read the PT 1 plate temperature from the temperature controller.

Returns :

float :

The temperature of the PT1 plate.

directGetTemperaturePT2Plate()[source]

Read the PT 2 plate temperature from the temperature controller.

Returns :

float :

The temperature of PT 2 plate.

directGetTemperatureSorb()[source]

Read the sorb temperature from the temperature controller.

Returns :

float :

The temperature of the sorb.

finalize()[source]

Finalize the Oxford vector magnet system.

getActions()[source]

Return the list of supported actions.

getField()[source]

Get the z-component of the magnetic field.

Returns :

float :

The z-component of the magnetic field in Tesla.

getFieldCartesian()[source]

Get the field vector in Cartesian coordinates.

Returns :

float :

The x-component of the magnetic field vector.

float :

The y-component of the magnetic field vector.

float :

The z-component of the magnetic field vector.

getFieldRampProportion()[source]

Get the magnetic field ramp rate proportion.

Returns :

float :

The ratio of the desired ramp rate to the maximum ramp rate. The actual rate used for any given magnet sweep will be such that all power supplies reach the target at the same time, limited by the power supply with the lowest maximum ramp rate, which will be multiplied by proportion.

getFieldRampRates()[source]

Get the magnetic field ramp rates.

Returns :

float :

The ramp rate for the x-component of the magnetic field in Tesla/min.

float :

The ramp rate for the y-component of the magnetic field in Tesla/min.

float :

The ramp rate for the z-component of the magnetic field in Tesla/min.

getFieldSetpoints()[source]

Get the magnetic field setpoints.

Returns :

float :

The magnetic field setpoint in the x-direction in Tesla.

float :

The magnetic field setpoint in the y-direction in Tesla.

float :

The magnetic field setpoint in the z-direction in Tesla.

getFieldSpherical()[source]

Get the field vector in spherical coordinates.

Returns :

float :

The magnitude of the magnetic field vector.

float :

The azimuthal angle of the magnetic field vector, measured in degrees down from the positive z-axis.

float :

The polar angle of the magnetic field vector, measured in degrees counter-clockwise from the positive x-axis.

getInformation()[source]

Return the vector magnet system’s information string.

getTemperature()[source]

Return the temperature of the He3 pot.

Returns :

float :

The temperature of the He3 pot in Kelvin.

initialize()[source]

Initialize the Oxford vector magnet system.

isFieldAtSetpoint()[source]

Return whether the fields have reached the setpoints.

classmethod isSingleton()[source]

Return whether at most one instance of the instrument may exist.

Returns :

bool :

Whether only zero or one instance of the instrument may exist.

pauseField()[source]

Pause the field sweep.

procedureCondense()[source]

Condense the He3.

procedureCooldown()[source]

Perform the system initial cooldown sequence.

procedurePrecondense()[source]

Prepare to condense the helium.

procedureRecondense()[source]

Recondense the cryostat.

procedureRunToTemp(target)[source]

Run the cryostat to the desired temperature.

Parameters :

target : float

The desired temperature for the He3 pot in Kelvin.

procedureSetTemp(target)[source]

Enter a temperature setpoint.

Parameters :

target : float

The desired temperature for the He3 pot in Kelvin.

setField(field, block='yes')[source]

Set the z-component of the magnetic field.

Parameters :

field : float

The desired z-component of the magnetic field in Tesla.

setFieldAzimuthal(azimuthalAngle, block)[source]

Set the magnitude of the magnetic field.

Parameters :

azimuthalAngle : float

The new azimuthal angle for the field vector, measured in degrees down from the positive z-axis.

block : str

A string, either ‘Yes’ or ‘No’, indicating whether to block the sequence until the desired field is reached.

setFieldCartesian(fieldX, fieldY, fieldZ, block)[source]

Set the magnetic field to a specified value in Cartesian coordinates.

Parameters :

fieldX : float

The x-component of the field in Tesla.

fieldY : float

The y-component of the field in Tesla.

fieldZ : float

The z-component of the field in Tesla.

block : str

A string, either ‘Yes’ or ‘No’, indicating whether to block the sequence until the desired field is reached.

setFieldMagnitude(field, block)[source]

Set the magnitude of the magnetic field.

Parameters :

field : float

The new magnitude for the magnetic field in Tesla.

block : str

A string, either ‘Yes’ or ‘No’, indicating whether to block the sequence until the desired field is reached.

setFieldNoWaitAzimuthal(azimuthalAngle)[source]

Set the azimuthal angle of the magnetic field.

Parameters :

azimuthalAngle : float

The desired azimuthal angle for the magnetic field, measured in degrees down from the positive z-axis.

setFieldNoWaitCartesian(fieldX, fieldY, fieldZ)[source]

Set the magnetic field to a specified value in Cartesian coordinates.

Parameters :

fieldX : float

The x-component of the field in Tesla.

fieldY : float

The y-component of the field in Tesla.

fieldZ : float

The z-component of the field in Tesla.

setFieldNoWaitMagnitude(field)[source]

Set the magnitude of the magnetic field.

Parameters :

field : float

The new magnitude for the magnetic field in Tesla.

setFieldNoWaitPolar(polarAngle)[source]

Set the polar angle of the magnetic field.

Parameters :

polarAngle : float

The desired polar angle for the magnetic field, measured in degrees counter-clockwise from the positive x-axis.

setFieldNoWaitSpherical(magnitude, azimuthalAngle, polarAngle)[source]

Set the magnetic field in spherical coordinates.

Parameters :

magnitude : float

The magnitude of the magnetic field in Tesla.

azimuthalAngle : float

The desired azimuthal angle, measured in degrees downward from the positive z-axis.

polarAngle : float

The desired polar angle, measured in degrees counter-clockwise from the positive x-axis.

setFieldNoWaitX(field)[source]

Set the x-component of the magnetic field.

Parameters :

field : float

The new value of the x-component of the magnetic field in Tesla.

setFieldNoWaitY(field)[source]

Set the y-component of the magnetic field.

Parameters :

field : float

The new value of the y-component of the magnetic field in Tesla.

setFieldNoWaitZ(field)[source]

Set the z-component of the magnetic field.

Parameters :

field : float

The new value of the z-component of the magnetic field in Tesla.

setFieldPolar(polarAngle, block)[source]

Set the magnitude of the magnetic field.

Parameters :

polarAngle : float

The new polar angle for the field vector, measured in degrees counter-clockwise from the positive x-axis.

block : str

A string, either ‘Yes’ or ‘No’, indicating whether to block the sequence until the desired field is reached.

setFieldRampProportion(proportion)[source]

Set the magnetic field ramp rate proportion.

Parameters :

proportion : float

The ratio of the desired ramp rate to the maximum ramp rate. The actual rate used for any given magnet sweep will be such that all power supplies reach the target at the same time, limited by the power supply with the lowest maximum ramp rate, which will be multiplied by proportion.

setFieldSpherical(magnitude, azimuthalAngle, polarAngle, block)[source]

Set the magnetic field in spherical coordinates.

Parameters :

magnitude : float

The magnitude of the magnetic field in Tesla.

azimuthalAngle : float

The desired azimuthal angle, measured in degrees downward from the positive z-axis.

polarAngle : float

The desired polar angle, measured in degrees counter-clockwise from the positive x-axis.

block : str

A string, either ‘Yes’ or ‘No’, indicating whether to block the sequence until the desired field is reached.

setFieldX(field, block)[source]

Set the x-component of the magnetic field.

Parameters :

field : float

The new x-component for the magnetic field.

block : str

A string, either ‘Yes’ or ‘No’, indicating whether to block the sequence until the desired field is reached.

setFieldY(field, block)[source]

Set the y-component of the magnetic field.

Parameters :

field : float

The new x-component for the magnetic field.

block : str

A string, either ‘Yes’ or ‘No’, indicating whether to block the sequence until the desired field is reached.

setFieldZ(field, block)[source]

Set the z-component of the magnetic field.

Parameters :

field : float

The new x-component for the magnetic field.

block : str

A string, either ‘Yes’ or ‘No’, indicating whether to block the sequence until the desired field is reached.

setMode(newMode)[source]

Set the vector magnet system reading mode.

Parameters :

newMode : int

An integer (MODE_DIRECT or MODE_THROUGH_MONITOR) to specify the reading mode. If it is MODE_DIRECT, all data come directly from the temperature controller. If it is MODE_THROUGH_MONITOR, only the temperature monitor triggers direct readings from the controller, and other requests from data receive the most recent readings so triggered.

setTemperature(temp)[source]

Set the temperature for the He3 pot.

Parameters :

temp : float

The desired temperature for the He3 pot in Kelvin.

unpauseField()[source]

Resume the field sweep.

waitForField(readMethod)[source]

Wait until the field has reached its target.

Parameters :

readMethod : instancemethod

The method to use to update information about the current fields. It should probably be either directGetFieldCartesian or directGetFieldSpherical.

Functions

src.instruments.vector_magnet.searchPIDTable(targetTemp, pidTable)[source]

Return the PID values appropriate for a specified setpoint.

Parameters :

targetTemp : float

The setpoint for which PID values are desired.

pidTable : list of tuple of float

The PID table for the appropriate sensor. Each tuple should consist of four values: the largest temperature for which the row applies and the values of the P, I, and D control terms.

Returns :

bool :

Whether the supplied PID table contains a row suitable for the specified setpoint.

tuple of float :

The PID values appropriate for the specified setpoint if such values are contained in the table. Otherwise, the PID values associated with the largest upper-bound temperature in the table.

src.instruments.vector_magnet.searchStabilityTable(targetTemp, stabilityTable)[source]

Return the allowed deviation for the specified setpoint.

Parameters :

targetTemp : float

The desired temperature setpoint in Kelvin.

stabilityTable : list of tuple

A list of tuples, where each tuple contains three elements: a float indicating the maximum temperature for which the row is applicable, a float indicating the maximum deviation, and a string indicating how the maximum deviation should be interpreted. If the string is ‘value’, the deviation will be interpreted as an absolute value; otherwise, it will be interpreted as a fraction of the setpoint.

Returns :

float :

The maximum deviation from the setpoint a system can exhibit while still be considered stable.

Table Of Contents

Previous topic

The keithley2182a module

Next topic

The keithley6220 module

This Page