STARS-H
Software for Testing Accuracy, Reliability and Scalability of Hierarchical computations
starsh-particles.h
Go to the documentation of this file.
1 
14 #ifndef __STARSH_PARTICLES_H__
15 #define __STARSH_PARTICLES_H__
16 
29 // Add definitions for size_t, va_list and STARSH_kernel
30 #include "starsh.h"
31 // Add definitions for FILE type and functions
32 #include <stdio.h>
33 // Add definition for uint32_t
34 #include <stdint.h>
35 
36 typedef struct starsh_particles
38 
40 {
43  int ndim;
45  double *point;
48 
49 
50 
53 
55 {
58  //STARSH_PARTICLES_RANDN = 2,
64  //STARSH_PARTICLES_RANDNGRID = 5,
76  // for 1D, 2D, and 3D cases -- use each location twice. (Parsimonious bivaritae case1).
79  // for 1D, 2D, and 3D cases-- use each location twice. (Parsimonious bivaritae case2).
80 };
81 
84  double *point);
86 
88  int ndim, enum STARSH_PARTICLES_PLACEMENT ptype);
89 
91  int ndim);
93  STARSH_int count, int ndim);
95  STARSH_int count, int ndim);
97  STARSH_int count, int ndim);
99  STARSH_int count, int ndim);
101  STARSH_int count, int ndim);
103  STARSH_int count, int ndim);
105  STARSH_int count, int ndim);
107  STARSH_int count, int ndim);
108 
109 int starsh_particles_read_from_file(STARSH_particles **data, const char *fname,
110  const enum STARSH_FILE_TYPE ftype);
112  FILE *fp, const enum STARSH_FILE_TYPE ftype);
114  FILE *fp);
116  FILE *fp);
117 
119  const char *fname, const enum STARSH_FILE_TYPE ftype);
121  FILE *fp, const enum STARSH_FILE_TYPE ftype);
123  FILE *fp);
125  FILE *fp);
126 
128 
129 #endif // __STARSH_PARTICLES_H__
130 
Uniform in [0,1] grid, but each grid coordinate is slightly shifted.
Definition: starsh-particles.h:68
ssize_t STARSH_int
STARSH signed integer to support more, than MAX_INT rows/columns.
Definition: starsh.h:64
int starsh_particles_generate_obsolete2(STARSH_particles **data, STARSH_int count, int ndim)
Generate a uniform grid of particles with random shift of grid coordinates.
Definition: particles.c:557
void starsh_particles_free(STARSH_particles *data)
Free memory of STARSH_particles object.
Definition: particles.c:98
Uniform in [0,1] grid.
Definition: starsh-particles.h:60
#define ndim
Replace variable ndim with static integer value.
Definition: kernel_sin_1d.c:28
Grid, based on uniform in [0,1] distribution of coordinates.
Definition: starsh-particles.h:62
STARSH_int count
Number of particles.
Definition: starsh-particles.h:41
Old version of STARSH_PARTICLES_QUASIUNIFORM2 (for compatibility).
Definition: starsh-particles.h:72
int starsh_particles_init(STARSH_particles **data, STARSH_int count, int ndim, double *point)
Initialize STARSH_particles object by given data.
Definition: particles.c:57
struct starsh_particles STARSH_particles
Structure for general N-body problems.
Old version of STARSH_PARTICLES_QUASIUNIFORM1 (for compatibility).
Definition: starsh-particles.h:70
int starsh_particles_write_to_file_pointer_ascii(const STARSH_particles *data, FILE *fp)
Write STARSH_particles object to file pointer in ASCII format.
Definition: particles.c:1012
Uniform random distribution in [0,1] range.
Definition: starsh-particles.h:56
int ndim
Dimensionality of space.
Definition: starsh-particles.h:43
Uniform in [0,1] grid, but each particle is slightly shifted.
Definition: starsh-particles.h:66
int starsh_particles_generate_obsolete4(STARSH_particles **data, STARSH_int count, int ndim)
Generate a uniform grid of particles with random shift of each particle.
Definition: particles.c:713
STARSH_PARTICLES_PLACEMENT
Distribution of particles for starsh_particles_generate().
Definition: starsh-particles.h:51
int starsh_particles_generate_quasiuniform1(STARSH_particles **data, STARSH_int count, int ndim)
Generate a uniform grid of particles with random shift of each particle.
Definition: particles.c:341
int starsh_particles_write_to_file_pointer_binary(const STARSH_particles *data, FILE *fp)
Write STARSH_particles object to file pointer in binary format.
Definition: particles.c:1059
Uniform in [0,1] grid, but each grid coordinate is slightly shifted.
Definition: starsh-particles.h:77
double * point
Coordinates of particles.
Definition: starsh-particles.h:45
int starsh_particles_write_to_file_pointer(const STARSH_particles *data, FILE *fp, const enum STARSH_FILE_TYPE ftype)
Write STARSH_particles object to file pointer.
Definition: particles.c:985
STARSH_FILE_TYPE
Enum type to show file format (ASCII or binary)
Definition: starsh-constants.h:121
int starsh_particles_write_to_file(const STARSH_particles *data, const char *fname, const enum STARSH_FILE_TYPE ftype)
Write STARSH_particles object to file.
Definition: particles.c:948
int starsh_particles_generate_uniform(STARSH_particles **data, STARSH_int count, int ndim)
Generate a uniform grid of particles.
Definition: particles.c:269
int starsh_particles_zsort_inplace(STARSH_particles *data)
Sort particles in Z-order (Morton order).
Definition: particles.c:1090
int starsh_particles_read_from_file_pointer_binary(STARSH_particles **data, FILE *fp)
Read STARSH_particles object from file pointer in binary format.
Definition: particles.c:907
int starsh_particles_read_from_file(STARSH_particles **data, const char *fname, const enum STARSH_FILE_TYPE ftype)
Read STARSH_particles object from file.
Definition: particles.c:789
int starsh_particles_generate_rand(STARSH_particles **data, STARSH_int count, int ndim)
Generate particles with [0,1] uniform random distribution.
Definition: particles.c:177
int starsh_particles_generate_obsolete1(STARSH_particles **data, STARSH_int count, int ndim)
Generate a uniform grid of particles with random shift of each particle.
Definition: particles.c:488
int starsh_particles_new(STARSH_particles **data, STARSH_int count, int ndim)
Allocate memory for STARSH_particles object.
Definition: particles.c:19
int starsh_particles_generate_quasiuniform2(STARSH_particles **data, STARSH_int count, int ndim)
Generate a uniform grid of particles with random shift of grid coordinates.
Definition: particles.c:413
int starsh_particles_generate(STARSH_particles **data, STARSH_int count, int ndim, enum STARSH_PARTICLES_PLACEMENT ptype)
Generate STARSH_particles with required distribution.
Definition: particles.c:112
Uniform in [0,1] grid, but each grid coordinate is slightly shifted.
Definition: starsh-particles.h:74
int starsh_particles_read_from_file_pointer(STARSH_particles **data, FILE *fp, const enum STARSH_FILE_TYPE ftype)
Read STARSH_particles object from file pointer.
Definition: particles.c:826
int starsh_particles_read_from_file_pointer_ascii(STARSH_particles **data, FILE *fp)
Read STARSH_particles object from file pointer in ASCII format.
Definition: particles.c:853
int starsh_particles_generate_obsolete3(STARSH_particles **data, STARSH_int count, int ndim)
Generate a uniform grid of particles with random shift of each particle.
Definition: particles.c:637
int starsh_particles_generate_randgrid(STARSH_particles **data, STARSH_int count, int ndim)
Generate a grid on randomly distributed grid coordinates.
Definition: particles.c:203
Structure for general N-body problems.
Definition: starsh-particles.h:36