Mantid
Loading...
Searching...
No Matches
ILatticeFunction.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2015 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
9#include "MantidAPI/DllConfig.h"
13
14namespace Mantid {
15namespace API {
16
26class MANTID_API_DLL ILatticeFunction : public FunctionParameterDecorator {
27public:
29
30 void function(const FunctionDomain &domain, FunctionValues &values) const override;
31 void functionDeriv(const FunctionDomain &domain, Jacobian &jacobian) override;
32
35 virtual void functionLattice(const LatticeDomain &latticeDomain, FunctionValues &values) const = 0;
36
37 virtual void functionDerivLattice(const LatticeDomain &latticeDomain, Jacobian &jacobian);
38
40 virtual void setLatticeSystem(const std::string &crystalSystem) = 0;
41
43 virtual void setUnitCell(const std::string &unitCellString) = 0;
45 virtual void setUnitCell(const Geometry::UnitCell &unitCell) = 0;
46
48 virtual Geometry::UnitCell getUnitCell() const = 0;
49};
50
51using ILatticeFunction_sptr = std::shared_ptr<ILatticeFunction>;
52
53} // namespace API
54} // namespace Mantid
Base class that represents the domain of a function.
A class to store values calculated by a function.
virtual Geometry::UnitCell getUnitCell() const =0
Returns a unit cell object created from the function parameters.
virtual void setLatticeSystem(const std::string &crystalSystem)=0
A string that names the crystal system.
virtual void setUnitCell(const std::string &unitCellString)=0
Set the function parameters according to the supplied unit cell.
virtual void functionLattice(const LatticeDomain &latticeDomain, FunctionValues &values) const =0
Function that should calculate d-values for the HKLs provided in the domain.
virtual void setUnitCell(const Geometry::UnitCell &unitCell)=0
Overload to set unit cell directly from UnitCell object.
Represents the Jacobian in IFitFunction::functionDeriv.
Definition: Jacobian.h:22
Class to implement unit cell of crystals.
Definition: UnitCell.h:44
std::shared_ptr< ILatticeFunction > ILatticeFunction_sptr
Helper class which provides the Collimation Length for SANS instruments.