tsimulation.c: set float format for VTK export in header - granular - granular dynamics simulation
 (HTM) git clone git://src.adamsgaard.dk/granular
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 30537b9a4c16e1f9607e2f95a106420e0452c93a
 (DIR) parent ec6f6cd1eda3c204e5ea43df9f48d2ccc612bd17
 (HTM) Author: Anders Damsgaard <anders@adamsgaard.dk>
       Date:   Thu, 25 Mar 2021 19:44:12 +0100
       
       simulation.c: set float format for VTK export in header
       
       Diffstat:
         M simulation.c                        |      42 ++++++++++++++++---------------
       
       1 file changed, 22 insertions(+), 20 deletions(-)
       ---
 (DIR) diff --git a/simulation.c b/simulation.c
       t@@ -7,6 +7,8 @@
        #include "arrays.h"
        #include "util.h"
        
       +#define VTK_FLOAT_FMT "%.17g"
       +
        #define VTK_XML_SCALAR(M, N, T, F) \
                fprintf(stream,\
                        "\t\t\t\t<DataArray type=\"" T "\" Name=\"" N "\" "\
       t@@ -100,7 +102,7 @@ print_grains_vtk(FILE *stream, const struct grain *grains, size_t n)
                        "NumberOfComponents=\"3\" format=\"ascii\">\n");
                for (i = 0; i < n; i++)
                        for (d = 0; d < 3; d++)
       -                        fprintf(stream, "%.17g ", grains[i].pos[d]);
       +                        fprintf(stream, VTK_FLOAT_FMT, grains[i].pos[d]);
                fprintf(stream, "\n");
                fprintf(stream,
                        "\t\t\t\t</DataArray>\n"
       t@@ -124,34 +126,34 @@ print_grains_vtk(FILE *stream, const struct grain *grains, size_t n)
                        "\t\t\t\t<DataArray type=\"Float64\" Name=\"Diameter [m]\" "
                        "NumberOfComponents=\"1\" format=\"ascii\">\n");
                for (i = 0; i < n; i++)
       -                fprintf(stream, "%.17g ", grains[i].radius * 2.0);
       +                fprintf(stream, VTK_FLOAT_FMT, grains[i].radius * 2.0);
                fprintf(stream,
                        "\n"
                        "\t\t\t\t</DataArray>\n");
        
       -        VTK_XML_VECTOR(vel, "Velocity [m/s]", "Float64", "%.17g ");
       -        VTK_XML_VECTOR(acc, "Acceleration [m/s^2]", "Float64", "%.17g ");
       -        VTK_XML_VECTOR(force, "Force [N]", "Float64", "%.17g ");
       -        VTK_XML_VECTOR(angpos, "Angular position [rad]", "Float64", "%.17g ");
       -        VTK_XML_VECTOR(angvel, "Angular velocity [rad/s]", "Float64", "%.17g ");
       -        VTK_XML_VECTOR(angacc, "Angular acceleration [rad/s^2]", "Float64", "%.17g ");
       -        VTK_XML_VECTOR(torque, "Torque [N/m]", "Float64", "%.17g ");
       -        VTK_XML_VECTOR(disp, "Displacement [m]", "Float64", "%.17g ");
       -        VTK_XML_VECTOR(forceext, "External body force [N]", "Float64", "%.17g ");
       -        VTK_XML_SCALAR(density, "Density [kg/m^3]", "Float64", "%.17g ");
       +        VTK_XML_VECTOR(vel, "Velocity [m/s]", "Float64", VTK_FLOAT_FMT);
       +        VTK_XML_VECTOR(acc, "Acceleration [m/s^2]", "Float64", VTK_FLOAT_FMT);
       +        VTK_XML_VECTOR(force, "Force [N]", "Float64", VTK_FLOAT_FMT);
       +        VTK_XML_VECTOR(angpos, "Angular position [rad]", "Float64", VTK_FLOAT_FMT);
       +        VTK_XML_VECTOR(angvel, "Angular velocity [rad/s]", "Float64", VTK_FLOAT_FMT);
       +        VTK_XML_VECTOR(angacc, "Angular acceleration [rad/s^2]", "Float64", VTK_FLOAT_FMT);
       +        VTK_XML_VECTOR(torque, "Torque [N/m]", "Float64", VTK_FLOAT_FMT);
       +        VTK_XML_VECTOR(disp, "Displacement [m]", "Float64", VTK_FLOAT_FMT);
       +        VTK_XML_VECTOR(forceext, "External body force [N]", "Float64", VTK_FLOAT_FMT);
       +        VTK_XML_SCALAR(density, "Density [kg/m^3]", "Float64", VTK_FLOAT_FMT);
                VTK_XML_SCALAR(fixed, "Fixed [-]", "Int64", "%d ");
                VTK_XML_SCALAR(rotating, "Rotating [-]", "Int64", "%d ");
                VTK_XML_SCALAR(enabled, "Enabled [-]", "Int64", "%d ");
       -        VTK_XML_SCALAR(youngs_modulus, "Young's modulus [Pa]", "Float64", "%.17g ");
       -        VTK_XML_SCALAR(poissons_ratio, "Poisson's ratio [-]", "Float64", "%.17g ");
       -        VTK_XML_SCALAR(friction_coeff, "Friction coefficient [-]", "Float64", "%.17g ");
       -        VTK_XML_SCALAR(tensile_strength, "Tensile strength [Pa]", "Float64", "%.17g ");
       -        VTK_XML_SCALAR(shear_strength, "Shear strength [Pa]", "Float64", "%.17g ");
       -        VTK_XML_SCALAR(fracture_toughness, "Fracture toughness [Pa]", "Float64", "%.17g ");
       +        VTK_XML_SCALAR(youngs_modulus, "Young's modulus [Pa]", "Float64", VTK_FLOAT_FMT);
       +        VTK_XML_SCALAR(poissons_ratio, "Poisson's ratio [-]", "Float64", VTK_FLOAT_FMT);
       +        VTK_XML_SCALAR(friction_coeff, "Friction coefficient [-]", "Float64", VTK_FLOAT_FMT);
       +        VTK_XML_SCALAR(tensile_strength, "Tensile strength [Pa]", "Float64", VTK_FLOAT_FMT);
       +        VTK_XML_SCALAR(shear_strength, "Shear strength [Pa]", "Float64", VTK_FLOAT_FMT);
       +        VTK_XML_SCALAR(fracture_toughness, "Fracture toughness [Pa]", "Float64", VTK_FLOAT_FMT);
                VTK_XML_VECTOR(gridpos, "Grid position [-]", "UInt64", "%zu ");
                VTK_XML_SCALAR(ncontacts, "Number of contacts [-]", "UInt64", "%zu ");
       -        VTK_XML_VECTOR(contact_stress, "Contact stress [Pa]", "Float64", "%.17g ");
       -        VTK_XML_SCALAR(thermal_energy, "Thermal energy [J]", "Float64", "%.17g ");
       +        VTK_XML_VECTOR(contact_stress, "Contact stress [Pa]", "Float64", VTK_FLOAT_FMT);
       +        VTK_XML_SCALAR(thermal_energy, "Thermal energy [J]", "Float64", VTK_FLOAT_FMT);
                VTK_XML_SCALAR(color, "Color [-]", "Int64", "%d ");
        
                fprintf(stream, "\t\t\t</PointData>\n");