Defining my own reordering method for ILU

Laslo Tibor Diosady diosady at MIT.EDU
Wed Feb 21 11:53:16 CST 2007

Hi Barry,

If I understand how this works then I need to create a function 
MatOrdering_MyOrdering(Mat mat,const MatOrderingType type,IS *irow,IS

My problem is that in order to compute my matrix ordering I need data
other than the matrix as input. 

I can't see how I can do that if those are the only four arguments
passed to the function.



On Wed, 2007-02-21 at 11:27 -0600, Barry Smith wrote:
>   Laslo,
>    You can do your ordering up front to generate an index set.
> But you will still need to write a routine MatOrdering_MyOrdering() that 
> returns the isrow and iscol, then register the routine
> with MatOrderingRegisterDynamic(). Then use PCFactorSetMatOrdering()
> to tell the PC to use your new ordering routine. 
> To have the preconditioner reuse the reordering for several matrices
> use PCFactorSetReuseOrdering(). 
>   Good luck,
>    Barry
> I know it is a little strange to need to provide the call back function
> MatOrdering_MyOrdering() that simply returns the ordering you already
> created but that is the only way to get the ordering into the right
> place inside the PC objects.
> The MatOrdering_MyOrdering() simply sets the isrow and iscol pointer
> and returns.
> On Wed, 21 Feb 2007, Laslo Tibor Diosady wrote:
> > Hi,
> > 
> > I want to be able to define an ordering type for the ILU factorization
> > to be used as a preconditioner to GMRES. I have successfully used
> > PCFactorSetMatOrdering(), to set standard types, however I have my own
> > reordering method which I would like to be able to use.
> > 
> > Since my reordering method is based on information not found within the
> > matrix and I may want to solve several different systems with the same
> > ordering, what I really want to be able to do is create an index set in
> > advance and pass it is to be used for the reordering.
> > 
> > Is this possible, and how would you suggest I go about doing this?
> > 
> > Thanks,
> > 
> > Laslo
> > 
> > 

More information about the petsc-users mailing list