tsimulation.h - granular - granular dynamics simulation
(HTM) git clone git://src.adamsgaard.dk/granular
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
tsimulation.h (1340B)
---
1 #ifndef GRANULAR_SIMULATION_
2 #define GRANULAR_SIMULATION_
3
4 #define DEFAULT_SIMULATION_NAME "unnamed"
5
6 #include <stdio.h>
7 #include "grain.h"
8
9 /* Simulation settings */
10 struct simulation {
11
12 /* simulation name to use for output files */
13 char name[255];
14
15 /* grain sorting grid */
16 size_t nd[3];
17 double origo[3];
18 double L[3];
19
20 /* temporal state [s] */
21 double t;
22 double t_end;
23 double dt;
24 double dt_file;
25 size_t n_file;
26 size_t iter;
27 double t_file;
28
29 /* grains */
30 size_t ng;
31 struct grain *grains;
32 };
33
34 struct simulation sim_new(void);
35 void sim_defaults(struct simulation *sim);
36 void sim_free(struct simulation *sim);
37
38 void sim_add_grain(struct simulation *sim, struct grain *g);
39 void sim_read_grains(struct simulation *sim, FILE *stream);
40
41 void sim_print_grains(const struct simulation *sim, FILE *stream);
42 void sim_print_grains_vtk(const struct simulation *sim, FILE *stream);
43 void sim_print_grains_energy(const struct simulation *sim, FILE *stream);
44 void sim_write_output_files(struct simulation *sim);
45
46 void sim_force_reset(struct simulation *sim);
47 void sim_add_acceleration_scalar(struct simulation *sim, double acc, int dimension);
48 void sim_set_timestep(struct simulation *sim);
49 void sim_detect_contacts(struct simulation *sim);
50 void sim_step_time(struct simulation *sim);
51 void sim_run_time_loop(struct simulation *sim);
52
53 #endif