[petsc-users] GAMG issue

Mark F. Adams mark.adams at columbia.edu
Thu Mar 15 12:19:43 CDT 2012


On Mar 15, 2012, at 11:24 AM, Jed Brown wrote:

> On Wed, Mar 14, 2012 at 11:27, Mark F. Adams <mark.adams at columbia.edu> wrote:
>> The matrix is asymmetric. Does this require the setting of an option?
> 
> Yes:  -pc_gamg_sym_graph
> 
> Mark, I don't like this name. First, it's imperative in the sense that it's describing a procedure for fixing something rather than declarative (stating some property of the problem). Second, there is already a way to state symmetry, MatSetOption():
> 

Good point, I've added:


  ierr = MatIsSymmetricKnown(Amat, &set, &flg);        CHKERRQ(ierr);
  symm = pc_gamg_agg->sym_graph || !(set && flg);

  

>   Options Describing Matrix Structure:
> +    MAT_SPD - symmetric positive definite
> -    MAT_SYMMETRIC - symmetric in terms of both structure and value
> .    MAT_HERMITIAN - transpose is the complex conjugation
> .    MAT_STRUCTURALLY_SYMMETRIC - symmetric nonzero structure
> -    MAT_SYMMETRY_ETERNAL - if you would like the symmetry/Hermitian flag
>                             you set to be kept with all future use of the matrix
>                             including after MatAssemblyBegin/End() which could
>                             potentially change the symmetry structure, i.e. you 
>                             KNOW the matrix will ALWAYS have the property you set.
> 
> 
> Is there a reason you can't just use this information? If you have multiple methods for handling nonsymmetric structure, then I would suggest using PetscOptionsList() or PetscOptionsEnum() to select which to use.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120315/baa15c1d/attachment-0001.htm>


More information about the petsc-users mailing list