xref: /petsc/src/snes/linesearch/interface/linesearchregi.c (revision 9e764e565363082b5d6809b4906b00cc8e5df768)
1*9e764e56SPeter Brune #include <private/linesearchimpl.h>     /*I  "petscsnes.h"  I*/
2bf7f4e0aSPeter Brune 
3bf7f4e0aSPeter Brune EXTERN_C_BEGIN
46188f407SPeter Brune extern PetscErrorCode  PetscLineSearchCreate_Basic(PetscLineSearch);
56188f407SPeter Brune extern PetscErrorCode  PetscLineSearchCreate_L2(PetscLineSearch);
66188f407SPeter Brune extern PetscErrorCode  PetscLineSearchCreate_CP(PetscLineSearch);
76188f407SPeter Brune extern PetscErrorCode  PetscLineSearchCreate_BT(PetscLineSearch);
86188f407SPeter Brune extern PetscErrorCode  PetscLineSearchCreate_Shell(PetscLineSearch);
9bf7f4e0aSPeter Brune EXTERN_C_END
10bf7f4e0aSPeter Brune 
11bf7f4e0aSPeter Brune /*
126188f407SPeter Brune extern PetscErrorCode  PetscLineSearchCreate_Cubic(PetscLineSearch);
136188f407SPeter Brune extern PetscErrorCode  PetscLineSearchCreate_Quadratic(PetscLineSearch);
146188f407SPeter Brune extern PetscErrorCode  PetscLineSearchCreate_BasicNoNorms(PetscLineSearch);
156188f407SPeter Brune extern PetscErrorCode  PetscLineSearchCreate_QuadraticSecant(PetscLineSearch);
166188f407SPeter Brune extern PetscErrorCode  PetscLineSearchCreate_CriticalSecant(PetscLineSearch);
17bf7f4e0aSPeter Brune  */
18bf7f4e0aSPeter Brune 
19bf7f4e0aSPeter Brune 
20bf7f4e0aSPeter Brune #undef __FUNCT__
216188f407SPeter Brune #define __FUNCT__ "PetscLineSearchRegisterAll"
22bf7f4e0aSPeter Brune /*@C
236188f407SPeter Brune    PetscLineSearchRegisterAll - Registers all of the nonlinear solver methods in the PetscLineSearch package.
24bf7f4e0aSPeter Brune 
25bf7f4e0aSPeter Brune    Not Collective
26bf7f4e0aSPeter Brune 
27bf7f4e0aSPeter Brune    Level: advanced
28bf7f4e0aSPeter Brune 
296188f407SPeter Brune .keywords: PetscLineSearch, register, all
30bf7f4e0aSPeter Brune 
316188f407SPeter Brune .seealso:  PetscLineSearchRegisterDestroy()
32bf7f4e0aSPeter Brune @*/
336188f407SPeter Brune PetscErrorCode PetscLineSearchRegisterAll(const char path[])
34bf7f4e0aSPeter Brune {
35bf7f4e0aSPeter Brune   PetscErrorCode ierr;
36bf7f4e0aSPeter Brune 
37bf7f4e0aSPeter Brune   PetscFunctionBegin;
386188f407SPeter Brune   PetscLineSearchRegisterAllCalled = PETSC_TRUE;
39bf7f4e0aSPeter Brune   /*
406188f407SPeter Brune   ierr = PetscLineSearchRegisterDynamic(LINESEARCHCUBIC,             path,"PetscLineSearchCreate_Cubic",             PetscLineSearchCreate_Cubic);CHKERRQ(ierr);
41bf7f4e0aSPeter Brune 
426188f407SPeter Brune   ierr = PetscLineSearchRegisterDynamic(LINESEARCHQUADRATIC,         path,"PetscLineSearchCreate_Quadratic",         PetscLineSearchCreate_Quadratic);CHKERRQ(ierr);
436188f407SPeter Brune   ierr = PetscLineSearchRegisterDynamic(LINESEARCHCRITICALSECANT,    path,"PetscLineSearchCreate_CriticalSecant",    PetscLineSearchCreate_CriticalSecant);CHKERRQ(ierr);
44bf7f4e0aSPeter Brune 
45bf7f4e0aSPeter Brune    */
466188f407SPeter Brune   ierr = PetscLineSearchRegisterDynamic(PETSCLINESEARCHSHELL,             path,"PetscLineSearchCreate_Shell",             PetscLineSearchCreate_Shell);CHKERRQ(ierr);
476188f407SPeter Brune   ierr = PetscLineSearchRegisterDynamic(PETSCLINESEARCHBASIC,             path,"PetscLineSearchCreate_Basic",             PetscLineSearchCreate_Basic);CHKERRQ(ierr);
486188f407SPeter Brune   ierr = PetscLineSearchRegisterDynamic(PETSCLINESEARCHL2,                path,"PetscLineSearchCreate_L2",                PetscLineSearchCreate_L2);CHKERRQ(ierr);
496188f407SPeter Brune   ierr = PetscLineSearchRegisterDynamic(PETSCLINESEARCHBT,                path,"PetscLineSearchCreate_BT",                PetscLineSearchCreate_BT);CHKERRQ(ierr);
506188f407SPeter Brune   ierr = PetscLineSearchRegisterDynamic(PETSCLINESEARCHCP,                path,"PetscLineSearchCreate_CP",                PetscLineSearchCreate_CP);CHKERRQ(ierr);
51bf7f4e0aSPeter Brune 
52bf7f4e0aSPeter Brune   PetscFunctionReturn(0);
53bf7f4e0aSPeter Brune }
54bf7f4e0aSPeter Brune 
55bf7f4e0aSPeter Brune #undef __FUNCT__
566188f407SPeter Brune #define __FUNCT__ "PetscLineSearchRegisterDestroy"
576188f407SPeter Brune PetscErrorCode  PetscLineSearchRegisterDestroy(void)
58bf7f4e0aSPeter Brune {
59bf7f4e0aSPeter Brune   PetscErrorCode ierr;
60bf7f4e0aSPeter Brune 
61bf7f4e0aSPeter Brune   PetscFunctionBegin;
626188f407SPeter Brune   ierr = PetscFListDestroy(&PetscLineSearchList);CHKERRQ(ierr);
636188f407SPeter Brune   PetscLineSearchRegisterAllCalled = PETSC_FALSE;
64bf7f4e0aSPeter Brune   PetscFunctionReturn(0);
65bf7f4e0aSPeter Brune }
66