|
Mantid
|
Inelastic part of the DiffSphere function. More...
#include <InelasticDiffSphere.h>
Public Member Functions | |
| const std::string | category () const override |
| overwrite IFunction base class methods More... | |
| InelasticDiffSphere () | |
| Constructor where parameters and attributes are declared. More... | |
| void | init () override |
| overwrite IFunction base class methods More... | |
| std::vector< double > | LorentzianCoefficients (double a) const |
| Calculate the (2l+1)*A_{n,l} coefficients for each Lorentzian. More... | |
| std::string | name () const override |
| overwrite IFunction base class methods More... | |
Public Member Functions inherited from Mantid::CurveFitting::Functions::FunctionQDepends | |
| virtual void | declareAttributes () override |
| declare commonattributes Q and WorkspaceIndex. More... | |
| virtual void | setAttribute (const std::string &attName, const Mantid::API::IFunction::Attribute &attValue) override |
| Update attributes WorkspaceIndex and Q according to certain precedence rules. More... | |
| void | setMatrixWorkspace (std::shared_ptr< const Mantid::API::MatrixWorkspace > workspace, size_t wi, double startX, double endX) override |
| Learn the Q values from the workspace, if possible, and update attribute Q accordingly. More... | |
Public Member Functions inherited from Mantid::API::IFunction1D | |
| virtual void | derivative (const FunctionDomain &domain, FunctionValues &values, const size_t order=1) const |
| virtual void | derivative1D (double *out, const double *xValues, const size_t nData, const size_t order) const |
| Function to calculate the derivatives of the data set. More... | |
| void | function (const FunctionDomain &domain, FunctionValues &values) const override |
| Evaluates the function for all arguments in the domain. More... | |
| virtual void | function1D (double *out, const double *xValues, const size_t nData) const =0 |
| Function you want to fit to. More... | |
| void | functionDeriv (const FunctionDomain &domain, Jacobian &jacobian) override |
| Derivatives of function with respect to active parameters. More... | |
| virtual void | functionDeriv1D (Jacobian *jacobian, const double *xValues, const size_t nData) |
| Derivatives of function with respect to active parameters. More... | |
Public Member Functions inherited from Mantid::API::IFunction | |
| std::string | asString () const |
| Writes itself into a string. More... | |
| bool | cancellationRequestReceived () const |
| Returns true if a progress reporter is set & evalaution has been requested to stop. More... | |
| virtual const std::vector< std::string > | categories () const |
| Function to return all of the categories that contain this algorithm. More... | |
| virtual const std::string | category () const |
| The categories the Fit function belong to. More... | |
| virtual const std::string | categorySeparator () const |
| Function to return the sperator token for the category string. More... | |
| virtual std::shared_ptr< IFunction > | clone () const |
| Virtual copy constructor. More... | |
| virtual int64_t | estimateNoProgressCalls () const |
| Returns an estimate of the number of progress reports a single evaluation of the function will have. More... | |
| virtual void | function (const FunctionDomain &domain, FunctionValues &values) const =0 |
| Evaluates the function for all arguments in the domain. More... | |
| virtual void | functionDeriv (const FunctionDomain &domain, Jacobian &jacobian) |
| Derivatives of function with respect to active parameters. More... | |
| IFunction () | |
| Constructor. More... | |
| IFunction (const IFunction &)=delete | |
| No copying. More... | |
| virtual void | initialize () |
| Iinialize the function. More... | |
| virtual void | iterationFinished () |
| Called at the end of an iteration. More... | |
| virtual void | iterationStarting () |
| Called at the start of each iteration. More... | |
| virtual std::string | name () const =0 |
| Returns the function's name. More... | |
| IFunction & | operator= (const IFunction &)=delete |
| No copying. More... | |
| virtual void | registerFunctionUsage (bool internal) |
| Registers the usage of the algorithm with the UsageService. More... | |
| void | reportProgress (const std::string &msg="") const |
| Reports progress with an optional message. More... | |
| virtual void | setMatrixWorkspace (std::shared_ptr< const API::MatrixWorkspace > workspace, size_t wi, double startX, double endX) |
| Set matrix workspace. More... | |
| void | setProgressReporter (std::shared_ptr< Kernel::ProgressBase > reporter) |
| Attach a progress reporter. More... | |
| virtual void | setWorkspace (std::shared_ptr< const Workspace > ws) |
| Set the workspace. More... | |
| virtual | ~IFunction () |
| Virtual destructor. More... | |
| bool | isFixed (size_t i) const |
| Check if a parameter i is fixed. More... | |
| bool | isFixedByDefault (size_t i) const |
| Check if a parameter i is fixed by default (not by user). More... | |
| void | fix (size_t i, bool isDefault=false) |
| Removes a parameter i from the list of active. More... | |
| void | unfix (size_t i) |
| Restores a declared parameter i to the active status. More... | |
| void | fixParameter (const std::string &name, bool isDefault=false) |
| Fix a parameter. More... | |
| void | unfixParameter (const std::string &name) |
| Free a parameter. More... | |
| void | fixAll (bool isDefault=false) |
| Fix all parameters. More... | |
| void | unfixAll () |
| Free all parameters. More... | |
| void | unfixAllDefault () |
| Free all parameters fixed by default. More... | |
| void | fixAllActive (bool isDefault=false) |
| Fix all active parameters. More... | |
| std::vector< std::string > | getParameterNames () const |
| Return a vector with all parameter names. More... | |
| virtual double | activeParameter (size_t i) const |
| Value of i-th active parameter. More... | |
| virtual void | setActiveParameter (size_t i, double value) |
| Set new value of i-th active parameter. More... | |
| virtual std::string | nameOfActive (size_t i) const |
| Returns the name of active parameter i. More... | |
| virtual std::string | descriptionOfActive (size_t i) const |
| Returns the name of active parameter i. More... | |
| bool | isActive (size_t i) const |
| Check if an active parameter i is actually active. More... | |
| virtual void | tie (const std::string &parName, const std::string &expr, bool isDefault=false) |
| Tie a parameter to other parameters (or a constant) More... | |
| virtual void | addTies (const std::string &ties, bool isDefault=false) |
| Add several ties. More... | |
| virtual void | applyTies () |
| Apply the ties. More... | |
| virtual void | removeTie (const std::string &parName) |
| Removes the tie off a parameter. More... | |
| virtual void | clearTies () |
| Remove all ties. More... | |
| virtual bool | removeTie (size_t i) |
| Removes i-th parameter's tie. More... | |
| virtual ParameterTie * | getTie (size_t i) const |
| Get the tie of i-th parameter. More... | |
| virtual bool | ignoreTie (const ParameterTie &) const |
| Ignore a tie. More... | |
| void | sortTies () |
| Put all ties in order in which they will be applied correctly. More... | |
| std::string | writeTies () const |
| Write a parameter tie to a string. More... | |
| virtual void | addConstraints (const std::string &str, bool isDefault=false) |
| Add a list of conatraints from a string. More... | |
| virtual void | addConstraint (std::unique_ptr< IConstraint > ic) |
| Add a constraint to function. More... | |
| virtual IConstraint * | getConstraint (size_t i) const |
| Get constraint of i-th parameter. More... | |
| virtual void | removeConstraint (const std::string &parName) |
| Remove a constraint. More... | |
| virtual void | setConstraintPenaltyFactor (const std::string &parName, const double &c) |
| Set a constraint penalty. More... | |
| std::string | writeConstraints () const |
| Write a parameter constraint to a string. More... | |
| virtual void | clearConstraints () |
| Remove all constraints. More... | |
| virtual size_t | nAttributes () const |
| Returns the number of attributes associated with the function. More... | |
| virtual std::vector< std::string > | getAttributeNames () const |
| Returns a list of attribute names. More... | |
| virtual std::string | attributeName (size_t index) const |
| Get name of ith attribute. More... | |
| virtual Attribute | getAttribute (const std::string &name) const |
| Return a value of attribute attName. More... | |
| virtual bool | hasAttribute (const std::string &name) const |
| Check if attribute attName exists. More... | |
| template<typename T > | |
| void | setAttributeValue (const std::string &attName, const T &value) |
| Set an attribute value. More... | |
| void | setAttributeValue (const std::string &attName, const char *value) |
| Overload for const char* values. More... | |
| void | setAttributeValue (const std::string &attName, const std::string &value) |
| Set string attribute by value. More... | |
| virtual std::shared_ptr< IFunction > | getFunction (size_t i) const |
| Returns the pointer to i-th child function. More... | |
| virtual std::size_t | nFunctions () const |
| Number of child functions. More... | |
| virtual void | setUpForFit () |
| Set up the function for a fit. More... | |
| virtual size_t | getValuesSize (const FunctionDomain &domain) const |
| Get number of values for a given domain. More... | |
| virtual size_t | getNumberDomains () const |
| Get number of domains required by this function. More... | |
| virtual std::vector< std::shared_ptr< IFunction > > | createEquivalentFunctions () const |
| Split this function (if needed) into a list of independent functions. More... | |
| void | calNumericalDeriv (const FunctionDomain &domain, Jacobian &jacobian) |
| Calculate numerical derivatives. More... | |
| double | calculateStepSize (const double parameterValue) const |
| Calculate step size for the given parameter value. More... | |
| void | setCovarianceMatrix (const std::shared_ptr< Kernel::Matrix< double > > &covar) |
| Set the covariance matrix. More... | |
| std::shared_ptr< const Kernel::Matrix< double > > | getCovarianceMatrix () const |
| Get the covariance matrix. More... | |
| void | setReducedChiSquared (double chi2) |
| Set the reduced chi^2. More... | |
| double | getReducedChiSquared () const |
| Get the reduced chi^2. More... | |
| void | setParallel (bool on) |
| Set the parallel hint. More... | |
| bool | isParallel () const |
| Get the parallel hint. More... | |
| void | setHandler (std::unique_ptr< FunctionHandler > handler) |
| Set a function handler. More... | |
| FunctionHandler * | getHandler () const |
| Return the handler. More... | |
| virtual void | setStepSizeMethod (const StepSizeMethod method) |
| Sets the StepSizeMethod to use when calculation the step size. More... | |
Public Member Functions inherited from Mantid::API::ParamFunction | |
| IFunction_sptr | getContainingFunction (const ParameterReference &ref) const |
| Get the containing function. More... | |
| IFunction_sptr | getContainingFunction (IFunction_sptr fun) |
| Get the containing function. More... | |
| double | getError (const std::string &name) const override |
| Get the fitting error for a parameter by name. More... | |
| double | getError (size_t i) const override |
| Get the fitting error for a parameter. More... | |
| double | getParameter (const std::string &name) const override |
| Get parameter by name. More... | |
| double | getParameter (size_t i) const override |
| Get i-th parameter. More... | |
| size_t | getParameterIndex (const ParameterReference &ref) const override |
| Return parameter index from a parameter reference. More... | |
| bool | hasParameter (const std::string &name) const override |
| Check if function has a parameter with this name. More... | |
| bool | isExplicitlySet (size_t i) const override |
| Checks if a parameter has been set explicitly. More... | |
| size_t | nParams () const override |
| Total number of parameters. More... | |
| std::string | parameterDescription (size_t i) const override |
| Returns the description of parameter i. More... | |
| size_t | parameterIndex (const std::string &name) const override |
| Returns the index of parameter name. More... | |
| std::string | parameterName (size_t i) const override |
| Returns the name of parameter i. More... | |
| ParamFunction () | |
| Default constructor. More... | |
| void | setError (const std::string &name, double err) override |
| Set the fitting error for a parameter by name. More... | |
| void | setError (size_t i, double err) override |
| Set the fitting error for a parameter. More... | |
| void | setParameter (const std::string &name, const double &value, bool explicitlySet=true) override |
| Set parameter by name. More... | |
| void | setParameter (size_t, const double &value, bool explicitlySet=true) override |
| Set i-th parameter. More... | |
| void | setParameterDescription (const std::string &name, const std::string &description) override |
| Set description of parameter by name. More... | |
| void | setParameterDescription (size_t, const std::string &description) override |
| Set i-th parameter description. More... | |
Protected Member Functions | |
| void | function1D (double *out, const double *xValues, const size_t nData) const override |
| Calculate function values on an energy domain. More... | |
Protected Member Functions inherited from Mantid::API::IFunction1D | |
| template<typename EvaluationMethod > | |
| void | calcNumericalDerivative1D (Jacobian *jacobian, EvaluationMethod func1D, const double *xValues, const size_t nData) |
| Calculate a numerical derivative for the 1D data. More... | |
| virtual void | histogram1D (double *out, double left, const double *right, const size_t nBins) const |
| Calculate histogram data for the given bin boundaries. More... | |
| virtual void | histogramDerivative1D (Jacobian *jacobian, double left, const double *right, const size_t nBins) const |
| Derivatives of the histogram1D with respect to active parameters. More... | |
Protected Member Functions inherited from Mantid::API::IFunction | |
| double | convertValue (double value, Kernel::Unit_sptr &outUnit, const std::shared_ptr< const MatrixWorkspace > &ws, size_t wsIndex) const |
| Convert a value from one unit (inUnit) to unit defined in workspace (ws) More... | |
| void | convertValue (std::vector< double > &values, Kernel::Unit_sptr &outUnit, const std::shared_ptr< const MatrixWorkspace > &ws, size_t wsIndex) const |
| Convert values from unit defined in workspace (ws) to outUnit. More... | |
| virtual void | declareParameters () |
| Override to declare function parameters. More... | |
| void | declareAttribute (const std::string &name, const API::IFunction::Attribute &defaultValue) |
| Declare a single attribute. More... | |
| void | declareAttribute (const std::string &name, const API::IFunction::Attribute &defaultValue, const Kernel::IValidator &validator) |
| Declare a single attribute with validator. More... | |
| void | checkAttributeName (const std::string &name) |
| Check Attribute to declare does not already exist. More... | |
| void | storeAttributeValue (const std::string &name, const API::IFunction::Attribute &value) |
| Store an attribute's value. More... | |
| void | storeReadOnlyAttribute (const std::string &name, const API::IFunction::Attribute &value) const |
| A read-only ("mutable") attribute can be stored in a const method. More... | |
| virtual void | addTie (std::unique_ptr< ParameterTie > tie) |
| Add a new tie. Derived classes must provide storage for ties. More... | |
| bool | hasOrderedTies () const |
| void | applyOrderedTies () |
| virtual std::string | writeToString (const std::string &parentLocalAttributesStr="") const |
| Writes itself into a string. More... | |
Protected Member Functions inherited from Mantid::API::ParamFunction | |
| void | clearAllParameters () |
| Nonvirtual member which removes all declared parameters. More... | |
| void | declareParameter (const std::string &name, double initValue=0, const std::string &description="") override |
| Declare a new parameter. More... | |
| virtual double * | getParameterAddress (size_t i) |
| Get the address of the parameter. For use in UserFunction with mu::Parser. More... | |
| ParameterStatus | getParameterStatus (size_t i) const override |
| Get status of parameter. More... | |
| void | setParameterStatus (size_t i, ParameterStatus status) override |
| Change status of parameter. More... | |
Private Member Functions | |
| void | initAlphaCoeff () |
| initialize the m_alpha coefficients More... | |
| void | initLinJlist () |
| initialize the list of parameters for A_{n,l} linear interpolation around the indeterminacy point More... | |
| void | initXnlCoeff () |
| initialize the Xnl coefficients More... | |
| void | setWorkspace (std::shared_ptr< const API::Workspace > ws) override |
| Cache Q values from the workspace. More... | |
Private Attributes | |
| std::vector< double > | m_alpha |
| certain coefficients invariant during fitting More... | |
| double | m_divZone |
| linear interpolation zone around the numerical divergence of factor J More... | |
| double | m_hbar |
| Plank's constant divided by \(2\pi\), in units of meV*THz. More... | |
| std::vector< linearJ > | m_linearJlist |
| list of linearized J values More... | |
| size_t | m_lmax |
| maximum value of l in xnlist More... | |
| std::vector< double > | m_qValueCache |
| list of calculated Q values More... | |
| std::vector< xnlc > | m_xnl |
| xnl coefficients More... | |
Additional Inherited Members | |
Public Types inherited from Mantid::API::IFunction | |
| enum | ParameterStatus { Active , Fixed , FixedByDefault , Tied } |
| Describe parameter status in relation to fitting: Active: Fit varies such parameter directly. More... | |
| enum class | StepSizeMethod { DEFAULT , SQRT_EPSILON } |
| Describes the method in which the step size will be calculated: DEFAULT: Uses the traditional Mantid method of calculating the step size. More... | |
Protected Types inherited from Mantid::API::IFunction1D | |
| template<typename FunctionType > | |
| using | Function1DMethod = void(FunctionType::*)(double *, const double *, const size_t) const |
Protected Attributes inherited from Mantid::API::IFunction | |
| bool | m_isParallel |
| Flag to hint that the function is being used in parallel computations. More... | |
| std::unique_ptr< FunctionHandler > | m_handler |
| Pointer to a function handler. More... | |
| std::shared_ptr< Kernel::ProgressBase > | m_progReporter |
| Pointer to the progress handler. More... | |
Static Protected Attributes inherited from Mantid::API::IFunction1D | |
| static Kernel::Logger | g_log |
| Logger instance. More... | |
Inelastic part of the DiffSphere function.
Contains the 98 Lorentzians.
Definition at line 44 of file InelasticDiffSphere.h.
| Mantid::CurveFitting::Functions::InelasticDiffSphere::InelasticDiffSphere | ( | ) |
Constructor where parameters and attributes are declared.
Definition at line 35 of file InelasticDiffSphere.cpp.
|
inlineoverridevirtual |
overwrite IFunction base class methods
Reimplemented from Mantid::API::IFunction.
Definition at line 55 of file InelasticDiffSphere.h.
|
overrideprotectedvirtual |
Calculate function values on an energy domain.
| out | array to store function values |
| xValues | energy domain where function is evaluated |
| nData | size of the energy domain |
| No | Q values can be found in associated attributes |
Implements Mantid::API::IFunction1D.
Definition at line 170 of file InelasticDiffSphere.cpp.
References Mantid::API::IFunction::Attribute::asDouble(), Mantid::API::IFunction::Attribute::asInt(), Mantid::Kernel::Logger::debug(), Mantid::EMPTY_DBL(), energy, Mantid::API::IFunction1D::g_log, Mantid::API::IFunction::getAttribute(), Mantid::API::ParamFunction::getParameter(), LorentzianCoefficients(), m_hbar, m_qValueCache, m_xnl, n, and Mantid::Geometry::x.
|
overridevirtual |
overwrite IFunction base class methods
Initialize coefficients and terms that are invariant during fitting.
Reimplemented from Mantid::API::IFunction.
Definition at line 124 of file InelasticDiffSphere.cpp.
References initAlphaCoeff(), initLinJlist(), and initXnlCoeff().
|
private |
initialize the m_alpha coefficients
Initialize a set of coefficients that will remain constant during fitting.
Definition at line 92 of file InelasticDiffSphere.cpp.
References m_alpha, m_xnl, and Mantid::Geometry::x.
Referenced by init().
|
private |
initialize the list of parameters for A_{n,l} linear interpolation around the indeterminacy point
Factor "J" defined as [Q*a*j(l+1,Q*a) - l*j(l,Q*a)] / [(Q*a)^2 - x^2] Both numerator and denominator goes to zero when Q*a approaches x, giving rise to numerical indeterminacy.
To avoid them, we will interpolate linearly.
Definition at line 105 of file InelasticDiffSphere.cpp.
References Mantid::CurveFitting::Functions::linearJ::intercept, m_divZone, m_linearJlist, m_xnl, Mantid::CurveFitting::Functions::linearJ::slope, and Mantid::Geometry::x.
Referenced by init().
|
private |
initialize the Xnl coefficients
Initialize class attribute m_xnl with a list of coefficients in string format.
Definition at line 51 of file InelasticDiffSphere.cpp.
References Mantid::CurveFitting::Functions::xnlc::l, m_xnl, Mantid::CurveFitting::Functions::xnlc::n, and Mantid::CurveFitting::Functions::xnlc::x.
Referenced by init().
| std::vector< double > Mantid::CurveFitting::Functions::InelasticDiffSphere::LorentzianCoefficients | ( | double | a | ) | const |
Calculate the (2l+1)*A_{n,l} coefficients for each Lorentzian.
Definition at line 135 of file InelasticDiffSphere.cpp.
References fabs, m_alpha, m_divZone, m_linearJlist, m_lmax, m_xnl, and Mantid::Geometry::x.
Referenced by function1D().
|
inlineoverridevirtual |
overwrite IFunction base class methods
Implements Mantid::API::IFunction.
Definition at line 52 of file InelasticDiffSphere.h.
|
overrideprivatevirtual |
Cache Q values from the workspace.
Handle setting fit workspace.
Creates a list of Q values from each spectrum to be used with WorkspaceIndex attribute.
| ws | Pointer to workspace |
Reimplemented from Mantid::API::IFunction.
Definition at line 229 of file InelasticDiffSphere.cpp.
References Mantid::Kernel::UnitConversion::convertToElasticQ(), detectorIndex, Mantid::Kernel::efixed, Mantid::API::IFunction1D::g_log, Mantid::Kernel::Logger::information(), m_qValueCache, and workspace.
|
private |
certain coefficients invariant during fitting
Definition at line 81 of file InelasticDiffSphere.h.
Referenced by initAlphaCoeff(), and LorentzianCoefficients().
|
private |
linear interpolation zone around the numerical divergence of factor J
Definition at line 87 of file InelasticDiffSphere.h.
Referenced by initLinJlist(), and LorentzianCoefficients().
|
private |
Plank's constant divided by \(2\pi\), in units of meV*THz.
Definition at line 90 of file InelasticDiffSphere.h.
Referenced by function1D().
|
private |
list of linearized J values
Definition at line 93 of file InelasticDiffSphere.h.
Referenced by initLinJlist(), and LorentzianCoefficients().
|
private |
maximum value of l in xnlist
Definition at line 84 of file InelasticDiffSphere.h.
Referenced by LorentzianCoefficients().
|
private |
list of calculated Q values
Definition at line 96 of file InelasticDiffSphere.h.
Referenced by function1D(), and setWorkspace().
|
private |
xnl coefficients
Definition at line 78 of file InelasticDiffSphere.h.
Referenced by function1D(), initAlphaCoeff(), initLinJlist(), initXnlCoeff(), and LorentzianCoefficients().