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