85 int (*active) (
int i);
108 typedef void * (*petapm_malloc_func)(
char *
name,
size_t * size);
109 typedef void * (*petapm_mfree_func)(
void * ptr);
113 void petapm_init(
PetaPM * pm,
double BoxSize,
double Asmth,
int Nmesh,
double G, MPI_Comm comm);
static PetaPMGlobalFunctions global_functions
static PetaPMFunctions functions[]
struct Region PetaPMRegion
void petapm_module_init(int Nthreads)
struct PetaPMPriv PetaPMPriv
PetaPMRegion * petapm_get_real_region(PetaPM *pm)
void petapm_init(PetaPM *pm, double BoxSize, double Asmth, int Nmesh, double G, MPI_Comm comm)
void petapm_destroy(PetaPM *pm)
PetaPMRegion *(* petapm_prepare_func)(PetaPM *pm, PetaPMParticleStruct *pstruct, void *data, int *Nregions)
int petapm_mesh_to_k(PetaPM *pm, int i)
void(* petapm_transfer_func)(PetaPM *pm, int64_t k2, int kpos[3], pfft_complex *value)
void petapm_force_finish(PetaPM *pm)
pfft_complex * petapm_force_r2c(PetaPM *pm, PetaPMGlobalFunctions *global_functions)
void(* petapm_readout_func)(PetaPM *pm, int i, double *mesh, double weight)
int * petapm_get_ntask2d(PetaPM *pm)
void petapm_region_init_strides(PetaPMRegion *region)
void petapm_force_c2r(PetaPM *pm, pfft_complex *rho_k, PetaPMRegion *regions, const int Nregions, PetaPMFunctions *functions)
pfft_complex * petapm_alloc_rhok(PetaPM *pm)
PetaPMRegion * petapm_get_fourier_region(PetaPM *pm)
void petapm_force(PetaPM *pm, petapm_prepare_func prepare, PetaPMGlobalFunctions *global_functions, PetaPMFunctions *functions, PetaPMParticleStruct *pstruct, void *userdata)
PetaPMRegion * petapm_force_init(PetaPM *pm, petapm_prepare_func prepare, PetaPMParticleStruct *pstruct, int *Nregions, void *userdata)
int * petapm_get_thistask2d(PetaPM *pm)
struct Pencil * PencilSend
struct Pencil * PencilRecv
petapm_readout_func readout
petapm_transfer_func transfer
petapm_transfer_func global_transfer
petapm_transfer_func global_readout
PetaPMRegion real_space_region
PetaPMRegion fourier_space_region