- changed to prefix "++"
[alexxy/gromacs-spacetimecorr.git] / src / corrtype.h
index 2b585ba05eac6c6aca67e986095e48722560a397..775a86324c59a740c0a1c22ebbf2fb968346c60f 100644 (file)
@@ -5,12 +5,11 @@
 #include <vector>
 #include <cfloat>
 #include <limits>
+#include <chrono>
 
 #include <gromacs/trajectoryanalysis.h>
 #include <gromacs/trajectoryanalysis/topologyinformation.h>
 
-//#include "/home/titov_ai/Develop/gromacs-original/src/gromacs/trajectoryanalysis/topologyinformation.h"
-
 #include "gtest/gtest.h"
 
 #include "newfit.h"
@@ -28,26 +27,34 @@ class correlationType {
         ~correlationType();
 
         // конструктор класса для инициализации
-        correlationType();
-
-        correlationType(const std::vector< RVec > &ref, int wnd, int taau, int tau_st, float crlUp, float effRad, int mod,
-                        const std::string &out, const std::vector< int > &indx,
-                        const std::vector< std::vector < std::vector < size_t > > > &sels,
-                        const std::vector< std::string > &rsNames);
-
-        void setDefaults(const std::vector< RVec > &ref, int wnd, int taau, int tau_st, float crlUp, float effRad, int mod,
-                         const std::string &out, const std::vector< int > &indx,
-                         const std::vector< std::vector < std::vector < size_t > > > &sels,
-                         const std::vector< std::string > &rsNames);
-
+        correlationType() = default;
+
+        // конструктор класса с необходимыми параметрами
+        correlationType(const std::vector< RVec > &inputReference, const int inputWindow, const int inputTau,
+                        const int inputTauStep, const float inputCrlUpBorder, const float inputEffRadius, const int inputMode,
+                        const std::string &inputOutputName, const std::vector< size_t > &inputIndex,
+                        const std::vector< std::vector < std::vector < size_t > > > &inputSelections,
+                        const std::vector< std::string > &inputResNames);
+
+        // функция заполнения необходимых параметров
+        void setDefaults(const std::vector< RVec > &inputReference, const int inputWindow, const int inputTau,
+                         const int inputTauStep, const float inputCrlUpBorder, const float inputEffRadius, const int inputMode,
+                         const std::string &inputOutputName, const std::vector< size_t > &inputIndex,
+                         const std::vector< std::vector < std::vector < size_t > > > &inputSelections,
+                         const std::vector< std::string > &inputResNames);
+
+        // функция обновления данных для подсчёта корреляций
         void update(int frame, const std::vector< RVec > &curFrame);
 
+        // функция считывания подсчитанных данных из класса
         void readEval(size_t frameNum);
 
+        // функция вывода графов в виде стрелок в тектовом формате в файл
         void printData();
 
     private:
 
+        // тесты функций
         FRIEND_TEST(corrTests, corrTests_setDefaults);
         FRIEND_TEST(corrTests, corrTests_update);
         FRIEND_TEST(corrTests, corrTests_trajectoryPartition);
@@ -55,43 +62,70 @@ class correlationType {
         FRIEND_TEST(corrTests, corrTests_graphCalculations);
         FRIEND_TEST(corrTests, corrTests_graphBackBoneEvaluation);
 
+        // матрицы корреляций для каждого смещения [0:ТАУ]
         std::vector< std::vector< std::vector< double > > >                         matrixes;
+        // кадры траектории для работы на окне + ТАУ
         std::vector< std::vector< RVec > >                                          trajectory;
+        // временное хранилище для траекторий, "глобальная" для оптимизации
         std::vector< std::vector< std::vector< RVec > > >                           fitTrajectory;
+        // референсная структура данных
         std::vector< RVec >                                                         reference;
+        // размер базового рассматриваемого окна
         int                                                                         window      {1000};         // selectable
+        // глубина временного сдвига
         int                                                                         tau         {window / 2};   // selectable
+        // шаг между начальными позициями окон
         int                                                                         tauStep     {window / 10};  // selectable
+        // минимальное значение корреляции по модулю
         float                                                                       crlUpBorder {0.5};          // selectable
+        // радиус рассматриваемых взаимодействий
         float                                                                       effRadius   {1.5};          // selectable
+        // режим работы "1" - подсчёт, "0" - считывание
         int                                                                         mode        {0};            // selectable
+        // название выходного файла
         std::string                                                                 outputName  = "";           // selectable
-        std::vector< int >                                                          index;
+        // индекс структуры
+        std::vector< size_t >                                                       index;
+        // названия остатков
         std::vector< std::string >                                                  resNames;
+        // группы атомов, потенциально структурные домены
         std::vector< std::vector < std::vector < size_t > > >                       selections;
+        // номер подсчёта корреляций
         int                                                                         count       {0};
-
+        // матрица корреляционных взаимодействий
         std::vector< std::vector< std::pair< double, int > > >                      graph;
+        // графы взаимодействия
         std::vector< std::vector< size_t > >                                        subGraphPoints;
+        // рёбра графов взаимодействия
         std::vector< std::vector< std::pair< size_t, size_t > > >                   subGraphRbr;
+        // остовные графы графов взаимодействия
         std::vector< std::vector< std::vector< std::pair< size_t, size_t > > > >    subGraphRouts;
 
+        // функция дополнения SELECTIONS до полного покрытия объекта
         void trajectoryPartition();
 
+        // функция чтения/записи корреляций
         void readWriteCorrelations(int rwMode);
 
+        // фитирование траектории на основе SELECTIONS и объеденение её воедино
         inline void trajectoryFitting();
 
+        // инициализация матрицы корреляций
         inline void matrixNullFitting();
 
+        // функция подсчёта корреляций
         void correlationEval();
 
+        // функция нахождения графов взаимодействия
         void graphCalculations(size_t tauStart, size_t tauEnd);
 
+        // вспомогательная функция сравнения
         static bool myComparisonFunction (const std::pair< int, double > i, const std::pair< int, double > j);
 
+        // функция поиска остовных графов
         void graphBackBoneEvaluation();
 
+        // функция вывода графов в текстовом виде в файл
         void printOutputData();
 };