#include #include #include #include #include void Psitions(double **Positions,double sigma2, int N, double size); void Vtesses(double **Vitesses,int N); void allocdouble2(double ***array,int xsize,int ysize); double distance2(double **Positions,int i, int j, double size); void allocdouble(double **array,long xsize); void snapshot(double **Positionst,double **Vitesses, int flag,int N, int size, int un, int deux); void calcul_temps(double **Positions,double **Vitesses,double *tempscol,int *col,double size,double sigma, int i, int j); /*################################################################### ###################################################################*/ void allocdouble2(double ***array,int xsize,int ysize) /* dynamically allocates a two dimensional (*array)[xize][ysize] with datasize bytes per element */ { int i; *array=/*(double **)*/ malloc(xsize*sizeof(double *)); if (*array == NULL) {fprintf(stderr," memory allocation problems\n"); exit(-1);} for(i=0;i= 0) { double t1,t2,ttmin,ttmax; t1=(-b-sqrt(Delta))/(2*a); t2=(-b+sqrt(Delta))/(2*a); if (t10) {temps=ttmin;} else { if (ttmax>0) {temps=ttmax;}} } if (temps\n"); exit (1); } /*Nombre de particules et alpha sont les parametres qui varient entre deux simulations*/ /* on les mets dans un fichier pour eviter de recompiler le programme*/ { FILE *debut; if ((debut = fopen (argv[1],"r")) == NULL) { fprintf(stderr,"Probleme d'ouverture de %s\n",argv[1]); exit (1); } fscanf(debut,"%d%*[^\n]", &N); fscanf(debut,"%le%*[^\n]", &alpha); fscanf(debut,"%d%*[^\n]", &iter); fscanf(debut,"%le%*[^\n]", &tmes); fscanf(debut,"%le%*[^\n]", &tmax); } allocdouble2(&Positions,2,N); allocdouble2(&Positionst,2,N); allocdouble2(&Vitesses,2,N); //Positions et vitesses pour t=0 Psitions(Positions,sigma,N, size); Vtesses(Vitesses,N); //Initialise les positions dependants du temps for (i=0; ip) { int freq[20]; int ibis=0; for (ibis=0;ibis<20;ibis++) { freq[ibis]=0; } for (i=0;i(-0.2+ibis*0.02) && Vitesses[0][i]<=(-0.2+(ibis+1)*0.02)) { freq[ibis]=freq[ibis]+1; } } } for (ibis=0;ibis<20;ibis++) { freq2[ibis]=freq2[ibis]+freq[ibis]; } p=tmax+1; } #endif #ifdef DEBUG for (i=0; i