MP-Gadget
5.0.1.dev1-76bc7d4726-dirty
|
Computation of SPH forces and rate of entropy generation. More...
#include <mpi.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <gsl/gsl_math.h>
#include "physconst.h"
#include "walltime.h"
#include "slotsmanager.h"
#include "treewalk.h"
#include "density.h"
#include "hydra.h"
#include "winds.h"
#include "utils.h"
Go to the source code of this file.
Classes | |
struct | hydro_params |
struct | HydraPriv |
struct | TreeWalkQueryHydro |
struct | TreeWalkResultHydro |
struct | TreeWalkNgbIterHydro |
Macros | |
#define | HYDRA_GET_PRIV(tw) ((struct HydraPriv*) ((tw)->priv)) |
Functions | |
void | set_hydro_params (ParameterSet *ps) |
int | DensityIndependentSphOn (void) |
static MyFloat | SPH_EOMDensity (const struct sph_particle_data *const pi) |
static double | PressurePred (MyFloat EOMDensityPred, double EntVarPred) |
static int | hydro_haswork (int n, TreeWalk *tw) |
static void | hydro_postprocess (int i, TreeWalk *tw) |
static void | hydro_ngbiter (TreeWalkQueryHydro *I, TreeWalkResultHydro *O, TreeWalkNgbIterHydro *iter, LocalTreeWalk *lv) |
static void | hydro_copy (int place, TreeWalkQueryHydro *input, TreeWalk *tw) |
static void | hydro_reduce (int place, TreeWalkResultHydro *result, enum TreeWalkReduceMode mode, TreeWalk *tw) |
void | hydro_force (const ActiveParticles *act, const double atime, struct sph_pred_data *SPH_predicted, double MinEgySpec, const DriftKickTimes times, Cosmology *CP, const ForceTree *const tree) |
double | SPH_DensityPred (MyFloat Density, MyFloat DivVel, double dtdrift) |
Variables | |
static struct hydro_params | HydroParams |
Computation of SPH forces and rate of entropy generation.
This file contains the "second SPH loop", where the SPH forces are computed, and where the rate of change of entropy due to the shock heating (via artificial viscosity) is computed.
Definition in file hydra.c.
#define HYDRA_GET_PRIV | ( | tw | ) | ((struct HydraPriv*) ((tw)->priv)) |
int DensityIndependentSphOn | ( | void | ) |
Definition at line 49 of file hydra.c.
References hydro_params::DensityIndependentSphOn, and HydroParams.
Referenced by register_io_blocks(), run(), setup_density_indep_entropy(), and setup_smoothinglengths().
|
static |
Definition at line 242 of file hydra.c.
References TreeWalkQueryHydro::Density, hydro_params::DensityIndependentSphOn, TreeWalkQueryHydro::dloga, TreeWalkQueryHydro::EgyRho, TreeWalkQueryHydro::EntVarPred, TreeWalkQueryHydro::F1, GAMMA, get_dloga_for_bin(), TreeWalkQueryHydro::Hsml, HYDRA_GET_PRIV, HydroParams, TreeWalkQueryHydro::Mass, P, TreeWalkQueryHydro::Pressure, TreeWalkQueryHydro::SPH_DhsmlDensityFactor, SPH_EOMDensity(), SPHP, DriftKickTimes::Ti_Current, HydraPriv::times, and TreeWalkQueryHydro::Vel.
Referenced by hydro_force().
void hydro_force | ( | const ActiveParticles * | act, |
const double | atime, | ||
struct sph_pred_data * | SPH_predicted, | ||
double | MinEgySpec, | ||
const DriftKickTimes | times, | ||
Cosmology * | CP, | ||
const ForceTree *const | tree | ||
) |
This function is the driver routine for the calculation of hydrodynamical force and rate of change of entropy due to shock heating for all active particles .
Definition at line 147 of file hydra.c.
References ActiveParticles::ActiveParticle, HydraPriv::atime, CP, HydraPriv::drifts, endrun(), sph_pred_data::EntVarPred, TreeWalk::ev_label, HydraPriv::FgravkickB, TreeWalk::fill, GAMMA, GAMMA_MINUS1, get_exact_drift_factor(), get_exact_gravkick_factor(), get_exact_hydrokick_factor(), HydraPriv::gravkicks, TreeWalk::haswork, ForceTree::hmax_computed_flag, hubble_function(), HYDRA_GET_PRIV, hydro_copy(), hydro_haswork(), hydro_ngbiter(), hydro_postprocess(), hydro_reduce(), HydraPriv::hydrokicks, slots_manager_type::info, is_timebin_active(), HydraPriv::MinEgySpec, DriftKickTimes::mintimebin, myfree, mymalloc, TreeWalk::ngbiter, TreeWalk::ngbiter_type_elsize, ActiveParticles::NumActiveParticle, P, DriftKickTimes::PM_kick, TreeWalk::postprocess, PressurePred(), TreeWalk::priv, TreeWalk::query_type_elsize, TreeWalk::reduce, TreeWalk::result_type_elsize, slot_info::size, SlotsManager, SPH_EOMDensity(), HydraPriv::SPH_predicted, SphP, DriftKickTimes::Ti_Current, DriftKickTimes::Ti_kick, DriftKickTimes::Ti_lastactivedrift, TIMEBINS, TreeWalk::timecommsumm1, TreeWalk::timecommsumm2, TreeWalk::timecomp1, TreeWalk::timecomp2, TreeWalk::timecomp3, HydraPriv::times, TreeWalk::timewait1, TreeWalk::timewait2, TreeWalk::tree, treewalk_run(), treewalk_visit_ngbiter(), TreeWalk::visit, walltime_add, WALLTIME_IGNORE, and walltime_measure.
Referenced by run().
|
static |
Definition at line 495 of file hydra.c.
References P.
Referenced by hydro_force().
|
static |
This function is the 'core' of the SPH force computation. A target particle is specified which may either be local, or reside in the communication buffer.
Definition at line 305 of file hydra.c.
References TreeWalkResultHydro::Acc, hydro_params::ArtBulkViscConst, HydraPriv::atime, TreeWalkNgbIterHydro::base, TreeWalkQueryHydro::Density, density_kernel_dwk(), density_kernel_init(), hydro_params::DensityContrastLimit, hydro_params::DensityIndependentSphOn, TreeWalkNgbIterBase::dist, TreeWalkQueryHydro::dloga, dloga, dloga_from_dti(), DMAX, DMIN, dotproduct(), HydraPriv::drifts, TreeWalkResultHydro::DtEntropy, TreeWalkQueryHydro::EgyRho, endrun(), sph_pred_data::EntVarPred, TreeWalkQueryHydro::EntVarPred, TreeWalkQueryHydro::F1, HydraPriv::FgravkickB, GAMMA, get_dloga_for_bin(), GetDensityKernelType(), HydraPriv::gravkicks, DensityKernel::HH, DensityKernel::Hinv, TreeWalkQueryHydro::Hsml, TreeWalkNgbIterBase::Hsml, HYDRA_GET_PRIV, HydraPriv::hydrokicks, HydroParams, TreeWalkNgbIterHydro::kernel_i, TreeWalkNgbIterBase::mask, TreeWalkQueryHydro::Mass, TreeWalkResultHydro::MaxSignalVel, HydraPriv::MinEgySpec, NGB_TREEFIND_SYMMETRIC, TreeWalkNgbIterBase::other, P, TreeWalkNgbIterHydro::p_over_rho2_i, TreeWalkQueryHydro::Pressure, PressurePred(), HydraPriv::PressurePred, TreeWalkNgbIterBase::r, TreeWalkNgbIterBase::r2, TreeWalkNgbIterHydro::soundspeed_i, SPH_DensityPred(), TreeWalkQueryHydro::SPH_DhsmlDensityFactor, SPH_EntVarPred(), SPH_EOMDensity(), HydraPriv::SPH_predicted, SPH_VelPred(), SPHP, TreeWalkNgbIterBase::symmetric, DriftKickTimes::Ti_Current, DriftKickTimes::Ti_kick, HydraPriv::times, LocalTreeWalk::tw, TreeWalkQueryHydro::Vel, sph_pred_data::VelPred, and winds_is_particle_decoupled().
Referenced by hydro_force().
|
static |
Definition at line 501 of file hydra.c.
References HydraPriv::atime, GAMMA_MINUS1, HYDRA_GET_PRIV, P, SPHP, winds_decoupled_hydro(), and winds_is_particle_decoupled().
Referenced by hydro_force().
|
static |
Definition at line 273 of file hydra.c.
References TreeWalkResultHydro::Acc, TreeWalkResultHydro::DtEntropy, TreeWalkResultHydro::MaxSignalVel, SPHP, TREEWALK_PRIMARY, and TREEWALK_REDUCE.
Referenced by hydro_force().
|
static |
Definition at line 67 of file hydra.c.
References GAMMA.
Referenced by hydro_force(), and hydro_ngbiter().
void set_hydro_params | ( | ParameterSet * | ps | ) |
Definition at line 37 of file hydra.c.
References hydro_params::ArtBulkViscConst, hydro_params::DensityContrastLimit, hydro_params::DensityIndependentSphOn, HydroParams, param_get_double(), param_get_int(), and ThisTask.
Referenced by read_parameter_file().
Definition at line 294 of file hydra.c.
Referenced by hydro_ngbiter().
|
static |
Definition at line 56 of file hydra.c.
References sph_particle_data::Density, hydro_params::DensityIndependentSphOn, sph_particle_data::EgyWtDensity, and HydroParams.
Referenced by hydro_copy(), hydro_force(), and hydro_ngbiter().
|
static |
Referenced by DensityIndependentSphOn(), hydro_copy(), hydro_ngbiter(), set_hydro_params(), and SPH_EOMDensity().