[petsc-users] Setting values of a matrix in a blockwise manner

Matthew Knepley knepley at gmail.com
Wed Jun 10 10:24:17 CDT 2015


On Wed, Jun 10, 2015 at 10:20 AM, Tim Steinhoff <kandanovian at gmail.com>
wrote:

> I wanted to give the multi frontal LU factorization approach a shot as
> an example for a direct sparse solver.
>

You can just switch types when you use something other than UMFPACK.

  Thanks,

    Matt


> Regards
> Tim
>
> 2015-06-10 17:00 GMT+02:00 Matthew Knepley <knepley at gmail.com>:
> > On Wed, Jun 10, 2015 at 9:55 AM, Tim Steinhoff <kandanovian at gmail.com>
> > wrote:
> >>
> >> Thanks for the quick reply!
> >>
> >> "Yes, however in order to get improved performance, you need type
> >> MATBAIJ."
> >>
> >> I considered MatSetType(A,MATAIJ); i.e. the non-block type since
> >> UMFPACK seems to require the seqaij type according to the summary
> >> page. So do I have to refrain from using the more amiable block-type
> >> if I want to make use of UMFPACK?
> >
> >
> > Yes, I think so. What do you need in UMFPACK?
> >
> >   Thanks,
> >
> >     Matt
> >
> >>
> >> 2015-06-10 16:45 GMT+02:00 Matthew Knepley <knepley at gmail.com>:
> >> > On Wed, Jun 10, 2015 at 9:42 AM, Tim Steinhoff <kandanovian at gmail.com
> >
> >> > wrote:
> >> >>
> >> >> Hi all
> >> >>
> >> >> I want to use Petsc to solve some linear systems via the built-in
> >> >> Krylov
> >> >> subspace methods as well as by means of UMFPACK.
> >> >>
> >> >> The considered matrix is block sparse with blocks of size 6x6.
> >> >>
> >> >> Here is what I came up with after taking a look at some of the
> examples
> >> >>
> >> >> MPI_Comm comm;
> >> >> Mat A;
> >> >> PetscInt n = 10000; /* dimension of matrix */
> >> >> comm = PETSC_COMM_SELF;
> >> >> MatCreate(comm,&A);
> >> >> MatSetSizes(Amat,n,n,n,n);
> >> >> MatSetBlockSize(A,6);
> >> >> MatSetType(A,MATAIJ); /* UMFPACK compatible format due to comm =
> >> >> PETSC_COMM_SELF */
> >> >>
> >> >> Questions:
> >> >> 1.
> >> >> I work on a single node with 2-8 cores. Hence, comm =
> PETSC_COMM_SELF;
> >> >> I
> >> >> guess. Is it correct in this contect to set
> MatSetSizes(Amat,n,n,n,n);
> >> >> with
> >> >> 4-times n?
> >> >
> >> >
> >> > Yes.
> >> >
> >> >>
> >> >> 2.
> >> >> After the above sequence of commands do I have to use something like
> >> >>   MatSeqAIJSetPreallocation(A,0,d_nnz); /* d_nnz <-> number of
> nonzeros
> >> >> per row */
> >> >> or is it possible to use
> >> >>   MatSeqBAIJSetPreallocation(A,6,0,db_nnz); /* db_nnz <-> number of
> >> >> block
> >> >> nonzeros per block row */
> >> >
> >> >
> >> > You should use this if using MATBAIJ.
> >> >
> >> >>
> >> >> In any case, is something like
> >> >>   MatSetValuesBlocked(A,1,idx_r,1,idx_c,myblockvals,INSERT_VALUES);
> >> >> to fill values of one block into the matrix A ok?
> >> >
> >> >
> >> > Yes, however in order to get improved performance, you need type
> >> > MATBAIJ.
> >> >
> >> >   Thanks,
> >> >
> >> >     Matt
> >> >
> >> >>
> >> >> Regards
> >> >> Tim
> >> >
> >> >
> >> >
> >> >
> >> > --
> >> > What most experimenters take for granted before they begin their
> >> > experiments
> >> > is infinitely more interesting than any results to which their
> >> > experiments
> >> > lead.
> >> > -- Norbert Wiener
> >
> >
> >
> >
> > --
> > What most experimenters take for granted before they begin their
> experiments
> > is infinitely more interesting than any results to which their
> experiments
> > lead.
> > -- Norbert Wiener
>



-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150610/b4caca88/attachment-0001.html>


More information about the petsc-users mailing list