I have fixed this by setting the KSP op:
call PCFieldSplitGetSubKSP(spc,i,subksp,ierr)
call KSPSetOperators(subksp(2),solver%schur,solver%schur,ierr)
Thanks,
On Tue, Aug 19, 2014 at 8:17 AM, Jed Brown j...@jedbrown.org wrote:
Mark Adams mfad...@lbl.gov writes:
I am creating
Mark Adams mfad...@lbl.gov writes:
I have fixed this by setting the KSP op:
call PCFieldSplitGetSubKSP(spc,i,subksp,ierr)
call KSPSetOperators(subksp(2),solver%schur,solver%schur,ierr)
Mark, where is the information getting lost? If the interface does not
work correctly, we
On Thu, Aug 21, 2014 at 2:11 PM, Jed Brown j...@jedbrown.org wrote:
Mark Adams mfad...@lbl.gov writes:
I have fixed this by setting the KSP op:
call PCFieldSplitGetSubKSP(spc,i,subksp,ierr)
call KSPSetOperators(subksp(2),solver%schur,solver%schur,ierr)
Mark, where is the
I would set a breakpoint at PCFieldSplitSetSchurPre_FieldSplit and then
watch -l jac-schurpre since it appears that your information is being
lost somewhere.
The 'ptype that comes in to PCFieldSplitSetSchurPre_FieldSplit is
..._SCHUR_PRE_ALL (not .._USER). Could the enums be messed up in
Yep, it looks like SELFP was not added to FORTRAN:
6:04 1 edison03 master ~/petsc_private/include$ grep
PC_FIELDSPLIT_SCHUR_PRE *
petscpc.h:typedef enum
I fixed the messed up fortran enums with:
!
! PCFieldSplitSchurPreType
!
PetscEnum PC_FIELDSPLIT_SCHUR_PRE_SELF
PetscEnum PC_FIELDSPLIT_SCHUR_PRE_SELFP
PetscEnum PC_FIELDSPLIT_SCHUR_PRE_A11
PetscEnum PC_FIELDSPLIT_SCHUR_PRE_USER
PetscEnum PC_FIELDSPLIT_SCHUR_PRE_FULL
Mark Adams mfad...@lbl.gov writes:
I am creating an Schur complement matrix explicitly (solver%schur) and
setting it with code like:
call SNESGetKSP(solver%snes,innerksp,ierr)
call KSPGetPC(innerksp,spc,ierr)
call
PCFieldSplitSetSchurPre(spc,PC_FIELDSPLIT_SCHUR_PRE_USER,solver%schur,ierr)
I am creating an Schur complement matrix explicitly (solver%schur) and
setting it with code like:
call SNESGetKSP(solver%snes,innerksp,ierr)
call KSPGetPC(innerksp,spc,ierr)
call
PCFieldSplitSetSchurPre(spc,PC_FIELDSPLIT_SCHUR_PRE_USER,solver%schur,ierr)
I would think that the inner solver would