MP-Gadget  5.0.1.dev1-76bc7d4726-dirty
gdbtools.c
Go to the documentation of this file.
1 #include <mpi.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <string.h>
5 #include <math.h>
6 
7 #include "utils.h"
8 #include "partmanager.h"
9 
10 
11 /* these are for debuging in GDB */
12 int GDB_particle_by_id(MyIDType id, int from) {
13  int i;
14  for(i = from; i < PartManager->NumPart; i++) {
15  if(P[i].ID == id) return i;
16  }
17  return -1;
18 }
19 
20 int GDB_particle_by_type(int type, int from) {
21  int i;
22  for(i = from; i < PartManager->NumPart; i++) {
23  if(P[i].Type == type) return i;
24  }
25  return -1;
26 }
27 
28 int GDB_particle_by_generation(int gen, int from) {
29  int i;
30  for(i = from; i < PartManager->NumPart; i++) {
31  if(P[i].Generation == gen) return i;
32  }
33  return -1;
34 }
35 
36 char * GDB_particle_by_timebin(int bin) {
37  int i;
38  static char buf[1024];
39  char tmp[20] = {'\0'};
40  strcpy(buf, "");
41  for(i = 0; i < PartManager->NumPart; i++) {
42  if(P[i].TimeBin == bin) {
43  snprintf(tmp, 15, " %d", i);
44  strncat(buf, tmp, 1024-strlen(tmp)-1);
45  }
46  }
47  return buf;
48 }
49 
50 int GDB_find_garbage(int from) {
51  int i;
52  for(i = from; i < PartManager->NumPart; i++) {
53  if(P[i].IsGarbage) return i;
54  }
55  return -1;
56 }
57 
58 char * GDB_format_particle(int i) {
59  static char buf[1024];
60  char * p = buf;
61  int n = 1024;
62 
63 #define add(fmt, ...) \
64  snprintf(p, n - 1, fmt, __VA_ARGS__ ); \
65  p = buf + strlen(buf); \
66  n = 4096 - strlen(buf)
67 
68  add("P[%d]: ", i);
69  add("ID : %ld ", P[i].ID);
70  add("Generation: %d ", (int) P[i].Generation);
71  add("Mass : %g ", P[i].Mass);
72  add("Pos: %g %g %g ", P[i].Pos[0], P[i].Pos[1], P[i].Pos[2]);
73  add("Vel: %g %g %g ", P[i].Vel[0], P[i].Vel[1], P[i].Vel[2]);
74  add("GravAccel: %g %g %g ", P[i].GravAccel[0], P[i].GravAccel[1], P[i].GravAccel[2]);
75  add("GravPM: %g %g %g ", P[i].GravPM[0], P[i].GravPM[1], P[i].GravPM[2]);
76  return buf;
77 }
78 
int GDB_find_garbage(int from)
Definition: gdbtools.c:50
char * GDB_particle_by_timebin(int bin)
Definition: gdbtools.c:36
int GDB_particle_by_generation(int gen, int from)
Definition: gdbtools.c:28
int GDB_particle_by_id(MyIDType id, int from)
Definition: gdbtools.c:12
#define add(fmt,...)
char * GDB_format_particle(int i)
Definition: gdbtools.c:58
int GDB_particle_by_type(int type, int from)
Definition: gdbtools.c:20
static struct gravpm_params GravPM
struct part_manager_type PartManager[1]
Definition: partmanager.c:11
#define P
Definition: partmanager.h:88
uint64_t MyIDType
Definition: types.h:10