Mantid
Loading...
Searching...
No Matches
Atom.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"
11#include <string>
12
13namespace Mantid {
20class MANTID_KERNEL_DLL Atom {
21public:
23 Atom(std::string symbol, const uint16_t z, const uint16_t a, const double abundance, const double mass,
24 const double density);
26 Atom(const Atom &other);
28 Atom(const NeutronAtom &neutron);
29
31 const std::string symbol;
32
34 const uint16_t z_number;
35
38 const uint16_t a_number;
39
43 const double abundance;
44
47 const double mass;
48
50 const double mass_density;
51
54 const double number_density;
55
58};
59
61MANTID_KERNEL_DLL bool operator==(const Atom &left, const Atom &right);
63MANTID_KERNEL_DLL bool operator!=(const Atom &left, const Atom &right);
65MANTID_KERNEL_DLL std::ostream &operator<<(std::ostream &out, const Atom &atom);
66MANTID_KERNEL_DLL const Atom &getAtom(const uint16_t z_number, const uint16_t a_number = 0);
67MANTID_KERNEL_DLL const Atom &getAtom(const std::string &symbol, const uint16_t a_number = 0);
68
69} // namespace PhysicalConstants
70} // namespace Mantid
double left
Definition: LineProfile.cpp:80
double right
Definition: LineProfile.cpp:81
Struture to hold the common information for an atom.
Definition: Atom.h:20
const std::string symbol
The atomic symbol. In other words the one or two character abbreviation.
Definition: Atom.h:31
const NeutronAtom neutron
Handle to class containing neutronic atomic properties.
Definition: Atom.h:57
const uint16_t z_number
The atomic number, or number of protons, for the atom.
Definition: Atom.h:34
const double abundance
The natural abundance of the isotope as a percentage between 0 and 100.
Definition: Atom.h:43
const uint16_t a_number
The total number of protons and neutrons, or mass number, for the atom for isotopic averages this is ...
Definition: Atom.h:38
const double mass
The atomic mass in units of 'u' (=1g/mol/Na).
Definition: Atom.h:47
const double number_density
The number density in units of cm-3 as calculated from the mass density.
Definition: Atom.h:54
const double mass_density
The atomic mass density in units of g/cm3.
Definition: Atom.h:50
A namespace containing physical constants that are required by algorithms and unit routines.
Definition: Atom.h:14
MANTID_KERNEL_DLL bool operator!=(const Atom &left, const Atom &right)
Inequality operator overload.
Definition: Atom.cpp:3150
MANTID_KERNEL_DLL const Atom & getAtom(const uint16_t z_number, const uint16_t a_number=0)
Definition: Atom.cpp:3167
MANTID_KERNEL_DLL std::ostream & operator<<(std::ostream &out, const Atom &atom)
Stream operator overload.
Definition: Atom.cpp:3152
MANTID_KERNEL_DLL bool operator==(const Atom &left, const Atom &right)
Equality operator overload.
Definition: Atom.cpp:3128
Helper class which provides the Collimation Length for SANS instruments.
Structure to store neutronic scattering information for the various elements.
Definition: NeutronAtom.h:22