changing MatSetUp()

Lisandro Dalcin dalcinl at gmail.com
Tue Oct 23 15:56:14 CDT 2007


I completelly agree, I never liked that XXXSetFromOptions() calls
inside XXXSetUp().

So I will change VecSetUp() and MatSetUp() to set a default type if it
was not set, and next call MatSetUpPreallocation() for matrices.


On 10/23/07, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
>   This is a valid point. I have to agree with Matt
>
>  In KSPSetUp() we have
>   if (!((PetscObject)ksp)->type_name){
>     ierr = KSPSetType(ksp,KSPGMRES);CHKERRQ(ierr);
>   }
>
>   In PCSetUp() we have
>
>   if (!((PetscObject)pc)->type_name) {
>     ierr = PCGetDefaultType_Private(pc,&def);CHKERRQ(ierr);
>     ierr = PCSetType(pc,def);CHKERRQ(ierr);
>   }
>
>   In SNESSetUp() we have
>
>   if (!((PetscObject)snes)->type_name) {
>     ierr = SNESSetType(snes,SNESLS);CHKERRQ(ierr);
>   }
>
>    BUT in VecSetUp() we again have the "illegal"
>
>   ierr = VecSetFromOptions(v);CHKERRQ(ierr);
>
>   I think we should have MatSetUp() and VecSetUp()
> behave like the others and set a default one if it is
> not already set; and NOT call SetFromOptions.
>
>    Barry
>
>
>
> On Tue, 23 Oct 2007, Matthew Knepley wrote:
>
> > I am not sure about this. MatSetFromOptions() is intentionally optional,
> > and should not be bundled in a method not intended to be optional.
> >
> >   Matt
> >
> > On 10/23/07, Lisandro Dalcin <dalcinl at gmail.com> wrote:
> > > After greping, it seems that MatSetUp() is not used in all 'petsc-dev'
> > > repo. If there is no objections (Barry?), I will change it (by
> > > reverting inner calls order) to do the following:
> > >
> > > PetscErrorCode MatSetUp(Mat A)
> > > {
> > >   MatSetFromOptions(A);
> > >   MatSetUpPreallocation(A);
> > > }
> > >
> > > As I mailed some time ago, there is no point of calling
> > > MatSetUpPreallocation() if the matrix type was not set.
> > >
> > >
> > > --
> > > Lisandro Dalcín
> > > ---------------
> > > Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
> > > Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
> > > Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
> > > PTLC - Güemes 3450, (3000) Santa Fe, Argentina
> > > Tel/Fax: +54-(0)342-451.1594
> > >
> > >
> >
> >
> >


-- 
Lisandro Dalcín
---------------
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594




More information about the petsc-dev mailing list