[petsc-users] ublas sparse matrix bindings?
Luke Bloy
luke.bloy at gmail.com
Tue Jun 29 10:03:43 CDT 2010
Umut,
Thanks for the offer I have the basics working with
MatCreateSeqAIJWithArrays in case you need it you can use something like
this.
using boost::numeric::ublas;
typedef unbounded_array<PetscInt> IndexArrayType;
typedef unbounded_array<PetscScalar> ValueArrayType;
typedef
compressed_matrix<PetscScalar,row_major,0,IndexArrayType,ValueArrayType>
MatrixType;
MatrixType L(10,10);
//Fill L
ierr = MatCreateSeqAIJWithArrays(PETSC_COMM_WORLD, 10, 10,
L.index1_data().begin() ,L.index2_data().begin(),L.value_data().begin(),&A);
this works so long as you use petscInt and petscScalar as the template
parameters of MatrixType.
-Luke
On 06/29/2010 10:44 AM, Umut Tabak wrote:
> Satish Balay wrote:
>> On Tue, 29 Jun 2010, Luke Bloy wrote:
>>
>>> Thanks for the quick responses.
>>>
>>> my matrices are fairly large 80,000 x 80,000 and not too sparse so
>>> I'd like to
>>> avoid any serialization if possible.
>>>
>>> I've worked out how to use MatCreateSeqAIJWithArrays so long as i
>>> control the
>>> types used in my ublas matrix, which is something i'd like to avoid
>>> doing if
>>> possible.
>>>
>>> unfortunately I'm not sure how to control the types petscscalar and
>>> petscint.
>>> I've looked through
>>> http://www.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-3.0.0/include/petsc.h.html#PetscScalar
>>>
>>> and
>>> http://www.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-3.0.0/docs/manualpages/Sys/PetscScalar.html
>>>
> I did sth like this some time ago, where the matrices were in CSR
> format "compressed matrix", I guess, in ublas, That was not that
> difficult, I did that with MatSetValues, if I can find some code I
> will post that, maybe that could help.
> Best,
> Umut
More information about the petsc-users
mailing list