hyperfine.musr.meissner.DepthAveragingCalculatorNL

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

Bases: DepthAveragingCalculator

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 nonlocal 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, ...)

Calculate average magnetic field at a given implantation energy.

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

London model for the Meissner screening profile.

mean_field_integrand(z, energy_keV, ...)

Integrand for calculating the mean magnetic field at a given implantation energy.

pippard_ms(depth_nm, applied_field_G, ...)

Pippard's nonlocal screening model.

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)], london_penetration_depth_nm: Annotated[float, slice(0, None, None)], bcs_coherence_length_nm: Annotated[float, slice(0, None, None)], mean_free_path_nm: Annotated[float, slice(0, None, None)], demagnetization_factor: Annotated[float, slice(0, 1, None)], temperature_K: Annotated[float, slice(0, None, None)], critical_temperature_K: Annotated[float, slice(0, None, None)], gap_0K_eV: Annotated[float, slice(0, None, None)]) Sequence[float][source]

Calculate average magnetic field at a given implantation energy.

Functor version!

Parameters:
  • energy_keV – Implantation energy (keV).

  • applied_field_G – Applied magnetic field (G).

  • dead_layer_nm – Non-superconducting dead layer (nm).

  • london_penetration_depth_nm – London penetration depth (nm).

  • bcs_coherence_length_nm – BCS coherence length (nm).

  • mean_free_path_nm – Electron mean-free-path (nm).

  • demagnetization_factor – Effective demagnetization factor.

  • temperature_K – Absolute temperature (K).

  • critical_temperature_K – Superconducting transition temperature (K).

  • gap_0K_eV – Superconducting gap energy at 0 K (eV).

Returns:

The average magnetic field at a given implantation energy.

__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]

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

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)], london_penetration_depth_nm: Annotated[float, slice(0, None, None)], bcs_coherence_length_nm: Annotated[float, slice(0, None, None)], mean_free_path_nm: Annotated[float, slice(0, None, None)], demagnetization_factor: Annotated[float, slice(0, 1, None)], temperature_K: Annotated[float, slice(0, None, None)], critical_temperature_K: Annotated[float, slice(0, None, None)], gap_0K_eV: Annotated[float, slice(0, None, None)]) float[source]

Calculate average magnetic field at a given implantation energy.

Parameters:
  • energy_keV – Implantation energy (keV).

  • applied_field_G – Applied magnetic field (G).

  • dead_layer_nm – Non-superconducting dead layer (nm).

  • london_penetration_depth_nm – London penetration depth (nm).

  • bcs_coherence_length_nm – BCS coherence length (nm).

  • mean_free_path_nm – Electron mean-free-path (nm).

  • demagnetization_factor – Effective demagnetization factor.

  • temperature_K – Absolute temperature (K).

  • critical_temperature_K – Superconducting transition temperature (K).

  • gap_0K_eV – Superconducting gap energy at 0 K (eV).

Returns:

The average magnetic field at a given implantation energy (G).

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]

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).

mean_field_integrand(z: float, energy_keV: float, applied_field_G: Annotated[float, slice(0, None, None)], dead_layer_nm: Annotated[float, slice(0, None, None)], london_penetration_depth_nm: Annotated[float, slice(0, None, None)], bcs_coherence_length_nm: Annotated[float, slice(0, None, None)], mean_free_path_nm: Annotated[float, slice(0, None, None)], demagnetization_factor: Annotated[float, slice(0, 1, None)], temperature_K: Annotated[float, slice(0, None, None)], critical_temperature_K: Annotated[float, slice(0, None, None)], gap_0K_eV: Annotated[float, slice(0, None, None)]) float[source]

Integrand for calculating the mean magnetic field at a given implantation energy.

Parameters:
  • z – Depth (nm).

  • energy_keV – Implantation energy (keV).

  • applied_field_G – Applied magnetic field (G).

  • dead_layer_nm – Non-superconducting dead layer (nm).

  • london_penetration_depth_nm – London penetration depth (nm).

  • bcs_coherence_length_nm – BCS coherence length (nm).

  • mean_free_path_nm – Electron mean-free-path (nm).

  • demagnetization_factor – Effective demagnetization factor.

  • temperature_K – Absolute temperature (K).

  • critical_temperature_K – Superconducting transition temperature (K).

  • gap_0K_eV – Superconducting gap energy at 0 K (eV).

Returns:

Integrand for the average magnetic field at a given implantation energy (G).

pippard_ms(depth_nm: float, applied_field_G: Annotated[float, slice(0, None, None)], dead_layer_nm: Annotated[float, slice(0, None, None)], london_penetration_depth_nm: Annotated[float, slice(0, None, None)], bcs_coherence_length_nm: Annotated[float, slice(0, None, None)], mean_free_path_nm: Annotated[float, slice(0, None, None)], demagnetization_factor: Annotated[float, slice(0, 1, None)], temperature_K: Annotated[float, slice(0, None, None)], critical_temperature_K: Annotated[float, slice(0, None, None)], gap_0K_eV: Annotated[float, slice(0, None, None)]) float[source]

Pippard’s nonlocal screening model.

Assumes specular reflection of electrons at the surface.

Parameters:
  • depth_nm – Depth (nm).

  • applied_field_G – Applied magnetic field (G).

  • dead_layer_nm – Non-superconducting dead layer (nm).

  • london_penetration_depth_nm – London penetration depth (nm).

  • bcs_coherence_length_nm – BCS coherence length (nm).

  • mean_free_path_nm – Electron mean-free-path (nm).

  • demagnetization_factor – Effective demagnetization factor.

  • temperature_K – Absolute temperature (K).

  • critical_temperature_K – Superconducting transition temperature (K).

  • gap_0K_eV – Superconducting gap energy at 0 K (eV).

Returns:

The field screening profile at a given depth (G).

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

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.