EXTERN_C_END /* extern PetscErrorCode SNESLineSearchCreate_Cubic(SNESLineSearch); extern PetscErrorCode SNESLineSearchCreate_Quadratic(SNESLineSearch); extern PetscErrorCode SNESLineSearchCreate_BasicNoNorms(SNESLineSearch); extern PetscErrorCode SNESLineSearchCreate_QuadraticSecant(SNESLineSearch); extern PetscErrorCode SNESLineSearchCreate_CriticalSecant(SNESLineSearch); */ #undef __FUNCT__ #define __FUNCT__ "SNESLineSearchRegisterAll" /*@C SNESLineSearchRegisterAll - Registers all of the nonlinear solver methods in the SNESLineSearch package. Not Collective Level: advanced .keywords: SNESLineSearch, register, all .seealso: SNESLineSearchRegisterDestroy() @*/ PetscErrorCode SNESLineSearchRegisterAll(const char path[]) { PetscErrorCode ierr; PetscFunctionBegin; SNESLineSearchRegisterAllCalled = PETSC_TRUE; /* ierr = SNESLineSearchRegisterDynamic(LINESEARCHCUBIC, path,"SNESLineSearchCreate_Cubic", SNESLineSearchCreate_Cubic);CHKERRQ(ierr); ierr = SNESLineSearchRegisterDynamic(LINESEARCHQUADRATIC, path,"SNESLineSearchCreate_Quadratic", SNESLineSearchCreate_Quadratic);CHKERRQ(ierr); ierr = SNESLineSearchRegisterDynamic(LINESEARCHCRITICALSECANT, path,"SNESLineSearchCreate_CriticalSecant", SNESLineSearchCreate_CriticalSecant);CHKERRQ(ierr); */ ierr = SNESLineSearchRegisterDynamic(SNESLINESEARCHSHELL, path,"SNESLineSearchCreate_Shell", SNESLineSearchCreate_Shell);CHKERRQ(ierr); ierr = SNESLineSearchRegisterDynamic(SNESLINESEARCHBASIC, path,"SNESLineSearchCreate_Basic", SNESLineSearchCreate_Basic);CHKERRQ(ierr); ierr = SNESLineSearchRegisterDynamic(SNESLINESEARCHL2, path,"SNESLineSearchCreate_L2", SNESLineSearchCreate_L2);CHKERRQ(ierr); ierr = SNESLineSearchRegisterDynamic(SNESLINESEARCHBT, path,"SNESLineSearchCreate_BT", SNESLineSearchCreate_BT);CHKERRQ(ierr); ierr = SNESLineSearchRegisterDynamic(SNESLINESEARCHCP, path,"SNESLineSearchCreate_CP", SNESLineSearchCreate_CP);CHKERRQ(ierr); PetscFunctionReturn(0); }
EXTERN_C_END #undef __FUNCT__ #define __FUNCT__ "SNESSetUp_NCG" PetscErrorCode SNESSetUp_NCG(SNES snes) { PetscErrorCode ierr; PetscFunctionBegin; ierr = SNESDefaultGetWork(snes,2); CHKERRQ(ierr); ierr = SNESSetUpMatrices(snes); CHKERRQ(ierr); ierr = SNESLineSearchRegisterDynamic(SNESLINESEARCHNCGLINEAR, PETSC_NULL,"SNESLineSearchCreate_NCGLinear", SNESLineSearchCreate_NCGLinear); CHKERRQ(ierr); PetscFunctionReturn(0); }