19e764e56SPeter Brune #include <private/linesearchimpl.h> /*I "petscsnes.h" I*/ 2bf7f4e0aSPeter Brune 3bf7f4e0aSPeter Brune EXTERN_C_BEGIN 4*f1c6b773SPeter Brune extern PetscErrorCode SNESLineSearchCreate_Basic(SNESLineSearch); 5*f1c6b773SPeter Brune extern PetscErrorCode SNESLineSearchCreate_L2(SNESLineSearch); 6*f1c6b773SPeter Brune extern PetscErrorCode SNESLineSearchCreate_CP(SNESLineSearch); 7*f1c6b773SPeter Brune extern PetscErrorCode SNESLineSearchCreate_BT(SNESLineSearch); 8*f1c6b773SPeter Brune extern PetscErrorCode SNESLineSearchCreate_Shell(SNESLineSearch); 9bf7f4e0aSPeter Brune EXTERN_C_END 10bf7f4e0aSPeter Brune 11bf7f4e0aSPeter Brune /* 12*f1c6b773SPeter Brune extern PetscErrorCode SNESLineSearchCreate_Cubic(SNESLineSearch); 13*f1c6b773SPeter Brune extern PetscErrorCode SNESLineSearchCreate_Quadratic(SNESLineSearch); 14*f1c6b773SPeter Brune extern PetscErrorCode SNESLineSearchCreate_BasicNoNorms(SNESLineSearch); 15*f1c6b773SPeter Brune extern PetscErrorCode SNESLineSearchCreate_QuadraticSecant(SNESLineSearch); 16*f1c6b773SPeter Brune extern PetscErrorCode SNESLineSearchCreate_CriticalSecant(SNESLineSearch); 17bf7f4e0aSPeter Brune */ 18bf7f4e0aSPeter Brune 19bf7f4e0aSPeter Brune 20bf7f4e0aSPeter Brune #undef __FUNCT__ 21*f1c6b773SPeter Brune #define __FUNCT__ "SNESLineSearchRegisterAll" 22bf7f4e0aSPeter Brune /*@C 23*f1c6b773SPeter Brune SNESLineSearchRegisterAll - Registers all of the nonlinear solver methods in the SNESLineSearch package. 24bf7f4e0aSPeter Brune 25bf7f4e0aSPeter Brune Not Collective 26bf7f4e0aSPeter Brune 27bf7f4e0aSPeter Brune Level: advanced 28bf7f4e0aSPeter Brune 29*f1c6b773SPeter Brune .keywords: SNESLineSearch, register, all 30bf7f4e0aSPeter Brune 31*f1c6b773SPeter Brune .seealso: SNESLineSearchRegisterDestroy() 32bf7f4e0aSPeter Brune @*/ 33*f1c6b773SPeter Brune PetscErrorCode SNESLineSearchRegisterAll(const char path[]) 34bf7f4e0aSPeter Brune { 35bf7f4e0aSPeter Brune PetscErrorCode ierr; 36bf7f4e0aSPeter Brune 37bf7f4e0aSPeter Brune PetscFunctionBegin; 38*f1c6b773SPeter Brune SNESLineSearchRegisterAllCalled = PETSC_TRUE; 39bf7f4e0aSPeter Brune /* 40*f1c6b773SPeter Brune ierr = SNESLineSearchRegisterDynamic(LINESEARCHCUBIC, path,"SNESLineSearchCreate_Cubic", SNESLineSearchCreate_Cubic);CHKERRQ(ierr); 41bf7f4e0aSPeter Brune 42*f1c6b773SPeter Brune ierr = SNESLineSearchRegisterDynamic(LINESEARCHQUADRATIC, path,"SNESLineSearchCreate_Quadratic", SNESLineSearchCreate_Quadratic);CHKERRQ(ierr); 43*f1c6b773SPeter Brune ierr = SNESLineSearchRegisterDynamic(LINESEARCHCRITICALSECANT, path,"SNESLineSearchCreate_CriticalSecant", SNESLineSearchCreate_CriticalSecant);CHKERRQ(ierr); 44bf7f4e0aSPeter Brune 45bf7f4e0aSPeter Brune */ 46*f1c6b773SPeter Brune ierr = SNESLineSearchRegisterDynamic(SNES_LINESEARCH_SHELL, path,"SNESLineSearchCreate_Shell", SNESLineSearchCreate_Shell);CHKERRQ(ierr); 47*f1c6b773SPeter Brune ierr = SNESLineSearchRegisterDynamic(SNES_LINESEARCH_BASIC, path,"SNESLineSearchCreate_Basic", SNESLineSearchCreate_Basic);CHKERRQ(ierr); 48*f1c6b773SPeter Brune ierr = SNESLineSearchRegisterDynamic(SNES_LINESEARCH_L2, path,"SNESLineSearchCreate_L2", SNESLineSearchCreate_L2);CHKERRQ(ierr); 49*f1c6b773SPeter Brune ierr = SNESLineSearchRegisterDynamic(SNES_LINESEARCH_BT, path,"SNESLineSearchCreate_BT", SNESLineSearchCreate_BT);CHKERRQ(ierr); 50*f1c6b773SPeter Brune ierr = SNESLineSearchRegisterDynamic(SNES_LINESEARCH_CP, path,"SNESLineSearchCreate_CP", SNESLineSearchCreate_CP);CHKERRQ(ierr); 51bf7f4e0aSPeter Brune 52bf7f4e0aSPeter Brune PetscFunctionReturn(0); 53bf7f4e0aSPeter Brune } 54bf7f4e0aSPeter Brune 55bf7f4e0aSPeter Brune #undef __FUNCT__ 56*f1c6b773SPeter Brune #define __FUNCT__ "SNESLineSearchRegisterDestroy" 57*f1c6b773SPeter Brune PetscErrorCode SNESLineSearchRegisterDestroy(void) 58bf7f4e0aSPeter Brune { 59bf7f4e0aSPeter Brune PetscErrorCode ierr; 60bf7f4e0aSPeter Brune 61bf7f4e0aSPeter Brune PetscFunctionBegin; 62*f1c6b773SPeter Brune ierr = PetscFListDestroy(&SNESLineSearchList);CHKERRQ(ierr); 63*f1c6b773SPeter Brune SNESLineSearchRegisterAllCalled = PETSC_FALSE; 64bf7f4e0aSPeter Brune PetscFunctionReturn(0); 65bf7f4e0aSPeter Brune } 66