mirror of
https://bitbucket.org/cosmicvoids/vide_public.git
synced 2025-07-04 15:21:11 +00:00
Enforce particles to be in the boxsize for the SDF loader
This commit is contained in:
parent
5b410a0008
commit
39d10fdd6b
1 changed files with 19 additions and 5 deletions
|
@ -69,7 +69,6 @@ public:
|
|||
return num_splitting;
|
||||
}
|
||||
|
||||
|
||||
int64_t getStart(int id)
|
||||
{
|
||||
return sdf_header->TotalNumPart * int64_t(id) / num_splitting;
|
||||
|
@ -87,7 +86,7 @@ public:
|
|||
#define INFINITY std::numeric_limits<float>::max()
|
||||
float shift = 0.5*d->BoxSize;
|
||||
rescale_position /= d->time;
|
||||
float min_pos[3] = {INFINITY,INFINITY, INFINITY}, max_pos[3] = {-INFINITY,-INFINITY,-INFINITY};
|
||||
// float min_pos[3] = {INFINITY,INFINITY, INFINITY}, max_pos[3] = {-INFINITY,-INFINITY,-INFINITY};
|
||||
|
||||
if (d->Pos[0] != 0)
|
||||
{
|
||||
|
@ -96,10 +95,10 @@ public:
|
|||
for (int64_t i = 0; i < d->NumPart; i++)
|
||||
{
|
||||
d->Pos[k][i] = (d->Pos[k][i]*rescale_position + shift);
|
||||
min_pos[k] = std::min(min_pos[k], d->Pos[k][i]);
|
||||
max_pos[k] = std::max(max_pos[k], d->Pos[k][i]);
|
||||
// min_pos[k] = std::min(min_pos[k], d->Pos[k][i]);
|
||||
// max_pos[k] = std::max(max_pos[k], d->Pos[k][i]);
|
||||
}
|
||||
cout << boost::format("min[%d] = %g, max[%d] = %g") % k % min_pos[k] % k %max_pos[k] << endl;
|
||||
// cout << boost::format("min[%d] = %g, max[%d] = %g") % k % min_pos[k] % k %max_pos[k] << endl;
|
||||
}
|
||||
}
|
||||
if (d->Vel[0] != 0)
|
||||
|
@ -115,6 +114,20 @@ public:
|
|||
}
|
||||
|
||||
|
||||
void enforceBoxSize(SimuData *d)
|
||||
{
|
||||
for (int k = 0; k < 3; k++)
|
||||
{
|
||||
for (int64_t i = 0; i < d->NumPart; i++)
|
||||
{
|
||||
while (d->Pos[k][i]<0)
|
||||
d->Pos[k][i] += d->BoxSize;
|
||||
while (d->Pos[k][i]>=d->BoxSize)
|
||||
d->Pos[k][i] -= d->BoxSize;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SimuData *loadFile(int id) {
|
||||
SimuData *d;
|
||||
int64_t starts[7];
|
||||
|
@ -177,6 +190,7 @@ public:
|
|||
if (load_flags & (NEED_POSITION | NEED_VELOCITY))
|
||||
rescaleParticles(d, d->Hubble*1e-5, one_kpc/one_Gyr);
|
||||
|
||||
enforceBoxSize(d);
|
||||
applyTransformations(d);
|
||||
basicPreprocessing(d, preproc);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue