densityplotter.h
00001 #ifndef DENSITYPLOTTER_H
00002 #define DENSITYPLOTTER_H
00003 #include <fstream>
00004 #include <armadillo>
00005 using namespace arma;
00006 
00007 class WaveFunction;
00008 class INIParser;
00009 class Config;
00010 
00011 using namespace std;
00012 //class Hamiltonian;
00013 
00018 class StepConfig {
00019 public:
00020     int firstStep;
00021     int lastStep;
00022     int nSteps;
00023 };
00024 
00025 class DensityPlotter
00026 {
00027     //Q_PROPERTY(double charge READ charge WRITE setCharge)
00028 public:
00029     DensityPlotter(Config *config);
00030     void makePlot();
00031     void loadConfiguration(INIParser *settings);
00032     ~DensityPlotter();
00033 
00034     double charge() const {
00035         return m_charge;
00036     }
00037 
00038 //public slots:
00039     void setCharge(double arg) {
00040         m_charge = arg;
00041     }
00042 
00043     void divideSteps(int myRank, int m_nProcesses, int totalSteps, StepConfig *stepConfig);
00044 private:
00045     Config *config;
00046     WaveFunction *m_wave;
00047     INIParser *m_settings;
00048     long *idum;
00049     vec2 *r_old;
00050     vec2 *r_new;
00051     double m_charge;
00052     double m_stepLength;
00053     double aMin;
00054     double bMin;
00055     double aMax;
00056     double bMax;
00057     int aSteps;
00058     int bSteps;
00059     int m_nCycles;
00060     ofstream plotFile;
00061     ofstream params0File;
00062     ofstream params1File;
00063 };
00064 
00065 #endif // DENSITYPLOTTER_H
 All Classes Functions