hyperfine.musr.meissner.DepthAveragingCalculator
- class hyperfine.musr.meissner.DepthAveragingCalculator(file_name: str, interpolation: str = 'linear')[source]
Bases:
objectCalculator 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.