tuse diameter instead of radius in granular(5) format - granular - granular dyn… | |
git clone git://src.adamsgaard.dk/granular | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 4a19dc89eaa19b3f3b61c14805371cbbdf9f35ac | |
parent d870e1e1b84ce4097a00fa48fafceb556257c323 | |
Author: Anders Damsgaard <[email protected]> | |
Date: Thu, 25 Mar 2021 18:09:38 +0100 | |
use diameter instead of radius in granular(5) format | |
Diffstat: | |
M grain.c | 11 +++++++---- | |
M granular.5 | 2 +- | |
M granular2pdf | 2 +- | |
M granularpacking.1 | 14 +++++++++----- | |
4 files changed, 18 insertions(+), 11 deletions(-) | |
--- | |
diff --git a/grain.c b/grain.c | |
t@@ -22,7 +22,7 @@ grain_defaults(struct grain *g) | |
{ | |
size_t i; | |
- g->radius = 1.0; | |
+ g->radius = 0.5; | |
for (i = 0; i < 3; i++) { | |
g->pos[i] | |
= g->vel[i] | |
t@@ -73,7 +73,7 @@ print_padded_nd_int(FILE *stream, const size_t *arr) | |
void | |
grain_print(FILE *stream, const struct grain *g) | |
{ | |
- fprintf(stream, "%.*g\t", FLOATPREC, g->radius); | |
+ fprintf(stream, "%.*g\t", FLOATPREC, g->radius * 2.0); | |
print_padded_nd_double(stream, g->pos); | |
print_padded_nd_double(stream, g->vel); | |
print_padded_nd_double(stream, g->acc); | |
t@@ -104,12 +104,13 @@ grain_print(FILE *stream, const struct grain *g) | |
struct grain * | |
grain_read(char *line) | |
{ | |
+ double diameter; | |
struct grain *g; | |
if (!(g = malloc(sizeof(struct grain)))) | |
err(1, "%s: grain malloc", __func__); | |
- if (sscanf(line, "%lg\t" /* radius */ | |
+ if (sscanf(line, "%lg\t" /* 2.0 * radius */ | |
"%lg\t%lg\t%lg\t" /* pos */ | |
"%lg\t%lg\t%lg\t" /* vel */ | |
"%lg\t%lg\t%lg\t" /* acc */ | |
t@@ -135,7 +136,7 @@ grain_read(char *line) | |
"%lg\t%lg\t%lg\t" /* contact_stress */ | |
"%lg\t" /* thermal_energy */ | |
"%d\n", /* color */ | |
- &g->radius, | |
+ &diameter, | |
&g->pos[0], &g->pos[1], &g->pos[2], | |
&g->vel[0], &g->vel[1], &g->vel[2], | |
&g->acc[0], &g->acc[1], &g->acc[2], | |
t@@ -163,6 +164,8 @@ grain_read(char *line) | |
&g->color) != 50) | |
errx(1, "%s: could not read line: %s", __func__, line); | |
+ g->radius = 0.5 * diameter; | |
+ | |
if (grain_check_values(g)) | |
errx(1, "%s: invalid values in grain line: %s", __func__, line… | |
diff --git a/granular.5 b/granular.5 | |
t@@ -16,7 +16,7 @@ The order, content, and units of the fields are: | |
.Pp | |
.Bl -enum -width Ss -compact | |
.It | |
-radius [m] | |
+diameter [m] | |
.It | |
position, x [m] | |
.It | |
diff --git a/granular2pdf b/granular2pdf | |
t@@ -1,6 +1,6 @@ | |
#!/bin/sh | |
-awk -F' ' '{print $2, $3, $1, $1*2.0}' \ | |
+awk -F' ' '{print $2, $3, $1 / 2.0, $1}' \ | |
| gnuplot -e "set term pdf;\ | |
set xlabel 'x [m]';\ | |
set ylabel 'y [m]';\ | |
diff --git a/granularpacking.1 b/granularpacking.1 | |
t@@ -8,6 +8,8 @@ | |
.Nm | |
.Op Fl h | |
.Op Fl t | |
+.Op Fl D Ar max-radius | |
+.Op Fl d Ar min-radius | |
.Op Fl X Ar x-offset | |
.Op Fl x Ar nx | |
.Op Fl Y Ar y-offset | |
t@@ -24,16 +26,18 @@ format. | |
.Pp | |
The options are as wollows: | |
.Bl -tag -width Ds | |
+.It Fl D Ar max-radius | |
+Specify maximum diameter of generated grains (default 1.0). | |
+.It Fl d Ar min-radius | |
+Specify minimum diameter of generated grains (default 1.0). | |
.It Fl h | |
Show help text. | |
.It Fl t | |
Generate triangular packing (default: rectangular). | |
.It Fl p Ar padding-factor | |
-Add padding between grains and add corresponding random variation to placement… | |
-.It Fl R Ar max-radius | |
-Specify maximum radius of generated grains (default 1.0). | |
-.It Fl r Ar min-radius | |
-Specify minimum radius of generated grains (default 1.0). | |
+Add padding between grains and add corresponding random variation | |
+to placement with the specified multiplier, respective to the grain | |
+radius (default 0.0). | |
.It Fl X Ar x-offset | |
Add the specified offset to all output x positions (default 0.0). | |
.It Fl x Ar nx |