1bf7f4e0aSPeter Brune #include <private/linesearchimpl.h> /*I "petsclinesearch.h" I*/ 2bf7f4e0aSPeter Brune 3bf7f4e0aSPeter Brune EXTERN_C_BEGIN 4*6188f407SPeter Brune extern PetscErrorCode PetscLineSearchCreate_Basic(PetscLineSearch); 5*6188f407SPeter Brune extern PetscErrorCode PetscLineSearchCreate_L2(PetscLineSearch); 6*6188f407SPeter Brune extern PetscErrorCode PetscLineSearchCreate_CP(PetscLineSearch); 7*6188f407SPeter Brune extern PetscErrorCode PetscLineSearchCreate_BT(PetscLineSearch); 8*6188f407SPeter Brune extern PetscErrorCode PetscLineSearchCreate_Shell(PetscLineSearch); 9bf7f4e0aSPeter Brune EXTERN_C_END 10bf7f4e0aSPeter Brune 11bf7f4e0aSPeter Brune /* 12*6188f407SPeter Brune extern PetscErrorCode PetscLineSearchCreate_Cubic(PetscLineSearch); 13*6188f407SPeter Brune extern PetscErrorCode PetscLineSearchCreate_Quadratic(PetscLineSearch); 14*6188f407SPeter Brune extern PetscErrorCode PetscLineSearchCreate_BasicNoNorms(PetscLineSearch); 15*6188f407SPeter Brune extern PetscErrorCode PetscLineSearchCreate_QuadraticSecant(PetscLineSearch); 16*6188f407SPeter Brune extern PetscErrorCode PetscLineSearchCreate_CriticalSecant(PetscLineSearch); 17bf7f4e0aSPeter Brune */ 18bf7f4e0aSPeter Brune 19bf7f4e0aSPeter Brune 20bf7f4e0aSPeter Brune #undef __FUNCT__ 21*6188f407SPeter Brune #define __FUNCT__ "PetscLineSearchRegisterAll" 22bf7f4e0aSPeter Brune /*@C 23*6188f407SPeter Brune PetscLineSearchRegisterAll - Registers all of the nonlinear solver methods in the PetscLineSearch package. 24bf7f4e0aSPeter Brune 25bf7f4e0aSPeter Brune Not Collective 26bf7f4e0aSPeter Brune 27bf7f4e0aSPeter Brune Level: advanced 28bf7f4e0aSPeter Brune 29*6188f407SPeter Brune .keywords: PetscLineSearch, register, all 30bf7f4e0aSPeter Brune 31*6188f407SPeter Brune .seealso: PetscLineSearchRegisterDestroy() 32bf7f4e0aSPeter Brune @*/ 33*6188f407SPeter Brune PetscErrorCode PetscLineSearchRegisterAll(const char path[]) 34bf7f4e0aSPeter Brune { 35bf7f4e0aSPeter Brune PetscErrorCode ierr; 36bf7f4e0aSPeter Brune 37bf7f4e0aSPeter Brune PetscFunctionBegin; 38*6188f407SPeter Brune PetscLineSearchRegisterAllCalled = PETSC_TRUE; 39bf7f4e0aSPeter Brune /* 40*6188f407SPeter Brune ierr = PetscLineSearchRegisterDynamic(LINESEARCHCUBIC, path,"PetscLineSearchCreate_Cubic", PetscLineSearchCreate_Cubic);CHKERRQ(ierr); 41bf7f4e0aSPeter Brune 42*6188f407SPeter Brune ierr = PetscLineSearchRegisterDynamic(LINESEARCHQUADRATIC, path,"PetscLineSearchCreate_Quadratic", PetscLineSearchCreate_Quadratic);CHKERRQ(ierr); 43*6188f407SPeter Brune ierr = PetscLineSearchRegisterDynamic(LINESEARCHCRITICALSECANT, path,"PetscLineSearchCreate_CriticalSecant", PetscLineSearchCreate_CriticalSecant);CHKERRQ(ierr); 44bf7f4e0aSPeter Brune 45bf7f4e0aSPeter Brune */ 46*6188f407SPeter Brune ierr = PetscLineSearchRegisterDynamic(PETSCLINESEARCHSHELL, path,"PetscLineSearchCreate_Shell", PetscLineSearchCreate_Shell);CHKERRQ(ierr); 47*6188f407SPeter Brune ierr = PetscLineSearchRegisterDynamic(PETSCLINESEARCHBASIC, path,"PetscLineSearchCreate_Basic", PetscLineSearchCreate_Basic);CHKERRQ(ierr); 48*6188f407SPeter Brune ierr = PetscLineSearchRegisterDynamic(PETSCLINESEARCHL2, path,"PetscLineSearchCreate_L2", PetscLineSearchCreate_L2);CHKERRQ(ierr); 49*6188f407SPeter Brune ierr = PetscLineSearchRegisterDynamic(PETSCLINESEARCHBT, path,"PetscLineSearchCreate_BT", PetscLineSearchCreate_BT);CHKERRQ(ierr); 50*6188f407SPeter Brune ierr = PetscLineSearchRegisterDynamic(PETSCLINESEARCHCP, path,"PetscLineSearchCreate_CP", PetscLineSearchCreate_CP);CHKERRQ(ierr); 51bf7f4e0aSPeter Brune 52bf7f4e0aSPeter Brune PetscFunctionReturn(0); 53bf7f4e0aSPeter Brune } 54bf7f4e0aSPeter Brune 55bf7f4e0aSPeter Brune #undef __FUNCT__ 56*6188f407SPeter Brune #define __FUNCT__ "PetscLineSearchRegisterDestroy" 57*6188f407SPeter Brune PetscErrorCode PetscLineSearchRegisterDestroy(void) 58bf7f4e0aSPeter Brune { 59bf7f4e0aSPeter Brune PetscErrorCode ierr; 60bf7f4e0aSPeter Brune 61bf7f4e0aSPeter Brune PetscFunctionBegin; 62*6188f407SPeter Brune ierr = PetscFListDestroy(&PetscLineSearchList);CHKERRQ(ierr); 63*6188f407SPeter Brune PetscLineSearchRegisterAllCalled = PETSC_FALSE; 64bf7f4e0aSPeter Brune PetscFunctionReturn(0); 65bf7f4e0aSPeter Brune } 66