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