resins.models.panther_abins
The AbINS model of the PANTHER instrument.
All classes within are exposed for reference only and should not be instantiated directly. For
obtaining the resolution function of an instrument, please use the
resins.instrument.Instrument.get_resolution_function method.
- class resins.models.panther_abins.PantherAbINSModel(model_data: PantherAbINSModelData, e_init: float | None = None, **_)
Bases:
GaussianKernel1DMixin,SimpleBroaden1DMixin,InstrumentModelModel for the PANTHER instrument originating from the AbINS software.
Models the resolution as a function of energy transfer (frequencies) only, with the output model being a Gaussian. This is done by fitting three power-series polynomials (see
numpy.polynomial.polynomial.Polynomial) to the resolution curve, where the result of the sum of the polynomials is the width (sigma) of the Gaussian. Each polynomial can be of any degree and is given via theresins.models.polynomial.PolynomialModelData.The resolution is modelled as:
resolution = Polynomial(model_data.abs)(frequencies) + Polynomial(model_data.ei_dependence)(e_init) + Polynomial(model_data.ei_energy_product)(e_init * frequencies)
where
e_initis the initial energy,frequenciesis the energy transfer, andmodel_datais an instance ofPantherAbINSModelData.- Parameters:
- model_data
The data associated with the model for a given version of a given instrument.
- e_init
The incident energy in meV.
- Attributes:
- input
The names of the columns in the
omega_qarray expected by all computation methods, i.e. the names of the independent variables ([Q, w]) that the model models.data_classData for the
PantherAbINSModelmodel.- abs
numpy.polynomial.polynomial.Polynomial The energy transfer polynomial.
- ei_dependence
float The
e_initcontribution to the resolution.- ei_energy_product
numpy.polynomial.polynomial.Polynomial The energy transfer and
e_initproduct polynomial.citationThe citation for this model.
Methods
__call__(points, data, *meshes)Broadens the
dataon themeshes.broaden(points, data, mesh)Broadens the
dataon the fullmeshusing the straightforward scheme.get_characteristics(points)Computes the broadening width at each value of energy transfer given by
points.get_kernel(points, mesh)Computes the Gaussian kernel centered on zero on the provided
meshat each (energy transfer or momentum scalar) point inpoints.get_peak(points, mesh)Computes the Gaussian broadening peak on the provided
meshat each (energy transfer or momentum scalar) point inpoints.- data_class
alias of
PantherAbINSModelData
- get_characteristics(points: Float[np.ndarray, 'energy_transfer dimension=1']) dict[str, Float[np.ndarray, 'sigma']]
Computes the broadening width at each value of energy transfer given by
points.The model approximates the broadening using the Gaussian distribution, so the returned widths are in the form of the standard deviation (sigma).
- Parameters:
- points
The energy transfer in meV at which to compute the width in sigma of the kernel. This must be a
samplex 1 2D array wheresampleis the number of energy transfers.
- Returns:
characteristicsThe characteristics of the broadening function, i.e. the Gaussian width as sigma in meV.
- class resins.models.panther_abins.PantherAbINSModelData(*, function: str, citation: list[str], defaults: dict[str, int | float], restrictions: dict[str, list[int | float], set[int | float]], abs: list[float], ei_dependence: list[float], ei_energy_product: list[float])
Bases:
ModelDataData for the
PantherAbINSModelmodel.- Attributes:
- function
The name of the function, i.e. the alias for
PantherAbINSModel.- citation
The citation for the model. Please use this to look up more details and cite the model.
- restrictions
All constraints that the model places on the settings. If the value is a
list, this signifies therangestyle (start, stop, step) tuple, and if it is aset, it is a set of explicitly allowed values.- defaults
The default values for the settings, used when a value is not provided when creating the model.
- abs
Polynomial coefficients for the energy transfer (frequencies) polynomial.
- ei_dependence
Polynomial coefficients for the initial energy polynomial.
- ei_energy_product
Polynomial coefficients for the product of initial energy and energy transfer (frequencies) polynomial.