xref: /petsc/src/snes/linesearch/interface/linesearchregi.c (revision 8cc058d9cd56c1ccb3be12a47760ddfc446aaffc)
1b45d2f2cSJed Brown #include <petsc-private/linesearchimpl.h>     /*I  "petscsnes.h"  I*/
2bf7f4e0aSPeter Brune 
3*8cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_Basic(SNESLineSearch);
4*8cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_L2(SNESLineSearch);
5*8cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_CP(SNESLineSearch);
6*8cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_BT(SNESLineSearch);
7*8cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_Shell(SNESLineSearch);
8bf7f4e0aSPeter Brune 
9bf7f4e0aSPeter Brune 
10bf7f4e0aSPeter Brune #undef __FUNCT__
11f1c6b773SPeter Brune #define __FUNCT__ "SNESLineSearchRegisterAll"
12bf7f4e0aSPeter Brune /*@C
13f1c6b773SPeter Brune    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 
19f1c6b773SPeter Brune .keywords: SNESLineSearch, register, all
20bf7f4e0aSPeter Brune 
21f1c6b773SPeter Brune .seealso:  SNESLineSearchRegisterDestroy()
22bf7f4e0aSPeter Brune @*/
23f1c6b773SPeter Brune PetscErrorCode SNESLineSearchRegisterAll(const char path[])
24bf7f4e0aSPeter Brune {
25bf7f4e0aSPeter Brune   PetscErrorCode ierr;
26bf7f4e0aSPeter Brune 
27bf7f4e0aSPeter Brune   PetscFunctionBegin;
28f1c6b773SPeter Brune   SNESLineSearchRegisterAllCalled = PETSC_TRUE;
291a4f838cSPeter Brune   ierr = SNESLineSearchRegisterDynamic(SNESLINESEARCHSHELL,             path,"SNESLineSearchCreate_Shell",             SNESLineSearchCreate_Shell);CHKERRQ(ierr);
301a4f838cSPeter Brune   ierr = SNESLineSearchRegisterDynamic(SNESLINESEARCHBASIC,             path,"SNESLineSearchCreate_Basic",             SNESLineSearchCreate_Basic);CHKERRQ(ierr);
311a4f838cSPeter Brune   ierr = SNESLineSearchRegisterDynamic(SNESLINESEARCHL2,                path,"SNESLineSearchCreate_L2",                SNESLineSearchCreate_L2);CHKERRQ(ierr);
321a4f838cSPeter Brune   ierr = SNESLineSearchRegisterDynamic(SNESLINESEARCHBT,                path,"SNESLineSearchCreate_BT",                SNESLineSearchCreate_BT);CHKERRQ(ierr);
331a4f838cSPeter Brune   ierr = SNESLineSearchRegisterDynamic(SNESLINESEARCHCP,                path,"SNESLineSearchCreate_CP",                SNESLineSearchCreate_CP);CHKERRQ(ierr);
34bf7f4e0aSPeter Brune   PetscFunctionReturn(0);
35bf7f4e0aSPeter Brune }
36bf7f4e0aSPeter Brune 
37bf7f4e0aSPeter Brune #undef __FUNCT__
38f1c6b773SPeter Brune #define __FUNCT__ "SNESLineSearchRegisterDestroy"
39f1c6b773SPeter Brune PetscErrorCode  SNESLineSearchRegisterDestroy(void)
40bf7f4e0aSPeter Brune {
41bf7f4e0aSPeter Brune   PetscErrorCode ierr;
42bf7f4e0aSPeter Brune 
43bf7f4e0aSPeter Brune   PetscFunctionBegin;
44140e18c1SBarry Smith   ierr = PetscFunctionListDestroy(&SNESLineSearchList);CHKERRQ(ierr);
45f5af7f23SKarl Rupp 
46f1c6b773SPeter Brune   SNESLineSearchRegisterAllCalled = PETSC_FALSE;
47bf7f4e0aSPeter Brune   PetscFunctionReturn(0);
48bf7f4e0aSPeter Brune }
49