Beispiel #1
0
int
main(int argc, char *argv[])
{
#define NX 4
#define NY 5
    /* Rectilinear mesh coordinates. */
    float x[] = {0., 1., 2.5, 5.};
    float y[] = {0., 2., 2.25, 2.55,  5.};
    float z[] = {0.};
    int dims[] = {NX, NY, 1};

    /* Zonal and Nodal variable data. */
    float zonal[NY-1][NX-1], nodal[NY][NX];
    /* Info about the variables to pass to visit_writer. */
    int nvars = 2;
    int vardims[] = {1, 1};
    int centering[] = {0, 1};
    const char *varnames[] = {"zonal", "nodal"};
    float *vars[] = {(float*)zonal, (float*)nodal};

    /* Create a zonal variable. */
    int i,j,index = 0;
    for(j = 0; j < NY-1; ++j)
        for(i = 0; i < NX-1; ++i, ++index)
            zonal[j][i] = (float)index;

    /* Create a nodal variable. */
    index = 0;
    for(j = 0; j < NY; ++j)
        for(i = 0; i < NX; ++i, ++index)
            nodal[j][i] = (float)index;

    /* Pass the data to visit_writer to write a VTK file.*/
    write_rectilinear_mesh("vwrect2d.vtk", 0, dims, x, y, z, nvars,
        vardims, centering, varnames, vars);

    return 0;
}
Beispiel #2
0
void write_regular_mesh(const char *filename, int ub, int *dims,
                        int nvars, int *vardim, int *centering,
                        const char * const *varnames, float **vars)
{
    int  i;

    float *x = (float *) malloc(sizeof(float)*dims[0]);
    float *y = (float *) malloc(sizeof(float)*dims[1]);
    float *z = (float *) malloc(sizeof(float)*dims[2]);

    if (x != NULL)
    {
        for (i = 0 ; i < dims[0] ; i++)
            x[i] = (float) i;
    }
    if(y != NULL)
    {
        for (i = 0 ; i < dims[1] ; i++)
            y[i] = (float) i;
    }
    if(z != NULL)
    {
        for (i = 0 ; i < dims[2] ; i++)
            z[i] = (float) i;
    }

    write_rectilinear_mesh(filename, ub, dims, x, y, z, nvars, vardim,
                           centering, varnames, vars);

    if(x != NULL)
        free(x);
    if(y != NULL)
        free(y);
    if(z != NULL)
        free(z);
}