00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00024 class mdp_vector_field: public mdp_field<mdp_complex> {
00025 public:
00026 int rows, columns, imax;
00027 mdp_vector_field() {
00028 rows=columns=imax=0;
00029 mdp_field<mdp_complex>::reset_field();
00030 }
00031 mdp_vector_field(mdp_vector_field &field) {
00032 rows=field.rows;
00033 columns=field.columns;
00034 imax=field.imax;
00035 allocate_field(field.lattice(),field.imax);
00036 }
00037 mdp_vector_field(mdp_lattice &a, int i) {
00038 rows=i;
00039 columns=1;
00040 imax=i;
00041 allocate_field(a,imax);
00042 }
00043 void allocate_mdp_vector_field(mdp_lattice &a, int i) {
00044 deallocate_field();
00045 rows=i;
00046 columns=1;
00047 imax=i;
00048 allocate_field(a,imax);
00049 }
00050 mdp_matrix operator() (mdp_site x) {
00051 return mdp_matrix(address(x),rows,columns);
00052 }
00053 mdp_complex& operator() (mdp_site x, int i) {
00054 return address(x)[i];
00055 }
00056 const mdp_complex& operator() (mdp_site x, int i) const {
00057 return address(x)[i];
00058 }
00059 };
00060