void main(void) { int i; int index =301; int nf =1; int pdegree =1; int nX =4; int nY=2; int nZ =4; int qstride =5; int *ijklmn; double *qnodes; int *index1; double *xlo; double *dx; double *xyz; xlo=(double *)malloc(sizeof(double)*3); dx=(double *)malloc(sizeof(double)*3); index1=(int *)malloc(sizeof(int)*8); qnodes=(double *)malloc(sizeof(double)*2); xyz=(double *)malloc(sizeof(double)*8*3); for(i=0; i<3; i++) { xlo[i]=0.0; dx[i]=1.0; } qnodes[0]=-sqrt(1./3.0); qnodes[1]=-qnodes[0]; ijklmn=(int *)malloc(sizeof(int)*6); get_amr_index_xyz(qstride,0,0,0,pdegree,nX,nY,nZ,nf,xlo,dx,qnodes,index1,xyz); for(i=0; i<8; i++) printf("%d ",index1[i]); printf("\n"); for(i=0; i<8; i++) { amr_index_to_ijklmn(pdegree,nX,nY,nZ,nf,qstride,index1[i],ijklmn); printf("%d %d %d %d %d %d\n",ijklmn[0],ijklmn[1],ijklmn[2],ijklmn[3],ijklmn[4],ijklmn[5]); } }
void CartBlock::insertInDonorList(int senderid,int index,int meshtagdonor,int remoteid,double cellRes) { DONORLIST *temp1; int ijklmn[6]; int pointid; temp1=(DONORLIST *)malloc(sizeof(DONORLIST)); amr_index_to_ijklmn(pdegree,dims[0],dims[1],dims[2],nf,qstride,index,ijklmn); //pointid=ijklmn[5]*(pdegree+1)*(pdegree+1)*d3+ // ijklmn[4]*(pdegree+1)*d3+ // ijklmn[3]*d3+ // ijklmn[2]*d2+ // ijklmn[1]*d1+ // ijklmn[0]; pointid=(ijklmn[2]*d2+ijklmn[1]*d1+ijklmn[0])*p3+ ijklmn[5]*(pdegree+1)*(pdegree+1)+ ijklmn[4]*(pdegree+1)+ijklmn[3]; if (!(pointid >= 0 && pointid < ndof)) { tracei(index); tracei(nf); tracei(pdegree); tracei(dims[0]); tracei(dims[1]); tracei(dims[2]); tracei(qstride); printf("%d %d %d %d %d %d\n",ijklmn[0],ijklmn[1],ijklmn[2], ijklmn[3],ijklmn[4],ijklmn[5]); } assert((pointid >= 0 && pointid < ndof)); temp1->donorData[0]=senderid; temp1->donorData[1]=meshtagdonor; temp1->donorData[2]=remoteid; temp1->donorRes=cellRes; temp1->cancel=0; insertInList(&(donorList[pointid]),temp1); }