QNANO
Selected_Manybody_States.h
1 #ifndef QNANO_NEW_SELECTED_MANYBODY_STATES_DEFINED_H
2 #define QNANO_NEW_SELECTED_MANYBODY_STATES_DEFINED_H
3 
4 #include "manybody/Fermion_Double_Index.h"
5 #include <map>
6 #include <cstdlib>
7 #include <iostream>
8 #include "tools/Size_Provider.h"
9 #include "tools/Reader.h"
10 #include "tools/Index_Hash_Table.h"
11 
12 
14 public:
15 
16  virtual size_t size()const=0;
17  virtual void clear(){};
18  virtual bool is_contained(const Fermion_Double_Index &fi)const=0;
19 
20  virtual int find(const Fermion_Double_Index &fi)const=0;
21  virtual int find_check(const Fermion_Double_Index &fi)const=0;
22 
23 
24  virtual void add_if_not_contained(const Fermion_Double_Index &fi)=0;
25  virtual void add_from_file(const std::string &fname, int rank_e, int rank_h, int max_nr_e, int max_nr_h)=0;
26 
27  virtual void print(std::ostream &os=std::cout)const=0;
28  virtual void print(const std::string &fname)const{
29  std::ofstream ofs(fname.c_str());
30  print(ofs);
31  }
32 
33  virtual void add_all(int rank_e, int rank_h, int nr_e, int nr_h, int start_e=0, int start_h=0)=0;
34  virtual void add_singles(int nr_e, int nr_h)=0;
35 
36 
37 };
38 #endif
Definition: Size_Provider.h:11
Definition: Selected_Manybody_States.h:13
Definition: Fermion_Double_Index.h:14