Skip to content
Snippets Groups Projects
Commit 40edb635 authored by Pedro Gonnet's avatar Pedro Gonnet
Browse files

add utility functions to re-link parts/gparts.

parent 415d6432
Branches
Tags
1 merge request!118One major change to replace all gpart id/parts with the new id_or_neg_offset.
...@@ -28,6 +28,34 @@ ...@@ -28,6 +28,34 @@
/* This object's header. */ /* This object's header. */
#include "part.h" #include "part.h"
/**
* @brief Re-link the #gparts associated with the list of #parts.
*
* @param parts The list of #part.
* @param N The number of particles to re-link;
* @param offset The offset of #parts relative to the global parts list.
*/
void part_relink_gparts(struct part *parts, size_t N, ptrdiff_t offset) {
for (size_t k = 0; k < N; k++) {
parts[k]->gpart->id_or_neg_offset = -(k + offset);
}
}
/**
* @brief Re-link the #gparts associated with the list of #parts.
*
* @param gparts The list of #gpart.
* @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(struct gpart *gparts, size_t N, struct part *parts) {
for (size_t k = 0; k < N; k++) {
if (gparts[k].id_or_neg_offset < 0) {
parts[-gparts[k].id_or_neg_offset].gpart = &gparts[k];
}
}
}
#ifdef WITH_MPI #ifdef WITH_MPI
/** /**
* @brief Registers and returns an MPI type for the particles * @brief Registers and returns an MPI type for the particles
......
...@@ -51,6 +51,8 @@ ...@@ -51,6 +51,8 @@
#include "./gravity/Default/gravity_part.h" #include "./gravity/Default/gravity_part.h"
void part_relink_gparts(struct parts *parts, size_t N, ptrdiff_t offset);
void part_relink_parts(struct gparts *parts, size_t N);
#ifdef WITH_MPI #ifdef WITH_MPI
void part_create_mpi_type(MPI_Datatype* part_type); void part_create_mpi_type(MPI_Datatype* part_type);
void xpart_create_mpi_type(MPI_Datatype* xpart_type); void xpart_create_mpi_type(MPI_Datatype* xpart_type);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment