Mantid
Loading...
Searching...
No Matches
MagneticIon.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2018 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 "MantidKernel/DllConfig.h"
10#include <string>
11#include <vector>
12
13namespace Mantid {
14namespace PhysicalConstants {
25struct MANTID_KERNEL_DLL MagneticIon {
29 MagneticIon(const char *symbol, const uint16_t charge, const double j0i[8], const double j2i[8], const double j4i[8],
30 const double j6i[8], const double gi);
31 MagneticIon(const char *symbol, const uint16_t charge, const double j0i[9], const double j2i[9], const double j4i[9],
32 const double gi);
33
35 double getJLofQsqr(const double qsqr, const uint16_t l) const;
37 double analyticalFormFactor(const double qsqr) const;
39 static double formFactorCutOff();
40
42 std::string symbol;
43
46 uint16_t charge;
47
49 std::vector<double> j0;
51 std::vector<double> j2;
53 std::vector<double> j4;
55 std::vector<double> j6;
56
57 // The Lande g-factor of this ion
58 double g;
59};
60
62MANTID_KERNEL_DLL const MagneticIon &getMagneticIon(const std::string &symbol, const uint16_t charge);
64MANTID_KERNEL_DLL const MagneticIon &getMagneticIon(const std::string &symbol);
66MANTID_KERNEL_DLL std::vector<double> getJL(const std::string &symbol, const uint16_t charge, const uint16_t l = 0);
67
69MANTID_KERNEL_DLL std::vector<std::string> getMagneticIonList();
70
71} // namespace PhysicalConstants
72} // namespace Mantid
A namespace containing physical constants that are required by algorithms and unit routines.
Definition: Atom.h:14
MANTID_KERNEL_DLL std::vector< std::string > getMagneticIonList()
Returns a list of all ions.
MANTID_KERNEL_DLL const MagneticIon & getMagneticIon(const std::string &symbol, const uint16_t charge)
Returns the magnetic ion for the given symbol and charge.
MANTID_KERNEL_DLL std::vector< double > getJL(const std::string &symbol, const uint16_t charge, const uint16_t l=0)
Returns the Lth-coefficients for the given ion.
Helper class which provides the Collimation Length for SANS instruments.
Struture to hold information about magnetic form factor for 3d, 4d, rare earth, and actinide atoms an...
Definition: MagneticIon.h:25
std::vector< double > j4
A vector containing A, a, B, b, C, c D, e for each <j4>
Definition: MagneticIon.h:53
std::vector< double > j2
A vector containing A, a, B, b, C, c D, e for each <j2>
Definition: MagneticIon.h:51
std::string symbol
The atomic symbol. In other words the one or two character abbreviation.
Definition: MagneticIon.h:42
std::vector< double > j6
A vector containing A, a, B, b, C, c D, e for each <j6>
Definition: MagneticIon.h:55
std::vector< double > j0
A vector containing A, a, B, b, C, c D, e for each <j0>
Definition: MagneticIon.h:49
uint16_t charge
The charge of the ion, or 0 for neutral atom.
Definition: MagneticIon.h:46