Up
authorAlexey Shvetsov <alexxy@gentoo.org>
Mon, 17 Sep 2018 19:38:00 +0000 (22:38 +0300)
committerAlexey Shvetsov <alexxy@gentoo.org>
Mon, 17 Sep 2018 19:38:00 +0000 (22:38 +0300)
src/sans.cpp

index 19c282788f52c8e7cedae664b988eb144f9866ae..3a398e0bba94e14b1291ae975c964b0a7deecf0a 100644 (file)
@@ -66,7 +66,7 @@ class SANS : public TrajectoryAnalysisModule
         virtual void writeOutput();
 
     private:
-        class ModuleData;
+        //class ModuleData;
 
         double Gaussian(double value, double sigma, RVec Rpos, RVec Rgrid, RVec GridSpacing);
 
@@ -79,7 +79,8 @@ class SANS : public TrajectoryAnalysisModule
 
         AnalysisNeighborhood              nb_;
         const TopologyInformation        *top_;
-        std::vector < std::vector < std::vector<double>>> gausGrid_;
+        std::vector< std::vector < std::vector<double>>> gausGrid_;
+        std::vector<std::vector<std::vector<bool>>> isSolvent_;
         std::vector<double>               vdw_radius_;
 };
 
@@ -165,6 +166,7 @@ SANS::initAfterFirstFrame(const TrajectoryAnalysisSettings &settings,
     }
     // prepare gausGrid
     gausGrid_.resize(gridPoints_[XX], std::vector < std::vector < double>>(gridPoints_[YY], std::vector<double>(gridPoints_[ZZ])));
+    isSolvent_.resize(gridPoints_[XX], std::vector < std::vector < bool>>(gridPoints_[YY], std::vector<bool>(gridPoints_[ZZ])));
 }
 
 void
@@ -210,6 +212,8 @@ SANS::analyzeFrame(int frnr, const t_trxframe &fr, t_pbc *pbc,
                     //fprintf(stderr, "Gausian = %3.8f\n",Gaussian(top->atoms.atom[pair.refIndex()].m, 0.2, refPos, point, gridSpacing_)*AMU/((NANO*NANO*NANO)*(gridSpacing_[XX]*gridSpacing_[YY]*gridSpacing_[ZZ])));
                     //gausGrid_[i][j][k] += Gaussian(top->atoms.atom[pair.refIndex()].m, 0.1, refPos, point, gridSpacing_)*AMU/((NANO*NANO*NANO)*(gridSpacing_[XX]*gridSpacing_[YY]*gridSpacing_[ZZ]));
                     gausGrid_[i][j][k] += Gaussian(top->atoms.atom[pair.refIndex()].m, vdw_radius_[pair.refIndex()], refPos, point, gridSpacing_)*AMU/((NANO*NANO*NANO)*(gridSpacing_[XX]*gridSpacing_[YY]*gridSpacing_[ZZ]));
+                    // Mark if this is a pure solvent point e.g. no non-solvent atoms within cut-off
+
                 }
                 fprintf(stderr, "GausGrid[%d, %d, %d] = %f\n", i, j, k, gausGrid_[i][j][k]);
             }