hamiltonian/hamiltonianideal.h
00001 #ifndef HAMILTONIANIDEAL_H
00002 #define HAMILTONIANIDEAL_H
00003 #define   ZERO       1.0E-10
00004 #include <armadillo>
00005 using namespace arma;
00006 
00007 #include "hamiltonian.h"
00008 
00012 class HamiltonianIdeal : public Hamiltonian
00013 {
00014 public:
00015     HamiltonianIdeal(Config *config);
00016     double kineticEnergy(WaveFunction *wave, vec2 r[]);
00017     double potentialEnergy(WaveFunction *wave, vec2 r[]);
00018     double externalPotentialEnergy(WaveFunction *wave, vec2 r[]);
00019     double interactionPotentialEnergy(WaveFunction *wave, vec2 r[]);
00020 
00021     double totalExternalPotentialEnergy() {
00022         return m_totalExternalPotentialEnergy;
00023     }
00024     double totalInteractionPotentialEnergy() {
00025         return m_totalInteractionPotentialEnergy;
00026     }
00027     void resetTotalEnergies();
00028     string totalsString();
00029     void outputTotals();
00030 
00031 private:
00032     double omega;
00033     double m_totalExternalPotentialEnergy;
00034     double m_totalInteractionPotentialEnergy;
00035 };
00036 
00037 #endif // HAMILTONIANIDEAL_H
 All Classes Functions