From: Anatoly Titov Date: Thu, 13 Jan 2022 12:48:43 +0000 (+0300) Subject: - changed back to how it was, everything was ok X-Git-Url: http://biod.pnpi.spb.ru/gitweb/?a=commitdiff_plain;h=HEAD;p=alexxy%2Fgromacs-domains.git - changed back to how it was, everything was ok - changed omp thing --- diff --git a/src/domaintype.cpp b/src/domaintype.cpp index a0bb05a..9c74e1f 100644 --- a/src/domaintype.cpp +++ b/src/domaintype.cpp @@ -51,47 +51,18 @@ void domainType::update(const std::vector< std::vector< RVec > > &frame, const i } } // заполняем матрицы данных для структурных доменов для всех текущих "окон" - /*for (auto &i : graph) { - #pragma omp parallel for - for (size_t j = 0; j < i.size(); ++j) { - for (size_t k1 {0}; k1 < i[j].size(); ++k1) { - for (size_t k2 {k1}; k2 < i[j].size(); ++k2) { - if ((frame[j][k1] - frame[j][k2] - refTable[k1][k2]).norm() <= static_cast< float >(eps)) { - if (k1 != k2) { - ++i[j][k1][k2].num; - ++i[j][k2][k1].num; - } else { - ++i[j][k1][k2].num; - } - } - } - } - } - #pragma omp barrier - }*/ - std::vector< std::vector< std::vector< bool > > > ifGraph; - ifGraph.resize(graph.size()); - for (size_t i {0}; i < ifGraph.size(); ++i) { - ifGraph[i].resize(0); - ifGraph[i].resize(graph[i].size()); - for (size_t j {0}; j < ifGraph[i].size(); ++j) { - ifGraph[i][j].resize(0); - ifGraph[i][j].resize(graph[i][j].size(), true); - } - } - + // рабочие окна -> рассматриваемые основные последовательности -> матрица соотношений в структуре всё на всё #pragma omp parallel for for (size_t i = 0; i < graph.size(); ++i) { - for (size_t j {0}; j < frame.size(); ++j) { - for (size_t k1 {0}; k1 < frame[j].size(); ++k1) { - for (size_t k2 {k1}; k2 < frame[j].size(); ++k2) { - if ((frame[j][k1] - frame[j][k2] - refTable[k1][k2]).norm() <= static_cast< float >(eps) && ifGraph[i][k1][k2]) { - ifGraph[i][k1][k2] = false; + for (size_t j = 0; j < graph[i].size(); ++j) { + for (size_t k1 {0}; k1 < graph[i][j].size(); ++k1) { + for (size_t k2 {k1}; k2 < graph[i][j].size(); ++k2) { + if ((frame[j][k1] - frame[j][k2] - refTable[k1][k2]).norm() <= static_cast< float >(eps)) { if (k1 != k2) { - ++i[j][k1][k2].num; - ++i[j][k2][k1].num; + ++graph[i][j][k1][k2].num; + ++graph[i][j][k2][k1].num; } else { - ++i[j][k1][k2].num; + ++graph[i][j][k1][k2].num; } } }