static PetscErrorCode PCSetFromOptions_Jacobi(PetscOptionItems *PetscOptionsObject,PC pc) { PC_Jacobi *jac = (PC_Jacobi*)pc->data; PetscErrorCode ierr; PetscBool flg; PCJacobiType deflt,type; PetscFunctionBegin; ierr = PCJacobiGetType(pc,&deflt);CHKERRQ(ierr); ierr = PetscOptionsHead(PetscOptionsObject,"Jacobi options");CHKERRQ(ierr); ierr = PetscOptionsEnum("-pc_jacobi_type","How to construct diagonal matrix","PCJacobiSetType",PCJacobiTypes,(PetscEnum)deflt,(PetscEnum*)&type,&flg);CHKERRQ(ierr); if (flg) { ierr = PCJacobiSetType(pc,type);CHKERRQ(ierr); } ierr = PetscOptionsBool("-pc_jacobi_abs","Use absolute values of diagaonal entries","PCJacobiSetUseAbs",jac->useabs,&jac->useabs,NULL);CHKERRQ(ierr); ierr = PetscOptionsTail();CHKERRQ(ierr); PetscFunctionReturn(0); }
PETSC_EXTERN void PETSC_STDCALL pcjacobigettype_(PC pc,PCJacobiType *type, int *__ierr ){ *__ierr = PCJacobiGetType( (PC)PetscToPointer((pc) ),type); }