diff --git a/src/const.h b/src/const.h index 42a5ae78edce38433439646133fd8c487c52b3ec..6d2e8a9895e3b418cf868ac6b22f32c4cd487954 100644 --- a/src/const.h +++ b/src/const.h @@ -57,9 +57,17 @@ //#define GIZMO_FIX_PARTICLES //#define GIZMO_TOTAL_ENERGY +/* Types of gradients to use for SHADOWFAX_SPH */ +/* If no option is chosen, no gradients are used (first order scheme) */ +#define SHADOWFAX_GRADIENTS + +/* SHADOWFAX_SPH slope limiters */ +#define SHADOWFAX_SLOPE_LIMITER_PER_FACE +#define SHADOWFAX_SLOPE_LIMITER_CELL_WIDE + /* Options to control SHADOWFAX_SPH */ /* This option disables cell movement */ -//#define SHADOWFAX_FIX_CELLS +#define SHADOWFAX_FIX_CELLS /* This option evolves the total energy instead of the thermal energy */ //#define SHADOWFAX_TOTAL_ENERGY diff --git a/src/hydro/Shadowswift/hydro_gradients.h b/src/hydro/Shadowswift/hydro_gradients.h index a8b62ebd42e13bd6f49d01a9fd317a02158f2d50..1aea49790d998d3912a80fa1376cbd1e183f26f7 100644 --- a/src/hydro/Shadowswift/hydro_gradients.h +++ b/src/hydro/Shadowswift/hydro_gradients.h @@ -20,8 +20,6 @@ #ifndef SWIFT_HYDRO_GRADIENTS_H #define SWIFT_HYDRO_GRADIENTS_H -#define SHADOWFAX_GRADIENTS - #include "hydro_slope_limiters.h" #if defined(SHADOWFAX_GRADIENTS) diff --git a/src/hydro/Shadowswift/hydro_slope_limiters.h b/src/hydro/Shadowswift/hydro_slope_limiters.h index e1f841411a65fc5fce78ecab07e272c9c6df475b..a443007b4df3833964b7ec1780e2bc55bf02a03e 100644 --- a/src/hydro/Shadowswift/hydro_slope_limiters.h +++ b/src/hydro/Shadowswift/hydro_slope_limiters.h @@ -20,13 +20,10 @@ #ifndef SWIFT_HYDRO_SLOPE_LIMITERS_H #define SWIFT_HYDRO_SLOPE_LIMITERS_H -#define PER_FACE_LIMITER -#define CELL_WIDE_LIMITER - #include "dimension.h" #include "kernel_hydro.h" -#ifdef PER_FACE_LIMITER +#ifdef SHADOWFAX_SLOPE_LIMITER_PER_FACE #define HYDRO_SLOPE_LIMITER_FACE_IMPLEMENTATION \ "GIZMO piecewise slope limiter (Hopkins 2015)" @@ -55,7 +52,7 @@ __attribute__((always_inline)) INLINE static void hydro_slope_limit_face( #endif -#ifdef CELL_WIDE_LIMITER +#ifdef SHADOWFAX_SLOPE_LIMITER_CELL_WIDE #define HYDRO_SLOPE_LIMITER_CELL_IMPLEMENTATION \ "Cell wide slope limiter (Springel 2010)" diff --git a/src/hydro/Shadowswift/voronoi2d_algorithm.h b/src/hydro/Shadowswift/voronoi2d_algorithm.h index ff3a2dddc33d3b7654b88babab6c92bf743da3e2..3a30e1b5cd9ea7831ff3c868692f2991f40d57da 100644 --- a/src/hydro/Shadowswift/voronoi2d_algorithm.h +++ b/src/hydro/Shadowswift/voronoi2d_algorithm.h @@ -479,8 +479,9 @@ __attribute__((always_inline)) INLINE float voronoi_cell_finalize( cell->centroid[0] += (x[0] + x[1]) * A; cell->centroid[1] += (y[0] + y[1]) * A; - cell->face_midpoints[i][0] = 0.5f * (x[0] + x[1]) + cell->x[0]; - cell->face_midpoints[i][1] = 0.5f * (y[0] + y[1]) + cell->x[1]; + /* Note that we only need the RELATIVE positions of the midpoints */ + cell->face_midpoints[i][0] = 0.5f * (x[0] + x[1]); + cell->face_midpoints[i][1] = 0.5f * (y[0] + y[1]); r2 = x[0] * x[0] + y[0] * y[0]; r2max = max(r2max, r2);