tfix vtk file parsing - slidergrid - grid of elastic sliders on a frictional surface
 (HTM) git clone git://src.adamsgaard.dk/slidergrid
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 153343f86817343c65a421adafecbb2769977911
 (DIR) parent aa7f30b3e772dca9dfc4bc189437b5c3acbeb6d3
 (HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
       Date:   Thu, 17 Mar 2016 16:16:53 -0700
       
       fix vtk file parsing
       
       Diffstat:
         M Makefile                            |       2 +-
         M slidergrid/simulation.c             |      55 ++++++++++++++++---------------
       
       2 files changed, 30 insertions(+), 27 deletions(-)
       ---
 (DIR) diff --git a/Makefile b/Makefile
       t@@ -14,7 +14,7 @@ default: run-test
        
        run-test: test
                ./$<
       -        python postprocessing.py --plot-sliders $<-output
       +        #python postprocessing.py --plot-sliders $<-output
        
        
        test: test.o $(ESSENTIALOBJS)
 (DIR) diff --git a/slidergrid/simulation.c b/slidergrid/simulation.c
       t@@ -164,17 +164,30 @@ int save_sliders_to_vtk_file(
                    "byte_order=\"LittleEndian\">\n");
            fprintf(f, "  <UnstructuredGrid>\n");
            fprintf(f, "    <Piece NumberOfPoints=\"%d\" NumberOfCells=\"0\">\n", N);
       -    fprintf(f, "      <PointData Scalars=\"Mass [kg]\" "
       -            "Vectors=\"Position [m]\">\n");
       +
       +    fprintf(f, "      <Points>\n");
        
            // positions
       -    fprintf(f, "        <DataArray NumberOfComponents=\"3\" type=\"Float32\" "
       -            "Name=\"Position [m]\" format=\"ascii\">\n");
       +    fprintf(f, "        <DataArray Name=\"Position [m]\" type=\"Float32\" "
       +            "NumberOfComponents=\"3\" format=\"ascii\">\n");
            fprintf(f, "          ");
            for (i=0; i<N; i++)
                fprintf(f, "%f %f %f ",
                        sliders[i].pos.x, sliders[i].pos.y, sliders[i].pos.z);
       -    fprintf(f, "        </DataArray>\n");
       +    fprintf(f, "\n        </DataArray>\n");
       +
       +    fprintf(f, "      </Points>\n");
       +
       +    fprintf(f, "      <PointData Scalars=\"Mass [kg]\" "
       +            "Vectors=\"vector\">\n");
       +
       +    // mass
       +    fprintf(f, "        <DataArray type=\"Float32\" "
       +            "Name=\"Mass [kg]\" format=\"ascii\">\n");
       +    fprintf(f, "          ");
       +    for (i=0; i<N; i++)
       +        fprintf(f, "%f ", sliders[i].mass);
       +    fprintf(f, "\n        </DataArray>\n");
        
            // velocities
            fprintf(f, "        <DataArray NumberOfComponents=\"3\" type=\"Float32\" "
       t@@ -183,7 +196,7 @@ int save_sliders_to_vtk_file(
            for (i=0; i<N; i++)
                fprintf(f, "%f %f %f ",
                        sliders[i].vel.x, sliders[i].vel.y, sliders[i].vel.z);
       -    fprintf(f, "        </DataArray>\n");
       +    fprintf(f, "\n        </DataArray>\n");
        
            // accelerations
            fprintf(f, "        <DataArray NumberOfComponents=\"3\" type=\"Float32\" "
       t@@ -192,16 +205,16 @@ int save_sliders_to_vtk_file(
            for (i=0; i<N; i++)
                fprintf(f, "%f %f %f ",
                        sliders[i].acc.x, sliders[i].acc.y, sliders[i].acc.z);
       -    fprintf(f, "        </DataArray>\n");
       +    fprintf(f, "\n        </DataArray>\n");
        
            // force
       -    fprintf(f, "        <DataArray NumberOfComponents=\"3\" type=\"Float32\" "
       +    fprintf(f, "\n        <DataArray NumberOfComponents=\"3\" type=\"Float32\" "
                    "Name=\"Force [N]\" format=\"ascii\">\n");
            fprintf(f, "          ");
            for (i=0; i<N; i++)
                fprintf(f, "%f %f %f ",
                        sliders[i].force.x, sliders[i].force.y, sliders[i].force.z);
       -    fprintf(f, "        </DataArray>\n");
       +    fprintf(f, "\n        </DataArray>\n");
        
            // angular positions
            fprintf(f, "        <DataArray NumberOfComponents=\"3\" type=\"Float32\" "
       t@@ -210,7 +223,7 @@ int save_sliders_to_vtk_file(
            for (i=0; i<N; i++)
                fprintf(f, "%f %f %f ",
                        sliders[i].angpos.x, sliders[i].angpos.y, sliders[i].angpos.z);
       -    fprintf(f, "        </DataArray>\n");
       +    fprintf(f, "\n        </DataArray>\n");
        
            // angular velocities
            fprintf(f, "        <DataArray NumberOfComponents=\"3\" type=\"Float32\" "
       t@@ -219,7 +232,7 @@ int save_sliders_to_vtk_file(
            for (i=0; i<N; i++)
                fprintf(f, "%f %f %f ",
                        sliders[i].angvel.x, sliders[i].angvel.y, sliders[i].angvel.z);
       -    fprintf(f, "        </DataArray>\n");
       +    fprintf(f, "\n        </DataArray>\n");
        
            // angular accelerations
            fprintf(f, "        <DataArray NumberOfComponents=\"3\" type=\"Float32\" "
       t@@ -228,7 +241,7 @@ int save_sliders_to_vtk_file(
            for (i=0; i<N; i++)
                fprintf(f, "%f %f %f ",
                        sliders[i].angacc.x, sliders[i].angacc.y, sliders[i].angacc.z);
       -    fprintf(f, "        </DataArray>\n");
       +    fprintf(f, "\n        </DataArray>\n");
        
            // torque
            fprintf(f, "        <DataArray NumberOfComponents=\"3\" type=\"Float32\" "
       t@@ -237,15 +250,7 @@ int save_sliders_to_vtk_file(
            for (i=0; i<N; i++)
                fprintf(f, "%f %f %f ",
                        sliders[i].torque.x, sliders[i].torque.y, sliders[i].torque.z);
       -    fprintf(f, "        </DataArray>\n");
       -
       -    // mass
       -    fprintf(f, "        <DataArray type=\"Float32\" "
       -            "Name=\"Mass [kg]\" format=\"ascii\">\n");
       -    fprintf(f, "          ");
       -    for (i=0; i<N; i++)
       -        fprintf(f, "%f ", sliders[i].mass);
       -    fprintf(f, "        </DataArray>\n");
       +    fprintf(f, "\n        </DataArray>\n");
        
            // moment of inertia
            fprintf(f, "        <DataArray type=\"Float32\" "
       t@@ -253,12 +258,12 @@ int save_sliders_to_vtk_file(
            fprintf(f, "          ");
            for (i=0; i<N; i++)
                fprintf(f, "%f ", sliders[i].moment_of_inertia);
       -    fprintf(f, "        </DataArray>\n");
       +    fprintf(f, "\n        </DataArray>\n");
        
            // bond-parallel stiffness
            fprintf(f, "        <DataArray type=\"Float32\" "
                    "Name=\"Bond-parallel stiffness [N/m]\" format=\"ascii\">\n");
       -    fprintf(f, "          ");
       +    fprintf(f, "\n          ");
            for (i=0; i<N; i++)
                fprintf(f, "%f ", sliders[i].bond_parallel_stiffness);
            fprintf(f, "        </DataArray>\n");
       t@@ -269,13 +274,11 @@ int save_sliders_to_vtk_file(
            fprintf(f, "          ");
            for (i=0; i<N; i++)
                fprintf(f, "%f ", sliders[i].bond_parallel_viscosity);
       -    fprintf(f, "        </DataArray>\n");
       +    fprintf(f, "\n        </DataArray>\n");
        
            fprintf(f, "      </PointData>\n");
            fprintf(f, "      <CellData>\n");
            fprintf(f, "      </CellData>\n");
       -    fprintf(f, "      <Points>\n");
       -    fprintf(f, "      </Points>\n");
            fprintf(f, "      <Cells>\n");
            fprintf(f, "        <DataArray type=\"Int32\" Name=\"connectivity\" "
                            "format=\"ascii\">\n");