Перехлёсты
В прошлой статье я упоминал про перехлёсты, здесь я расскажу что это такое и почему именно так, а не иначе. Ничего сложного в этом нет, это просто границы смежных областей. Казалось бы такой пустяк, однако, не совсем. Есть некоторые мелочи, на которых следует заострить внимание. Поехали!
Как и говорилось ранее (в предыдущих статьях) после разбиения матрицы на подобласти, для каждого решателя создаётся 2 файла: файл с маской подобласти, а так же файл со значениями сетки внутри и на границе подобласти. Отметим, что как в маску, так и в матрицу значений входит так же граница подобласти, значениями которой могут быть как граничные значения части области, так и строка или столбец шириной в один элемент, принадлежащий другому решателю. Граничные элементы подобласти, принадлежащие другому решателю, а так же соседствующие с ними элементы подобласти, принадлежащие текущему решателю, далее будем называть перехлёстами. Пример перехлёста можно увидеть на рис. 1. Именно посредством перехлёстов и осуществляется синхронизация решателей при вычислении узловых значений внутри объекта.
Рис. 1. Схематичное обозначение перехлёста
В данной задаче матрицы и граничное условие являются тем самым секретом, который необходимо разделить между ЦОД и клиентом. Так как граничное условие так же хранится в матрице значений, то можно говорить о том, что матрица значений и маска это и есть секрет. Эти две матрицы разбираются на попарно сравнимые части. По одной части, которая состоит из подматрицы значений и подмаски нельзя восстановить другие части. Это объясняется тем, что форма объекта может быть совершенно произвольной.