Beispiel #1
0
    void v112_api()
    {
      // Call v112 API functions to ensure they get imported.
      TECINI112 (NULL,		 
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL);

      TECZNE112 (NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL,
		 NULL);

      TECDAT112 (NULL,
		 NULL,
		 NULL);

      TECNOD112 (NULL);
      
      TECEND112 ();
    }
Beispiel #2
0
int main(int argc, char* argv[])
{
    int num_p, num_f;
    int n_slice;

    if(argc < 2) {print_help(); exit(-2);}
    /*if(    strcmp(argv[1], "A")*/
            /*|| strcmp(argv[1], "X")*/
            /*|| strcmp(argv[1], "Y")*/
            /*|| strcmp(argv[1], "Z") ){print_help(); exit(-2);}*/
    if (!strcmp(argv[1], "A"))
    {
        nt = argc - 2;
        time_list = (int*)calloc(nt, sizeof(int));
        for(int i=0; i<nt; i++)
            time_list[i] = atoi(argv[i+2]);
    }
    else 
    {
        printf("argc = %d\n", argc);
        nt = argc - 3;
        time_list = (int*)calloc(nt, sizeof(int));
        n_slice = atoi(argv[2]);
        for(int i=0; i<nt; i++)
            time_list[i] = atoi(argv[i+3]);
    }

    printf("Total %d time seriese data\n", nt);


    FILE *fp_map;
    if((fp_map = fopen("V.bin", "rb")) == NULL)
    {
        fprintf(stderr, "Node map file openning error!\n");
        exit(-1);
    }
    fread(&num_f, sizeof(int), 1, fp_map);
    printf(">>> Total num of fluid  nodes = %d\n", num_f);

    fread(&num_p,  sizeof(int), 1, fp_map);
    printf(">>> num_p = %d\n", num_p);
    int *start_loc = (int*) calloc(num_p, sizeof(int));

    fread(&nx,  sizeof(int), 1, fp_map);
    fread(&ny,  sizeof(int), 1, fp_map);
    fread(&nz,  sizeof(int), 1, fp_map);

    long size = nx*ny*nz;

    rho = (double*) calloc(size, sizeof(double));
    u   = (double*) calloc(size, sizeof(double));
    v   = (double*) calloc(size, sizeof(double));
    w   = (double*) calloc(size, sizeof(double));
    X   = (double*) calloc(size, sizeof(double));
    Y   = (double*) calloc(size, sizeof(double));
    Z   = (double*) calloc(size, sizeof(double));

    flag= (unsigned char*) calloc(size, sizeof(unsigned char));

    FILE* fp_flag;
    if((fp_flag = fopen("flag.bin", "rb")) == NULL)
    {
        fprintf(stderr, "Flag file openning error!\n");
        exit(-1);
    }
    fread(flag, sizeof(unsigned char), size, fp_flag);
    fclose(fp_flag);

    fread(start_loc, sizeof(int), num_p, fp_map);
    NODE_INFO *V = (NODE_INFO *)calloc(num_f, sizeof(NODE_INFO));
    fread(V, sizeof(NODE_INFO), num_f, fp_map);
    fclose(fp_map);

    for(int zi=0; zi<nz; zi++)
        for(int yi=0; yi<ny; yi++)
            for(int xi=0; xi<nx; xi++) {
                Z[zi*nx*ny+yi*nx+xi] = (double)zi;
                Y[zi*nx*ny+yi*nx+xi] = (double)yi;
                X[zi*nx*ny+yi*nx+xi] = (double)xi;
            }

    char partname[100];
    char fullname[100];
    FILE* fp_part;

    double *rho_p, *u_p, *v_p, *w_p;
    int N;

    for(int it = 0; it<nt; it++)
    {
        sprintf(fullname, "full_%07d.dat", time_list[it]);
        for(int i=0; i<num_p; i++)
        {
            sprintf(partname, "part_%03d_%07d.bin", i, time_list[it]);
            if((fp_part = fopen(partname, "rb")) == NULL)
            {
                fprintf(stderr, "Part file openning error!\n");
                exit(-1);
            }
            if(i < num_p -1) 
                N = start_loc[i+1] - start_loc[i];
            else 
                N = num_f - start_loc[i];

            rho_p = (double*) calloc(N, sizeof(double));
            u_p   = (double*) calloc(N, sizeof(double));
            v_p   = (double*) calloc(N, sizeof(double));
            w_p   = (double*) calloc(N, sizeof(double));

            fread(rho_p, sizeof(double), N, fp_part);
            fread(u_p,   sizeof(double), N, fp_part);
            fread(v_p,   sizeof(double), N, fp_part);
            fread(w_p,   sizeof(double), N, fp_part);
            fclose(fp_part);

            int x, y, z, loc;
            for(int n=0; n<N; n++)
            {
                x = V[start_loc[i] + n].x;
                y = V[start_loc[i] + n].y;
                z = V[start_loc[i] + n].z;
                loc = z*nx*ny + y*nx + x;
                rho[loc] = rho_p[n];
                u[loc] = u_p[n];
                v[loc] = v_p[n];
                w[loc] = w_p[n];
            }
        } //processors


        if (!strcmp(argv[1], "A"))
        {
            double SolTime;
            INTEGER4 Debug,I, III,DIsDouble,VIsDouble,IMax,JMax,KMax,ZoneType,StrandID,ParentZn,IsBlock;
            INTEGER4 ICellMax,JCellMax,KCellMax,NFConns,FNMode,ShrConn, FileType;

            Debug     = 0;
            VIsDouble = 1;
            DIsDouble = 1;
            IMax      = nx;
            JMax      = ny;
            KMax      = nz;
            ZoneType  = 0;      /* Ordered */
            SolTime   = time_list[it];
            StrandID  = 0;     /* StaticZone */
            ParentZn  = 0;      /* No Parent */
            IsBlock   = 1;      /* Block */
            ICellMax  = 0;
            JCellMax  = 0;
            KCellMax  = 0;
            NFConns   = 0;
            FNMode    = 0;
            ShrConn   = 0;
            FileType  = 0;

            I = TECINI112("SIMPLE DATASET",
                    "X Y Z rho  vx vy vz flag",
                    fullname,
                    ".",
                    &FileType,
                    &Debug,
                    &VIsDouble);

            I = TECZNE112("Simple Zone",
                    &ZoneType,
                    &IMax,
                    &JMax,
                    &KMax,
                    &ICellMax,
                    &JCellMax,
                    &KCellMax,
                    &SolTime,
                    &StrandID,
                    &ParentZn,
                    &IsBlock,
                    &NFConns,
                    &FNMode,
                    0,              /* TotalNumFaceNodes */
                    0,              /* NumConnectedBoundaryFaces */
                    0,              /* TotalNumBoundaryConnections */
                    NULL,           /* PassiveVarList */
                    NULL,           /* ValueLocation = Nodal */
                    NULL,           /* SharVarFromZone */
                    &ShrConn);

            III = IMax*JMax*KMax;
            I = TECDAT112(&III,X,&DIsDouble);
            I = TECDAT112(&III,Y,&DIsDouble);
            I = TECDAT112(&III,Z,&DIsDouble);
            I = TECDAT112(&III,rho,&DIsDouble);
            I = TECDAT112(&III,u,&DIsDouble);
            I = TECDAT112(&III,v,&DIsDouble);
            I = TECDAT112(&III,w,&DIsDouble);
            I = TECDAT112(&III,flag,&DIsDouble);
            I = TECEND112();
        }
        else if (!strcmp(argv[1], "X"))
        {
            output_slice_X(n_slice);
        }
        else if (!strcmp(argv[1], "Y"))
        {
            output_slice_Y(n_slice);
        }
        else if (!strcmp(argv[1], "Z"))
        {
            output_slice_Z(n_slice);
        }
        else
        {
            fprintf(stderr, "Not implemented yet!\n");
            exit(-3);
        }

        free(u_p);
        free(v_p);
        free(w_p);
        free(rho_p);

    } //Time list

    free(time_list);
    free(flag);
    free(start_loc);
    free(u);
    free(v);
    free(w);
    free(X);
    free(Y);
    free(Z);
    free(rho);
    free(V);
}