From 04575db0ea4ba72e01c97a395122c6097fe313a3 Mon Sep 17 00:00:00 2001
From: Cristian C Lalescu <Cristian.Lalescu@ds.mpg.de>
Date: Sat, 13 Feb 2016 13:41:01 +0100
Subject: [PATCH] preliminary version of read

---
 bfps/cpp/distributed_particles.cpp |  5 +++++
 bfps/cpp/interpolator.hpp          |  7 +++++++
 setup.py                           | 10 +++++-----
 3 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/bfps/cpp/distributed_particles.cpp b/bfps/cpp/distributed_particles.cpp
index 476f44d2..49bae518 100644
--- a/bfps/cpp/distributed_particles.cpp
+++ b/bfps/cpp/distributed_particles.cpp
@@ -132,6 +132,11 @@ void distributed_particles<particle_type, rnumber, interp_neighbours>::read(
             MPI_DOUBLE,
             0,
             this->comm);
+    for (int p=0; p<this->nparticles; p++)
+    {
+        if (this->vel->z_is_here(temp[this->ncomponents*p+2]))
+            this->state[p] = temp + this->ncomponents*p;
+    }
     //if (this->myrank == 0)
     //{
     //    if (this->iteration > 0)
diff --git a/bfps/cpp/interpolator.hpp b/bfps/cpp/interpolator.hpp
index fa73fe14..d207c69e 100644
--- a/bfps/cpp/interpolator.hpp
+++ b/bfps/cpp/interpolator.hpp
@@ -24,6 +24,7 @@
 
 
 
+#include <cmath>
 #include "field_descriptor.hpp"
 #include "fftw_tools.hpp"
 #include "fluid_solver_base.hpp"
@@ -53,6 +54,12 @@ class interpolator:public interpolator_base<rnumber, interp_neighbours>
 
         int read_rFFTW(const void *src);
 
+        inline bool z_is_here(double z)
+        {
+            return (this->descriptor->rank[MOD(int(floor(z/this->dz)), this->descriptor->sizes[0])] ==
+                    this->descriptor->myrank);
+        }
+
         /* interpolate field at an array of locations */
         void sample(
                 const int nparticles,
diff --git a/setup.py b/setup.py
index fb36f5b6..87be7727 100644
--- a/setup.py
+++ b/setup.py
@@ -91,15 +91,15 @@ print('This is bfps version ' + VERSION)
 
 ### lists of files and MANIFEST.in
 src_file_list = ['field_descriptor',
-                 'fluid_solver_base',
-                 'fluid_solver',
+                 'distributed_particles',
                  'interpolator_base',
                  'particles_base',
-                 'rFFTW_interpolator',
-                 'rFFTW_particles',
                  'interpolator',
                  'particles',
-                 'distributed_particles',
+                 'rFFTW_interpolator',
+                 'rFFTW_particles',
+                 'fluid_solver_base',
+                 'fluid_solver',
                  'fftw_tools',
                  'spline_n1',
                  'spline_n2',
-- 
GitLab