1a7e14dcfSSatish Balay #define TAOLINESEARCH_DLL 2*aaa7dc30SBarry Smith #include <petsc-private/taolinesearchimpl.h> 3a7e14dcfSSatish Balay 4a7e14dcfSSatish Balay 5a7e14dcfSSatish Balay PETSC_EXTERN PetscErrorCode TaoLineSearchCreate_Unit(TaoLineSearch); 6a7e14dcfSSatish Balay PETSC_EXTERN PetscErrorCode TaoLineSearchCreate_MT(TaoLineSearch); 7a7e14dcfSSatish Balay PETSC_EXTERN PetscErrorCode TaoLineSearchCreate_GPCG(TaoLineSearch); 8a7e14dcfSSatish Balay PETSC_EXTERN PetscErrorCode TaoLineSearchCreate_Armijo(TaoLineSearch); 9a7e14dcfSSatish Balay PETSC_EXTERN PetscErrorCode TaoLineSearchCreate_OWArmijo(TaoLineSearch); 10a7e14dcfSSatish Balay 11a7e14dcfSSatish Balay 12a7e14dcfSSatish Balay static PetscBool TaoLineSearchPackageInitialized = PETSC_FALSE; 13a7e14dcfSSatish Balay 14a7e14dcfSSatish Balay 15a7e14dcfSSatish Balay 16a7e14dcfSSatish Balay 17a7e14dcfSSatish Balay 18a7e14dcfSSatish Balay #undef __FUNCT__ 19a7e14dcfSSatish Balay #define __FUNCT__ "TaoLineSearchFinalizePackage" 20a7e14dcfSSatish Balay /*@C 21a7e14dcfSSatish Balay TaoLineSearchFinalizePackage - This function destroys everything in the PETSc/TAO 22a7e14dcfSSatish Balay interface to the TaoLineSearch package. It is called from PetscFinalize(). 23a7e14dcfSSatish Balay 24a7e14dcfSSatish Balay Level: developer 25a7e14dcfSSatish Balay @*/ 26a7e14dcfSSatish Balay PetscErrorCode TaoLineSearchFinalizePackage(void) 27a7e14dcfSSatish Balay { 28a7e14dcfSSatish Balay PetscErrorCode ierr; 29a7e14dcfSSatish Balay 30a7e14dcfSSatish Balay PetscFunctionBegin; 31a7e14dcfSSatish Balay ierr = PetscFunctionListDestroy(&TaoLineSearchList);CHKERRQ(ierr); 32a7e14dcfSSatish Balay TaoLineSearchPackageInitialized = PETSC_FALSE; 33a7e14dcfSSatish Balay PetscFunctionReturn(0); 34a7e14dcfSSatish Balay } 35a7e14dcfSSatish Balay 36a7e14dcfSSatish Balay 37a7e14dcfSSatish Balay #undef __FUNCT__ 38a7e14dcfSSatish Balay #define __FUNCT__ "TaoLineSearchInitializePackage" 39a7e14dcfSSatish Balay /*@C 40a7e14dcfSSatish Balay TaoLineSearchInitializePackage - This function registers the line-search 41a7e14dcfSSatish Balay algorithms in TAO. 42a7e14dcfSSatish Balay When using static libraries, this function is called from the 43a7e14dcfSSatish Balay first entry to TaoCreate(); when using shared libraries, it is called 44a7e14dcfSSatish Balay from PetscDLLibraryRegister() 45a7e14dcfSSatish Balay 46a7e14dcfSSatish Balay Level: developer 47a7e14dcfSSatish Balay 48a7e14dcfSSatish Balay .seealso: TaoLineSearchCreate() 49a7e14dcfSSatish Balay @*/ 50600047eeSSatish Balay PetscErrorCode TaoLineSearchInitializePackage(void) 51a7e14dcfSSatish Balay { 52a7e14dcfSSatish Balay PetscErrorCode ierr; 53a7e14dcfSSatish Balay 54a7e14dcfSSatish Balay PetscFunctionBegin; 55a7e14dcfSSatish Balay if (TaoLineSearchPackageInitialized) PetscFunctionReturn(0); 56a7e14dcfSSatish Balay TaoLineSearchPackageInitialized=PETSC_TRUE; 57a7e14dcfSSatish Balay 58a7e14dcfSSatish Balay ierr = PetscClassIdRegister("TaoLineSearch",&TAOLINESEARCH_CLASSID);CHKERRQ(ierr); 59a7e14dcfSSatish Balay 60a7e14dcfSSatish Balay 61a7e14dcfSSatish Balay ierr = TaoLineSearchRegister("unit",TaoLineSearchCreate_Unit);CHKERRQ(ierr); 62a7e14dcfSSatish Balay ierr = TaoLineSearchRegister("more-thuente",TaoLineSearchCreate_MT);CHKERRQ(ierr); 63a7e14dcfSSatish Balay ierr = TaoLineSearchRegister("gpcg",TaoLineSearchCreate_GPCG);CHKERRQ(ierr); 64a7e14dcfSSatish Balay ierr = TaoLineSearchRegister("armijo",TaoLineSearchCreate_Armijo);CHKERRQ(ierr); 65a7e14dcfSSatish Balay ierr = TaoLineSearchRegister("owarmijo",TaoLineSearchCreate_OWArmijo);CHKERRQ(ierr); 66a7e14dcfSSatish Balay 67a7e14dcfSSatish Balay ierr = PetscLogEventRegister( "TaoLineSearchApply",TAOLINESEARCH_CLASSID,&TaoLineSearch_ApplyEvent);CHKERRQ(ierr); 68a7e14dcfSSatish Balay ierr = PetscLogEventRegister("TaoLineSearchComputeObjective[Gradient]",TAOLINESEARCH_CLASSID,&TaoLineSearch_EvalEvent);CHKERRQ(ierr); 69a7e14dcfSSatish Balay ierr = PetscRegisterFinalize(TaoLineSearchFinalizePackage);CHKERRQ(ierr); 70a7e14dcfSSatish Balay PetscFunctionReturn(0); 71a7e14dcfSSatish Balay } 72a7e14dcfSSatish Balay 73a7e14dcfSSatish Balay 74a7e14dcfSSatish Balay 75