Skip to content
Snippets Groups Projects
Commit 68d962bc authored by Matthieu Schaller's avatar Matthieu Schaller
Browse files

Better function signatures in part.[ch]

parent cc284833
Branches
Tags
1 merge request!1001Use the threadpool to parallelize operations in the particle-splitting code
......@@ -351,7 +351,7 @@ void engine_split_gas_particles(struct engine *e) {
/* We now need to correct all the pointers of the other particle arrays */
part_relink_all_parts_to_gparts(gparts_new, s->nr_gparts, s->parts,
s->sparts, s->bparts);
s->sparts, s->bparts, &e->threadpool);
s->gparts = gparts_new;
}
......
......@@ -32,6 +32,7 @@
#include "error.h"
#include "hydro.h"
#include "part.h"
#include "threadpool.h"
/**
* @brief Re-link the #gpart%s associated with the list of #part%s.
......@@ -40,8 +41,8 @@
* @param N The number of particles to re-link;
* @param offset The offset of #part%s relative to the global parts list.
*/
void part_relink_gparts_to_parts(struct part *parts, size_t N,
ptrdiff_t offset) {
void part_relink_gparts_to_parts(struct part *parts, const size_t N,
const ptrdiff_t offset) {
for (size_t k = 0; k < N; k++) {
if (parts[k].gpart) {
parts[k].gpart->id_or_neg_offset = -(k + offset);
......@@ -56,8 +57,8 @@ void part_relink_gparts_to_parts(struct part *parts, size_t N,
* @param N The number of s-particles to re-link;
* @param offset The offset of #spart%s relative to the global sparts list.
*/
void part_relink_gparts_to_sparts(struct spart *sparts, size_t N,
ptrdiff_t offset) {
void part_relink_gparts_to_sparts(struct spart *sparts, const size_t N,
const ptrdiff_t offset) {
for (size_t k = 0; k < N; k++) {
if (sparts[k].gpart) {
sparts[k].gpart->id_or_neg_offset = -(k + offset);
......@@ -72,8 +73,8 @@ void part_relink_gparts_to_sparts(struct spart *sparts, size_t N,
* @param N The number of s-particles to re-link;
* @param offset The offset of #bpart%s relative to the global bparts list.
*/
void part_relink_gparts_to_bparts(struct bpart *bparts, size_t N,
ptrdiff_t offset) {
void part_relink_gparts_to_bparts(struct bpart *bparts, const size_t N,
const ptrdiff_t offset) {
for (size_t k = 0; k < N; k++) {
if (bparts[k].gpart) {
bparts[k].gpart->id_or_neg_offset = -(k + offset);
......@@ -88,7 +89,7 @@ void part_relink_gparts_to_bparts(struct bpart *bparts, size_t N,
* @param N The number of particles to re-link;
* @param parts The global #part array in which to find the #gpart offsets.
*/
void part_relink_parts_to_gparts(struct gpart *gparts, size_t N,
void part_relink_parts_to_gparts(struct gpart *gparts, const size_t N,
struct part *parts) {
for (size_t k = 0; k < N; k++) {
if (gparts[k].type == swift_type_gas) {
......@@ -104,7 +105,7 @@ void part_relink_parts_to_gparts(struct gpart *gparts, size_t N,
* @param N The number of particles to re-link;
* @param sparts The global #spart array in which to find the #gpart offsets.
*/
void part_relink_sparts_to_gparts(struct gpart *gparts, size_t N,
void part_relink_sparts_to_gparts(struct gpart *gparts, const size_t N,
struct spart *sparts) {
for (size_t k = 0; k < N; k++) {
if (gparts[k].type == swift_type_stars) {
......@@ -120,7 +121,7 @@ void part_relink_sparts_to_gparts(struct gpart *gparts, size_t N,
* @param N The number of particles to re-link;
* @param bparts The global #bpart array in which to find the #gpart offsets.
*/
void part_relink_bparts_to_gparts(struct gpart *gparts, size_t N,
void part_relink_bparts_to_gparts(struct gpart *gparts, const size_t N,
struct bpart *bparts) {
for (size_t k = 0; k < N; k++) {
if (gparts[k].type == swift_type_black_hole) {
......@@ -139,9 +140,10 @@ void part_relink_bparts_to_gparts(struct gpart *gparts, size_t N,
* @param sparts The global #spart array in which to find the #gpart offsets.
* @param bparts The global #bpart array in which to find the #gpart offsets.
*/
void part_relink_all_parts_to_gparts(struct gpart *gparts, size_t N,
void part_relink_all_parts_to_gparts(struct gpart *gparts, const size_t N,
struct part *parts, struct spart *sparts,
struct bpart *bparts) {
struct bpart *bparts,
struct threadpool *tp) {
for (size_t k = 0; k < N; k++) {
if (gparts[k].type == swift_type_gas) {
parts[-gparts[k].id_or_neg_offset].gpart = &gparts[k];
......
......@@ -32,9 +32,10 @@
/* Local headers. */
#include "align.h"
#include "fof.h"
#include "part_type.h"
#include "timeline.h"
/* Pre-declarations */
struct threadpool;
/* Some constants. */
#define part_align 128
......@@ -119,21 +120,22 @@
#error "Invalid choice of black hole particle"
#endif
void part_relink_gparts_to_parts(struct part *parts, size_t N,
ptrdiff_t offset);
void part_relink_gparts_to_sparts(struct spart *sparts, size_t N,
ptrdiff_t offset);
void part_relink_gparts_to_bparts(struct bpart *bparts, size_t N,
ptrdiff_t offset);
void part_relink_parts_to_gparts(struct gpart *gparts, size_t N,
void part_relink_gparts_to_parts(struct part *parts, const size_t N,
const ptrdiff_t offset);
void part_relink_gparts_to_sparts(struct spart *sparts, const size_t N,
const ptrdiff_t offset);
void part_relink_gparts_to_bparts(struct bpart *bparts, const size_t N,
const ptrdiff_t offset);
void part_relink_parts_to_gparts(struct gpart *gparts, const size_t N,
struct part *parts);
void part_relink_sparts_to_gparts(struct gpart *gparts, size_t N,
void part_relink_sparts_to_gparts(struct gpart *gparts, const size_t N,
struct spart *sparts);
void part_relink_bparts_to_gparts(struct gpart *gparts, size_t N,
void part_relink_bparts_to_gparts(struct gpart *gparts, const size_t N,
struct bpart *bparts);
void part_relink_all_parts_to_gparts(struct gpart *gparts, size_t N,
void part_relink_all_parts_to_gparts(struct gpart *gparts, const size_t N,
struct part *parts, struct spart *sparts,
struct bpart *bparts);
struct bpart *bparts,
struct threadpool *tp);
void part_verify_links(struct part *parts, struct gpart *gparts,
struct spart *sparts, struct bpart *bparts,
size_t nr_parts, size_t nr_gparts, size_t nr_sparts,
......
......@@ -43,6 +43,7 @@
#include "error.h"
#include "feedback.h"
#include "feedback_properties.h"
#include "fof.h"
#include "gravity.h"
#include "gravity_derivatives.h"
#include "gravity_properties.h"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment