MP-Gadget
5.0.1.dev1-76bc7d4726-dirty
|
#include <mpi.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <pfft.h>
#include "allvars.h"
#include "proto.h"
#include "power.h"
#include "pmesh.h"
#include <libgadget/petapm.h>
#include <libgadget/walltime.h>
#include <libgadget/utils.h>
Go to the source code of this file.
Classes | |
struct | ic_prep_data |
Macros | |
#define | MESH2K(i) petapm_mesh_to_k(i) |
Functions | |
static void | density_transfer (PetaPM *pm, int64_t k2, int kpos[3], pfft_complex *value) |
static void | vel_x_transfer (PetaPM *pm, int64_t k2, int kpos[3], pfft_complex *value) |
static void | vel_y_transfer (PetaPM *pm, int64_t k2, int kpos[3], pfft_complex *value) |
static void | vel_z_transfer (PetaPM *pm, int64_t k2, int kpos[3], pfft_complex *value) |
static void | disp_x_transfer (PetaPM *pm, int64_t k2, int kpos[3], pfft_complex *value) |
static void | disp_y_transfer (PetaPM *pm, int64_t k2, int kpos[3], pfft_complex *value) |
static void | disp_z_transfer (PetaPM *pm, int64_t k2, int kpos[3], pfft_complex *value) |
static void | readout_density (PetaPM *pm, int i, double *mesh, double weight) |
static void | readout_vel_x (PetaPM *pm, int i, double *mesh, double weight) |
static void | readout_vel_y (PetaPM *pm, int i, double *mesh, double weight) |
static void | readout_vel_z (PetaPM *pm, int i, double *mesh, double weight) |
static void | readout_disp_x (PetaPM *pm, int i, double *mesh, double weight) |
static void | readout_disp_y (PetaPM *pm, int i, double *mesh, double weight) |
static void | readout_disp_z (PetaPM *pm, int i, double *mesh, double weight) |
static void | gaussian_fill (int Nmesh, PetaPMRegion *region, pfft_complex *rho_k, int UnitaryAmplitude, int InvertPhase, const int Seed) |
static double | periodic_wrap (double x, const double BoxSize) |
void | idgen_init (IDGenerator *idgen, PetaPM *pm, int Ngrid, double BoxSize) |
uint64_t | idgen_create_id_from_index (IDGenerator *idgen, int index) |
void | idgen_create_pos_from_index (IDGenerator *idgen, int index, double pos[3]) |
int | setup_grid (IDGenerator *idgen, double shift, double mass, struct ic_part_data *ICP) |
static PetaPMRegion * | makeregion (PetaPM *pm, PetaPMParticleStruct *pstruct, void *userdata, int *Nregions) |
void | displacement_fields (PetaPM *pm, enum TransferType Type, struct ic_part_data *dispICP, const int NumPart, Cosmology *CP, const struct genic_config GenicConfig) |
static void | disp_transfer (PetaPM *pm, int64_t k2, int kaxis, pfft_complex *value, int include_growth) |
Variables | |
static enum TransferType | ptype |
static struct ic_part_data * | curICP |
#define MESH2K | ( | i | ) | petapm_mesh_to_k(i) |
Definition at line 18 of file zeldovich.c.
|
static |
Definition at line 276 of file zeldovich.c.
References PetaPM::BoxSize, DeltaSpec(), PetaPM::Nmesh, and ptype.
Referenced by displacement_fields().
|
static |
Definition at line 291 of file zeldovich.c.
References PetaPM::BoxSize, DeltaSpec(), dlogGrowth(), and ptype.
Referenced by disp_x_transfer(), disp_y_transfer(), disp_z_transfer(), vel_x_transfer(), vel_y_transfer(), and vel_z_transfer().
|
static |
Definition at line 325 of file zeldovich.c.
References disp_transfer().
Referenced by displacement_fields().
|
static |
Definition at line 328 of file zeldovich.c.
References disp_transfer().
Referenced by displacement_fields().
|
static |
Definition at line 331 of file zeldovich.c.
References disp_transfer().
Referenced by displacement_fields().
void displacement_fields | ( | PetaPM * | pm, |
enum TransferType | Type, | ||
struct ic_part_data * | dispICP, | ||
const int | NumPart, | ||
Cosmology * | CP, | ||
const struct genic_config | GenicConfig | ||
) |
Definition at line 150 of file zeldovich.c.
References PetaPM::BoxSize, CP, curICP, ic_part_data::Density, density_transfer(), ic_part_data::Disp, disp_x_transfer(), disp_y_transfer(), disp_z_transfer(), F_Omega(), functions, gaussian_fill(), hubble_function(), genic_config::InvertPhase, makeregion(), ic_part_data::Mass, message(), MPIU_Barrier, myfree, PetaPMFunctions::name, PetaPM::Nmesh, ic_prep_data::NumPart, periodic_wrap(), petapm_alloc_rhok(), petapm_force_c2r(), petapm_force_finish(), petapm_force_init(), petapm_get_fourier_region(), ic_part_data::Pos, genic_config::PowerP, ptype, readout_density(), readout_disp_x(), readout_disp_y(), readout_disp_z(), readout_vel_x(), readout_vel_y(), readout_vel_z(), power_params::ScaleDepVelocity, genic_config::Seed, genic_config::TimeIC, genic_config::UnitaryAmplitude, genic_config::UsePeculiarVelocity, ic_part_data::Vel, vel_x_transfer(), vel_y_transfer(), vel_z_transfer(), and walltime_measure.
Referenced by main().
|
static |
Definition at line 362 of file zeldovich.c.
References PMDesc::Nmesh, Region::offset, PMDesc::ORegion, pmic_fill_gaussian_gadget(), Region::size, PMDesc::size, PMDesc::start, Region::strides, PMDesc::strides, PMDesc::total, and Region::totalsize.
Referenced by displacement_fields().
uint64_t idgen_create_id_from_index | ( | IDGenerator * | idgen, |
int | index | ||
) |
Definition at line 69 of file zeldovich.c.
References IDGenerator::Ngrid, IDGenerator::offset, and IDGenerator::size.
Referenced by main(), and write_particle_data().
void idgen_create_pos_from_index | ( | IDGenerator * | idgen, |
int | index, | ||
double | pos[3] | ||
) |
Definition at line 79 of file zeldovich.c.
References IDGenerator::BoxSize, IDGenerator::Ngrid, IDGenerator::offset, and IDGenerator::size.
Referenced by setup_glass(), and setup_grid().
void idgen_init | ( | IDGenerator * | idgen, |
PetaPM * | pm, | ||
int | Ngrid, | ||
double | BoxSize | ||
) |
Definition at line 48 of file zeldovich.c.
References IDGenerator::BoxSize, IDGenerator::Ngrid, IDGenerator::NumPart, IDGenerator::offset, petapm_get_ntask2d(), petapm_get_thistask2d(), and IDGenerator::size.
Referenced by main().
|
static |
Definition at line 113 of file zeldovich.c.
References PetaPM::BoxSize, ic_prep_data::curICP, mymalloc2, PetaPM::Nmesh, ic_prep_data::NumPart, Region::offset, petapm_region_init_strides(), ic_part_data::Pos, and Region::size.
Referenced by displacement_fields().
|
inlinestatic |
Definition at line 35 of file zeldovich.c.
Referenced by displacement_fields().
|
static |
Definition at line 338 of file zeldovich.c.
References curICP, and ic_part_data::Density.
Referenced by displacement_fields().
|
static |
Definition at line 351 of file zeldovich.c.
References curICP, and ic_part_data::Disp.
Referenced by displacement_fields().
|
static |
Definition at line 354 of file zeldovich.c.
References curICP, and ic_part_data::Disp.
Referenced by displacement_fields().
|
static |
Definition at line 357 of file zeldovich.c.
References curICP, and ic_part_data::Disp.
Referenced by displacement_fields().
|
static |
Definition at line 341 of file zeldovich.c.
References curICP, and ic_part_data::Vel.
Referenced by displacement_fields().
|
static |
Definition at line 344 of file zeldovich.c.
References curICP, and ic_part_data::Vel.
Referenced by displacement_fields().
|
static |
Definition at line 347 of file zeldovich.c.
References curICP, and ic_part_data::Vel.
Referenced by displacement_fields().
int setup_grid | ( | IDGenerator * | idgen, |
double | shift, | ||
double | mass, | ||
struct ic_part_data * | ICP | ||
) |
Definition at line 91 of file zeldovich.c.
References idgen_create_pos_from_index(), ic_part_data::Mass, IDGenerator::NumPart, and ic_part_data::Pos.
Referenced by main().
|
static |
Definition at line 315 of file zeldovich.c.
References disp_transfer().
Referenced by displacement_fields().
|
static |
Definition at line 318 of file zeldovich.c.
References disp_transfer().
Referenced by displacement_fields().
|
static |
Definition at line 321 of file zeldovich.c.
References disp_transfer().
Referenced by displacement_fields().
|
static |
Definition at line 148 of file zeldovich.c.
Referenced by displacement_fields(), readout_density(), readout_disp_x(), readout_disp_y(), readout_disp_z(), readout_vel_x(), readout_vel_y(), and readout_vel_z().
|
static |
Definition at line 113 of file zeldovich.c.
Referenced by _transpose_plan_entries(), density_transfer(), disp_transfer(), displacement_fields(), domain_build_plan(), domain_exchange_once(), domain_find_iter_space(), fof_save_particles(), init_alloc_particle_slot_memory(), io_register_io_block(), petaio_build_selection(), petaio_read_header_internal(), petaio_read_snapshot(), petaio_save_snapshot(), print_timebin_statistics(), register_debug_io_blocks(), register_extra_blocks(), saveblock(), setup_particles(), shall_we_compact_slots(), slots_check_id_consistency(), slots_convert(), slots_find_next_garbage(), slots_find_next_nongarbage(), slots_gc_collect(), slots_gc_compact(), slots_gc_mark(), slots_gc_slots(), slots_gc_sorted(), slots_gc_sweep(), slots_get_last_garbage(), slots_reserve(), slots_set_enabled(), slots_setup_topology(), and test_slots_reserve().