Skip to content
Snippets Groups Projects
Bessel.py 982 B
Newer Older
Wu's avatar
Wu committed
# Mantid Repository : https://github.com/mantidproject/mantid
#
# Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
#     NScD Oak Ridge National Laboratory, European Spallation Source
#     & Institut Laue - Langevin
Wu's avatar
Wu committed
# SPDX - License - Identifier: GPL - 3.0 +
# pylint: disable=invalid-name, anomalous-backslash-in-string, attribute-defined-outside-init
Wu's avatar
Wu committed

from mantid.api import IFunction1D, FunctionFactory
Wu's avatar
Wu committed
import numpy as np
from scipy import special as sp

Wu's avatar
Wu committed

Wu's avatar
Wu committed
class Bessel(IFunction1D):

Wu's avatar
Wu committed
    def category(self):
        return "Muon"
Wu's avatar
Wu committed

Wu's avatar
Wu committed
    def init(self):
Wu's avatar
Wu committed
        self.declareParameter("A0", 1, 'Amplitude')
        self.declareParameter("Phi", 0.1, 'Phase(rad)')
        self.declareParameter("Nu", 0.1, 'Frequency(MHz)')
Wu's avatar
Wu committed

    def function1D(self, x):
        A0 = self.getParameterValue("A0")
Wu's avatar
Wu committed
        Phi = self.getParameterValue("Phi")
        Nu = self.getParameterValue("Nu")
Wu's avatar
Wu committed
        return A0 * sp.j0(2 * np.pi * Nu * x + Phi)
Wu's avatar
Wu committed

Wu's avatar
Wu committed
FunctionFactory.subscribe(Bessel)