tdefine simulation setup in separate file which is linked together with main ob… | |
git clone git://src.adamsgaard.dk/slidergrid | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 24351f33993e14a88dd9cfb9787752bd4c912af2 | |
parent abf7d095f654ff0108832d8055a3ce72bf333920 | |
Author: Anders Damsgaard <[email protected]> | |
Date: Wed, 16 Mar 2016 13:11:01 -0700 | |
define simulation setup in separate file which is linked together with main obj… | |
Diffstat: | |
M Makefile | 4 ++-- | |
M main.c | 27 ++++----------------------- | |
M simulation.h | 2 ++ | |
A test.c | 28 ++++++++++++++++++++++++++++ | |
4 files changed, 36 insertions(+), 25 deletions(-) | |
--- | |
diff --git a/Makefile b/Makefile | |
t@@ -1,9 +1,9 @@ | |
CC=gcc | |
CFLAGS=-Wall -O3 -g -pg | |
LDLIBS=-lm | |
-BIN=slidergrid | |
+ESSENTIALOBJS=main.o slider.o grid.o vector_math.o simulation.o | |
-$(BIN): main.o slider.o grid.o vector_math.o simulation.o | |
+test: test.o $(ESSENTIALOBJS) | |
$(CC) $(LDLIBS) $^ -o $@ | |
profile: $(BIN) | |
diff --git a/main.c b/main.c | |
t@@ -5,28 +5,6 @@ | |
#include "simulation.h" | |
-simulation setup_simulation() | |
-{ | |
- // create empty simulation structure | |
- simulation sim; | |
- | |
- // initialize grid of sliders | |
- int nx = 4; | |
- int ny = 4; | |
- int nz = 4; | |
- sim.N = nx*ny*nz; | |
- sim.sliders = create_regular_slider_grid(nx, ny, nz, 1.0, 1.0, 1.0); | |
- | |
- // set slider masses and moments of inertia | |
- int i; | |
- for (i=0; i<sim.N; i++) { | |
- sim.sliders[i].mass = 1.; | |
- sim.sliders[i].moment_of_inertia = 1.; | |
- } | |
- | |
- return sim; | |
-} | |
- | |
int main(int argc, char** argv) | |
{ | |
int i; | |
t@@ -46,7 +24,10 @@ int main(int argc, char** argv) | |
// check simulation parameters for missing or wrong parameter values | |
if (check_simulation_values(sim)) { | |
- fprintf(stderr, "Error: Simulation configuration invalid.\n"); | |
+ fprintf(stderr, "\nFatal error: The simulation configuration is " | |
+ "invalid.\nPlease check the setup_simulation() configuration, " | |
+ "which is verified in the function check_simulation_values " | |
+ "(simulation.c).\n"); | |
return EXIT_FAILURE; | |
} | |
diff --git a/simulation.h b/simulation.h | |
t@@ -1,6 +1,8 @@ | |
#ifndef SIMULATION_H_ | |
#define SIMULATION_H_ | |
+#include "slider.h" | |
+ | |
typedef struct { | |
slider* sliders; | |
int N; | |
diff --git a/test.c b/test.c | |
t@@ -0,0 +1,28 @@ | |
+#include "simulation.h" | |
+#include "grid.h" | |
+#include "slider.h" | |
+ | |
+// test a regular, 2d, orthogonal grid of sliders | |
+simulation setup_simulation() | |
+{ | |
+ // create empty simulation structure | |
+ simulation sim; | |
+ | |
+ // initialize grid of sliders | |
+ int nx = 4; | |
+ int ny = 4; | |
+ int nz = 4; | |
+ sim.N = nx*ny*nz; | |
+ sim.sliders = create_regular_slider_grid(nx, ny, nz, 1.0, 1.0, 1.0); | |
+ | |
+ sim.bond_length_limit = 1.5; | |
+ | |
+ // set slider masses and moments of inertia | |
+ int i; | |
+ for (i=0; i<sim.N; i++) { | |
+ sim.sliders[i].mass = 1.; | |
+ sim.sliders[i].moment_of_inertia = 1.; | |
+ } | |
+ | |
+ return sim; | |
+} |