tfix dimensional constant usage - granular - granular dynamics simulation
 (HTM) git clone git://src.adamsgaard.dk/granular
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 47bb6a607f6621fef48a906e2fb2e44f02b2c979
 (DIR) parent 126211efa113da8c8651ed99d5de9efa9f691b73
 (HTM) Author: Anders Damsgaard <anders@adamsgaard.dk>
       Date:   Thu, 18 Mar 2021 07:35:56 +0100
       
       fix dimensional constant usage
       
       Diffstat:
         M grain.c                             |      13 ++++++-------
         M util.c                              |      24 +++++++++++++-----------
       
       2 files changed, 19 insertions(+), 18 deletions(-)
       ---
 (DIR) diff --git a/grain.c b/grain.c
       t@@ -1,16 +1,15 @@
        #include <stdio.h>
       +#include "granular.h"
        #include "util.h"
        #include "grain.h"
        
       -extern size_t nd;
       -
        void
        grain_defaults(struct grain *g)
        {
                size_t i;
        
                g->radius = 1.0;
       -        for (i = 0; i < nd; i++) {
       +        for (i = 0; i < ND; i++) {
                        g->pos[i]
                        = g->vel[i]
                        = g->acc[i]
       t@@ -45,7 +44,7 @@ print_padded_nd_double(FILE *stream, const double *arr)
                size_t i;
                
                for (i = 0; i < 3; i++)
       -                if (i < nd)
       +                if (i < ND)
                                fprintf(stream, "%.17g\t", arr[i]);
                        else
                                fprintf(stream, "0.0\t");
       t@@ -57,7 +56,7 @@ print_padded_nd_int(FILE *stream, const size_t *arr)
                size_t i;
                
                for (i = 0; i < 3; i++)
       -                if (i < nd)
       +                if (i < ND)
                                fprintf(stream, "%ld\t", arr[i]);
                        else
                                fprintf(stream, "0.0\t");
       t@@ -102,7 +101,7 @@ check_grain_values(const struct grain *g)
        
                check_float_positive("grain->radius", g->radius, &status);
        
       -        for (i = 0; i < nd; i++) {
       +        for (i = 0; i < ND; i++) {
                        check_float("grain->pos", g->pos[i], &status);
                        check_float("grain->vel", g->vel[i], &status);
                        check_float("grain->acc", g->acc[i], &status);
       t@@ -139,7 +138,7 @@ check_grain_values(const struct grain *g)
                                         g->fracture_toughness,
                                         &status);
        
       -        for (i = 0; i < nd; i++)
       +        for (i = 0; i < ND; i++)
                        if (g->gridpos[i] > 1)
                                warn_parameter_value("grain->gridpos is not 0 or 1",
                                                                         (double)g->gridpos[i], &status);
 (DIR) diff --git a/util.c b/util.c
       t@@ -1,4 +1,6 @@
        #include <stdio.h>
       +#include <math.h>
       +#include "granular.h"
        
        void
        warn_parameter_value(const char message[],
       t@@ -14,15 +16,13 @@ warn_parameter_value(const char message[],
        void
        check_float(const char name[], const double value, int *status)
        {
       -        if (isnan(value)) {
       -                char message[100];
       +        char message[100];
        
       +        if (isnan(value)) {
                        snprintf(message, sizeof(message), "%s is NaN", name);
                        warn_parameter_value(message, value, status);
                        *status = 1;
                } else if (isinf(value)) {
       -                char message[100];
       -
                        snprintf(message, sizeof(message), "%s is infinite", name);
                        warn_parameter_value(message, value, status);
                        *status = 1;
       t@@ -34,7 +34,7 @@ check_float_non_negative(const char name[], const double value, int *status)
        {
                char message[100];
        
       -        check_float(*name, value, *status);
       +        check_float(name, value, status);
                if (value < 0.0) {
                        snprintf(message, sizeof(message), "%s is negative", name);
                        warn_parameter_value(message, value, status);
       t@@ -47,7 +47,7 @@ check_float_positive(const char name[], const double value, int *status)
        {
                char message[100];
        
       -        check_float(*name, value, *status);
       +        check_float(name, value, status);
                if (value <= 0.0) {
                        snprintf(message, sizeof(message), "%s is not positive", name);
                        warn_parameter_value(message, value, status);
       t@@ -58,11 +58,13 @@ check_float_positive(const char name[], const double value, int *status)
        void
        check_bool(const char name[], const int value, int *status)
        {
       -        if (value < 0 || value > 1)
       -                warn_parameter_value("%s is not 0 or 1",
       -                                     (double)value,
       -                                     &status);
       -        *status = 1;
       +        char message[100];
       +
       +        if (value < 0 || value > 1) {
       +                snprintf(message, sizeof(message), "%s is not 0 or 1", name);
       +                warn_parameter_value(message, (double)value, status);
       +                *status = 1;
       +        }
        }
        
        void