8 #ifndef SPARROW_SKATOM_H
9 #define SPARROW_SKATOM_H
22 enum orbital { s, p, d };
24 explicit SKAtom(Utils::ElementType el);
25 void setEnergies(
double es,
double ep,
double ed);
26 void setOccupations(
int fs,
int fp,
int fd);
27 void setHubbardParameter(
double us,
double up,
double ud);
28 void setSpinConstants(std::array<std::array<double, 3>, 3> arr);
29 bool hasSpinConstants()
const {
32 void setHubbardDerivative(
double hubbard) {
33 hubbardDerivative = hubbard;
36 double getHubbardDerivative()
const {
37 return hubbardDerivative;
39 bool hasHubbardDerivative()
const {
45 int getOccupation()
const {
46 return totalOccupation;
48 double getHubbardParameter()
const;
49 double getOrbitalEnergy(
int orbital)
const;
50 double getEnergy()
const;
67 double getAtomicResolvedSpinConstant()
const;
68 orbital getHighestOrbital()
const {
69 return highestOrbital;
72 bool operator==(
const SKAtom& rhs)
const {
73 return element_ == rhs.element_;
77 Utils::ElementType element_;
79 orbital highestOrbital;
81 int totalOccupation, Fs, Fp, Fd;
85 std::array<std::array<double, 3>, 3> sc;
90 double hubbardDerivative;
94 inline double SKAtom::getAtomicResolvedSpinConstant()
const {
95 if (!hasSpinConstants())
97 if (highestOrbital == orbital::s) {
100 else if (highestOrbital == orbital::p) {
111 #endif // SPARROW_SKATOM_H
double getSpinConstant(int i, int j)
Function returning the spin constants (magnetic Hubbard) Spin constants are stored as follows: sc[0][...
Definition: SKAtom.h:64
static std::string symbol(ElementType e)