| | |
| | | ts_cell_list *init_cell_list(ts_uint ncmax1, ts_uint ncmax2, ts_uint ncmax3, ts_double stepsize){ |
| | | ts_uint i; |
| | | ts_uint nocells=ncmax1*ncmax2*ncmax3; |
| | | ts_cell_list *clist=(ts_cell_list *)malloc(sizeof(ts_cell_list)); |
| | | ts_cell_list *clist=(ts_cell_list *)calloc(1,sizeof(ts_cell_list)); |
| | | if(clist==NULL) fatal("Error while allocating memory for cell list!",100); |
| | | |
| | | clist->ncmax[0]=ncmax1; |
| | |
| | | clist->cellno=nocells; |
| | | clist->dcell=1.0/(1.0 + stepsize); |
| | | clist->shift=(ts_double) clist->ncmax[0]/2; |
| | | |
| | | clist->cell=(ts_cell **)malloc(nocells*sizeof(ts_cell *)); |
| | | clist->max_occupancy=16; /* hard coded max occupancy? */ |
| | | clist->cell=(ts_cell **)calloc(nocells,sizeof(ts_cell *)); |
| | | if(clist->cell==NULL) fatal("Error while allocating memory for cell list! ncmax too large?",101); |
| | | |
| | | for(i=0;i<nocells;i++){ |
| | |
| | | cell_occupation=clist->cell[neigh_cidx]->nvertex; |
| | | // fprintf(stderr, "cell_occupation=%i\n",cell_occupation); |
| | | if(cell_occupation>clist->max_occupancy){ |
| | | ts_fprintf(stderr,"max occupancy= %d, cell occupation= %d", clist->max_occupancy, cell_occupation); |
| | | fatal("Neighbouring cell occupation more than set max_occupancy value.",2000); |
| | | } |
| | | // Now we check whether we didn't come close to some other vertices in the same |