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)