Mantid
Loading...
Searching...
No Matches
CrystalFieldPeaksBase.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2016 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
7#pragma once
8
11#include "MantidCurveFitting/DllConfig.h"
13
14namespace Mantid {
15namespace CurveFitting {
16namespace Functions {
17
22class MANTID_CURVEFITTING_DLL CrystalFieldPeaksBase : public API::ParamFunction {
23public:
25 void setAttribute(const std::string &name, const Attribute &) override;
26
28 void calculateEigenSystem(DoubleFortranVector &en, ComplexFortranMatrix &wf, ComplexFortranMatrix &ham,
29 ComplexFortranMatrix &hz, int &nre) const;
30 inline void calculateEigenSystem(DoubleFortranVector &en, ComplexFortranMatrix &wf, int &nre) const {
32 calculateEigenSystem(en, wf, ham, hz, nre);
33 }
34
35protected:
38 mutable size_t m_defaultDomainSize;
39};
40
41class MANTID_CURVEFITTING_DLL CrystalFieldPeaksBaseImpl : public CrystalFieldPeaksBase {
42public:
43 std::string name() const override;
44 void function(const API::FunctionDomain &, API::FunctionValues &) const override;
45};
46
47} // namespace Functions
48} // namespace CurveFitting
49} // namespace Mantid
Base class that represents the domain of a function.
A class to store values calculated by a function.
Attribute is a non-fitting parameter.
Definition: IFunction.h:282
Implements the part of IFunction interface dealing with parameters.
Definition: ParamFunction.h:33
CrystalFieldPeaks is a function that calculates crystal field peak positions and intensities.
void calculateEigenSystem(DoubleFortranVector &en, ComplexFortranMatrix &wf, int &nre) const
size_t m_defaultDomainSize
Store the default domain size after first function evaluation.
Helper class which provides the Collimation Length for SANS instruments.