[petsc-users] Setting Pmat for an ASM subksp
Jed Brown
jed at jedbrown.org
Thu May 14 15:56:02 CDT 2015
Luc Berger-Vergiat <lb2653 at columbia.edu> writes:
> Hi all,
> I am using the ASM preconditioner and it works fine with regular options.
> However I am having difficulties setting the Pmat operator for on of my
> ASM domain.
> Here is what I coded:
>
> call PCASMSetLocalSubdomains(pcdd,2,isddi,isddi,ierr)
> call PetscOptionsGetInt(PETSC_NULL_CHARACTER,
> & '-n_overlap',n_ol,chk,ierr)
> if (chk.eqv.PETSC_TRUE) then
> call PCASMSetOverlap(pcdd,n_ol,ierr)
> endif
> call PCSetUp(pcdd,ierr)
> call KSPSetUp(schurKSP,ierr)
> call PCASMGetSubKSP(pcdd,nddl,fbl,ddsubksp, ierr)
Fortran note:
The output argument 'ksp' must be an array of sufficient length or NULL_OBJECT. The latter can be used to learn the necessary length.
Is it allocated and long enough?
> do i = 1,nddl
> if(i.eq.1) then
> if( (nstep.eq.1).and.(niter.eq.0) ) then
> call KSPGetOperators(ddsubksp(i),HKmat,
> & HPmat,ierr)
> else
> call KSPGetOperators(ddsubksp(i),HKmat,
> & PETSC_NULL_OBJECT,ierr)
> endif
> call PetscObjectReference(HKmat, ierr)
> call PetscObjectReference(HPmat, ierr)
> call KSPSetOperators(ddsubksp(i),HKmat,HPmat,ierr)
So you're reusing the Pmat from the first subdomain on each process?
How do you know it's the right size?
> call PetscObjectDereference(HKmat, ierr)
> call PetscObjectDereference(HPmat, ierr)
> endif
> call KSPGetPC(ddsubksp(i),ddsubpc(i),ierr)
> call PCSetType(ddsubpc(i),PCLU,ierr)
> call KSPSetType(ddsubksp(i),KSPPREONLY,ierr)
> enddo
>
> I am suspecting that the PetscObjectReference is not working well based
> on the following output from valgrind:
Get rid of the PetscObjectReference and PetscObjectDereference
calls. They don't need to be there and could be hiding problems. Then
send the full Valgrind output.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150514/e62b1d9b/attachment.pgp>
More information about the petsc-users
mailing list