Van der Pauw module¶
Van der Pauw resistivity measurement.
physicslab.electricity.Resistivity.from_sheet_resistance
method.Geometry
.-
physicslab.experiment.van_der_pauw.
process
(data, thickness=None)[source]¶ Bundle method.
Parameter
data
must include geometry voltage and current. SeeColumns
for details and column names.The optional parameter allows to calculate additional quantities: resistivity and conductivity.
Supplying None for
data
returnspandas.Series
of the same columns with values being units.- Parameters
data (pandas.DataFrame or None) – Measured data. If None, return units instead
thickness (float, optional) – Sample dimension perpendicular to the plane marked by the electrical contacts, defaults to None
- Returns
Derived quantities listed in
Columns.process()
or units- Return type
-
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.
-
static
square
(Rh, Rv)[source]¶ Compute sheet resistance from the given resistances.
Accurate only for square sample: \(R_h = R_v\).
-
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)
-
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.
-
static
-
class
physicslab.experiment.van_der_pauw.
Columns
[source]¶ Bases:
physicslab.utility._ColumnsBase
Column names.
-
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
-
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
andHorizontal
.-
classmethod
parse
(text)[source]¶ Parse string to
Geometry
.- Parameters
text (str) – Any valid permutation of digits 1-4, e.g.
4123
orvertical
orhorizontal
- Raises
ValueError – If there is no corresponding
Geometry
- Returns
Enum corresponding to
text
- Return type
-
reverse_polarity
()[source]¶ Reverse polarity of voltage and current.
- Returns
Reversed geometry
- Return type
-
is_horizontal
()[source]¶ Find whether the geometry describes horizontal configuration.
- Returns
Is horizontal?
- Return type
-
classmethod
-
physicslab.experiment.van_der_pauw.
plot
(data_list, results)[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
data_list (list[pandas.DataFrame]) –
results (pandas.DataFrame) – Analysis data from
physicslab.experiment.process()
- Returns
Same objects as from
matplotlib.pyplot.subplots()
. Axes are: grid axis array, right plot left axis, right plot right axis- Return type