epyr.physics.conversions

Direct conversion functions for EPR spectroscopy

Provides simple, direct conversion functions between common EPR units: MHz, mT, cm-1, and related energy/field conversions.

Functions

cm_inv_to_mhz(wavenumber_cm_inv)

Convert wavenumber in cm^-1 to frequency in MHz.

conversion_examples()

Show practical examples of EPR unit conversions.

energy_conversion_table([energies_cm_inv])

Log an energy conversion table covering cm⁻¹, MHz, GHz, eV, K, meV.

frequency_field_conversion_table([...])

Log a frequency-vs-field conversion table for common EPR bands.

mhz_to_cm_inv(frequency_mhz)

Convert frequency in MHz to wavenumber in cm^-1.

mhz_to_mt(frequency_mhz[, g_factor])

Convert frequency in MHz to magnetic field in mT.

mt_to_mhz(field_mt[, g_factor])

Convert magnetic field in mT to frequency in MHz.

epyr.physics.conversions.mhz_to_mt(frequency_mhz, g_factor=None)[source]

Convert frequency in MHz to magnetic field in mT.

Uses the fundamental EPR relation: B = h*nu / (g*mu_B)

Parameters:

frequency_mhzfloat or array

Frequency in MHz

g_factorfloat or array, optional

g-factor (defaults to free electron g-factor = 2.002319…)

Returns:

float or array

Magnetic field in mT

Examples:

>>> # X-band EPR frequency
>>> field = mhz_to_mt(9500)  # 9.5 GHz
>>> print(f"Field: {field:.1f} mT")
>>> # Different g-factors
>>> fields = mhz_to_mt(9500, g_factor=[2.000, 2.005, 2.010])
>>> print(f"Fields: {fields}")
Parameters:
Return type:

float | ndarray

epyr.physics.conversions.mt_to_mhz(field_mt, g_factor=None)[source]

Convert magnetic field in mT to frequency in MHz.

Uses the fundamental EPR relation: nu = g*mu_B*B / h

Parameters:

field_mtfloat or array

Magnetic field in mT

g_factorfloat or array, optional

g-factor (defaults to free electron g-factor = 2.002319…)

Returns:

float or array

Frequency in MHz

Examples:

>>> # What frequency for 340 mT field?
>>> freq = mt_to_mhz(340)
>>> print(f"Frequency: {freq:.1f} MHz")
>>> # Array of fields
>>> freqs = mt_to_mhz([100, 200, 300, 400])
>>> print(f"Frequencies: {freqs}")
Parameters:
Return type:

float | ndarray

epyr.physics.conversions.cm_inv_to_mhz(wavenumber_cm_inv)[source]

Convert wavenumber in cm^-1 to frequency in MHz.

Uses the relation: nu = c * wavenumber where c is the speed of light.

Parameters:

wavenumber_cm_invfloat or array

Wavenumber in cm^-1

Returns:

float or array

Frequency in MHz

Examples:

>>> # Convert 1000 cm^-1 to MHz
>>> freq = cm_inv_to_mhz(1000)
>>> print(f"Frequency: {freq:.3e} MHz")
>>> # Array conversion
>>> freqs = cm_inv_to_mhz([100, 500, 1000, 2000])
>>> print(f"Frequencies: {freqs}")
Parameters:

wavenumber_cm_inv (float | ndarray)

Return type:

float | ndarray

epyr.physics.conversions.mhz_to_cm_inv(frequency_mhz)[source]

Convert frequency in MHz to wavenumber in cm^-1.

Uses the relation: wavenumber = nu / c where c is the speed of light.

Parameters:

frequency_mhzfloat or array

Frequency in MHz

Returns:

float or array

Wavenumber in cm^-1

Examples:

>>> # Convert 30000 MHz (30 GHz) to cm^-1
>>> wn = mhz_to_cm_inv(30000)
>>> print(f"Wavenumber: {wn:.3f} cm^-1")
>>> # Array conversion
>>> wns = mhz_to_cm_inv([1000, 5000, 10000, 30000])
>>> print(f"Wavenumbers: {wns}")
Parameters:

frequency_mhz (float | ndarray)

Return type:

float | ndarray

epyr.physics.conversions.frequency_field_conversion_table(frequencies_ghz=None, g_factors=None)[source]

Log a frequency-vs-field conversion table for common EPR bands.

Parameters:
  • frequencies_ghz (list of float, optional) – Microwave frequencies in GHz. Default [1, 3, 9.5, 34, 95, 263] (L, S, X, Q, W, J bands).

  • g_factors (list of float, optional) – Electron g-factors to use for the conversion. Default [2.000, 2.002, 2.005, 2.010].

Returns:

Output goes through the module logger; nothing is returned.

Return type:

None

Examples

>>> from epyr.physics import frequency_field_conversion_table
>>> frequency_field_conversion_table(frequencies_ghz=[9.5])  # X-band only
epyr.physics.conversions.energy_conversion_table(energies_cm_inv=None)[source]

Log an energy conversion table covering cm⁻¹, MHz, GHz, eV, K, meV.

Parameters:

energies_cm_inv (list of float, optional) – Wavenumbers in cm⁻¹. Default [1, 10, 100, 1000, 5000, 10000], covering the typical EPR / zero-field-splitting range.

Return type:

None

Examples

>>> from epyr.physics import energy_conversion_table
>>> energy_conversion_table(energies_cm_inv=[1, 1000])
epyr.physics.conversions.conversion_examples()[source]

Show practical examples of EPR unit conversions.