1*bf7f4e0aSPeter Brune #include <private/linesearchimpl.h> /*I "petsclinesearch.h" I*/ 2*bf7f4e0aSPeter Brune 3*bf7f4e0aSPeter Brune EXTERN_C_BEGIN 4*bf7f4e0aSPeter Brune extern PetscErrorCode LineSearchCreate_Basic(LineSearch); 5*bf7f4e0aSPeter Brune extern PetscErrorCode LineSearchCreate_L2(LineSearch); 6*bf7f4e0aSPeter Brune EXTERN_C_END 7*bf7f4e0aSPeter Brune 8*bf7f4e0aSPeter Brune /* 9*bf7f4e0aSPeter Brune extern PetscErrorCode LineSearchCreate_Cubic(LineSearch); 10*bf7f4e0aSPeter Brune extern PetscErrorCode LineSearchCreate_Quadratic(LineSearch); 11*bf7f4e0aSPeter Brune extern PetscErrorCode LineSearchCreate_BasicNoNorms(LineSearch); 12*bf7f4e0aSPeter Brune extern PetscErrorCode LineSearchCreate_Shell(LineSearch); 13*bf7f4e0aSPeter Brune extern PetscErrorCode LineSearchCreate_QuadraticSecant(LineSearch); 14*bf7f4e0aSPeter Brune extern PetscErrorCode LineSearchCreate_CriticalSecant(LineSearch); 15*bf7f4e0aSPeter Brune */ 16*bf7f4e0aSPeter Brune 17*bf7f4e0aSPeter Brune 18*bf7f4e0aSPeter Brune #undef __FUNCT__ 19*bf7f4e0aSPeter Brune #define __FUNCT__ "LineSearchRegisterAll" 20*bf7f4e0aSPeter Brune /*@C 21*bf7f4e0aSPeter Brune LineSearchRegisterAll - Registers all of the nonlinear solver methods in the LineSearch package. 22*bf7f4e0aSPeter Brune 23*bf7f4e0aSPeter Brune Not Collective 24*bf7f4e0aSPeter Brune 25*bf7f4e0aSPeter Brune Level: advanced 26*bf7f4e0aSPeter Brune 27*bf7f4e0aSPeter Brune .keywords: LineSearch, register, all 28*bf7f4e0aSPeter Brune 29*bf7f4e0aSPeter Brune .seealso: LineSearchRegisterDestroy() 30*bf7f4e0aSPeter Brune @*/ 31*bf7f4e0aSPeter Brune PetscErrorCode LineSearchRegisterAll(const char path[]) 32*bf7f4e0aSPeter Brune { 33*bf7f4e0aSPeter Brune PetscErrorCode ierr; 34*bf7f4e0aSPeter Brune 35*bf7f4e0aSPeter Brune PetscFunctionBegin; 36*bf7f4e0aSPeter Brune LineSearchRegisterAllCalled = PETSC_TRUE; 37*bf7f4e0aSPeter Brune /* 38*bf7f4e0aSPeter Brune ierr = LineSearchRegisterDynamic(LINESEARCHCUBIC, path,"LineSearchCreate_Cubic", LineSearchCreate_Cubic);CHKERRQ(ierr); 39*bf7f4e0aSPeter Brune 40*bf7f4e0aSPeter Brune ierr = LineSearchRegisterDynamic(LINESEARCHQUADRATIC, path,"LineSearchCreate_Quadratic", LineSearchCreate_Quadratic);CHKERRQ(ierr); 41*bf7f4e0aSPeter Brune ierr = LineSearchRegisterDynamic(LINESEARCHCRITICALSECANT, path,"LineSearchCreate_CriticalSecant", LineSearchCreate_CriticalSecant);CHKERRQ(ierr); 42*bf7f4e0aSPeter Brune ierr = LineSearchRegisterDynamic(LINESEARCHSHELL, path,"LineSearchCreate_Shell", LineSearchCreate_Shell);CHKERRQ(ierr); 43*bf7f4e0aSPeter Brune 44*bf7f4e0aSPeter Brune */ 45*bf7f4e0aSPeter Brune ierr = LineSearchRegisterDynamic(LINESEARCHBASIC, path,"LineSearchCreate_Basic", LineSearchCreate_Basic);CHKERRQ(ierr); 46*bf7f4e0aSPeter Brune ierr = LineSearchRegisterDynamic(LINESEARCHL2, path,"LineSearchCreate_L2", LineSearchCreate_L2);CHKERRQ(ierr); 47*bf7f4e0aSPeter Brune 48*bf7f4e0aSPeter Brune PetscFunctionReturn(0); 49*bf7f4e0aSPeter Brune } 50*bf7f4e0aSPeter Brune 51*bf7f4e0aSPeter Brune #undef __FUNCT__ 52*bf7f4e0aSPeter Brune #define __FUNCT__ "LineSearchRegisterDestroy" 53*bf7f4e0aSPeter Brune PetscErrorCode LineSearchRegisterDestroy(void) 54*bf7f4e0aSPeter Brune { 55*bf7f4e0aSPeter Brune PetscErrorCode ierr; 56*bf7f4e0aSPeter Brune 57*bf7f4e0aSPeter Brune PetscFunctionBegin; 58*bf7f4e0aSPeter Brune ierr = PetscFListDestroy(&LineSearchList);CHKERRQ(ierr); 59*bf7f4e0aSPeter Brune LineSearchRegisterAllCalled = PETSC_FALSE; 60*bf7f4e0aSPeter Brune PetscFunctionReturn(0); 61*bf7f4e0aSPeter Brune } 62