Mantid
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Mantid::CurveFitting::Functions::PawleyParameterFunction Class Reference

This function is used internally by PawleyFunction to hold the unit cell parameters as well as the ZeroShift parameter. More...

#include <PawleyFunction.h>

Inheritance diagram for Mantid::CurveFitting::Functions::PawleyParameterFunction:
Mantid::API::IFunction Mantid::API::ParamFunction Mantid::API::IFunction

Public Member Functions

void function (const API::FunctionDomain &domain, API::FunctionValues &values) const override
 This method does nothing. More...
 
void functionDeriv (const API::FunctionDomain &domain, API::Jacobian &jacobian) override
 This method does nothing. More...
 
Geometry::PointGroup::LatticeSystem getLatticeSystem () const
 Returns the crystal system. More...
 
std::string getProfileFunctionCenterParameterName () const
 Returns the name of the stored function's center parameter. More...
 
std::string getProfileFunctionName () const
 Returns the stored profile function name. More...
 
Geometry::UnitCell getUnitCellFromParameters () const
 Returns a UnitCell object constructed from the function's parameters. More...
 
std::string name () const override
 Returns the function name. More...
 
 PawleyParameterFunction ()
 Constructor. More...
 
void setAttribute (const std::string &attName, const Attribute &attValue) override
 Sets the supplied attribute value. More...
 
void setParametersFromUnitCell (const Geometry::UnitCell &cell)
 Sets the function's parameters from the supplied UnitCell. 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 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::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 addAngleConstraint (const std::string &parameterName)
 Adds a default constraint so cell angles are in the range 0 to 180. More...
 
void addLengthConstraint (const std::string &parameterName)
 Adds a default constraint so that cell edge lengths can not be less than 0. More...
 
void createLatticeSystemParameters (Geometry::PointGroup::LatticeSystem latticeSystem)
 This method clears all parameters and declares parameters according to the supplied crystal system. More...
 
void init () override
 Declares attributes and generates parameters based on the defaults. More...
 
void setCenterParameterNameFromFunction (const API::IPeakFunction_sptr &profileFunction)
 Tries to extract and store the center parameter name from the function. More...
 
void setLatticeSystem (const std::string &latticeSystem)
 Assigns the lattice system. More...
 
void setProfileFunction (const std::string &profileFunction)
 Sets the profile function. 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::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 Attributes

Geometry::PointGroup::LatticeSystem m_latticeSystem
 
std::string m_profileFunctionCenterParameterName
 
- 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...
 

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...
 

Detailed Description

This function is used internally by PawleyFunction to hold the unit cell parameters as well as the ZeroShift parameter.

The function and functionDeriv- methods have been implemented to do nothing, the calculation of the spectrum that results from the unit cell is calculated in PawleyFunction.

Additionally it stores the crystal system and the name of the profile function that is used to model the Bragg peaks as attributes.

Definition at line 34 of file PawleyFunction.h.

Constructor & Destructor Documentation

◆ PawleyParameterFunction()

Mantid::CurveFitting::Functions::PawleyParameterFunction::PawleyParameterFunction ( )

Constructor.

Definition at line 36 of file PawleyFunction.cpp.

Member Function Documentation

◆ addAngleConstraint()

void Mantid::CurveFitting::Functions::PawleyParameterFunction::addAngleConstraint ( const std::string &  parameterName)
protected

Adds a default constraint so cell angles are in the range 0 to 180.

Definition at line 284 of file PawleyFunction.cpp.

References Mantid::API::IFunction::addConstraint(), and Mantid::API::IFunction::parameterName().

Referenced by createLatticeSystemParameters().

◆ addLengthConstraint()

void Mantid::CurveFitting::Functions::PawleyParameterFunction::addLengthConstraint ( const std::string &  parameterName)
protected

Adds a default constraint so that cell edge lengths can not be less than 0.

Definition at line 277 of file PawleyFunction.cpp.

References Mantid::API::IFunction::addConstraint(), and Mantid::API::IFunction::parameterName().

Referenced by createLatticeSystemParameters().

◆ createLatticeSystemParameters()

void Mantid::CurveFitting::Functions::PawleyParameterFunction::createLatticeSystemParameters ( Geometry::PointGroup::LatticeSystem  latticeSystem)
protected

This method clears all parameters and declares parameters according to the supplied crystal system.

Definition at line 210 of file PawleyFunction.cpp.

References addAngleConstraint(), addLengthConstraint(), Mantid::API::ParamFunction::clearAllParameters(), and Mantid::API::IFunction::declareParameter().

Referenced by setLatticeSystem().

◆ function()

void Mantid::CurveFitting::Functions::PawleyParameterFunction::function ( const API::FunctionDomain domain,
API::FunctionValues values 
) const
overridevirtual

This method does nothing.

Implements Mantid::API::IFunction.

Definition at line 150 of file PawleyFunction.cpp.

References UNUSED_ARG.

◆ functionDeriv()

void Mantid::CurveFitting::Functions::PawleyParameterFunction::functionDeriv ( const API::FunctionDomain domain,
API::Jacobian jacobian 
)
overridevirtual

This method does nothing.

Reimplemented from Mantid::API::IFunction.

Definition at line 156 of file PawleyFunction.cpp.

References UNUSED_ARG.

◆ getLatticeSystem()

PointGroup::LatticeSystem Mantid::CurveFitting::Functions::PawleyParameterFunction::getLatticeSystem ( ) const

Returns the crystal system.

Definition at line 59 of file PawleyFunction.cpp.

References m_latticeSystem.

◆ getProfileFunctionCenterParameterName()

std::string Mantid::CurveFitting::Functions::PawleyParameterFunction::getProfileFunctionCenterParameterName ( ) const
inline

Returns the name of the stored function's center parameter.

Definition at line 52 of file PawleyFunction.h.

◆ getProfileFunctionName()

std::string Mantid::CurveFitting::Functions::PawleyParameterFunction::getProfileFunctionName ( ) const
inline

Returns the stored profile function name.

Definition at line 49 of file PawleyFunction.h.

◆ getUnitCellFromParameters()

UnitCell Mantid::CurveFitting::Functions::PawleyParameterFunction::getUnitCellFromParameters ( ) const

Returns a UnitCell object constructed from the function's parameters.

Definition at line 62 of file PawleyFunction.cpp.

References Mantid::API::IFunction::getError(), Mantid::API::IFunction::getParameter(), m_latticeSystem, and Mantid::Geometry::UnitCell::setError().

◆ init()

void Mantid::CurveFitting::Functions::PawleyParameterFunction::init ( )
overrideprotectedvirtual

Declares attributes and generates parameters based on the defaults.

Reimplemented from Mantid::API::IFunction.

Definition at line 162 of file PawleyFunction.cpp.

References Mantid::API::IFunction::declareAttribute(), setLatticeSystem(), and setProfileFunction().

◆ name()

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

Returns the function name.

Implements Mantid::API::IFunction.

Definition at line 40 of file PawleyFunction.h.

◆ setAttribute()

void Mantid::CurveFitting::Functions::PawleyParameterFunction::setAttribute ( const std::string &  attName,
const Attribute attValue 
)
overridevirtual

Sets the supplied attribute value.

The function calls ParamFunction::setAttribute, but performs additional actions for latticeSystem and ProfileFunction.

Parameters
attName:: Name of the attribute
attValue:: Value of the attribute

Reimplemented from Mantid::API::IFunction.

Definition at line 48 of file PawleyFunction.cpp.

References Mantid::API::IFunction::Attribute::asString(), setLatticeSystem(), and setProfileFunction().

◆ setCenterParameterNameFromFunction()

void Mantid::CurveFitting::Functions::PawleyParameterFunction::setCenterParameterNameFromFunction ( const API::IPeakFunction_sptr profileFunction)
protected

Tries to extract and store the center parameter name from the function.

Definition at line 291 of file PawleyFunction.cpp.

References m_profileFunctionCenterParameterName.

Referenced by setProfileFunction().

◆ setLatticeSystem()

void Mantid::CurveFitting::Functions::PawleyParameterFunction::setLatticeSystem ( const std::string &  latticeSystem)
protected

Assigns the lattice system.

This method takes the name of a lattice system (case insensitive) and stores it. Furthermore it creates the necessary parameters, which means that after calling this function, PawleyParameterFunction potentially exposes a different number of parameters. The parameters are constrained to physically meaningful values (angles between 0 and 180 degrees, cell edges above 0).

Parameters
latticeSystem:: Crystal system, case insensitive.

Definition at line 202 of file PawleyFunction.cpp.

References createLatticeSystemParameters(), Mantid::Geometry::getLatticeSystemFromString(), and m_latticeSystem.

Referenced by init(), and setAttribute().

◆ setParametersFromUnitCell()

void Mantid::CurveFitting::Functions::PawleyParameterFunction::setParametersFromUnitCell ( const Geometry::UnitCell cell)

◆ setProfileFunction()

void Mantid::CurveFitting::Functions::PawleyParameterFunction::setProfileFunction ( const std::string &  profileFunction)
protected

Sets the profile function.

This method takes a function name and tries to create the corresponding function through FunctionFactory. Then it checks whether the function inherits from IPeakFunction and determines the centre parameter to store it.

Parameters
profileFunction:: Name of an IPeakFunction implementation.

Definition at line 179 of file PawleyFunction.cpp.

References Mantid::Kernel::SingletonHolder< T >::Instance(), and setCenterParameterNameFromFunction().

Referenced by init(), and setAttribute().

Member Data Documentation

◆ m_latticeSystem

Geometry::PointGroup::LatticeSystem Mantid::CurveFitting::Functions::PawleyParameterFunction::m_latticeSystem
protected

Definition at line 70 of file PawleyFunction.h.

Referenced by getLatticeSystem(), getUnitCellFromParameters(), and setLatticeSystem().

◆ m_profileFunctionCenterParameterName

std::string Mantid::CurveFitting::Functions::PawleyParameterFunction::m_profileFunctionCenterParameterName
protected

Definition at line 71 of file PawleyFunction.h.

Referenced by setCenterParameterNameFromFunction().


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