示例#1
0
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]);
    }
}
示例#2
0
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);
}