xref: /petsc/src/snes/linesearch/interface/linesearchregi.c (revision c4762a1b19cd2af06abeed90e8f9d34fb975dd94)
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 PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_NCGLinear(SNESLineSearch);
10 
11 
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 .seealso:  SNESLineSearchRegisterDestroy()
20 @*/
21 PetscErrorCode SNESLineSearchRegisterAll(void)
22 {
23   PetscErrorCode ierr;
24 
25   PetscFunctionBegin;
26   if (SNESLineSearchRegisterAllCalled) PetscFunctionReturn(0);
27   SNESLineSearchRegisterAllCalled = PETSC_TRUE;
28   ierr = SNESLineSearchRegister(SNESLINESEARCHSHELL,     SNESLineSearchCreate_Shell);CHKERRQ(ierr);
29   ierr = SNESLineSearchRegister(SNESLINESEARCHBASIC,     SNESLineSearchCreate_Basic);CHKERRQ(ierr);
30   ierr = SNESLineSearchRegister(SNESLINESEARCHL2,        SNESLineSearchCreate_L2);CHKERRQ(ierr);
31   ierr = SNESLineSearchRegister(SNESLINESEARCHBT,        SNESLineSearchCreate_BT);CHKERRQ(ierr);
32   ierr = SNESLineSearchRegister(SNESLINESEARCHNLEQERR,   SNESLineSearchCreate_NLEQERR);CHKERRQ(ierr);
33   ierr = SNESLineSearchRegister(SNESLINESEARCHCP,        SNESLineSearchCreate_CP);CHKERRQ(ierr);
34   ierr = SNESLineSearchRegister(SNESLINESEARCHNCGLINEAR, SNESLineSearchCreate_NCGLinear);CHKERRQ(ierr);
35   PetscFunctionReturn(0);
36 }
37 
38