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