| 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; | |
| +} |