Van der Pauw module

Van der Pauw resistivity measurement.

Four-point measurement bypass resistance of ohmic contacts.
To find resistivity from sheet resistance, use physicslab.electricity.Resistivity.from_sheet_resistance method.
Pay special attention to enum Geometry.
physicslab.experiment.van_der_pauw.process(data, thickness=None)[source]

Bundle method.

Parameter data must include geometry voltage and current. See Columns for details and column names.

The optional parameter allows to calculate additional quantities: resistivity and conductivity.

Parameters
  • data (pandas.DataFrame) – Measured data

  • thickness (float, optional) – Sample dimension perpendicular to the plane marked by the electrical contacts, defaults to None

Returns

Derived quantities listed in Columns.output().

Return type

pandas.Series

class physicslab.experiment.van_der_pauw.Solve[source]

Van der Pauw formula and means to solve it.

static implicit_formula(Rs, Rh, Rv)[source]

Van der Pauw measurement implicit function.

The function reads:
\(func(R_s) = exp(-\pi R_v/R_s) + exp(-\pi R_h/R_s) - 1\).
This function’s roots give the solution.
Parameters
  • Rs (float) – Sheet resistance. Independent variable - MUST be first

  • Rh (float) – Horizontal resistance

  • Rv (float) – Vertical resistance

Returns

Quantification of this formula is meant to be zero

Return type

float

static square(Rh, Rv)[source]

Compute sheet resistance from the given resistances.

Accurate only for square sample: \(R_h = R_v\).

Parameters
  • Rh (float) – Horizontal resistance

  • Rv (float) – Vertical resistance

Returns

Sheet resistance

Return type

float

classmethod universal(Rh, Rv, Rs0)[source]

Compute sheet resistance from the given resistances.

Universal formula. Computation flow for square-like samples is as follows:

Rs0 = van_der_pauw.Solve.square(Rh, Rv)
Rs = van_der_pauw.Solve.universal(Rh, Rv, Rs0)
Parameters
  • Rh (float) – Horizontal resistance

  • Rv (float) – Vertical resistance

  • Rs0 (float) – Approximate value to start with.

Returns

Sheet resistance

Return type

float

classmethod analyze(Rh, Rv)[source]

Solve Solve.implicit_formula() to find sample’s sheet resistance. Also compute resistance symmetry ratio (always greater than one). The ratio assess how squarish the sample is, quality of ohmic contacts (small, symmetric) etc.

Parameters
  • Rh (float) – Horizontal resistance

  • Rv (float) – Vertical resistance

Returns

Sheet resistance and symmetry ratio

Return type

tuple(float, float)

class physicslab.experiment.van_der_pauw.Columns[source]

Bases: physicslab.utility._ColumnsBase

Column names.

classmethod mandatory()[source]

Get the current mandatory column names.

Return type

set(str)

classmethod output()[source]

Get the current values of the process() output column names.

Return type

lits(str)

class physicslab.experiment.van_der_pauw.Measurement(data)[source]

Van der Pauw resistances measurements.

Parameters

data (pandas.DataFrame) – Voltage-current pairs with respective geometries.

Raises

ValueError – If data is missing a mandatory column

analyze()[source]

Classify geometries into either Geometry.Horizontal or Geometry.Vertical. Then average respective hall resistances.

Additionally save Hall resistances to data.

Returns

Horizontal and vertical sheet resistances

Return type

tuple(float, float)

class physicslab.experiment.van_der_pauw.Geometry(value)[source]

Resistance measurement configuration Enum.

Legend: Rijkl = \(R_{ij,kl} = V_{kl}/I_{ij}\). The contacts are numbered from 1 to 4 in a counter-clockwise order beginning at the top-left contact. See Van der Pauw method at Wikipedia. There are two additional group values: Vertical and Horizontal.

reverse_polarity()[source]

Reverse polarity of voltage and current.

Returns

Reversed geometry

Return type

Geometry

shift(number=1, counterclockwise=True)[source]

Shift measuring pins counterclockwise.

Parameters
  • number (int, optional) – Number of pins to jump, defaults to 1

  • counterclockwise (bool, optional) – Direction of rotation, defaults to True

Returns

Rotated geometry

Return type

Geometry

is_horizontal()[source]

Find whether the geometry describes horizontal configuration.

Returns

Is horizontal?

Return type

bool

is_vertical()[source]

Find whether the geometry describes vertical configuration.

Returns

Is vertical?

Return type

bool

classify()[source]

Sort the Geometry to either vertical or horizontal group.

Returns

One of the two group configurations

Return type

Geometry

physicslab.experiment.van_der_pauw.plot(data_list, output)[source]

Plot individual measurements and results with quality coefficients.

For plotting details, see: https://matplotlib.org/stable/tutorials/intermediate/gridspec.html#a-complex-nested-gridspec-using-subplotspec

Parameters