diff --git a/examples/Makefile.am b/examples/Makefile.am index 15fceb236057d21ba878cb09da39aca5bb70b692..735817c24cc52786e4c562e46e3619fb4a9a2e34 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -1,4 +1,3 @@ - # This file is part of SWIFT. # Copyright (c) 2012 Pedro Gonnet (pedro.gonnet@durham.ac.uk), # Matthieu Schaller (matthieu.schaller@durham.ac.uk). diff --git a/examples/main.c b/examples/main.c index 6422ccceef0a5f5c5f3b5acce9ba60b957986aac..fa0ac2567ac253568903ce8c47b2c9c38fee3704 100644 --- a/examples/main.c +++ b/examples/main.c @@ -93,7 +93,6 @@ void print_help_message() { * @brief Main routine that loads a few particles and generates some output. * */ - int main(int argc, char *argv[]) { struct clocks_time tic, toc; @@ -482,10 +481,8 @@ int main(int argc, char *argv[]) { if (j % 100 == 2) e.forcerepart = reparttype; #endif + /* Reset timers */ timers_reset(timers_mask_all); -#ifdef COUNTER - for (k = 0; k < runner_counter_count; k++) runner_counter[k] = 0; -#endif /* Take a step. */ engine_step(&e); diff --git a/src/approx_math.h b/src/approx_math.h index ef93ea63c383c74caa3eaff65446962872389a35..cbca602b3fafcc5044b0939b2207b8f9d50a7446 100644 --- a/src/approx_math.h +++ b/src/approx_math.h @@ -19,6 +19,8 @@ #ifndef SWIFT_APPROX_MATH_H #define SWIFT_APPROX_MATH_H +#include "inline.h" + /** * @brief Approximate version of expf(x) using a 4th order Taylor expansion * diff --git a/src/cell.h b/src/cell.h index 65665c9dcfcd652cc688f652008044d618b10790..ebdfc8ec5d13ce6867159b6ff8bc3c62d065adc6 100644 --- a/src/cell.h +++ b/src/cell.h @@ -26,7 +26,6 @@ /* Includes. */ #include "lock.h" #include "multipole.h" -#include "part.h" /* Forward declaration of space, needed for cell_unpack. */ struct space; diff --git a/src/common_io.c b/src/common_io.c index 4399c83f7ebd2bb5355b7df9cc1fdecd301e36aa..03d5618cd0cafe5ff6067cf72107baacffb5d85a 100644 --- a/src/common_io.c +++ b/src/common_io.c @@ -43,6 +43,8 @@ #include "const.h" #include "error.h" #include "kernel_hydro.h" +#include "part.h" +#include "units.h" #include "version.h" const char* particle_type_names[NUM_PARTICLE_TYPES] = { diff --git a/src/common_io.h b/src/common_io.h index ed1c96801c904d9952c7b3ca995b847afdc3fb43..08b4e4f22dd79a1a1f9accfb27eecbbb22a347a1 100644 --- a/src/common_io.h +++ b/src/common_io.h @@ -23,13 +23,13 @@ /* Config parameters. */ #include "../config.h" -/* Includes. */ -#include "kernel_hydro.h" -#include "part.h" -#include "units.h" - #if defined(HAVE_HDF5) +/* Forward-declare stuff to avoid cyclic includes. */ +struct UnitSystem; +struct part; +struct gpart; + /** * @brief The different types of data used in the GADGET IC files. * diff --git a/src/debug.c b/src/debug.c index a3647915d96a9456cb6d8177d144dab56fd0b97e..77238ab135e3f27b8c2c43b0ec18e7745493b138 100644 --- a/src/debug.c +++ b/src/debug.c @@ -20,11 +20,19 @@ * ******************************************************************************/ +/* Config parameters. */ +#include "../config.h" + +/* Some standard headers. */ #include <stdio.h> +/* This object's header. */ +#include "debug.h" + +/* Local includes. */ #include "config.h" #include "const.h" -#include "debug.h" +#include "inline.h" #include "part.h" /* Import the right hydro definition */ @@ -51,7 +59,6 @@ * * (Should be used for debugging only as it runs in O(N).) */ - void printParticle(struct part *parts, struct xpart *xparts, long long int id, size_t N) { @@ -69,6 +76,17 @@ void printParticle(struct part *parts, struct xpart *xparts, long long int id, if (!found) printf("## Particles[???] id=%lld not found\n", id); } +/** + * @brief Looks for the g-particle with the given id and prints its information + * to + * the standard output. + * + * @param gparts The array of g-particles. + * @param id The id too look for. + * @param N The size of the array of g-particles. + * + * (Should be used for debugging only as it runs in O(N).) + */ void printgParticle(struct gpart *gparts, long long int id, size_t N) { int found = 0; @@ -95,9 +113,7 @@ void printgParticle(struct gpart *gparts, long long int id, size_t N) { * * @param p The particle to print * @param xp The extended data ot the particle to print - * */ - void printParticle_single(struct part *p, struct xpart *xp) { printf("## Particle: id=%lld ", p->id); @@ -105,6 +121,18 @@ void printParticle_single(struct part *p, struct xpart *xp) { printf("\n"); } +/** + * @brief Prints the details of a given particle to stdout + * + * @param gp The g-particle to print + */ +void printgParticle_single(struct gpart *gp) { + + printf("## g-Particle: id=%lld ", gp->id); + gravity_debug_particle(gp); + printf("\n"); +} + #ifdef HAVE_METIS /** diff --git a/src/debug.h b/src/debug.h index fba5cb68680472715025f9fee39a5bf06abacf81..13be15adb867e8bafe95e2900f68caaa36192510 100644 --- a/src/debug.h +++ b/src/debug.h @@ -19,14 +19,15 @@ #ifndef SWIFT_DEBUG_H #define SWIFT_DEBUG_H -/* Includes. */ -#include "cell.h" -#include "part.h" +struct part; +struct gpart; +struct xpart; void printParticle(struct part *parts, struct xpart *xparts, long long int id, size_t N); void printgParticle(struct gpart *parts, long long int id, size_t N); void printParticle_single(struct part *p, struct xpart *xp); +void printgParticle_single(struct gpart *gp); #ifdef HAVE_METIS #include "metis.h" diff --git a/src/engine.c b/src/engine.c index aa65f45678fae1e21276422b69f1c76cd7e9eaef..bc2bf839c9a8108bbedaa7de1f9b138348374ffa 100644 --- a/src/engine.c +++ b/src/engine.c @@ -59,9 +59,12 @@ #include "parallel_io.h" #include "part.h" #include "partition.h" +#include "proxy.h" +#include "runner.h" #include "serial_io.h" #include "single_io.h" #include "timers.h" +#include "units.h" const char *engine_policy_names[13] = {"none", "rand", diff --git a/src/engine.h b/src/engine.h index 6c17de54ba62a95c4a5feb3c126390a5b5877d05..1c6e4d79b5027eb51efbf670c080d971f19ab924 100644 --- a/src/engine.h +++ b/src/engine.h @@ -37,18 +37,9 @@ #include <stdio.h> /* Includes. */ -#include "hydro_properties.h" -#include "lock.h" -#include "parser.h" +#include "clocks.h" #include "partition.h" -#include "physical_constants.h" -#include "potentials.h" -#include "proxy.h" -#include "runner.h" #include "scheduler.h" -#include "space.h" -#include "task.h" -#include "units.h" /* Some constants. */ enum engine_policy { diff --git a/src/hydro/Default/hydro_iact.h b/src/hydro/Default/hydro_iact.h index 4d651b61bd934388414d54fa813820111d26e682..0a577931b5e0ca67ab07dfe414a548da66e82cdd 100644 --- a/src/hydro/Default/hydro_iact.h +++ b/src/hydro/Default/hydro_iact.h @@ -20,12 +20,6 @@ #ifndef SWIFT_RUNNER_IACT_H #define SWIFT_RUNNER_IACT_H -/* Includes. */ -#include "const.h" -#include "kernel_hydro.h" -#include "part.h" -#include "vector.h" - /** * @brief SPH interaction functions following the Gadget-2 version of SPH. * @@ -44,7 +38,6 @@ /** * @brief Density loop */ - __attribute__((always_inline)) INLINE static void runner_iact_density( float r2, float *dx, float hi, float hj, struct part *pi, struct part *pj) { @@ -218,7 +211,6 @@ __attribute__((always_inline)) INLINE static void runner_iact_vec_density( /** * @brief Density loop (non-symmetric version) */ - __attribute__((always_inline)) INLINE static void runner_iact_nonsym_density( float r2, float *dx, float hi, float hj, struct part *pi, struct part *pj) { @@ -267,7 +259,6 @@ __attribute__((always_inline)) INLINE static void runner_iact_nonsym_density( /** * @brief Density loop (non-symmetric vectorized version) */ - __attribute__((always_inline)) INLINE static void runner_iact_nonsym_vec_density(float *R2, float *Dx, float *Hi, float *Hj, struct part **pi, struct part **pj) { @@ -360,7 +351,6 @@ runner_iact_nonsym_vec_density(float *R2, float *Dx, float *Hi, float *Hj, /** * @brief Force loop */ - __attribute__((always_inline)) INLINE static void runner_iact_force( float r2, float *dx, float hi, float hj, struct part *pi, struct part *pj) { @@ -456,7 +446,6 @@ __attribute__((always_inline)) INLINE static void runner_iact_force( /** * @brief Force loop (Vectorized version) */ - __attribute__((always_inline)) INLINE static void runner_iact_vec_force( float *R2, float *Dx, float *Hi, float *Hj, struct part **pi, struct part **pj) { @@ -675,7 +664,6 @@ __attribute__((always_inline)) INLINE static void runner_iact_vec_force( /** * @brief Force loop (non-symmetric version) */ - __attribute__((always_inline)) INLINE static void runner_iact_nonsym_force( float r2, float *dx, float hi, float hj, struct part *pi, struct part *pj) { @@ -766,7 +754,6 @@ __attribute__((always_inline)) INLINE static void runner_iact_nonsym_force( /** * @brief Force loop (Vectorized non-symmetric version) */ - __attribute__((always_inline)) INLINE static void runner_iact_nonsym_vec_force( float *R2, float *Dx, float *Hi, float *Hj, struct part **pi, struct part **pj) { diff --git a/src/hydro/Gadget2/hydro_iact.h b/src/hydro/Gadget2/hydro_iact.h index 8fcae293280e55bb838edf3c243f4e322914216f..8738b4be09931df4c938f1dff3adeed11468dcfc 100644 --- a/src/hydro/Gadget2/hydro_iact.h +++ b/src/hydro/Gadget2/hydro_iact.h @@ -20,12 +20,6 @@ #ifndef SWIFT_RUNNER_IACT_LEGACY_H #define SWIFT_RUNNER_IACT_LEGACY_H -/* Includes. */ -#include "const.h" -#include "kernel_hydro.h" -#include "part.h" -#include "vector.h" - /** * @brief SPH interaction functions following the Gadget-2 version of SPH. * @@ -42,7 +36,6 @@ /** * @brief Density loop */ - __attribute__((always_inline)) INLINE static void runner_iact_density( float r2, float *dx, float hi, float hj, struct part *pi, struct part *pj) { @@ -113,7 +106,6 @@ __attribute__((always_inline)) INLINE static void runner_iact_density( /** * @brief Density loop (non-symmetric version) */ - __attribute__((always_inline)) INLINE static void runner_iact_nonsym_density( float r2, float *dx, float hi, float hj, struct part *pi, struct part *pj) { @@ -162,7 +154,6 @@ __attribute__((always_inline)) INLINE static void runner_iact_nonsym_density( /** * @brief Force loop */ - __attribute__((always_inline)) INLINE static void runner_iact_force( float r2, float *dx, float hi, float hj, struct part *pi, struct part *pj) { @@ -260,7 +251,6 @@ __attribute__((always_inline)) INLINE static void runner_iact_force( /** * @brief Force loop (non-symmetric version) */ - __attribute__((always_inline)) INLINE static void runner_iact_nonsym_force( float r2, float *dx, float hi, float hj, struct part *pi, struct part *pj) { diff --git a/src/hydro/Minimal/hydro_iact.h b/src/hydro/Minimal/hydro_iact.h index f453d8fa1c495472af27ccf98356a3dab0894e98..c9da185b8a29eafe2a58420ae5de3a05ff043225 100644 --- a/src/hydro/Minimal/hydro_iact.h +++ b/src/hydro/Minimal/hydro_iact.h @@ -19,12 +19,6 @@ #ifndef SWIFT_RUNNER_IACT_MINIMAL_H #define SWIFT_RUNNER_IACT_MINIMAL_H -/* Includes. */ -#include "const.h" -#include "kernel_hydro.h" -#include "part.h" -#include "vector.h" - /** * @brief Minimal conservative implementation of SPH * @@ -70,7 +64,6 @@ __attribute__((always_inline)) INLINE static void runner_iact_density( /** * @brief Density loop (non-symmetric version) */ - __attribute__((always_inline)) INLINE static void runner_iact_nonsym_density( float r2, float *dx, float hi, float hj, struct part *pi, struct part *pj) { @@ -95,7 +88,6 @@ __attribute__((always_inline)) INLINE static void runner_iact_nonsym_density( /** * @brief Force loop */ - __attribute__((always_inline)) INLINE static void runner_iact_force( float r2, float *dx, float hi, float hj, struct part *pi, struct part *pj) { @@ -168,7 +160,6 @@ __attribute__((always_inline)) INLINE static void runner_iact_force( /** * @brief Force loop (non-symmetric version) */ - __attribute__((always_inline)) INLINE static void runner_iact_nonsym_force( float r2, float *dx, float hi, float hj, struct part *pi, struct part *pj) { diff --git a/src/lock.h b/src/lock.h index 5eb97de15f81d17bad45e85226cb0881d24482ba..ca7f01ee029cd1c57ed8fd0f3237ea54cb43e9a7 100644 --- a/src/lock.h +++ b/src/lock.h @@ -24,7 +24,6 @@ /* Includes. */ #include "atomic.h" -#include "inline.h" #ifdef PTHREAD_SPINLOCK #include <pthread.h> diff --git a/src/parallel_io.c b/src/parallel_io.c index e779b56a85da3db72ea860fb336fa42037fbcd0e..c5cac1cb5efc6e533e599867e39cdd7c7b2c87fa 100644 --- a/src/parallel_io.c +++ b/src/parallel_io.c @@ -37,7 +37,11 @@ /* Local includes. */ #include "common_io.h" +#include "engine.h" #include "error.h" +#include "kernel_hydro.h" +#include "part.h" +#include "units.h" /** * @brief Reads a data array from a given HDF5 group. diff --git a/src/parallel_io.h b/src/parallel_io.h index 970ad8c41dcbc2df3a85b178f836e16926147788..5e85e0948283ceb4095a6f49d026ef5e39168538 100644 --- a/src/parallel_io.h +++ b/src/parallel_io.h @@ -19,15 +19,19 @@ #ifndef SWIFT_PARALLEL_IO_H #define SWIFT_PARALLEL_IO_H +/* Config parameters. */ +#include "../config.h" + /* MPI headers. */ #ifdef WITH_MPI #include <mpi.h> #endif -/* Includes. */ -#include "engine.h" -#include "part.h" -#include "units.h" +/* Forward-declare stuff to avoid cyclic includes. */ +struct engine; +struct gpart; +struct part; +struct UnitSystem; #if defined(HAVE_HDF5) && defined(WITH_MPI) && defined(HAVE_PARALLEL_HDF5) diff --git a/src/part.h b/src/part.h index 5d4c9c88a1acadea3d23a3df618c04da389fb61d..e99be6e51a9bd74dd9eec8f590e80989e83ec2e1 100644 --- a/src/part.h +++ b/src/part.h @@ -22,9 +22,6 @@ /* Config parameters. */ #include "../config.h" -/* Some standard headers. */ -#include <stdlib.h> - /* MPI headers. */ #ifdef WITH_MPI #include <mpi.h> @@ -38,7 +35,7 @@ #define xpart_align 32 #define gpart_align 32 -/* Import the right particle definition */ +/* Import the right hydro particle definition */ #if defined(MINIMAL_SPH) #include "./hydro/Minimal/hydro_part.h" #elif defined(GADGET2_SPH) @@ -49,6 +46,7 @@ #error "Invalid choice of SPH variant" #endif +/* Import the right gravity particle definition */ #include "./gravity/Default/gravity_part.h" #ifdef WITH_MPI diff --git a/src/runner.c b/src/runner.c index addeebda93a4d3f4b031f6fdc1f9eb856adc0a32..d38b52ce38f6fc16d97fc642b3f4d6890d9387d2 100644 --- a/src/runner.c +++ b/src/runner.c @@ -40,6 +40,7 @@ /* Local headers. */ #include "approx_math.h" #include "atomic.h" +#include "cell.h" #include "const.h" #include "debug.h" #include "drift.h" @@ -135,7 +136,6 @@ void runner_do_grav_external(struct runner *r, struct cell *c, int timer) { * @param sort The entries * @param N The number of entries. */ - void runner_do_sort_ascending(struct entry *sort, int N) { struct { @@ -217,7 +217,6 @@ void runner_do_sort_ascending(struct entry *sort, int N) { * @param clock Flag indicating whether to record the timing or not, needed * for recursive calls. */ - void runner_do_sort(struct runner *r, struct cell *c, int flags, int clock) { struct entry *finger; @@ -423,7 +422,6 @@ void runner_do_init(struct runner *r, struct cell *c, int timer) { * @param r The runner thread. * @param c The cell. */ - void runner_do_ghost(struct runner *r, struct cell *c) { struct part *p, *parts = c->parts; diff --git a/src/runner.h b/src/runner.h index 758b6cf57dbc1a46b6fc068a23615f3b28c8707e..6838b959955c4e54e208b8d2d16339e7fdb1740f 100644 --- a/src/runner.h +++ b/src/runner.h @@ -23,13 +23,12 @@ #ifndef SWIFT_RUNNER_H #define SWIFT_RUNNER_H -/* Includes. */ -#include "cell.h" -#include "inline.h" - extern const double runner_shift[13][3]; extern const char runner_flip[27]; +struct cell; +struct engine; + /* A struct representing a runner's thread and its data. */ struct runner { diff --git a/src/runner_doiact.h b/src/runner_doiact.h index c603d4ae4927183ad492244138e4217f833e1fea..f49c3fcf738b50f726662458137d51b5a0e4e952 100644 --- a/src/runner_doiact.h +++ b/src/runner_doiact.h @@ -18,10 +18,6 @@ * ******************************************************************************/ -/* Includes. */ -#include "cell.h" -#include "part.h" - /* Before including this file, define FUNCTION, which is the name of the interaction function. This creates the interaction functions runner_dopair_FUNCTION, runner_dopair_FUNCTION_naive, runner_doself_FUNCTION, diff --git a/src/runner_doiact_grav.h b/src/runner_doiact_grav.h index 13e6fe68ca223fa95a307fd063208e1f5d5efa6c..e3788dfa1123584c913bca6baa6fc2db6698e6d0 100644 --- a/src/runner_doiact_grav.h +++ b/src/runner_doiact_grav.h @@ -19,11 +19,6 @@ #ifndef SWIFT_RUNNER_DOIACT_GRAV_H #define SWIFT_RUNNER_DOIACT_GRAV_H -/* Includes. */ -#include "cell.h" -#include "clocks.h" -#include "part.h" - /** * @brief Compute the sorted gravity interactions between a cell pair. * diff --git a/src/scheduler.c b/src/scheduler.c index 496df93adf5a656460f7b39904a3cc58ac3e5caa..8f833dad5085c675f129cb1061fa354f236ec9bc 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -44,6 +44,9 @@ #include "error.h" #include "intrinsics.h" #include "kernel_hydro.h" +#include "queue.h" +#include "space.h" +#include "task.h" #include "timers.h" /** diff --git a/src/scheduler.h b/src/scheduler.h index a867f7bc36cc8865d28d751565663641d92aa7fb..f6b358b158d8a37d118d8ad0ccee270108aa3f95 100644 --- a/src/scheduler.h +++ b/src/scheduler.h @@ -32,11 +32,13 @@ #include <pthread.h> /* Includes. */ -#include "cell.h" #include "lock.h" -#include "queue.h" -#include "space.h" -#include "task.h" + +/* Forward-declare stuff to avoid cyclic includes. */ +struct cell; +struct queue; +struct space; +struct task; /* Some constants. */ #define scheduler_maxwait 3 diff --git a/src/serial_io.c b/src/serial_io.c index 5abd3ebc28672d68c4135efe5753dc4713c2d3c6..7e78276dc83430655b4ea4de2fb7425e71e07966 100644 --- a/src/serial_io.c +++ b/src/serial_io.c @@ -26,22 +26,22 @@ /* Some standard headers. */ #include <hdf5.h> #include <math.h> +#include <mpi.h> #include <stddef.h> #include <stdio.h> #include <stdlib.h> #include <string.h> -/* MPI headers. */ -#ifdef WITH_MPI -#include <mpi.h> -#endif - /* This object's header. */ #include "serial_io.h" /* Local includes. */ #include "common_io.h" +#include "engine.h" #include "error.h" +#include "kernel_hydro.h" +#include "part.h" +#include "units.h" /*----------------------------------------------------------------------------- * Routines reading an IC file diff --git a/src/serial_io.h b/src/serial_io.h index b7ed6eb62d823829a473f828696c291e552effa3..f3b6d7ab983ce2ba5c32017201f74d57c9e0a2fa 100644 --- a/src/serial_io.h +++ b/src/serial_io.h @@ -19,15 +19,19 @@ #ifndef SWIFT_SERIAL_IO_H #define SWIFT_SERIAL_IO_H +/* Config parameters. */ +#include "../config.h" + /* MPI headers. */ #ifdef WITH_MPI #include <mpi.h> #endif -/* Includes. */ -#include "engine.h" -#include "part.h" -#include "units.h" +/* Forward-declare stuff to avoid cyclic includes. */ +struct engine; +struct gpart; +struct part; +struct UnitSystem; #if defined(HAVE_HDF5) && defined(WITH_MPI) && !defined(HAVE_PARALLEL_HDF5) diff --git a/src/single_io.c b/src/single_io.c index fb3bf4368feed9892b098228d85c99f0bc3e724b..3f65aae0b5d495670f2b4862e466ec849f997d63 100644 --- a/src/single_io.c +++ b/src/single_io.c @@ -36,8 +36,11 @@ /* Local includes. */ #include "common_io.h" -#include "const.h" +#include "engine.h" #include "error.h" +#include "kernel_hydro.h" +#include "part.h" +#include "units.h" /*----------------------------------------------------------------------------- * Routines reading an IC file diff --git a/src/single_io.h b/src/single_io.h index adfc5b43941b2c0d69d9ce0924164aff56864a23..ae176ce37f41865df9c7c0d55c7af5ca97373702 100644 --- a/src/single_io.h +++ b/src/single_io.h @@ -19,10 +19,14 @@ #ifndef SWIFT_SINGLE_IO_H #define SWIFT_SINGLE_IO_H -/* Includes. */ -#include "engine.h" -#include "part.h" -#include "units.h" +/* Config parameters. */ +#include "../config.h" + +/* Forward-declare stuff to avoid cyclic includes. */ +struct engine; +struct gpart; +struct part; +struct UnitSystem; #if defined(HAVE_HDF5) && !defined(WITH_MPI) diff --git a/src/space.h b/src/space.h index d53c0f2a5784ef25654309741b4455e3dbcc3e0c..fec25a35937c10c419a4c5dd4fffa8e08e5c9c82 100644 --- a/src/space.h +++ b/src/space.h @@ -26,13 +26,10 @@ /* Includes. */ #include <stddef.h> -/* Local includes. */ -#include "cell.h" -#include "parser.h" -#include "part.h" +#include "lock.h" -/* Forward-declare the engine to avoid cyclic includes. */ -struct engine; +/* Forward-declare stuff to avoid cyclic includes. */ +struct swift_params; /* Some constants. */ #define space_maxdepth 10 @@ -158,4 +155,5 @@ void space_do_split(struct space *s, struct cell *c); void space_do_parts_sort(); void space_do_gparts_sort(); void space_link_cleanup(struct space *s); + #endif /* SWIFT_SPACE_H */ diff --git a/src/tools.c b/src/tools.c index 0363100331ad5b298279e9ebadcf87eab5f9e896..1a2b794f688047183827e5c2ed6ba80ba1339080 100644 --- a/src/tools.c +++ b/src/tools.c @@ -19,16 +19,25 @@ * ******************************************************************************/ +/* Config parameters. */ +#include "../config.h" + +/* Some standard headers. */ #include <math.h> #include <stddef.h> #include <stdio.h> #include <stdlib.h> +/* This object's header. */ +#include "tools.h" + +/* Local includes. */ #include "cell.h" #include "error.h" +#include "gravity.h" +#include "hydro.h" #include "part.h" -#include "swift.h" -#include "tools.h" +#include "runner.h" /** * Factorize a given integer, attempts to keep larger pair of factors. @@ -56,9 +65,7 @@ void factor(int value, int *f1, int *f2) { * @param N The number of parts. * @param periodic Periodic boundary conditions flag. */ - -void pairs_n2(double *dim, struct part *__restrict__ parts, int N, - int periodic) { +void pairs_n2(double *dim, struct part *restrict parts, int N, int periodic) { int i, j, k, count = 0; // int mj, mk; // double maxratio = 1.0; @@ -121,8 +128,7 @@ void pairs_n2(double *dim, struct part *__restrict__ parts, int N, } void pairs_single_density(double *dim, long long int pid, - struct part *__restrict__ parts, int N, - int periodic) { + struct part *restrict parts, int N, int periodic) { int i, k; // int mj, mk; // double maxratio = 1.0; @@ -271,7 +277,7 @@ void self_all_density(struct runner *r, struct cell *ci) { } void pairs_single_grav(double *dim, long long int pid, - struct gpart *__restrict__ parts, int N, int periodic) { + struct gpart *restrict parts, int N, int periodic) { int i, k; // int mj, mk; // double maxratio = 1.0; @@ -328,7 +334,6 @@ void pairs_single_grav(double *dim, long long int pid, * * @param N number of intervals in [0,1]. */ - void density_dump(int N) { int k; float r2[4] = {0.0f, 0.0f, 0.0f, 0.0f}, hi[4], hj[4]; @@ -363,10 +368,8 @@ void density_dump(int N) { /** * @brief Compute the force on a single particle brute-force. */ - void engine_single_density(double *dim, long long int pid, - struct part *__restrict__ parts, int N, - int periodic) { + struct part *restrict parts, int N, int periodic) { int i, k; double r2, dx[3]; float fdx[3], ih; @@ -412,7 +415,7 @@ void engine_single_density(double *dim, long long int pid, } void engine_single_force(double *dim, long long int pid, - struct part *__restrict__ parts, int N, int periodic) { + struct part *restrict parts, int N, int periodic) { int i, k; double r2, dx[3]; float fdx[3]; diff --git a/src/tools.h b/src/tools.h index 5f9f41d033ab03983bde3bb37e87f8a39d2deecd..ea8eddf43fb835523b7a7631963bbab2d621cedf 100644 --- a/src/tools.h +++ b/src/tools.h @@ -22,21 +22,23 @@ #ifndef SWIFT_TOOL_H #define SWIFT_TOOL_H -#include "cell.h" -#include "runner.h" +/* Forward-declare stuff to avoid cyclic includes. */ +struct cell; +struct gpart; +struct part; +struct runner; void factor(int value, int *f1, int *f2); void density_dump(int N); void pairs_single_grav(double *dim, long long int pid, - struct gpart *__restrict__ parts, int N, int periodic); + struct gpart *restrict parts, int N, int periodic); void pairs_single_density(double *dim, long long int pid, - struct part *__restrict__ parts, int N, int periodic); + struct part *restrict parts, int N, int periodic); void pairs_all_density(struct runner *r, struct cell *ci, struct cell *cj); void self_all_density(struct runner *r, struct cell *ci); -void pairs_n2(double *dim, struct part *__restrict__ parts, int N, - int periodic); +void pairs_n2(double *dim, struct part *restrict parts, int N, int periodic); double random_uniform(double a, double b); void shuffle_particles(struct part *parts, const int count);