xref: /petsc/src/snes/linesearch/interface/linesearchregi.c (revision ba013df3defea44c29eae026ccc9d8a4f935fb79)
1af0996ceSBarry Smith #include <petsc/private/linesearchimpl.h> /*I  "petscsnes.h"  I*/
2bf7f4e0aSPeter Brune 
38cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_Basic(SNESLineSearch);
4a99ef635SJonas Heinzmann PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_Secant(SNESLineSearch);
58cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_CP(SNESLineSearch);
68cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_BT(SNESLineSearch);
7d4c6564cSPatrick Farrell PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_NLEQERR(SNESLineSearch);
88cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_Shell(SNESLineSearch);
9b5badacbSBarry Smith PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_NCGLinear(SNESLineSearch);
10b9d635d7SJonas Heinzmann PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_Bisection(SNESLineSearch);
11bf7f4e0aSPeter Brune 
12bf7f4e0aSPeter Brune /*@C
13f6dfbefdSBarry Smith   SNESLineSearchRegisterAll - Registers all of the nonlinear solver methods in the `SNESLineSearch` package.
14bf7f4e0aSPeter Brune 
15bf7f4e0aSPeter Brune   Not Collective
16bf7f4e0aSPeter Brune 
17bf7f4e0aSPeter Brune   Level: advanced
18bf7f4e0aSPeter Brune 
19420bcc1bSBarry Smith .seealso: [](ch_snes), `SNES`, `SNESLineSearch`, `SNESLineSearchRegister()`, `SNESLineSearchRegisterDestroy()`
20bf7f4e0aSPeter Brune @*/
SNESLineSearchRegisterAll(void)21d71ae5a4SJacob Faibussowitsch PetscErrorCode SNESLineSearchRegisterAll(void)
22d71ae5a4SJacob Faibussowitsch {
23bf7f4e0aSPeter Brune   PetscFunctionBegin;
243ba16761SJacob Faibussowitsch   if (SNESLineSearchRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
25f1c6b773SPeter Brune   SNESLineSearchRegisterAllCalled = PETSC_TRUE;
269566063dSJacob Faibussowitsch   PetscCall(SNESLineSearchRegister(SNESLINESEARCHSHELL, SNESLineSearchCreate_Shell));
279566063dSJacob Faibussowitsch   PetscCall(SNESLineSearchRegister(SNESLINESEARCHBASIC, SNESLineSearchCreate_Basic));
280b00b554SBarry Smith   PetscCall(SNESLineSearchRegister(SNESLINESEARCHNONE, SNESLineSearchCreate_Basic));
29a99ef635SJonas Heinzmann   PetscCall(SNESLineSearchRegister(SNESLINESEARCHSECANT, SNESLineSearchCreate_Secant));
30*392273beSMatthew G. Knepley   // PETSC_DEPRECATED 3.24.0 This should eventually be removed
31*392273beSMatthew G. Knepley   PetscCall(SNESLineSearchRegister("l2", SNESLineSearchCreate_Secant));
329566063dSJacob Faibussowitsch   PetscCall(SNESLineSearchRegister(SNESLINESEARCHBT, SNESLineSearchCreate_BT));
339566063dSJacob Faibussowitsch   PetscCall(SNESLineSearchRegister(SNESLINESEARCHNLEQERR, SNESLineSearchCreate_NLEQERR));
349566063dSJacob Faibussowitsch   PetscCall(SNESLineSearchRegister(SNESLINESEARCHCP, SNESLineSearchCreate_CP));
359566063dSJacob Faibussowitsch   PetscCall(SNESLineSearchRegister(SNESLINESEARCHNCGLINEAR, SNESLineSearchCreate_NCGLinear));
36b9d635d7SJonas Heinzmann   PetscCall(SNESLineSearchRegister(SNESLINESEARCHBISECTION, SNESLineSearchCreate_Bisection));
373ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
38bf7f4e0aSPeter Brune }
39