[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MatCreateMPIAIJ



Does it work as long as the global length is several times of the local length?

Thanks
Xiaoxu

Matthew Knepley wrote:

On 10/4/06, *Xiaoxu Wang* <xiwang@xxxxxxxxxxxxxxxxxx <mailto:xiwang@xxxxxxxxxxxxxxxxxx>> wrote:

    Hi, Thank you for your help already. Can anybody tell me how to
    set the
    size of local matrix? Can I set it arbitrarily?


Yes, you can. If you also set the global size it must be consistent.

   Matt

    Xiaoxu

    Xiaoxu Wang wrote:

    >
    > The error is at line 1023 of " plog.c".
    > ---------------
    > An unhandled exception of type 'System.NullReferenceException'
    > occurred in Unknown Module.
    >
    > Additional information: Object reference not set to an instance
    of an
    > object.
    > ----------------
    >
    > The matrix I am trying to initialize is the stiffness matrix K of
    > finite element methods. Later the dynamical system is solved
    as  (I +
    > Dt*K) U(t+1) = U(t) + Dt.F(t) by calling KSPSolve. Any idea how
    to set
    > the number of local rows?  I am running the code on PC now, but want
    > to keep MatCreateMPIAIJ in it.
    > Xiaoxu
    > ----- Original Message ----- From: "Barry Smith" <
    bsmith@xxxxxxxxxxx <mailto:bsmith@xxxxxxxxxxx>>
    > To: <petsc-users@xxxxxxxxxxx <mailto:petsc-users@xxxxxxxxxxx>>
    > Sent: Tuesday, October 03, 2006 8:32 AM
    > Subject: Re: MatCreateMPIAIJ
    >
    >
    >>
    >>
    >> On Mon, 2 Oct 2006, Xiaoxu Wang wrote:
    >>
    >>> Hi,
    >>>
    >>>      I am a beginner on PETSC. This is my question about
    >>> MatCreateMPIAIJ. I
    >>> have a sparse matrix and only know the total number of
    nonzeros each
    >>> row. The
    >>> number of local rows and the number of local columns has been
    set to
    >>> PETSC_DECIDE. Therefore I don't know the size of each portion
    and it
    >>> is hard
    >>> to tell d_nnz and o_nnz. I use the total number of nunzeros as
    d_nnz
    >>> and get
    >>> an allocation error.
    >>
    >>
    >>
    >>   It would be helpful to know the exact error message:
    >>
    >>>  How to deal  with  this problem?  Should  I  explicitly
    >>> specify the number of local rows and the number of local
    columns and
    >>> calculate
    >>> d_nnz and o_nnz? Or let PETSC decide the number of local rows and
    >>> the number
    >>> of local columns, and  then use another function to get these
    >>> values? Any
    >>> other better solution?
    >>
    >>
    >>
    >>   You should specifically set the number of local rows and columns
    >> and then
    >> compute the values of d_nnz and o_nnz. How you determine d_nnz and
    >> o_nnz is
    >> problem dependent and depends on what type of discretization
    you are
    >> using:
    >> finite differences, elements etc.
    >>
    >>
    >>   Barry
    >>
    >>>
    >>> Thanks a lot,
    >>> Xiaoxu
    >>>
    >>>
    >>
    >>
    >




--
"Failure has a thousand explanations. Success doesn't need one" -- Sir Alec Guiness