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