/************************************************************************/ /* */ /* Program : t H o o f t . c p p */ /* */ /* Creation : 9 VIII 2001 */ /* */ /* Class : Main program */ /* */ /* Programmer : Uwe Trittmann */ /* */ /* Purpose : PGR for calculating the 't Hooft model spectrum in */ /* DLCQ */ /* */ /************************************************************************/ #include #include #include #include #include #include #include "NAGdiagII.h" /* diagonalization routines */ #define PI 3.141592653589793 double *Hamiltonian_Matrix; /* Hamiltonian matrix */ Complex *r,*v; /* evs, efs for NAGLIB diagonalization */ int nos; /* number of basis states */ //----------------------------------------------------------------------- void generate_Hamiltonian(int K, double mu, int test) // generates Hamiltonian according to old "Two_particles.c" code // at harmonic resolution , =1 displays Hamiltonian { int i,j,k,m; double sum; if (K%2==0) nos=K/2+1; else nos=(K-1)/2+1; printf("\nNumber of basis states: %3d\n",nos); Hamiltonian_Matrix=dvector(0,(nos-1)*(nos-1)-1); m=0; for (i=0; i Hamiltonian_Matrix[(i-1)*(nos-1)+i-1]+=sum; for (m=1; m=nos) k=i-m; Hamiltonian_Matrix[(i-1)*(nos-1)+k-1]-=sum; } for (m=1; m=nos) k=K-i-m; Hamiltonian_Matrix[(i-1)*(nos-1)+k-1]-=sum; } } if (test==1) { m=0; for (i=0; i.dat> { int i,j; char name[40]; FILE *fp; sprintf(name,"Spectrum_tHooft_K%1dm%3.2f.dat",K,mu); fp = fopen(name,"w"); fprintf(fp,"%3d\n",nos); for (i=0; i