Pyxaid2
 All Classes
state.h
1 /***********************************************************
2  * Copyright (C) 2013 Alexey V. Akimov
3  * This file is distributed under the terms of the
4  * GNU General Public License as published by the
5  * Free Software Foundation; either version 3 of the
6  * License, or (at your option) any later version.
7  * http://www.gnu.org/copyleft/gpl.txt
8 ***********************************************************/
9 
10 #ifndef pyxaid_state_h
11 #define pyxaid_state_h
12 
13 #include <vector>
14 #include <math.h>
15 #include <iostream>
16 #include <iomanip>
17 #include <fstream>
18 #include <string>
19 #include <sstream>
20 #include <boost/python.hpp>
21 using namespace boost::python;
22 using namespace std;
23 
24 #include "liblibra_core.h"
25 using namespace liblibra;
26 using namespace liblibra::libutil;
27 
28 
29 int ext2int(int,vector<int>&);
30 //int delta(vector<int>& A,vector<int>& B,int& a,int& b);
31 
32 
33 class me_state{
34 // Multi-electron state
35 // Basically it is a Slater product
36 
37 public:
38  std::string name; // label of the determinant
39  // Data
40  vector<int> active_space; // All occupied and virtual orbitals involved in dynamics
41  vector<int> actual_state; // This is an actual(current) state
42 
43  double Eshift; // this correction goes to Exc and is read directly from input - this is
44  // to simplify parameter development
45  double Exc; // correlation correction, to better describe the energy
46  // of the state with 2 electrons on the same orbital
47 
48  // NAC scaling constants for different pairs of the states
49  // the sizes of the below vectors should be equal and elements be in correspondense
50  vector<int> nac_scl_indx;
51  vector<double> nac_scl;
52 
53 
54  // Constructors
55  me_state(){}
56  me_state(vector<int>& as_,vector<int>& cs_){ active_space = as_; actual_state = cs_; Exc = 0.0; }
57 
58  // Basically the constructor
59  void set_me_state(vector<int>& as_,vector<int>& cs_){ active_space = as_; actual_state = cs_; Exc = 0.0;}
60 
61  // Destructor
62  ~me_state() { ; ;}
63 
64  // Functions
65  int calculate_Exc(vector<int>&, vector<int>&, vector<double>&,vector<int>&, vector<double>&);
66  void show_state();
67 
68 };
69 
70 
71 void input_iconds(boost::python::dict params,int me_numstates,vector<vector<int> >& icond);
72 void input_states(boost::python::dict params,vector<me_state>& states);
73 
74 
75 
76 #endif // state_h
Definition: state.h:33