xref: /petsc/src/snes/linesearch/interface/linesearchregi.c (revision bebe2cf65d55febe21a5af8db2bd2e168caaa2e7)
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_NLEQERR(SNESLineSearch);
8 PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_Shell(SNESLineSearch);
9 
10 
11 #undef __FUNCT__
12 #define __FUNCT__ "SNESLineSearchRegisterAll"
13 /*@C
14    SNESLineSearchRegisterAll - Registers all of the nonlinear solver methods in the SNESLineSearch package.
15 
16    Not Collective
17 
18    Level: advanced
19 
20 .keywords: SNESLineSearch, register, all
21 
22 .seealso:  SNESLineSearchRegisterDestroy()
23 @*/
24 PetscErrorCode SNESLineSearchRegisterAll(void)
25 {
26   PetscErrorCode ierr;
27 
28   PetscFunctionBegin;
29   if (SNESLineSearchRegisterAllCalled) PetscFunctionReturn(0);
30   SNESLineSearchRegisterAllCalled = PETSC_TRUE;
31   ierr = SNESLineSearchRegister(SNESLINESEARCHSHELL,   SNESLineSearchCreate_Shell);CHKERRQ(ierr);
32   ierr = SNESLineSearchRegister(SNESLINESEARCHBASIC,   SNESLineSearchCreate_Basic);CHKERRQ(ierr);
33   ierr = SNESLineSearchRegister(SNESLINESEARCHL2,      SNESLineSearchCreate_L2);CHKERRQ(ierr);
34   ierr = SNESLineSearchRegister(SNESLINESEARCHBT,      SNESLineSearchCreate_BT);CHKERRQ(ierr);
35   ierr = SNESLineSearchRegister(SNESLINESEARCHNLEQERR, SNESLineSearchCreate_NLEQERR);CHKERRQ(ierr);
36   ierr = SNESLineSearchRegister(SNESLINESEARCHCP,      SNESLineSearchCreate_CP);CHKERRQ(ierr);
37   PetscFunctionReturn(0);
38 }
39 
40