1 #ifndef CONCRETE_RECTANGLE_HPP 2 #define CONCRETE_RECTANGLE_HPP 26 bool leaf()
const {
return true;};
27 size_t size()
const {
return 1;};
30 Hamiltonian::ref my_H;
32 Hamiltonian::const_ref am_leaf_get_H(
size_t pos)
const {
return my_H;};
33 Hamiltonian::ref am_leaf_get_H(
size_t pos) {
return my_H;};
42 const char* name()
const {
return "single_Rectangle";}
44 size_t layers_()
const {
return my_H->layers();};
45 size_t drawing_layers_()
const;
49 size_t grid_points_()
const {
return begin().ny();};
50 size_t nx_(
size_t)
const {
return 1;};
71 bool leaf()
const {
return true;};
72 size_t size()
const {
return nx;};
75 simple_Hamiltonian::ref my_H;
78 Hamiltonian::const_ref am_leaf_get_H(
size_t pos)
const {
return my_H;};
79 Hamiltonian::ref am_leaf_get_H(
size_t pos) {
return my_H;};
84 const char* name()
const {
return "periodic_Rectangle";}
90 size_t layers_()
const {
return my_H->layers();};
91 size_t drawing_layers_()
const;
95 size_t grid_points_()
const;
96 size_t nx_(
size_t)
const {
return nx;};
116 bool leaf()
const {
return true;};
117 size_t size()
const {
return nx;};
122 Hamiltonian::ref my_H;
125 Hamiltonian::const_ref am_leaf_get_H(
size_t pos)
const {
return my_H;};
126 Hamiltonian::ref am_leaf_get_H(
size_t pos) {
return my_H;};
131 const char* name()
const {
return "Rectangle";}
136 size_t layers_()
const {
return my_H->layers();};
137 size_t drawing_layers_()
const;
141 size_t grid_points_()
const;
142 size_t nx_(
size_t)
const {
return nx;};
163 typedef STD_TR1::shared_ptr<Interface> Interface_ref;
164 typedef STD_TR1::shared_ptr<const Interface> Interface_const_ref;
175 size_t size()
const {
return Rects->size();};
176 bool leaf()
const {
return false;};
180 typedef std::vector<Rectangle::ref> Rect_List;
181 STD_TR1::shared_ptr<Rect_List> Rects;
183 typedef std::vector<Rectangle::ref>::iterator rect_iter;
184 typedef std::vector<Rectangle::ref>::const_iterator c_rect_iter;
186 typedef std::vector<Interface_ref> Inter_List;
187 Inter_List Interfaces;
189 typedef std::vector<Interface_ref>::iterator int_iter;
190 typedef std::vector<Interface_ref>::const_iterator c_int_iter;
192 const char* name()
const {
return "Block";};
195 Interface_const_ref get_I(
size_t pos)
const {
return Interfaces[pos];};
197 Rectangle::const_ref am_no_leaf_get_R(
size_t pos)
const {
return (*Rects)[pos];};
198 Rectangle::ref am_no_leaf_get_R(
size_t pos) {
return (*Rects)[pos];};
202 void createH(
Matrix&)
const;
211 size_t layers_()
const;
212 size_t drawing_layers_()
const;
214 size_t grid_points_()
const;
215 size_t nx_(
size_t)
const;
217 bool act_as_one_rect;
Definition: simple_rectangles.hpp:63
Definitions of abstract Rectangle base class.
Definition: iterators.hpp:13
An abstract base class defining potentials, use with ExtPot_Hamiltonian.
Definition: abstract_potential.hpp:38
Definition: noiseless.hpp:11
double dy(const geometry_const_Iterator &ci) const
return offset in y direction to next slice, usually zero
Definition: rectangle.hpp:92
Definition: simple_rectangles.hpp:108
Definition: simple_rectangles.hpp:168
Abstract class that defines a geomeetry.
Definition: rectangle.hpp:31
Definition: rectangle_visitor.hpp:21
Definition: simple_rectangles.hpp:18
Abstract base class describing the interface between adjacent Rectangles.
Definition: interface.hpp:104
Base Matrix class for access to 2D number grids.
Definition: matrix.hpp:82