xref: /petsc/src/snes/linesearch/interface/linesearchregi.c (revision b45d2f2cb7e031d9c0de5873eca80614ca7b863b)
1*b45d2f2cSJed Brown #include <petsc-private/linesearchimpl.h>     /*I  "petscsnes.h"  I*/
2bf7f4e0aSPeter Brune 
3bf7f4e0aSPeter Brune EXTERN_C_BEGIN
4f1c6b773SPeter Brune extern PetscErrorCode  SNESLineSearchCreate_Basic(SNESLineSearch);
5f1c6b773SPeter Brune extern PetscErrorCode  SNESLineSearchCreate_L2(SNESLineSearch);
6f1c6b773SPeter Brune extern PetscErrorCode  SNESLineSearchCreate_CP(SNESLineSearch);
7f1c6b773SPeter Brune extern PetscErrorCode  SNESLineSearchCreate_BT(SNESLineSearch);
8f1c6b773SPeter Brune extern PetscErrorCode  SNESLineSearchCreate_Shell(SNESLineSearch);
9bf7f4e0aSPeter Brune EXTERN_C_END
10bf7f4e0aSPeter Brune 
11bf7f4e0aSPeter Brune /*
12f1c6b773SPeter Brune extern PetscErrorCode  SNESLineSearchCreate_Cubic(SNESLineSearch);
13f1c6b773SPeter Brune extern PetscErrorCode  SNESLineSearchCreate_Quadratic(SNESLineSearch);
14f1c6b773SPeter Brune extern PetscErrorCode  SNESLineSearchCreate_BasicNoNorms(SNESLineSearch);
15f1c6b773SPeter Brune extern PetscErrorCode  SNESLineSearchCreate_QuadraticSecant(SNESLineSearch);
16f1c6b773SPeter Brune extern PetscErrorCode  SNESLineSearchCreate_CriticalSecant(SNESLineSearch);
17bf7f4e0aSPeter Brune  */
18bf7f4e0aSPeter Brune 
19bf7f4e0aSPeter Brune 
20bf7f4e0aSPeter Brune #undef __FUNCT__
21f1c6b773SPeter Brune #define __FUNCT__ "SNESLineSearchRegisterAll"
22bf7f4e0aSPeter Brune /*@C
23f1c6b773SPeter Brune    SNESLineSearchRegisterAll - Registers all of the nonlinear solver methods in the SNESLineSearch package.
24bf7f4e0aSPeter Brune 
25bf7f4e0aSPeter Brune    Not Collective
26bf7f4e0aSPeter Brune 
27bf7f4e0aSPeter Brune    Level: advanced
28bf7f4e0aSPeter Brune 
29f1c6b773SPeter Brune .keywords: SNESLineSearch, register, all
30bf7f4e0aSPeter Brune 
31f1c6b773SPeter Brune .seealso:  SNESLineSearchRegisterDestroy()
32bf7f4e0aSPeter Brune @*/
33f1c6b773SPeter Brune PetscErrorCode SNESLineSearchRegisterAll(const char path[])
34bf7f4e0aSPeter Brune {
35bf7f4e0aSPeter Brune   PetscErrorCode ierr;
36bf7f4e0aSPeter Brune 
37bf7f4e0aSPeter Brune   PetscFunctionBegin;
38f1c6b773SPeter Brune   SNESLineSearchRegisterAllCalled = PETSC_TRUE;
39bf7f4e0aSPeter Brune   /*
40f1c6b773SPeter Brune   ierr = SNESLineSearchRegisterDynamic(LINESEARCHCUBIC,             path,"SNESLineSearchCreate_Cubic",             SNESLineSearchCreate_Cubic);CHKERRQ(ierr);
41bf7f4e0aSPeter Brune 
42f1c6b773SPeter Brune   ierr = SNESLineSearchRegisterDynamic(LINESEARCHQUADRATIC,         path,"SNESLineSearchCreate_Quadratic",         SNESLineSearchCreate_Quadratic);CHKERRQ(ierr);
43f1c6b773SPeter Brune   ierr = SNESLineSearchRegisterDynamic(LINESEARCHCRITICALSECANT,    path,"SNESLineSearchCreate_CriticalSecant",    SNESLineSearchCreate_CriticalSecant);CHKERRQ(ierr);
44bf7f4e0aSPeter Brune 
45bf7f4e0aSPeter Brune    */
46f1c6b773SPeter Brune   ierr = SNESLineSearchRegisterDynamic(SNES_LINESEARCH_SHELL,             path,"SNESLineSearchCreate_Shell",             SNESLineSearchCreate_Shell);CHKERRQ(ierr);
47f1c6b773SPeter Brune   ierr = SNESLineSearchRegisterDynamic(SNES_LINESEARCH_BASIC,             path,"SNESLineSearchCreate_Basic",             SNESLineSearchCreate_Basic);CHKERRQ(ierr);
48f1c6b773SPeter Brune   ierr = SNESLineSearchRegisterDynamic(SNES_LINESEARCH_L2,                path,"SNESLineSearchCreate_L2",                SNESLineSearchCreate_L2);CHKERRQ(ierr);
49f1c6b773SPeter Brune   ierr = SNESLineSearchRegisterDynamic(SNES_LINESEARCH_BT,                path,"SNESLineSearchCreate_BT",                SNESLineSearchCreate_BT);CHKERRQ(ierr);
50f1c6b773SPeter Brune   ierr = SNESLineSearchRegisterDynamic(SNES_LINESEARCH_CP,                path,"SNESLineSearchCreate_CP",                SNESLineSearchCreate_CP);CHKERRQ(ierr);
51bf7f4e0aSPeter Brune 
52bf7f4e0aSPeter Brune   PetscFunctionReturn(0);
53bf7f4e0aSPeter Brune }
54bf7f4e0aSPeter Brune 
55bf7f4e0aSPeter Brune #undef __FUNCT__
56f1c6b773SPeter Brune #define __FUNCT__ "SNESLineSearchRegisterDestroy"
57f1c6b773SPeter Brune PetscErrorCode  SNESLineSearchRegisterDestroy(void)
58bf7f4e0aSPeter Brune {
59bf7f4e0aSPeter Brune   PetscErrorCode ierr;
60bf7f4e0aSPeter Brune 
61bf7f4e0aSPeter Brune   PetscFunctionBegin;
62f1c6b773SPeter Brune   ierr = PetscFListDestroy(&SNESLineSearchList);CHKERRQ(ierr);
63f1c6b773SPeter Brune   SNESLineSearchRegisterAllCalled = PETSC_FALSE;
64bf7f4e0aSPeter Brune   PetscFunctionReturn(0);
65bf7f4e0aSPeter Brune }
66