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");