# devices.quantumdesign:PPMS


Class for interacting with the Quantum Design PPMS.


Usage

``` python
devices.quantumdesign:PPMS(
    host,
    max_field,
    max_field_rate,
    max_temperature=400,
)
```


The communication is handled by the MultiPyVu library.


## Methods

| Name | Description |
|----|----|
| [__init__()](#__init__) | Initialize a PPMS device. |
| [check_field()](#check_field) | Check if the magnetic field is within allowable limits. |
| [check_field_rate()](#check_field_rate) | Check and limit the field rate according to the currently set field. |
| [check_temperature()](#check_temperature) | Check if the given temperature is within the maximum allowed range. |
| [close()](#close) | Close the connection to the PPMS client. |
| [get_chamber_status()](#get_chamber_status) | Retrieve the current chamber status as a string. |
| [get_field()](#get_field) | Retrieve the current magnetic field strength in Tesla. |
| [get_field_status()](#get_field_status) | Retrieve the status of the magnetic field. |
| [get_temperature()](#get_temperature) | Retrieve the current temperature in Kelvin. |
| [get_temperature_status()](#get_temperature_status) | Retrieve the status of the temperature. |
| [is_field_stable()](#is_field_stable) | Check if the magnetic field is stable. |
| [is_temperature_stable()](#is_temperature_stable) | Check if the temperature is stable. |
| [oersted2tesla()](#oersted2tesla) | Convert magnetic field strength from Oersted to Tesla. |
| [set_field()](#set_field) | Set the magnetic field strength and optionally set it persistently. |
| [set_field_wait()](#set_field_wait) | Set the magnetic field strength and wait until it is reached. |
| [set_temperature()](#set_temperature) | Set the temperature setpoint. |
| [set_temperature_wait()](#set_temperature_wait) | Set the temperature and wait until it is reached. |
| [tesla2oersted()](#tesla2oersted) | Convert magnetic field strength from Tesla to Oersted. |

------------------------------------------------------------------------


### \_\_init\_\_()


Initialize a PPMS device.


Usage

``` python
__init__(
    host,
    max_field,
    max_field_rate,
    max_temperature=400,
)
```


#### Parameters


`host: str`  
The ip address and port where the device is located.

`max_field: float`  
The maximum magnetic field in Tesla.

`max_field_rate: float`  
The maximum magnetic field rate in Tesla/min.

`max_temperature: float = ``400`  
The maximum temperature in Kelvin. Defaults to 400.


------------------------------------------------------------------------


### check_field()


Check if the magnetic field is within allowable limits.


Usage

``` python
check_field(field)
```


Verifies whether the given field value is within the maximum allowable magnetic field strength defined by MAX_FIELD.


#### Parameters


`field: float`  
The magnetic field strength in Tesla to be checked.


#### Returns


`bool`  
True if the field is within the permissible range, False otherwise.


------------------------------------------------------------------------


### check_field_rate()


Check and limit the field rate according to the currently set field.


Usage

``` python
check_field_rate(rate)
```


If the current field rate is higher than the allowed maximum, it is set to the maximum allowed value.


#### Parameters


`rate: float`  
The desired magnetic field rate in Tesla/min.


#### Returns


`float`  
The adjusted magnetic field rate in Tesla/min, limited by MAX_FIELD_RATE.


------------------------------------------------------------------------


### check_temperature()


Check if the given temperature is within the maximum allowed range.


Usage

``` python
check_temperature(temperature)
```


#### Parameters


`temperature: float`  
Temperature in Kelvin.


#### Returns


`bool`  
True if the temperature is within the maximum allowed range, False otherwise.


------------------------------------------------------------------------


### close()


Close the connection to the PPMS client.


Usage

``` python
close()
```


------------------------------------------------------------------------


### get_chamber_status()


Retrieve the current chamber status as a string.


Usage

``` python
get_chamber_status()
```


Queries the MVclient for the current chamber status and returns the result as a string.


#### Returns


`str`  
Chamber status.


------------------------------------------------------------------------


### get_field()


Retrieve the current magnetic field strength in Tesla.


Usage

``` python
get_field()
```


Obtains the magnetic field strength from the MVclient, converts it from Oersted to Tesla, and returns the value.


#### Returns


`float`  
Magnetic field strength in Tesla.


------------------------------------------------------------------------


### get_field_status()


Retrieve the status of the magnetic field.


Usage

``` python
get_field_status()
```


#### Returns


`int`  
Status of the magnetic field.


------------------------------------------------------------------------


### get_temperature()


Retrieve the current temperature in Kelvin.


Usage

``` python
get_temperature()
```


#### Returns


`float`  
Current temperature in Kelvin.


------------------------------------------------------------------------


### get_temperature_status()


Retrieve the status of the temperature.


Usage

``` python
get_temperature_status()
```


#### Returns


`int`  
Status of the temperature.


------------------------------------------------------------------------


### is_field_stable()


Check if the magnetic field is stable.


Usage

``` python
is_field_stable()
```


#### Returns


`bool`  
True if the field is stable, False otherwise.


------------------------------------------------------------------------


### is_temperature_stable()


Check if the temperature is stable.


Usage

``` python
is_temperature_stable()
```


#### Returns


`bool`  
True if the temperature is stable, False otherwise.


------------------------------------------------------------------------


### oersted2tesla()


Convert magnetic field strength from Oersted to Tesla.


Usage

``` python
oersted2tesla(oersted)
```


#### Parameters


`oersted: float`  
Magnetic field strength in Oersted.


#### Returns


`tesla: float`  
Magnetic field strength in Tesla.


#### Notes

1 Oe = 1e-4 T

------------------------------------------------------------------------


### set_field()


Set the magnetic field strength and optionally set it persistently.


Usage

``` python
set_field(
    setpoint,
    rate,
    persistent=False,
)
```


Sets the magnetic field strength to the given setpoint and, if requested, sets it persistently. The field rate is checked against the maximum allowable value and the magnetic field strength is converted from Tesla to Oersted internally.


#### Parameters


`setpoint: float`  
The magnetic field strength to be set in Tesla.

`rate: float`  
The rate at which the magnetic field should change, in Tesla/min.

`persistent: bool = ``False`  
If True, the magnetic field is set persistently. Defaults to False.


------------------------------------------------------------------------


### set_field_wait()


Set the magnetic field strength and wait until it is reached.


Usage

``` python
set_field_wait(
    setpoint,
    persistent=False,
)
```


Calls `set_field` and then waits until the magnetic field strength has reached the setpoint. The waiting time is limited to 30 seconds and the function returns after this time has elapsed or if the magnetic field strength has reached the setpoint, whichever occurs first.


#### Parameters


`setpoint: float`  
The magnetic field strength to be set in Tesla.

`persistent: bool = ``False`  
If True, the magnetic field is set persistently. Defaults to False.


------------------------------------------------------------------------


### set_temperature()


Set the temperature setpoint.


Usage

``` python
set_temperature(
    setpoint,
    rate=1,
)
```


Checks if the given setpoint is within the maximum allowable temperature range and, if so, sets the temperature setpoint using the MVclient. If the rate parameter is given, it is used to set the temperature ramp rate. Otherwise, the currently set ramp rate is used.


#### Parameters


`setpoint: float`  
The temperature setpoint in Kelvin.

`rate: float(optional) = ``1`  
The temperature ramp rate in Kelvin per minute, default = 1.


------------------------------------------------------------------------


### set_temperature_wait()


Set the temperature and wait until it is reached.


Usage

``` python
set_temperature_wait(setpoint)
```


#### Parameters


`setpoint: float`  
The temperature to set in Kelvin.


------------------------------------------------------------------------


### tesla2oersted()


Convert magnetic field strength from Tesla to Oersted.


Usage

``` python
tesla2oersted(tesla)
```


#### Parameters


`tesla: float`  
Magnetic field strength in Tesla.


#### Returns


`oersted: float`  
Magnetic field strength in Oersted.


#### Notes

1 T = 1e4 Oe
