MP-Gadget
5.0.1.dev1-76bc7d4726-dirty
|
#include <mpi.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <omp.h>
#include "utils.h"
#include "partmanager.h"
#include "forcetree.h"
#include "petapm.h"
#include "domain.h"
#include "walltime.h"
#include "gravity.h"
#include "cosmology.h"
#include "neutrinos_lra.h"
Go to the source code of this file.
Classes | |
struct | gravpm_params |
Functions | |
static int | pm_mark_region_for_node (int startno, int rid, int *RegionInd, const ForceTree *tt) |
static void | convert_node_to_region (PetaPM *pm, PetaPMRegion *r, struct NODE *Nodes) |
static int | hybrid_nu_gravpm_is_active (int i) |
static void | potential_transfer (PetaPM *pm, int64_t k2, int kpos[3], pfft_complex *value) |
static void | compute_neutrino_power (PetaPM *pm) |
static void | force_x_transfer (PetaPM *pm, int64_t k2, int kpos[3], pfft_complex *value) |
static void | force_y_transfer (PetaPM *pm, int64_t k2, int kpos[3], pfft_complex *value) |
static void | force_z_transfer (PetaPM *pm, int64_t k2, int kpos[3], pfft_complex *value) |
static void | readout_potential (PetaPM *pm, int i, double *mesh, double weight) |
static void | readout_force_x (PetaPM *pm, int i, double *mesh, double weight) |
static void | readout_force_y (PetaPM *pm, int i, double *mesh, double weight) |
static void | readout_force_z (PetaPM *pm, int i, double *mesh, double weight) |
static PetaPMRegion * | _prepare (PetaPM *pm, PetaPMParticleStruct *pstruct, void *userdata, int *Nregions) |
void | gravpm_init_periodic (PetaPM *pm, double BoxSize, double Asmth, int Nmesh, double G) |
void | gravpm_force (PetaPM *pm, ForceTree *tree, Cosmology *CP, double Time, double UnitLength_in_cm, const char *PowerOutputDir, double TimeIC, int FastParticleType) |
static double | sinc_unnormed (double x) |
void | powerspectrum_add_mode (Power *PowerSpectrum, const int64_t k2, const int kpos[3], pfft_complex *const value, const double invwindow, double Nmesh) |
void | measure_power_spectrum (PetaPM *pm, int64_t k2, int kpos[3], pfft_complex *value) |
static double | diff_kernel (double w) |
static void | force_transfer (PetaPM *pm, int k, pfft_complex *value) |
Variables | |
static PetaPMFunctions | functions [] |
static struct gravpm_params | GravPM |
|
static |
Definition at line 117 of file gravpm.c.
References PetaPM::BoxSize, convert_node_to_region(), gravpm_params::CP, NODE::DependsOnLocalMass, endrun(), NODE::f, ForceTree::firstnode, force_get_father(), force_tree_allocated(), force_tree_free(), GravPM, NODE::InternalTopLevel, NODE::len, Cosmology::MassiveNuLinRespOn, message(), mymalloc2, PetaPM::Nmesh, Region::no, ForceTree::Nodes, ForceTree::NTopLeaves, part_manager_type::NumPart, Region::numpart, P, PartManager, pm_mark_region_for_node(), powerspectrum_alloc(), PetaPM::ps, PetaPMParticleStruct::RegionInd, NODE::s, NODE::sibling, NodeChild::suns, NODE::TopLevel, gravpm_params::UnitLength_in_cm, and walltime_measure.
Referenced by gravpm_force().
|
static |
Definition at line 304 of file gravpm.c.
References gravpm_params::CP, delta_nu_from_power(), _powerspectrum::delta_nu_ratio, GravPM, _powerspectrum::logknu, _powerspectrum::nonzero, _powerspectrum::nu_acc, _powerspectrum::nu_spline, _powerspectrum::Power, powerspectrum_sum(), powerspectrum_zero(), PetaPM::ps, gravpm_params::Time, and gravpm_params::TimeIC.
Referenced by gravpm_force().
|
static |
Definition at line 255 of file gravpm.c.
References PetaPM::BoxSize, NODE::center, Region::center, NODE::hmax, NODE::len, Region::len, PetaPM::Nmesh, Region::no, Region::offset, petapm_region_init_strides(), Region::size, and ThisTask.
Referenced by _prepare().
|
static |
Definition at line 454 of file gravpm.c.
Referenced by force_transfer().
|
static |
Definition at line 472 of file gravpm.c.
References PetaPM::BoxSize, diff_kernel(), and PetaPM::Nmesh.
Referenced by force_x_transfer(), force_y_transfer(), and force_z_transfer().
|
static |
Definition at line 486 of file gravpm.c.
References force_transfer().
|
static |
Definition at line 489 of file gravpm.c.
References force_transfer().
|
static |
Definition at line 492 of file gravpm.c.
References force_transfer().
void gravpm_force | ( | PetaPM * | pm, |
ForceTree * | tree, | ||
Cosmology * | CP, | ||
double | Time, | ||
double | UnitLength_in_cm, | ||
const char * | PowerOutputDir, | ||
double | TimeIC, | ||
int | FastParticleType | ||
) |
Definition at line 62 of file gravpm.c.
References _prepare(), PetaPMParticleStruct::active, compute_neutrino_power(), gravpm_params::CP, CP, gravpm_params::FastParticleType, functions, PetaPMGlobalFunctions::global_analysis, global_functions, PetaPMGlobalFunctions::global_readout, GravPM, GrowthFactor(), _omega_nu::hybnu, hybrid_nu_gravpm_is_active(), Cosmology::HybridNeutrinosOn, _powerspectrum::logknu, Cosmology::MassiveNuLinRespOn, measure_power_spectrum(), part_manager_type::NumPart, Cosmology::ONu, P, particle_nu_fraction(), PartManager, petapm_force(), potential_transfer(), powerspectrum_free(), powerspectrum_nu_save(), powerspectrum_save(), powerspectrum_sum(), PetaPM::ps, gravpm_params::Time, gravpm_params::TimeIC, gravpm_params::UnitLength_in_cm, UnitLength_in_cm, and walltime_measure.
Referenced by do_force_test(), run(), run_gravity_test(), and runpower().
void gravpm_init_periodic | ( | PetaPM * | pm, |
double | BoxSize, | ||
double | Asmth, | ||
int | Nmesh, | ||
double | G | ||
) |
Definition at line 53 of file gravpm.c.
References G, and petapm_init().
Referenced by do_force_test(), run(), run_gravity_test(), runfof(), and runpower().
|
static |
Definition at line 465 of file gravpm.c.
References gravpm_params::FastParticleType, GravPM, and P.
Referenced by gravpm_force().
void measure_power_spectrum | ( | PetaPM * | pm, |
int64_t | k2, | ||
int | kpos[3], | ||
pfft_complex * | value | ||
) |
Definition at line 361 of file gravpm.c.
References NODE::f, PetaPM::Nmesh, powerspectrum_add_mode(), PetaPM::ps, and sinc_unnormed().
Referenced by gravpm_force().
|
static |
Definition at line 209 of file gravpm.c.
References NODE::center, NODE::ChildType, endrun(), NODE::f, NODE::len, NodeChild::noccupied, NODE_NODE_TYPE, ForceTree::Nodes, P, PARTICLE_NODE_TYPE, PSEUDO_NODE_TYPE, NODE::s, NODE::sibling, and NodeChild::suns.
Referenced by _prepare().
|
static |
Definition at line 380 of file gravpm.c.
References PetaPM::Asmth, PetaPM::BoxSize, _powerspectrum::BoxSize_in_MPC, gravpm_params::CP, _powerspectrum::delta_nu_ratio, NODE::f, PetaPM::G, get_omega_nu_nopart(), GravPM, _powerspectrum::logknu, Cosmology::MassiveNuLinRespOn, PetaPM::Nmesh, _powerspectrum::nonzero, _powerspectrum::Norm, _powerspectrum::nu_acc, _powerspectrum::nu_prefac, _powerspectrum::nu_spline, Cosmology::Omega0, Cosmology::ONu, pot_factor, powerspectrum_add_mode(), PetaPM::ps, sinc_unnormed(), and gravpm_params::Time.
Referenced by gravpm_force().
void powerspectrum_add_mode | ( | Power * | PowerSpectrum, |
const int64_t | k2, | ||
const int | kpos[3], | ||
pfft_complex *const | value, | ||
const double | invwindow, | ||
double | Nmesh | ||
) |
Definition at line 327 of file gravpm.c.
References _powerspectrum::kk, _powerspectrum::Nmodes, _powerspectrum::Norm, _powerspectrum::Power, and _powerspectrum::size.
Referenced by measure_power_spectrum(), and potential_transfer().
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 291 of file gravpm.c.
Referenced by measure_power_spectrum(), and potential_transfer().
|
static |
Definition at line 32 of file gravpm.c.
Referenced by displacement_fields(), gravpm_force(), petapm_force(), and petapm_force_c2r().
|
static |