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