00001 #ifndef ORBITAL_H
00002 #define ORBITAL_H
00003
00004 #include "../hermite.h"
00005 #include "../config.h"
00006
00007 #include <armadillo>
00008
00009 using namespace arma;
00010
00014 class Orbital
00015 {
00016 public:
00017 Orbital(double nx, double ny, Config *config);
00018
00019 double evaluate(const vec2 &r) const;
00020 void setParameters(double* parameters);
00021 void gradient(const vec2 &r, vec2 &rGradient) const;
00022 double laplace(const vec2 &r);
00023 double nx() { return m_nx; }
00024 double ny() { return m_ny; }
00025 private:
00026
00027 double m_nx;
00028 double m_ny;
00029
00030 Config *config;
00031 double omega;
00032 double alphaOmega;
00033 double sqrtAlphaOmega;
00034 double alphaOmegaalphaOmega;
00035 double sqrtOmegaOverAlpha;
00036
00037 double alpha;
00038 double beta;
00039 };
00040
00041 #endif // ORBITAL_H