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

Calculates crystal field spectra. More...

#include <CrystalFieldMultiSpectrum.h>

Inheritance diagram for Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum:
Mantid::API::FunctionGenerator Mantid::API::IFunction

Public Types

enum  PhysicalProperty { HeatCapacity = 1 , Susceptibility = 2 , Magnetisation = 3 , MagneticMoment = 4 }
 
- 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...
 

Public Member Functions

void buildTargetFunction () const override
 Uses source to calculate peak centres and intensities then populates m_spectrum with peaks of type given in PeakShape attribute. More...
 
const std::string category () const override
 The categories the Fit function belong to. More...
 
std::vector< API::IFunction_sptrcreateEquivalentFunctions () const override
 Split this function (if needed) into a list of independent functions. More...
 
 CrystalFieldMultiSpectrum ()
 Constructor. More...
 
size_t getNumberDomains () const override
 Get number of domains required by this function. More...
 
void init () override
 overwrite IFunction base class method, which declare function parameters More...
 
std::string name () const override
 Returns the function's name. More...
 
void setAttribute (const std::string &name, const Attribute &) override
 Perform custom actions on setting certain attributes. More...
 
- Public Member Functions inherited from Mantid::API::FunctionGenerator
 FunctionGenerator (const IFunction_sptr &source)
 Constructor. More...
 
size_t nAttributes () const override
 Returns the number of attributes associated with the function. More...
 
std::vector< std::string > getAttributeNames () const override
 Returns a list of attribute names. More...
 
Attribute getAttribute (const std::string &name) const override
 Return a value of attribute attName. More...
 
bool hasAttribute (const std::string &name) const override
 Check if attribute attName exists. More...
 
std::string attributeName (size_t i) const override
 Return the name of the ith attribute. More...
 
void function (const FunctionDomain &domain, FunctionValues &values) const override
 Evaluate the function. More...
 
void setParameter (size_t, const double &value, bool explicitlySet=true) override
 Set i-th parameter. More...
 
void setParameterDescription (size_t, const std::string &description) override
 Set i-th parameter description. More...
 
double getParameter (size_t i) const override
 Get i-th parameter. More...
 
void setParameter (const std::string &name, const double &value, bool explicitlySet=true) override
 Set parameter by name. More...
 
void setParameterDescription (const std::string &name, const std::string &description) override
 Set description of parameter by name. More...
 
double getParameter (const std::string &name) const override
 Get parameter by name. More...
 
bool hasParameter (const std::string &name) const override
 Check if function has a parameter with this name. More...
 
size_t nParams () const override
 Total number of parameters. 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...
 
std::string parameterDescription (size_t i) const override
 Returns the description of parameter i. More...
 
bool isExplicitlySet (size_t i) const override
 Checks if a parameter has been set explicitly. More...
 
double getError (size_t i) const override
 Get the fitting error for a parameter. More...
 
double getError (const std::string &name) const override
 Get 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 setError (const std::string &name, double err) override
 Set the fitting error for a parameter by name. More...
 
size_t getParameterIndex (const ParameterReference &ref) const override
 Return parameter index from a parameter reference. More...
 
void setUpForFit () override
 Set up the function for a fit. More...
 
ParameterTiegetTie (size_t i) const override
 Get the tie for i-th parameter. More...
 
IConstraintgetConstraint (size_t i) const override
 Get the i-th constraint. 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 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 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...
 
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...
 
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 updateTargetFunction () const override
 Update m_spectrum function. More...
 
- Protected Member Functions inherited from Mantid::API::FunctionGenerator
void setSource (IFunction_sptr source) const
 Set the source function. More...
 
virtual bool isSourceName (const std::string &aName) const
 Test if a name (parameter's or attribute's) belongs to m_source. More...
 
void checkTargetFunction () const
 Update target function if necessary. More...
 
void declareParameter (const std::string &name, double initValue=0, const std::string &description="") override
 Declare a new parameter. More...
 
void setParameterStatus (size_t i, ParameterStatus status) override
 Change status of parameter. More...
 
ParameterStatus getParameterStatus (size_t i) const override
 Get 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...
 

Private Member Functions

API::IFunction_sptr buildPhysprop (int nre, const DoubleFortranVector &en, const ComplexFortranMatrix &wf, const ComplexFortranMatrix &ham, double temperature, size_t iSpec) const
 
API::IFunction_sptr buildSpectrum (int nre, const DoubleFortranVector &en, const ComplexFortranMatrix &wf, double temperature, double fwhm, size_t i) const
 Build a function for a single spectrum. More...
 
void calcExcitations (int nre, const DoubleFortranVector &en, const ComplexFortranMatrix &wf, double temperature, API::FunctionValues &values, size_t iSpec) const
 Calculate excitations at given temperature. More...
 
void updateSpectrum (API::IFunction &spectrum, int nre, const DoubleFortranVector &en, const ComplexFortranMatrix &wf, const ComplexFortranMatrix &ham, double temperature, double fwhm, size_t i) const
 Update a function for a single spectrum. More...
 

Private Attributes

std::vector< double > m_FWHMs
 Cache the default peak FWHMs. More...
 
std::vector< std::vector< double > > m_fwhmX
 Caches of the width functions. More...
 
std::vector< std::vector< double > > m_fwhmY
 
std::vector< size_t > m_nPeaks
 Cache number of fitted peaks. More...
 
std::vector< int > m_physprops
 Cache the list of "spectra" corresponding to physical properties. More...
 
std::vector< double > m_temperatures
 Cache the temperatures. More...
 

Additional Inherited Members

- Protected Attributes inherited from Mantid::API::FunctionGenerator
IFunction_sptr m_source
 Function that calculates parameters of the target function. More...
 
IFunction_sptr m_target
 Function that actually calculates the output. More...
 
size_t m_nOwnParams
 Cached number of parameters in m_source. More...
 
bool m_dirty
 Flag indicating that updateTargetFunction() is required. More...
 
- 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

Calculates crystal field spectra.

Definition at line 20 of file CrystalFieldMultiSpectrum.h.

Member Enumeration Documentation

◆ PhysicalProperty

Enumerator
HeatCapacity 

Specify dataset is magnetic heat capacity Cv(T)

Susceptibility 

Specify dataset is magnetic susceptibility chi(T)

Magnetisation 

Specify dataset is magnetisation vs field M(H)

MagneticMoment 

Specify dataset is magnetisation vs temp M(T)

Definition at line 31 of file CrystalFieldMultiSpectrum.h.

Constructor & Destructor Documentation

◆ CrystalFieldMultiSpectrum()

Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::CrystalFieldMultiSpectrum ( )

Constructor.

Definition at line 103 of file CrystalFieldMultiSpectrum.cpp.

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

Member Function Documentation

◆ buildPhysprop()

API::IFunction_sptr Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::buildPhysprop ( int  nre,
const DoubleFortranVector en,
const ComplexFortranMatrix wf,
const ComplexFortranMatrix ham,
double  temperature,
size_t  iSpec 
) const
private

◆ buildSpectrum()

API::IFunction_sptr Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::buildSpectrum ( int  nre,
const DoubleFortranVector en,
const ComplexFortranMatrix wf,
double  temperature,
double  fwhm,
size_t  i 
) const
private

◆ buildTargetFunction()

void Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::buildTargetFunction ( ) const
overridevirtual

◆ calcExcitations()

void Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::calcExcitations ( int  nre,
const DoubleFortranVector en,
const ComplexFortranMatrix wf,
double  temperature,
API::FunctionValues values,
size_t  iSpec 
) const
private

◆ category()

const std::string Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::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 26 of file CrystalFieldMultiSpectrum.h.

◆ createEquivalentFunctions()

std::vector< IFunction_sptr > Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::createEquivalentFunctions ( ) const
overridevirtual

Split this function (if needed) into a list of independent functions.

The number of functions must be the number of domains this function is working on (== getNumberDomains()). The result of evaluation of the created functions on their domains must be the same as if this function was evaluated on the composition of those domains.

Reimplemented from Mantid::API::IFunction.

Definition at line 136 of file CrystalFieldMultiSpectrum.cpp.

References Mantid::API::FunctionGenerator::checkTargetFunction().

◆ getNumberDomains()

size_t Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::getNumberDomains ( ) const
overridevirtual

Get number of domains required by this function.

If it returns a number greater than 1 then the domain passed to function(domain, values) method must have a CompositeDomain type with the same number of parts.

Reimplemented from Mantid::API::IFunction.

Definition at line 124 of file CrystalFieldMultiSpectrum.cpp.

References buildTargetFunction(), and Mantid::API::FunctionGenerator::m_target.

◆ init()

void Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::init ( )
overridevirtual

overwrite IFunction base class method, which declare function parameters

Reimplemented from Mantid::API::FunctionGenerator.

Definition at line 116 of file CrystalFieldMultiSpectrum.cpp.

References buildTargetFunction(), Mantid::Kernel::Logger::error(), and Mantid::API::g_log.

◆ name()

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

Returns the function's name.

Implements Mantid::API::IFunction.

Definition at line 25 of file CrystalFieldMultiSpectrum.h.

Referenced by setAttribute().

◆ setAttribute()

void Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::setAttribute ( const std::string &  name,
const Attribute attr 
)
overridevirtual

◆ updateSpectrum()

void Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::updateSpectrum ( API::IFunction spectrum,
int  nre,
const DoubleFortranVector en,
const ComplexFortranMatrix wf,
const ComplexFortranMatrix ham,
double  temperature,
double  fwhm,
size_t  i 
) const
private

◆ updateTargetFunction()

void Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::updateTargetFunction ( ) const
overrideprotectedvirtual

Member Data Documentation

◆ m_FWHMs

std::vector<double> Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::m_FWHMs
mutableprivate

Cache the default peak FWHMs.

Definition at line 63 of file CrystalFieldMultiSpectrum.h.

Referenced by buildTargetFunction(), and updateTargetFunction().

◆ m_fwhmX

std::vector<std::vector<double> > Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::m_fwhmX
mutableprivate

Caches of the width functions.

Definition at line 58 of file CrystalFieldMultiSpectrum.h.

Referenced by buildSpectrum(), buildTargetFunction(), setAttribute(), and updateSpectrum().

◆ m_fwhmY

std::vector<std::vector<double> > Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::m_fwhmY
mutableprivate

◆ m_nPeaks

std::vector<size_t> Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::m_nPeaks
mutableprivate

Cache number of fitted peaks.

Definition at line 54 of file CrystalFieldMultiSpectrum.h.

Referenced by buildSpectrum(), buildTargetFunction(), calcExcitations(), and updateSpectrum().

◆ m_physprops

std::vector<int> Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::m_physprops
mutableprivate

Cache the list of "spectra" corresponding to physical properties.

Definition at line 56 of file CrystalFieldMultiSpectrum.h.

Referenced by buildPhysprop(), buildTargetFunction(), and updateSpectrum().

◆ m_temperatures

std::vector<double> Mantid::CurveFitting::Functions::CrystalFieldMultiSpectrum::m_temperatures
mutableprivate

Cache the temperatures.

Definition at line 61 of file CrystalFieldMultiSpectrum.h.

Referenced by buildTargetFunction(), and updateTargetFunction().


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