У меня есть последовательные блочные матрицы AIJ, которые написаны на c ++, и я собираюсь использовать PETSc для создания матриц MPI. Итак, я должен заменить матрицы AIJ моего разреженного блока на матрицы AIJ PETSc блока MPI. У кого-нибудь есть пример, как это сделать?
Буду признателен за любые предложения, касающиеся задачи, которую я хочу сделать.
Хорошей отправной точкой может быть 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()
)
До свидания,