Greens-code
A modular quantum transport code
simpleHamiltonian_visitor.hpp
1 /*
2  * File: simpleHamiltonian_visitor.hpp
3  * Author: florian
4  *
5  * Created on May 19, 2013, 2:35 AM
6  */
7 
8 #ifndef SIMPLEHAMILTONIAN_VISITOR_HPP
9 #define SIMPLEHAMILTONIAN_VISITOR_HPP
10 
19 #include <vector>
20 #include "shared_ptr.hpp"
21 
22 class simple_Hamiltonian;
23 typedef STD_TR1::shared_ptr< const simple_Hamiltonian > simple_Hamiltonian_constref;
24 
26 public:
27 
28  typedef std::vector< simple_Hamiltonian_constref > sH_container;
29 
30  virtual ~simple_Hamiltonian_visitor() throw () {};
31 
32  void visit_default_sH(simple_Hamiltonian_constref hr) { visit_default_sH_(hr); };
33  void visit_composed_sH(simple_Hamiltonian_constref hr,
34  const sH_container& Hs) {
35  visit_composed_sH_(hr, Hs); };
36  void visit_wideband_sH(simple_Hamiltonian_constref hr) { visit_wideband_sH_(hr); };
37 
38 
39 private:
40 
41  virtual void visit_default_sH_(simple_Hamiltonian_constref hr) = 0;
42  virtual void visit_composed_sH_(simple_Hamiltonian_constref hr,
43  const sH_container&) = 0;
44  virtual void visit_wideband_sH_(simple_Hamiltonian_constref hr) = 0;
45 };
46 
47 #endif /* SIMPLEHAMILTONIAN_VISITOR_HPP */
48 
Definition: simpleHamiltonian_visitor.hpp:25
The abstract base class for any periodic Hamiltonian.
Definition: hamiltonian.hpp:131