Skip to content

fgarbuzov/laplace

Repository files navigation

Решение уравнения Лапласа. Принцип распараллеливания кода Смирнова:

  1. В fdm_grid создаётся сетка для подобласти, обрабатываемой конкретным процессом. В этом классе содержатся данные о том, какие вершины принадлежат границе области, а какие - границе между подобластями (interdomain boundary).
  2. В классе decomposition содержится информация о разбиении области на подобласти, которая необходима функции PCGM. В нём есть три массива:
    • индексы всех вершин, значения которых необходимо посылать соседним процессам (m_vSendInd);
    • ранки соседних процессов (m_vRank);
    • сдвиги (m_vShift), соответствующие первому элементу в m_vSendInd, который нужно будет отправить в соответствующий процесс.
  3. У класса decomposition есть наследник square_decomp, где реализована инициализация массивов, соответствующая разбиению области на квадраты.
  4. В главной функции PCGM в главном цикле сначала происходит обмен вершинами, индексы которых лежат в m_vSendInd, со всеми процессами, ранки которых записаны в m_vRank. Пришедшие от соседних процессов вершины приписываются к вектору vP, на который надо умножить матрицу mA. Таким образом получается расширенные вектор vExtVal, на который умножается матрица mA.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published