diff --git a/src/cell.h b/src/cell.h index 199c901a7897b17ac275e5f8c4a5bcf7b68f5d73..a2f7ab6912a6d5a9a788658e48ae160e4be049dc 100644 --- a/src/cell.h +++ b/src/cell.h @@ -44,6 +44,8 @@ struct space; * The maximum was lowered by a further factor of 2 to be on the safe side.*/ #define cell_max_tag (1 << 29) +#define cell_align 32 + /* Global variables. */ extern int cell_next_tag; @@ -198,7 +200,7 @@ struct cell { #endif -} __attribute__((aligned(64))); +} __attribute__((aligned(cell_align))); /* Convert cell location to ID. */ #define cell_getid(cdim, i, j, k) \ diff --git a/src/engine.c b/src/engine.c index 2874ee2c6adca19a664b32f87cdcd9b64e28ebfe..5097230aff624d93db16f99f4ee6f41a68b2abd2 100644 --- a/src/engine.c +++ b/src/engine.c @@ -3126,7 +3126,7 @@ void engine_init(struct engine *e, struct space *s, e->timeStep = 0.; e->timeBase = 0.; e->timeBase_inv = 0.; - e->drift_all = 0; + e->drift_all = (policy & engine_policy_drift_all); e->internalUnits = internal_units; e->timeFirstSnapshot = parser_get_param_double(params, "Snapshots:time_first"); diff --git a/src/space.c b/src/space.c index 2f4442c4729f69d8010278f7cf772b40d100d1f1..3cce9e01f927e6c7efdfc3e9273f1b2b5edaac30 100644 --- a/src/space.c +++ b/src/space.c @@ -272,7 +272,7 @@ void space_regrid(struct space *s, double cell_max, int verbose) { /* Allocate the highest level of cells. */ s->tot_cells = s->nr_cells = cdim[0] * cdim[1] * cdim[2]; - if (posix_memalign((void *)&s->cells, 64, + if (posix_memalign((void *)&s->cells, cell_align, s->nr_cells * sizeof(struct cell)) != 0) error("Failed to allocate cells."); bzero(s->cells, s->nr_cells * sizeof(struct cell)); @@ -1406,7 +1406,7 @@ struct cell *space_getcell(struct space *s) { /* Is the buffer empty? */ if (s->cells_new == NULL) { - if (posix_memalign((void *)&s->cells_new, 64, + if (posix_memalign((void *)&s->cells_new, cell_align, space_cellallocchunk * sizeof(struct cell)) != 0) error("Failed to allocate more cells."); bzero(s->cells_new, space_cellallocchunk * sizeof(struct cell));