Lines Matching refs:linesearch

4 static PetscErrorCode SNESLineSearchApply_Bisection(SNESLineSearch linesearch)  in SNESLineSearchApply_Bisection()  argument
17 PetscCall(SNESLineSearchGetVecs(linesearch, &X, &F, &Y, &W, &G)); in SNESLineSearchApply_Bisection()
18 PetscCall(SNESLineSearchGetLambda(linesearch, &lambda)); in SNESLineSearchApply_Bisection()
19 PetscCall(SNESLineSearchGetSNES(linesearch, &snes)); in SNESLineSearchApply_Bisection()
20 PetscCall(SNESLineSearchGetTolerances(linesearch, NULL, NULL, &rtol, &atol, &ltol, &max_it)); in SNESLineSearchApply_Bisection()
21 PetscCall(SNESLineSearchGetDefaultMonitor(linesearch, &monitor)); in SNESLineSearchApply_Bisection()
22 PetscCall(SNESLineSearchSetReason(linesearch, SNES_LINESEARCH_SUCCEEDED)); in SNESLineSearchApply_Bisection()
25 PetscCall(SNESLineSearchPreCheck(linesearch, X, Y, &changed_y)); in SNESLineSearchApply_Bisection()
35 if (linesearch->ops->vidirderiv) { in SNESLineSearchApply_Bisection()
36 PetscCall((*linesearch->ops->vidirderiv)(snes, F, X, Y, &fty_left)); in SNESLineSearchApply_Bisection()
44 if (linesearch->ops->viproject) PetscCall((*linesearch->ops->viproject)(snes, W)); in SNESLineSearchApply_Bisection()
45 PetscCall((*linesearch->ops->snesfunc)(snes, W, G)); in SNESLineSearchApply_Bisection()
49 PetscCall(SNESLineSearchSetReason(linesearch, SNES_LINESEARCH_FAILED_FUNCTION)); in SNESLineSearchApply_Bisection()
52 if (linesearch->ops->vidirderiv) { in SNESLineSearchApply_Bisection()
53 PetscCall((*linesearch->ops->vidirderiv)(snes, G, W, Y, &fty)); in SNESLineSearchApply_Bisection()
61 PetscCall(PetscViewerASCIIAddTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_Bisection()
63 PetscCall(PetscViewerASCIISubtractTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_Bisection()
74 PetscCall(PetscViewerASCIIAddTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_Bisection()
76 PetscCall(PetscViewerASCIISubtractTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_Bisection()
80 PetscCall(SNESLineSearchSetReason(linesearch, SNES_LINESEARCH_FAILED_FUNCTION_DOMAIN)); in SNESLineSearchApply_Bisection()
82 } else PetscCall(SNESLineSearchSetReason(linesearch, SNES_LINESEARCH_FAILED_NANORINF)); in SNESLineSearchApply_Bisection()
90 PetscCall(PetscViewerASCIIAddTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_Bisection()
92 PetscCall(PetscViewerASCIISubtractTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_Bisection()
100 PetscCall(PetscViewerASCIIAddTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_Bisection()
102 PetscCall(PetscViewerASCIISubtractTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_Bisection()
110 PetscCall(PetscViewerASCIIAddTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_Bisection()
112 PetscCall(PetscViewerASCIISubtractTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_Bisection()
114 PetscCall(SNESLineSearchSetReason(linesearch, SNES_LINESEARCH_FAILED_REDUCT)); in SNESLineSearchApply_Bisection()
121 PetscCall(PetscViewerASCIIAddTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_Bisection()
123 PetscCall(PetscViewerASCIISubtractTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_Bisection()
145 if (linesearch->ops->viproject) PetscCall((*linesearch->ops->viproject)(snes, W)); in SNESLineSearchApply_Bisection()
146 PetscCall((*linesearch->ops->snesfunc)(snes, W, G)); in SNESLineSearchApply_Bisection()
150 PetscCall(SNESLineSearchSetReason(linesearch, SNES_LINESEARCH_FAILED_FUNCTION)); in SNESLineSearchApply_Bisection()
153 if (linesearch->ops->vidirderiv) { in SNESLineSearchApply_Bisection()
154 PetscCall((*linesearch->ops->vidirderiv)(snes, G, W, Y, &fty)); in SNESLineSearchApply_Bisection()
161 PetscCall(PetscViewerASCIIAddTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_Bisection()
163 PetscCall(PetscViewerASCIISubtractTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_Bisection()
172 PetscCall(SNESLineSearchSetLambda(linesearch, lambda)); in SNESLineSearchApply_Bisection()
173 PetscCall(SNESLineSearchPostCheck(linesearch, X, Y, W, &changed_y, &changed_w)); in SNESLineSearchApply_Bisection()
176 if (linesearch->ops->viproject) PetscCall((*linesearch->ops->viproject)(snes, W)); in SNESLineSearchApply_Bisection()
181 PetscCall((*linesearch->ops->snesfunc)(snes, X, F)); in SNESLineSearchApply_Bisection()
182 PetscCall(SNESLineSearchComputeNorms(linesearch)); in SNESLineSearchApply_Bisection()
183 PetscCall(SNESLineSearchGetNorms(linesearch, NULL, &fnorm, NULL)); in SNESLineSearchApply_Bisection()
184 SNESLineSearchCheckFunctionDomainError(snes, linesearch, fnorm); in SNESLineSearchApply_Bisection()
210 PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_Bisection(SNESLineSearch linesearch) in SNESLineSearchCreate_Bisection() argument
213 linesearch->ops->apply = SNESLineSearchApply_Bisection; in SNESLineSearchCreate_Bisection()
214 linesearch->ops->destroy = NULL; in SNESLineSearchCreate_Bisection()
215 linesearch->ops->setfromoptions = NULL; in SNESLineSearchCreate_Bisection()
216 linesearch->ops->reset = NULL; in SNESLineSearchCreate_Bisection()
217 linesearch->ops->view = NULL; in SNESLineSearchCreate_Bisection()
218 linesearch->ops->setup = NULL; in SNESLineSearchCreate_Bisection()
221 linesearch->max_it = 50; in SNESLineSearchCreate_Bisection()
222 linesearch->rtol = 1e-8; in SNESLineSearchCreate_Bisection()
223 linesearch->atol = 1e-6; in SNESLineSearchCreate_Bisection()
224 linesearch->ltol = 1e-6; in SNESLineSearchCreate_Bisection()