Подстановка пользовательских матриц в матрицы PETSc

У меня есть последовательные блочные матрицы AIJ, которые написаны на c ++, и я собираюсь использовать PETSc для создания матриц MPI. Итак, я должен заменить матрицы AIJ моего разреженного блока на матрицы AIJ PETSc блока MPI. У кого-нибудь есть пример, как это сделать?
Буду признателен за любые предложения, касающиеся задачи, которую я хочу сделать.

0

Решение

Хорошей отправной точкой может быть http://www.mcs.anl.gov/petsc/petsc-current/src/mat/examples/tutorials/ex5.c.html :

Opens a separate file for each process and reads in ITS portion
of a large parallel matrix. Only requires enough memory to store
the processes portion of the matrix ONCE.

Это использует MatSetValues() установить значения. Внимательно прочитайте документацию, чтобы понять, что вы должны делать: http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatSetValues.html . Глава руководства PETSC по мат также поможет вам.

Если вы хотите работать с заблокированной матрицей (BAIJ), вы можете использовать MatSetValuesBlocked() http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatSetValuesBlocked.html#MatSetValuesBlocked
(а также MatSetBlockSize())

До свидания,

0

Другие решения


По вопросам рекламы [email protected]