Introduction
Introduction Statistics Contact Development Disclaimer Help
tadd granulargrain program to generate a single grain with default values - gra…
git clone git://src.adamsgaard.dk/granular
Log
Files
Refs
README
LICENSE
---
commit 38ee3e966946012ebde62181c49022ba0103853f
parent cce359bcaf94938276bdd3e28515f088b2ceef5f
Author: Anders Damsgaard <[email protected]>
Date: Thu, 22 Apr 2021 19:08:24 +0200
add granulargrain program to generate a single grain with default values
Diffstat:
M Makefile | 12 ++++++++----
A granulargrain.1 | 81 ++++++++++++++++++++++++++++++
A granulargrain.c | 62 +++++++++++++++++++++++++++++…
3 files changed, 151 insertions(+), 4 deletions(-)
---
diff --git a/Makefile b/Makefile
t@@ -11,6 +11,7 @@ DOCPREFIX = ${PREFIX}/share/doc/${NAME}
BIN = \
granular\
granular2vtu\
+ granulargrain\
granularpacking
SCRIPTS = \
granular2pdf
t@@ -61,14 +62,17 @@ ${OBJ}: ${HDR}
.c.o:
${CC} ${GRANULAR_CFLAGS} ${GRANULAR_CPPFLAGS} -o $@ -c $<
-granularpacking: granularpacking.o ${OBJ}
- ${CC} granularpacking.o ${OBJ} -o $@ ${GRANULAR_LDFLAGS}
+granular: granular.o ${OBJ}
+ ${CC} granular.o ${OBJ} -o $@ ${GRANULAR_LDFLAGS}
granular2vtu: granular2vtu.o ${OBJ}
${CC} granular2vtu.o ${OBJ} -o $@ ${GRANULAR_LDFLAGS}
-granular: granular.o ${OBJ}
- ${CC} granular.o ${OBJ} -o $@ ${GRANULAR_LDFLAGS}
+granulargrain: granulargrain.o ${OBJ}
+ ${CC} granulargrain.o ${OBJ} -o $@ ${GRANULAR_LDFLAGS}
+
+granularpacking: granularpacking.o ${OBJ}
+ ${CC} granularpacking.o ${OBJ} -o $@ ${GRANULAR_LDFLAGS}
dist:
rm -rf "${NAME}-${VERSION}"
diff --git a/granulargrain.1 b/granulargrain.1
t@@ -0,0 +1,81 @@
+.Dd $Mdocdate$
+.Dt GRANULARGRAIN 1
+.Os
+.Sh NAME
+.Nm granulargrain
+.Nd generate a single grain in granular format
+.Sh SYNOPSIS
+.Nm
+.Op Fl d Ar diameter
+.Op Fl h
+.Op Fl u Ar vx
+.Op Fl v Ar vy
+.Op Fl w Ar vz
+.Op Fl x Ar x
+.Op Fl y Ar y
+.Op Fl z Ar z
+.Sh DESCRIPTION
+The
+.Nm
+program generates a single grain with default properties, and outputs
+the grain data in
+.Xr granular 5
+format.
+.Pp
+The options are as wollows:
+.Bl -tag -width Ds
+.It Fl d Ar diameter
+Specify grain diameter (default 1.0).
+.It Fl h
+Show help text.
+.It Fl u Ar vx
+Set x velocity to
+.Ar vx
+[m/s].
+.It Fl v Ar vy
+Set y velocity to
+.Ar vy
+[m/s].
+.It Fl w Ar vz
+Set z velocity to
+.Ar vz
+[m/s].
+.It Fl x Ar x
+Place grain at
+.Ar x
+position [m].
+.It Fl y Ar y
+Place grain at
+.Ar y
+position [m].
+.It Fl z Ar z
+Place grain at
+.Ar z
+position [m].
+.El
+.Sh EXIT STATUS
+.Nm
+exits 0 on success, and >0 if a runtime error occurs:
+.Pp
+.Bl -tag -width Ds -compact
+.It 0
+successful exit
+.It 1
+unspecified error
+.It 2
+.Xr pledge 2
+error
+.El
+.Sh EXAMPLES
+.Dl $ (granularpacking -u 1.0; granularpacking -x 1.0) \e\\
+.Dl | granular -e 2.0 -I 0.1 collision
+.Dl $ for f in collision.grain.*.tsv; do \e\\
+.Dl granular2vtu <"$f" >"${f%.tsv}.vtu"; \e\\
+.Dl done
+.Sh SEE ALSO
+.Xr granular2vtu 1 ,
+.Xr granularpacking 1 ,
+.Xr granular 1 ,
+.Xr granular 5
+.Sh AUTHORS
+.An Anders Damsgaard Aq Mt [email protected]
diff --git a/granulargrain.c b/granulargrain.c
t@@ -0,0 +1,62 @@
+#include <stdlib.h>
+#include <err.h>
+#include "granular.h"
+#include "arg.h"
+
+char *argv0;
+
+static void
+usage(void)
+{
+ errx(1, "usage: %s "
+ "[-d diameter] "
+ "[-h] "
+ "[-u vx] "
+ "[-v vy] "
+ "[-w vz] "
+ "[-x x] "
+ "[-y y] "
+ "[-z z]", argv0);
+}
+
+int
+main(int argc, char *argv[])
+{
+ struct grain g = grain_new();
+
+ ARGBEGIN {
+ case 'd':
+ g.diameter = atof(EARGF(usage()));
+ break;
+ case 'h':
+ usage();
+ break;
+ case 'u':
+ g.vel[0] = atoi(EARGF(usage()));
+ break;
+ case 'v':
+ g.vel[1] = atoi(EARGF(usage()));
+ break;
+ case 'w':
+ g.vel[2] = atoi(EARGF(usage()));
+ break;
+ case 'x':
+ g.pos[0] = atoi(EARGF(usage()));
+ break;
+ case 'y':
+ g.pos[1] = atoi(EARGF(usage()));
+ break;
+ case 'z':
+ g.pos[2] = atoi(EARGF(usage()));
+ break;
+ default:
+ usage();
+ } ARGEND;
+
+ if (argc > 1)
+ usage();
+
+ grain_print(stdout, &g);
+
+ return 0;
+}
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.