- changed data handle (potentially fastened) analyze frame
authorAnatoly <Titov_AI@pnpi.nrcki.ru>
Fri, 22 Jan 2021 11:27:15 +0000 (14:27 +0300)
committerAnatoly <Titov_AI@pnpi.nrcki.ru>
Fri, 22 Jan 2021 11:27:15 +0000 (14:27 +0300)
src/domains.cpp
src/domaintype.cpp

index 235b30a3d377a83c488966406e5d57736f8a99e4..4a7dbd1e0e2a66c947951fc81210302d87a86087 100644 (file)
@@ -53,6 +53,7 @@
 #include <omp.h>
 #include <vector>
 #include <cstdio>
+#include <execution>
 
 using namespace gmx;
 
@@ -96,6 +97,7 @@ class Domains : public TrajectoryAnalysisModule
         std::vector< size_t >                                       index;
         std::vector< RVec >                                         trajectory;
         std::vector< RVec >                                         reference;
+        std::vector< std::vector< RVec > >                          tsTemp;
         Selection                                                   selec;
         std::vector< std::vector< std::pair< size_t, size_t > > >   fitPairs;
         unsigned int                                                bone;
@@ -205,6 +207,11 @@ Domains::initAnalysis(const TrajectoryAnalysisSettings &settings,
 
     // задание необходимых параметров для вычисления доменов
     testSubject.setDefaults(index, reference, window, domain_min_size, DomainSearchingAlgorythm, twStep, bone, epsi, delta, fnNdx_);
+    tsTemp.resize(0);
+    tsTemp.resize(bone);
+    for (auto &i : tsTemp) {
+        i.resize(index.size());
+    }
 }
 
 void
@@ -216,9 +223,7 @@ Domains::analyzeFrame(int frnr, const t_trxframe &fr, t_pbc *pbc, TrajectoryAnal
     }
 
     // создание копий фрейма для каждой основной последовательности
-    std::vector< std::vector< RVec > > tsTemp;
-    tsTemp.resize(0);
-    tsTemp.resize(bone, trajectory);
+    std::fill(std::execution::seq, tsTemp.begin(), tsTemp.end(), trajectory);
 
     // фитирование каждой копии
     #pragma omp parallel for ordered schedule(dynamic) firstprivate(reference)
index 72f3399fdbef24e219d7230812175b86f2ba78c7..cf1d666162c3ac0457c7529c277951b5f549b2e5 100644 (file)
@@ -20,6 +20,7 @@ void domainType::setDefaults(const std::vector< size_t > &index, const std::vect
                         const std::string &outPutFileName) {
     graph.resize(0);
     structIndex = index;
+    refTable.resize(0);
     refTable.resize(reference.size());
     for (size_t i {0}; i < reference.size(); ++i) {
         refTable[i].resize(0);