hyperfine.musr.meissner.DepthAveragingCalculator

class hyperfine.musr.meissner.DepthAveragingCalculator(file_name: str, interpolation: str = 'linear')[source]

Bases: object

Calculator for convolving a Meissner screening profile with a muon stopping distribution.

Class for handling the details required for calculating the mean magnetic field at a given muon implantation energy by convolving a Meissner screening profile with the corresponding stopping distribution.

This instance assumes local electrodynamics for the screening profile.

__init__(file_name: str, interpolation: str = 'linear') None[source]

Constructor.

Parameters:
  • file_name – Name of the CSV containing the stopping profile coefficients.

  • interpolation – Type of interpolation scheme used for the stopping profile coefficients.

Methods

__init__(file_name[, interpolation])

Constructor.

calculate_mean_depth(energy_keV)

Calculate the mean muon stopping depth for a given implantation energy.

calculate_mean_field(energy_keV, ...)

Helper function for calculating the mean magnetic field below the surface.

london_ms(z, applied_field_G, dead_layer_nm, ...)

London model for the Meissner screening profile.

stopping_distribution(depth_nm, energy_keV)

Probability density function for the muon stopping distribution.

__call__(energy_keV: Sequence[float], applied_field_G: Annotated[float, slice(0, None, None)], dead_layer_nm: Annotated[float, slice(0, None, None)], penetration_depth_nm: Annotated[float, slice(0, None, None)], demagnetization_factor: Annotated[float, slice(0, None, None)]) Sequence[float][source]

Functor for calculating the mean magnetic field below the surface.

Can accept arrays of energies as input!

Parameters:
  • energy_keV – Muon implantation energy (keV).

  • applied_field_G – Applied magnetic field (G).

  • dead_layer_nm – Thickness of the non-superconducting dead layer (nm).

  • penetration_depth_nm – Effective magnetic penetration depth (nm).

  • demagnetization_factor – Effective demagnetization factor.

Returns:

The mean magnetic field below the surface.

__init__(file_name: str, interpolation: str = 'linear') None[source]

Constructor.

Parameters:
  • file_name – Name of the CSV containing the stopping profile coefficients.

  • interpolation – Type of interpolation scheme used for the stopping profile coefficients.

_london(z: Sequence[float], applied_field_G: Annotated[float, slice(0, None, None)], dead_layer_nm: Annotated[float, slice(0, None, None)], penetration_depth_nm: Annotated[float, slice(0, None, None)], demagnetization_factor: Annotated[float, slice(0, 1, None)] = 0.0) Sequence[float][source]

London model for the Meissner screening profile.

Parameters:
  • z – Depth below the surface (nm).

  • applied_field_G – Applied magnetic field (G).

  • dead_layer_nm – Thickness of the non-superconducting dead layer (nm).

  • penetration_depth_nm – Effective magnetic penetration depth (nm).

  • demagnetization_factor – Effective demagnetization factor.

Returns:

The magnetic field value at depth z below the surface (G).

calculate_mean_depth(energy_keV: Annotated[float, slice(0, None, None)]) float[source]

Calculate the mean muon stopping depth for a given implantation energy.

The stopping distribution is assumed to follow a weighted sum of two modified beta distributions.

Parameters:

energy_keV – Muon implantation energy (keV).

Returns:

The mean stopping depth (nm).

calculate_mean_field(energy_keV: float, applied_field_G: Annotated[float, slice(0, None, None)], dead_layer_nm: Annotated[float, slice(0, None, None)], penetration_depth_nm: Annotated[float, slice(0, None, None)], demagnetization_factor: Annotated[float, slice(0, 1, None)]) float[source]

Helper function for calculating the mean magnetic field below the surface.

Parameters:
  • energy_keV – Muon implantation energy (keV).

  • applied_field_G – Applied magnetic field (G).

  • dead_layer_nm – Thickness of the non-superconducting dead layer (nm).

  • penetration_depth_nm – Effective magnetic penetration depth (nm).

  • demagnetization_factor – Effective demagnetization factor.

Returns:

The mean magnetic field below the surface.

london_ms(z: Sequence[float], applied_field_G: Annotated[float, slice(0, None, None)], dead_layer_nm: Annotated[float, slice(0, None, None)], penetration_depth_nm: Annotated[float, slice(0, None, None)], demagnetization_factor: Annotated[float, slice(0, 1, None)] = 0.0) Sequence[float][source]

London model for the Meissner screening profile.

Parameters:
  • z – Depth below the surface (nm).

  • applied_field_G – Applied magnetic field (G).

  • dead_layer_nm – Thickness of the non-superconducting dead layer (nm).

  • penetration_depth_nm – Effective magnetic penetration depth (nm).

  • demagnetization_factor – Effective demagnetization factor.

Returns:

The magnetic field value at depth z below the surface (G).

stopping_distribution(depth_nm: Sequence[float], energy_keV: Annotated[float, slice(0, None, None)]) Sequence[float][source]

Probability density function for the muon stopping distribution.

The distribution is assumed to follow a weighted sum of two modified beta distributions.

Parameters:
  • depth_nm – Depth below the surface (nm).

  • energy_keV – Muon implantation energy (keV).

Returns:

The probability density at depth_nm.