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