Mantid
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt Class Reference

ThermalNeutronBk2BkExpConvPVoigt : Back-to-back exponential convoluted with pseudo Voigt for thermal neutron and epithermal neutron TOF. More...

#include <ThermalNeutronBk2BkExpConvPVoigt.h>

Inheritance diagram for Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt:
Mantid::API::IPowderDiffPeakFunction Mantid::API::ParamFunction Mantid::API::IFunction1D Mantid::API::IFunction Mantid::API::IFunction

Public Member Functions

void calculateParameters (bool explicitoutput) const override
 Calculate peak parameters (alpha, beta, sigma2..) More...
 
const std::string category () const override
 The categories the Fit function belong to. More...
 
void function (const FunctionDomain &domain, FunctionValues &values) const override
 Set peak's height. More...
 
void function (std::vector< double > &out, const std::vector< double > &xValues) const override
 Function (local) of the vector version. More...
 
void function1D (double *out, const double *xValues, const size_t nData) const override
 Function you want to fit to. More...
 
double getPeakParameter (const std::string &) override
 Overwrite IPeakFunction base class methods. More...
 
std::string name () const override
 Overwrite IFunction base class methods. More...
 
void setParameter (const std::string &name, const double &value, bool explicitlySet=true) override
 Override setting a new value to a parameter by name. More...
 
void setParameter (size_t i, const double &value, bool explicitlySet=true) override
 Core function to calcualte peak values for whole region. More...
 
 ThermalNeutronBk2BkExpConvPVoigt ()
 Constructor. More...
 
- Public Member Functions inherited from Mantid::API::IPowderDiffPeakFunction
virtual void calculateParameters (bool explicitoutput) const =0
 Calculate peak parameters (alpha, beta, sigma2..) More...
 
virtual double centre () const
 Overwrite IFunction base class methods. More...
 
void function (const FunctionDomain &domain, FunctionValues &values) const override
 Calculate function in a range. More...
 
virtual void function (std::vector< double > &out, const std::vector< double > &xValues) const =0
 
virtual double fwhm () const
 Get peakl's FWHM. More...
 
virtual double getMaximumValue (const std::vector< double > &xValues, size_t &indexmax) const
 Get maximum value on a given set of data points. More...
 
virtual void getMillerIndex (int &h, int &k, int &l)
 Get Miller Index from this peak. More...
 
virtual double getPeakParameter (const std::string &)=0
 Get peak parameters. More...
 
virtual bool hasProfileParameter (std::string paramname)
 Check whether a parameter is a profile parameter. More...
 
virtual double height () const
 Get peak's intensity. More...
 
 IPowderDiffPeakFunction ()
 Constructor and Destructor. More...
 
virtual bool isPhysical ()
 The flag to show whether the parameters set to peak function making an valid peak. More...
 
virtual void setHeight (const double h)
 Set peak's height. More...
 
virtual void setMillerIndex (int h, int k, int l)
 Set Miller Indicies. More...
 
void setParameter (const std::string &name, const double &value, bool explicitlySet=true) override
 Override setting a new value to a parameter by name. More...
 
void setParameter (size_t i, const double &value, bool explicitlySet=true) override
 Override setting a new value to the i-th parameter. More...
 
virtual void setPeakRadius (const int &r)
 Set peak's radius. More...
 
virtual void setUnitCellParameterValueChangeFlag (bool changed)
 Set up the flag to show whether (from client) cell parameter value changed. 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...
 
- 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< IFunctionclone () 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...
 
IFunctionoperator= (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 ParameterTiegetTie (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 IConstraintgetConstraint (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 void setAttribute (const std::string &name, const Attribute &)
 Set a value to 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< IFunctiongetFunction (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...
 
FunctionHandlergetHandler () 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::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...
 

Private Member Functions

void calHandEta (double sigma2, double gamma, double &H, double &eta) const
 Calcualte H and Eta. More...
 
double calOmega (const double x, const double eta, const double N, const double alpha, const double beta, const double H, const double sigma2, const double invert_sqrt2sigma, const bool explicitoutput=false) const
 Calculate peak profile I(TOF) = Omega(TOF) More...
 
double calPeakCenter () const
 Calculate peak center. More...
 
void functionDeriv (const API::FunctionDomain &domain, API::Jacobian &jacobian) override
 Derivative. More...
 
virtual void functionDerivLocal (API::Jacobian *out, const double *xValues, const size_t nData)
 Derivative. More...
 
void functionLocal (double *out, const double *xValues, const size_t nData) const
 Fuction local. More...
 
void init () override
 Overwrite IFunction base class method, which declare function parameters. More...
 
void interruption_point () const
 Override setting a new value to the. More...
 

Private Attributes

double m_Alpha
 Set 2 functions to be hidden from client. More...
 
double m_Beta
 
bool m_cancel
 Set to true to stop execution. More...
 
bool m_dspaceCalculated
 Flag to show whether the unit cell has been calcualted. More...
 
double m_eta
 FWHM. More...
 
double m_Gamma
 
double m_N
 
bool m_parallelException
 Set if an exception is thrown, and not caught, within a parallel region. More...
 
double m_Sigma2
 

Static Private Attributes

static int s_peakRadius = 5
 Default value for the peak radius. 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 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...
 
- 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 declareAttributes ()
 Override to declare function attributes. 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::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 Attributes inherited from Mantid::API::IPowderDiffPeakFunction
size_t HEIGHTINDEX
 
size_t LATTICEINDEX
 
bool m_cellParamValueChanged
 An indicator to re-calculate peak d-space position. More...
 
double m_centre
 Centre of the peak. More...
 
double m_dcentre
 Centre of the peak in d-space. More...
 
double m_fwhm
 Peak's FWHM. More...
 
bool m_hasNewParameterValue
 Flag if any parameter value changed. More...
 
bool m_parameterValid
 Flag to indicate whether peaks' parameters value can generate a valid peak. More...
 
std::vector< std::string > m_sortedProfileParameterNames
 Peak profile parameters names in ascending order. More...
 
Geometry::UnitCell m_unitCell
 Unit cell. More...
 
double m_unitCellSize
 Unit cell size. More...
 
int mH
 Miller Indices. More...
 
bool mHKLSet
 
int mK
 
int mL
 
- 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< FunctionHandlerm_handler
 Pointer to a function handler. More...
 
std::shared_ptr< Kernel::ProgressBasem_progReporter
 Pointer to the progress handler. More...
 
- Static Protected Attributes inherited from Mantid::API::IPowderDiffPeakFunction
static int s_peakRadius = 5
 Local function for GSL minimizer. More...
 
- Static Protected Attributes inherited from Mantid::API::IFunction1D
static Kernel::Logger g_log
 Logger instance. More...
 

Detailed Description

ThermalNeutronBk2BkExpConvPVoigt : Back-to-back exponential convoluted with pseudo Voigt for thermal neutron and epithermal neutron TOF.

It will involve the calculation from peak's miller indices

Definition at line 26 of file ThermalNeutronBk2BkExpConvPVoigt.h.

Constructor & Destructor Documentation

◆ ThermalNeutronBk2BkExpConvPVoigt()

Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::ThermalNeutronBk2BkExpConvPVoigt ( )

Constructor.

Definition at line 41 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.

Member Function Documentation

◆ calculateParameters()

void Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::calculateParameters ( bool  explicitoutput) const
overridevirtual

◆ calHandEta()

void Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::calHandEta ( double  sigma2,
double  gamma,
double &  H,
double &  eta 
) const
private

Calcualte H and Eta.

Get the center of the peak.

double ThermalNeutronBk2BkExpConvPVoigt::centre()const { if (m_newValueSet) calculateParameters(false);

return m_centre; } Set peak height

void ThermalNeutronBk2BkExpConvPVoigt::setHeight(const double h) { setParameter(HEIGHTINDEX, h);

return; } Get peak's height double ThermalNeutronBk2BkExpConvPVoigt::height() const { double height = this->getParameter(HEIGHTINDEX); return height; } Get peak's FWHM

double ThermalNeutronBk2BkExpConvPVoigt::fwhm() const { if (m_newValueSet) calculateParameters(false);

return m_fwhm; } Calcualte H and eta for the peak

Definition at line 471 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.

References Mantid::API::IFunction1D::g_log, and Mantid::Kernel::Logger::warning().

Referenced by calculateParameters().

◆ calOmega()

double Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::calOmega ( const double  x,
const double  eta,
const double  N,
const double  alpha,
const double  beta,
const double  H,
const double  sigma2,
const double  invert_sqrt2sigma,
const bool  explicitoutput = false 
) const
private

Calculate peak profile I(TOF) = Omega(TOF)

Calculate Omega(x) = ... ... This is the core component to calcualte peak profile.

Definition at line 494 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.

References Mantid::API::E1(), fabs, Mantid::API::IFunction1D::g_log, Mantid::Kernel::Logger::warning(), Mantid::Geometry::x, Mantid::Geometry::y, and Mantid::Geometry::z.

Referenced by function(), and functionLocal().

◆ calPeakCenter()

double Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::calPeakCenter ( ) const
private

Calculate peak center.

◆ category()

const std::string Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::category ( ) const
inlineoverridevirtual

The categories the Fit function belong to.

Categories must be listed as a semi colon separated list. For example: "General, Muon\\Custom" which adds a function to the category "General" and the sub-category "Muon\\Custom"

Reimplemented from Mantid::API::IFunction.

Definition at line 32 of file ThermalNeutronBk2BkExpConvPVoigt.h.

◆ function() [1/2]

void Mantid::API::IFunction1D::function ( const FunctionDomain domain,
FunctionValues values 
) const
overridevirtual

Set peak's height.

Get peak's height

Reimplemented from Mantid::API::IPowderDiffPeakFunction.

Definition at line 47 of file IFunction1D.cpp.

◆ function() [2/2]

void Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::function ( std::vector< double > &  out,
const std::vector< double > &  xValues 
) const
overridevirtual

Function (local) of the vector version.

Parameters
outThe calculated peak intensities. This is assume to been initialized to the correct length with a value of zero everywhere.
xValuesThe x-values to evaluate the peak at.

Implements Mantid::API::IPowderDiffPeakFunction.

Definition at line 384 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.

References calculateParameters(), calOmega(), Mantid::API::IFunction1D::g_log, Mantid::API::ParamFunction::getParameter(), m_Alpha, m_Beta, Mantid::API::IPowderDiffPeakFunction::m_centre, m_eta, Mantid::API::IPowderDiffPeakFunction::m_fwhm, Mantid::API::IPowderDiffPeakFunction::m_hasNewParameterValue, m_N, m_Sigma2, Mantid::Kernel::Logger::notice(), and PEAKRANGE.

◆ function1D()

void Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::function1D ( double *  out,
const double *  xValues,
const size_t  nData 
) const
overridevirtual

Function you want to fit to.

This is called during long-running operations, and check if the algorithm has requested that it be cancelled.

void ThermalNeutronBk2BkExpConvPVoigt::interruption_point() const { only throw exceptions if the code is not multi threaded otherwise you contravene the OpenMP standard that defines that all loops must complete, and no exception can leave an OpenMP section openmp cancel handling is performed using the ??, ?? and ?? macros in each algrothim IF_NOT_PARALLEL if (m_cancel) throw Algorithm::CancelException(); } Implementation of complex integral E_1 std::complex<double> E1X(std::complex<double> z) {

std::complex<double> exp_e1;

double rz = real(z); double az = abs(z);

if (fabs(az) < 1.0E-8) { If z = 0, then the result is infinity... diverge! complex<double> r(1.0E300, 0.0); exp_e1 = r; } else if (az <= 10.0 || (rz < 0.0 && az < 20.0)) { Some interesting region, equal to integrate to infinity, converged

complex<double> r(1.0, 0.0);
exp_e1 = r;
complex<double> cr = r;

for (size_t k = 1; k <= 150; ++k)
{
  double dk = double(k);
  cr = -cr * dk * z / ( (dk+1.0)*(dk+1.0) );
  exp_e1 += cr;
  if (abs(cr) < abs(exp_e1)*1.0E-15)
  {

cr is converged to zero break; } } // ENDFOR k

const double el = 0.5772156649015328; exp_e1 = -el - log(z) + (z*exp_e1); } else { Rest of the region complex<double> ct0(0.0, 0.0); for (int k = 120; k > 0; –k) { complex<double> dk(double(k), 0.0); ct0 = dk / (10.0 + dk / (z + ct0)); } // ENDFOR k

exp_e1 = 1.0 / (z + ct0); exp_e1 = exp_e1 * exp(-z); if (rz < 0.0 && fabs(imag(z)) < 1.0E-10 ) { complex<double> u(0.0, 1.0); exp_e1 = exp_e1 - (M_PI * u); } }

return exp_e1; } (Migrated from IPeakFunction) General implementation of the method for all peaks. Limits the peak evaluation to a certain number of FWHMs around the peak centre. The outside points are set to 0. Calls functionLocal() to compute the actual values

Parameters
out:: Output function values
xValues:: X values for data points
nData:: Number of data points

Implements Mantid::API::IFunction1D.

Definition at line 673 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.

References Mantid::API::IPowderDiffPeakFunction::centre(), fabs, functionLocal(), Mantid::API::IPowderDiffPeakFunction::fwhm(), n, and s_peakRadius.

◆ functionDeriv()

void Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::functionDeriv ( const API::FunctionDomain domain,
API::Jacobian jacobian 
)
overrideprivatevirtual

Derivative.

Calculate derivative of this peak function.

Reimplemented from Mantid::API::IFunction1D.

Definition at line 423 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.

References Mantid::API::IFunction::calNumericalDeriv().

◆ functionDerivLocal()

void Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::functionDerivLocal ( API::Jacobian out,
const double *  xValues,
const size_t  nData 
)
privatevirtual

Derivative.

Disabled derivative.

Definition at line 416 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.

◆ functionLocal()

void Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::functionLocal ( double *  out,
const double *  xValues,
const size_t  nData 
) const
private

◆ getPeakParameter()

double Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::getPeakParameter ( const std::string &  paramname)
overridevirtual

Overwrite IPeakFunction base class methods.

Set Miller Indices for this peak void ThermalNeutronBk2BkExpConvPVoigt::setMillerIndex(int h, int k, int l) { Check validity and set flag if (mHKLSet) { Throw exception if tried to reset the miller index stringstream errss; errss << "ThermalNeutronBk2BkExpConvPVoigt Peak cannot have (HKL) reset."; g_log.error(errss.str()); throw runtime_error(errss.str()); } else { Set flag mHKLSet = true; }.

Set Miller Indicies Get Miller Index from this peak Get peak parameters

Set value mH = static_cast<int>(h); mK = static_cast<int>(k); mL = static_cast<int>(l);

Check value valid or not if (mH*mH + mK*mK + mL*mL < 1.0E-8) { stringstream errmsg; errmsg << "H = K = L = 0 is not allowed"; g_log.error(errmsg.str()); throw std::invalid_argument(errmsg.str()); }

return; } Get Miller Index from this peak void ThermalNeutronBk2BkExpConvPVoigt::getMillerIndex(int& h, int &k, int &l) { h = static_cast<int>(mH); k = static_cast<int>(mK); l = static_cast<int>(mL);

return; } Get peak parameters stored locally Get some internal parameters values including (a) Alpha, (b) Beta, (c) Gamma, (d) Sigma2 Exception: if the peak profile parameter is not in this peak, then return an Empty_DBL

Implements Mantid::API::IPowderDiffPeakFunction.

Definition at line 172 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.

References calculateParameters(), m_Alpha, m_Beta, Mantid::API::IPowderDiffPeakFunction::m_centre, Mantid::API::IPowderDiffPeakFunction::m_dcentre, m_eta, Mantid::API::IPowderDiffPeakFunction::m_fwhm, m_Gamma, Mantid::API::IPowderDiffPeakFunction::m_hasNewParameterValue, m_Sigma2, and name().

Referenced by Mantid::CurveFitting::Algorithms::FitPowderDiffPeaks::genPeak().

◆ init()

void Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::init ( )
overrideprivatevirtual

Overwrite IFunction base class method, which declare function parameters.

Define the fittable parameters Notice that Sig0, Sig1 and Sig2 are NOT the squared value recorded in Fullprof.

Reimplemented from Mantid::API::IFunction.

Definition at line 52 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.

References Mantid::API::ParamFunction::declareParameter(), Mantid::API::IPowderDiffPeakFunction::HEIGHTINDEX, Mantid::API::IPowderDiffPeakFunction::LATTICEINDEX, Mantid::API::IPowderDiffPeakFunction::m_cellParamValueChanged, and Mantid::API::IPowderDiffPeakFunction::m_unitCellSize.

◆ interruption_point()

void Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::interruption_point ( ) const
private

Override setting a new value to the.

◆ name()

std::string Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::name ( ) const
inlineoverridevirtual

Overwrite IFunction base class methods.

Implements Mantid::API::IFunction.

Definition at line 31 of file ThermalNeutronBk2BkExpConvPVoigt.h.

Referenced by getPeakParameter(), and setParameter().

◆ setParameter() [1/2]

void Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::setParameter ( const std::string &  name,
const double &  value,
bool  explicitlySet = true 
)
overridevirtual

◆ setParameter() [2/2]

void Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::setParameter ( size_t  i,
const double &  value,
bool  explicitlySet = true 
)
overridevirtual

Core function to calcualte peak values for whole region.

Override setting parameter by parameter index.

Set up the flag to show whether (from client) cell parameter value changed Override setting a new value to the i-th parameter

Reimplemented from Mantid::API::IPowderDiffPeakFunction.

Definition at line 545 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.

References fabs, Mantid::API::IPowderDiffPeakFunction::LATTICEINDEX, Mantid::API::IPowderDiffPeakFunction::m_cellParamValueChanged, Mantid::API::IPowderDiffPeakFunction::m_hasNewParameterValue, Mantid::API::IPowderDiffPeakFunction::m_unitCellSize, Mantid::API::ParamFunction::setParameter(), and value.

Referenced by Mantid::CurveFitting::Algorithms::FitPowderDiffPeaks::genPeak().

Member Data Documentation

◆ m_Alpha

double Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::m_Alpha
mutableprivate

Set 2 functions to be hidden from client.

BackToBackExponential parameters

Definition at line 122 of file ThermalNeutronBk2BkExpConvPVoigt.h.

Referenced by calculateParameters(), function(), functionLocal(), and getPeakParameter().

◆ m_Beta

double Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::m_Beta
mutableprivate

◆ m_cancel

bool Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::m_cancel
mutableprivate

Set to true to stop execution.

Definition at line 144 of file ThermalNeutronBk2BkExpConvPVoigt.h.

◆ m_dspaceCalculated

bool Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::m_dspaceCalculated
mutableprivate

Flag to show whether the unit cell has been calcualted.

Definition at line 148 of file ThermalNeutronBk2BkExpConvPVoigt.h.

◆ m_eta

double Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::m_eta
mutableprivate

FWHM.

Centre Thermal/Epithermal neutron related

Definition at line 135 of file ThermalNeutronBk2BkExpConvPVoigt.h.

Referenced by calculateParameters(), function(), functionLocal(), and getPeakParameter().

◆ m_Gamma

double Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::m_Gamma
mutableprivate

Definition at line 125 of file ThermalNeutronBk2BkExpConvPVoigt.h.

Referenced by calculateParameters(), and getPeakParameter().

◆ m_N

double Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::m_N
mutableprivate

◆ m_parallelException

bool Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::m_parallelException
mutableprivate

Set if an exception is thrown, and not caught, within a parallel region.

Definition at line 146 of file ThermalNeutronBk2BkExpConvPVoigt.h.

◆ m_Sigma2

double Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::m_Sigma2
mutableprivate

◆ s_peakRadius

int Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::s_peakRadius = 5
staticprivate

Default value for the peak radius.

Definition at line 98 of file ThermalNeutronBk2BkExpConvPVoigt.h.

Referenced by function1D().


The documentation for this class was generated from the following files: