Mantid
|
This function is used internally by PawleyFunction to hold the unit cell parameters as well as the ZeroShift parameter. More...
#include <PawleyFunction.h>
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< 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 | addAngleConstraint (const std::string ¶meterName) |
Adds a default constraint so cell angles are in the range 0 to 180. More... | |
void | addLengthConstraint (const std::string ¶meterName) |
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< FunctionHandler > | m_handler |
Pointer to a function handler. More... | |
std::shared_ptr< Kernel::ProgressBase > | m_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... | |
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.
Mantid::CurveFitting::Functions::PawleyParameterFunction::PawleyParameterFunction | ( | ) |
Constructor.
Definition at line 36 of file PawleyFunction.cpp.
|
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().
|
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().
|
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().
|
overridevirtual |
This method does nothing.
Implements Mantid::API::IFunction.
Definition at line 150 of file PawleyFunction.cpp.
References UNUSED_ARG.
|
overridevirtual |
This method does nothing.
Reimplemented from Mantid::API::IFunction.
Definition at line 156 of file PawleyFunction.cpp.
References UNUSED_ARG.
PointGroup::LatticeSystem Mantid::CurveFitting::Functions::PawleyParameterFunction::getLatticeSystem | ( | ) | const |
Returns the crystal system.
Definition at line 59 of file PawleyFunction.cpp.
References m_latticeSystem.
|
inline |
Returns the name of the stored function's center parameter.
Definition at line 52 of file PawleyFunction.h.
|
inline |
Returns the stored profile function name.
Definition at line 49 of file PawleyFunction.h.
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().
|
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().
|
inlineoverridevirtual |
Returns the function name.
Implements Mantid::API::IFunction.
Definition at line 40 of file PawleyFunction.h.
|
overridevirtual |
Sets the supplied attribute value.
The function calls ParamFunction::setAttribute, but performs additional actions for latticeSystem and ProfileFunction.
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().
|
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().
|
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).
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().
void Mantid::CurveFitting::Functions::PawleyParameterFunction::setParametersFromUnitCell | ( | const Geometry::UnitCell & | cell | ) |
Sets the function's parameters from the supplied UnitCell.
Definition at line 116 of file PawleyFunction.cpp.
References Mantid::Geometry::UnitCell::a(), Mantid::Geometry::UnitCell::alpha(), Mantid::Geometry::UnitCell::b(), Mantid::Geometry::UnitCell::beta(), Mantid::Geometry::UnitCell::c(), Mantid::Geometry::UnitCell::gamma(), and Mantid::API::IFunction::setParameter().
|
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.
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().
|
protected |
Definition at line 70 of file PawleyFunction.h.
Referenced by getLatticeSystem(), getUnitCellFromParameters(), and setLatticeSystem().
|
protected |
Definition at line 71 of file PawleyFunction.h.
Referenced by setCenterParameterNameFromFunction().