QNANO
Potential_from_GTE.h
1 #ifndef QNANO_NEW_POTENTIAL_FROM_GTE_DEFINED_H
2 #define QNANO_NEW_POTENTIAL_FROM_GTE_DEFINED_H
3 
4 #include "tools/Tensor2.h"
5 #include "tools/List_Class.h"
6 #include "tools/Parameter_Map.h"
7 #include "structure/Generate_Potential.h"
8 
9 class Single_GTE: public Tensor2d{
10 public:
11  double Lx, Ly;
12  double voltage, zcoord;
13 
14  void read(const std::string &filename);
15 
16 
17  Single_GTE &operator=(const Single_GTE &other){
18  Tensor2d::operator=(other);
19  Lx=other.Lx; Ly=other.Ly;
20  voltage=other.voltage; zcoord=other.zcoord;
21  return *this;
22  }
23  Single_GTE(): Tensor2d(), Lx(1.), Ly(1.), voltage(0.),zcoord(0.){
24  }
25  Single_GTE(const Single_GTE &other){
26  operator=(other);
27  }
28  Single_GTE(const std::string &filename, double voltage_=0., double z_=0.)
29  : Lx(1.), Ly(1.), voltage(voltage_), zcoord(z_){
30  read(filename);
31  }
32 };
33 
35 public:
36  std::vector<Single_GTE> gates;
37 
38  void add_gate(const std::string &filename, double voltage, double z){
39  gates.push_back(Single_GTE(filename, voltage, z));
40  }
41  void setup(Parameter_Map &param_map);
42 
43 
44  virtual void generate(const Atom_List &atlist);
45 
48  setup(param_map);
49  }
50 
51 };
52 
53 
54 
55 #endif
Definition: Parameter_Map.h:12
Definition: Atom_List.h:9
Definition: Potential_from_GTE.h:34
Class to store a rank-2 (complex) tensor, i.e., a matrix:
Definition: Tensor2.h:10
Potential generator: interface with "generate(positionfile)" function.
Definition: Generate_Potential.h:9
Definition: Potential_from_GTE.h:9