LINUX.ORG.RU

[PETSc]: можно ли собрать матрицу из матриц?


0

0

Что есть: Четыре [разреженные] матрицы Mat A, B, B^T, 0.

Что хочется: Собрать их в одну большую вида |A...B| |B^T.0|, дабы натравить на неё решатель.

Что непонятно: Как это сделать культурно? Через MATBLOCKMAT? В документации об этом негусто. Есть ли операция "вставить подматрицу в заданное место матрицы"?

Заранее спасибо!

Вроде, это MatSetValuesBlocked.

Еще можно посмотреть NatSetValuesLocal и MatSetValues.

Еще можно спросить у разработчиков --- они вроде культурно общаются и отвечают.

gene
()
Ответ на: комментарий от gene

Спасибо!

Но, как я понял, MatSetValuesBlocked и пр. позволяют вставить блок, "разворачивая" одномерный массив значений в соответствии с заданным размером.

Интересует несколько другое: можно ли вставить именно готовую матрицу (объект типа Mat) в другую матрицу.

Копирование значений через "сливание" всей матрицы в одномерный массив, в случае сильно разреженных матриц, НЯП, крайне дорого.

Наверное, действительно, имеет смысл обратиться к разработчикам.

frodo_b
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.