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

LatticeFunction. More...

#include <LatticeFunction.h>

Inheritance diagram for Mantid::CurveFitting::LatticeFunction:
Mantid::API::ILatticeFunction Mantid::API::FunctionParameterDecorator Mantid::API::IFunction

Public Member Functions

void functionLattice (const API::LatticeDomain &latticeDomain, API::FunctionValues &values) const override
 Calculates d-values using the internally stored cell parameters. More...
 
Geometry::UnitCell getUnitCell () const override
 Returns a UnitCell object constructed from the function parameters. More...
 
 LatticeFunction ()
 
std::string name () const override
 Returns the function's name. More...
 
void setLatticeSystem (const std::string &crystalSystem) override
 Assigns the crystal system to the internally stored function. More...
 
void setUnitCell (const Geometry::UnitCell &unitCell) override
 Sets the unit cell parameters from a UnitCell object. More...
 
void setUnitCell (const std::string &unitCellString) override
 Sets the unit cell parameters from a string that can be parsed by Geometry::strToUnitCell. More...
 
- Public Member Functions inherited from Mantid::API::ILatticeFunction
void function (const FunctionDomain &domain, FunctionValues &values) const override
 Implementation of IFunction::function. More...
 
void functionDeriv (const FunctionDomain &domain, Jacobian &jacobian) override
 Implementation of IFunction::functionDeriv. More...
 
virtual void functionDerivLattice (const LatticeDomain &latticeDomain, Jacobian &jacobian)
 Default implementation, throws NotImplementedError. More...
 
virtual void functionLattice (const LatticeDomain &latticeDomain, FunctionValues &values) const =0
 Function that should calculate d-values for the HKLs provided in the domain. More...
 
virtual Geometry::UnitCell getUnitCell () const =0
 Returns a unit cell object created from the function parameters. More...
 
 ILatticeFunction ()
 
virtual void setLatticeSystem (const std::string &crystalSystem)=0
 A string that names the crystal system. More...
 
virtual void setUnitCell (const Geometry::UnitCell &unitCell)=0
 Overload to set unit cell directly from UnitCell object. More...
 
virtual void setUnitCell (const std::string &unitCellString)=0
 Set the function parameters according to the supplied unit cell. More...
 
- Public Member Functions inherited from Mantid::API::FunctionParameterDecorator
double activeParameter (size_t i) const override
 Value of i-th active parameter of the decorated function. More...
 
void addConstraint (std::unique_ptr< IConstraint > ic) override
 Add a constraint to decorated function. More...
 
void applyTies () override
 Apply the ties in decorated function. More...
 
void clearTies () override
 Remove all ties of decorated function. More...
 
IFunction_sptr clone () const override
 Virtual copy constructor. More...
 
 FunctionParameterDecorator ()
 
IFunction::Attribute getAttribute (const std::string &attName) const override
 Return a value of attribute attName of decorated function-. More...
 
std::vector< std::string > getAttributeNames () const override
 Returns a list of attribute names of decorated function. More...
 
IConstraintgetConstraint (size_t i) const override
 Get constraint of i-th parameter of decorated function. More...
 
IFunction_sptr getDecoratedFunction () const
 
double getError (const std::string &name) const override
 Get the fitting error for a parameter of decorated function by name. More...
 
double getError (size_t i) const override
 Get the fitting error for a parameter of decorated function. More...
 
double getParameter (const std::string &name) const override
 Get parameter of decorated function by name. More...
 
double getParameter (size_t i) const override
 Get i-th parameter of decorated function. More...
 
size_t getParameterIndex (const ParameterReference &ref) const override
 Return parameter index of decorated function from a parameter reference. More...
 
ParameterTiegetTie (size_t i) const override
 Get the tie of i-th parameter of decorated function. More...
 
bool hasAttribute (const std::string &attName) const override
 Check if attribute attName exists in decorated function. More...
 
bool hasParameter (const std::string &name) const override
 Check if the decorated function has a parameter with this name. More...
 
bool isExplicitlySet (size_t i) const override
 Checks if a parameter of decorated function has been set explicitly. More...
 
size_t nAttributes () const override
 Returns the number of attributes associated with the decorated function. More...
 
size_t nParams () const override
 Total number of parameters of decorated function. More...
 
std::string parameterDescription (size_t i) const override
 Returns the description of parameter i of decorated function. More...
 
size_t parameterIndex (const std::string &name) const override
 Returns the index of parameter of decorated function name. More...
 
std::string parameterName (size_t i) const override
 Returns the name of parameter i of decorated function. More...
 
void removeConstraint (const std::string &parName) override
 Remove a constraint of decorated function. More...
 
void removeTie (const std::string &parName) override
 Removes the tie off a parameter. More...
 
bool removeTie (size_t i) override
 Removes i-th parameter's of decorated function tie. More...
 
void setActiveParameter (size_t i, double value) override
 Set new value of i-th active parameter of the decorated function. More...
 
void setAttribute (const std::string &attName, const IFunction::Attribute &attValue) override
 Set a value to attribute attName of decorated function. More...
 
void setDecoratedFunction (const std::string &wrappedFunctionName)
 
void setError (const std::string &name, double err) override
 Set the fitting error for a parameter of decorated function by name. More...
 
void setError (size_t i, double err) override
 Set the fitting error for a parameter of decorated function. More...
 
void setMatrixWorkspace (std::shared_ptr< const MatrixWorkspace > workspace, size_t wi, double startX, double endX) override
 Set matrix workspace. More...
 
void setParameter (const std::string &name, const double &value, bool explicitlySet=true) override
 Set parameter of decorated function by name. More...
 
void setParameter (size_t i, const double &value, bool explicitlySet=true) override
 Set i-th parameter of decorated function. More...
 
void setParameterDescription (const std::string &name, const std::string &description) override
 Set description of parameter of decorated function by name. More...
 
void setParameterDescription (size_t i, const std::string &description) override
 Set i-th parameter description of decorated function. More...
 
void setUpForFit () override
 Set parameters of decorated function to satisfy constraints. More...
 
void setWorkspace (std::shared_ptr< const Workspace > ws) override
 Set the workspace. More...
 
void tie (const std::string &parName, const std::string &expr, bool isDefault=false) override
 Tie a parameter of decorated function to other parameters (or a constant). 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 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 addTies (const std::string &ties, bool isDefault=false)
 Add several ties. 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 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 std::string attributeName (size_t index) const
 Get name of ith attribute. 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 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...
 

Protected Member Functions

void beforeDecoratedFunctionSet (const API::IFunction_sptr &fn) override
 Checks that the decorated function is a PawleyParameterFunction. More...
 
void init () override
 Sets the decorated function to expose parameters. More...
 
- Protected Member Functions inherited from Mantid::API::FunctionParameterDecorator
void addTie (std::unique_ptr< ParameterTie >) override
 Forwads addTie-call to the decorated function. More...
 
virtual void beforeDecoratedFunctionSet (const IFunction_sptr &fn)
 Function that is called before the decorated function is set. More...
 
void declareParameter (const std::string &name, double initValue, const std::string &description) override
 Does nothing, function does not have parameters. More...
 
ParameterStatus getParameterStatus (size_t i) const override
 Get status of parameter. More...
 
void init () override
 Does nothing. More...
 
void setDecoratedFunctionPrivate (const IFunction_sptr &fn)
 
void setParameterStatus (size_t i, ParameterStatus status) override
 Change status of parameter. More...
 
void throwIfNoFunctionSet () const
 Throws std::runtime_error when m_wrappedFunction is not set. 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...
 
bool hasOrderedTies () const
 
void applyOrderedTies ()
 
virtual std::string writeToString (const std::string &parentLocalAttributesStr="") const
 Writes itself into a string. More...
 

Private Attributes

Functions::PawleyParameterFunction_sptr m_cellParameters
 

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 Attributes inherited from Mantid::API::FunctionParameterDecorator
IFunction_sptr m_wrappedFunction
 
- 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...
 

Detailed Description

LatticeFunction.

LatticeFunction implements API::ILatticeFunction. Internally it uses a PawleyParameterFunction to expose appropriate lattice parameters for each crystal system.

For each HKL in the supplied LatticeDomain, the function method calculates the d-value using the UnitCell that is generated from the function parameters.

Author
Michael Wedel, Paul Scherrer Institut - SINQ
Date
15/04/2015

Definition at line 28 of file LatticeFunction.h.

Constructor & Destructor Documentation

◆ LatticeFunction()

Mantid::CurveFitting::LatticeFunction::LatticeFunction ( )

Definition at line 18 of file LatticeFunction.cpp.

Member Function Documentation

◆ beforeDecoratedFunctionSet()

void Mantid::CurveFitting::LatticeFunction::beforeDecoratedFunctionSet ( const API::IFunction_sptr fn)
overrideprotectedvirtual

Checks that the decorated function is a PawleyParameterFunction.

Reimplemented from Mantid::API::FunctionParameterDecorator.

Definition at line 66 of file LatticeFunction.cpp.

References m_cellParameters.

◆ functionLattice()

void Mantid::CurveFitting::LatticeFunction::functionLattice ( const API::LatticeDomain latticeDomain,
API::FunctionValues values 
) const
overridevirtual

◆ getUnitCell()

UnitCell Mantid::CurveFitting::LatticeFunction::getUnitCell ( ) const
overridevirtual

Returns a UnitCell object constructed from the function parameters.

Implements Mantid::API::ILatticeFunction.

Definition at line 56 of file LatticeFunction.cpp.

References m_cellParameters, and Mantid::API::FunctionParameterDecorator::throwIfNoFunctionSet().

◆ init()

void Mantid::CurveFitting::LatticeFunction::init ( )
overrideprotectedvirtual

Sets the decorated function to expose parameters.

Reimplemented from Mantid::API::FunctionParameterDecorator.

Definition at line 63 of file LatticeFunction.cpp.

References Mantid::API::FunctionParameterDecorator::setDecoratedFunction().

◆ name()

std::string Mantid::CurveFitting::LatticeFunction::name ( ) const
inlineoverridevirtual

Returns the function's name.

Implements Mantid::API::IFunction.

Definition at line 32 of file LatticeFunction.h.

◆ setLatticeSystem()

void Mantid::CurveFitting::LatticeFunction::setLatticeSystem ( const std::string &  crystalSystem)
overridevirtual

Assigns the crystal system to the internally stored function.

Number of parameters may change after this function call.

Implements Mantid::API::ILatticeFunction.

Definition at line 34 of file LatticeFunction.cpp.

References m_cellParameters, and Mantid::API::FunctionParameterDecorator::throwIfNoFunctionSet().

◆ setUnitCell() [1/2]

void Mantid::CurveFitting::LatticeFunction::setUnitCell ( const Geometry::UnitCell unitCell)
overridevirtual

Sets the unit cell parameters from a UnitCell object.

Implements Mantid::API::ILatticeFunction.

Definition at line 49 of file LatticeFunction.cpp.

References m_cellParameters, and Mantid::API::FunctionParameterDecorator::throwIfNoFunctionSet().

◆ setUnitCell() [2/2]

void Mantid::CurveFitting::LatticeFunction::setUnitCell ( const std::string &  unitCellString)
overridevirtual

Sets the unit cell parameters from a string that can be parsed by Geometry::strToUnitCell.

Implements Mantid::API::ILatticeFunction.

Definition at line 42 of file LatticeFunction.cpp.

References m_cellParameters, Mantid::Geometry::strToUnitCell(), and Mantid::API::FunctionParameterDecorator::throwIfNoFunctionSet().

Member Data Documentation

◆ m_cellParameters

Functions::PawleyParameterFunction_sptr Mantid::CurveFitting::LatticeFunction::m_cellParameters
private

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