Lines Matching refs:linesearch
4 static PetscErrorCode SNESLineSearchApply_CP(SNESLineSearch linesearch) in SNESLineSearchApply_CP() argument
16 PetscCall(SNESLineSearchGetVecs(linesearch, &X, &F, &Y, &W, NULL)); in SNESLineSearchApply_CP()
17 PetscCall(SNESLineSearchGetNorms(linesearch, &xnorm, &gnorm, &ynorm)); in SNESLineSearchApply_CP()
18 PetscCall(SNESLineSearchGetSNES(linesearch, &snes)); in SNESLineSearchApply_CP()
19 PetscCall(SNESLineSearchGetLambda(linesearch, &lambda)); in SNESLineSearchApply_CP()
20 …PetscCall(SNESLineSearchGetTolerances(linesearch, &minlambda, &maxlambda, &rtol, &atol, <ol, &ma… in SNESLineSearchApply_CP()
21 PetscCall(SNESLineSearchSetReason(linesearch, SNES_LINESEARCH_SUCCEEDED)); in SNESLineSearchApply_CP()
22 PetscCall(SNESLineSearchGetDefaultMonitor(linesearch, &monitor)); in SNESLineSearchApply_CP()
25 PetscCall(SNESLineSearchPreCheck(linesearch, X, Y, &changed_y)); in SNESLineSearchApply_CP()
29 if (linesearch->ops->vidirderiv) { in SNESLineSearchApply_CP()
30 PetscCall((*linesearch->ops->vidirderiv)(snes, F, X, Y, &fty_old)); in SNESLineSearchApply_CP()
36 PetscCall(PetscViewerASCIIAddTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_CP()
38 PetscCall(PetscViewerASCIISubtractTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_CP()
40 PetscCall(SNESSetConvergedReason(linesearch->snes, SNES_CONVERGED_FNORM_ABS)); in SNESLineSearchApply_CP()
48 if (linesearch->ops->viproject) PetscCall((*linesearch->ops->viproject)(snes, W)); in SNESLineSearchApply_CP()
49 PetscCall((*linesearch->ops->snesfunc)(snes, W, F)); in SNESLineSearchApply_CP()
50 if (linesearch->ops->vidirderiv) { in SNESLineSearchApply_CP()
51 PetscCall((*linesearch->ops->vidirderiv)(snes, F, W, Y, &fty)); in SNESLineSearchApply_CP()
62 PetscCall(PetscViewerASCIIAddTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_CP()
64 PetscCall(PetscViewerASCIISubtractTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_CP()
72 PetscCall(PetscViewerASCIIAddTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_CP()
74 PetscCall(PetscViewerASCIISubtractTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_CP()
82 PetscCall(PetscViewerASCIIAddTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_CP()
84 PetscCall(PetscViewerASCIISubtractTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_CP()
91 PetscCall(PetscViewerASCIIAddTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_CP()
93 PetscCall(PetscViewerASCIISubtractTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_CP()
97 if (linesearch->order == SNES_LINESEARCH_ORDER_LINEAR) { in SNESLineSearchApply_CP()
100 } else if (linesearch->order == SNES_LINESEARCH_ORDER_QUADRATIC) { in SNESLineSearchApply_CP()
103 if (linesearch->ops->viproject) PetscCall((*linesearch->ops->viproject)(snes, W)); in SNESLineSearchApply_CP()
104 PetscCall((*linesearch->ops->snesfunc)(snes, W, F)); in SNESLineSearchApply_CP()
105 if (linesearch->ops->vidirderiv) { in SNESLineSearchApply_CP()
106 PetscCall((*linesearch->ops->vidirderiv)(snes, F, W, Y, &fty_mid1)); in SNESLineSearchApply_CP()
117 if (linesearch->ops->viproject) PetscCall((*linesearch->ops->viproject)(snes, W)); in SNESLineSearchApply_CP()
118 PetscCall((*linesearch->ops->snesfunc)(snes, W, F)); in SNESLineSearchApply_CP()
119 if (linesearch->ops->vidirderiv) { in SNESLineSearchApply_CP()
120 PetscCall((*linesearch->ops->vidirderiv)(snes, F, W, Y, &fty_mid1)); in SNESLineSearchApply_CP()
127 if (linesearch->ops->viproject) PetscCall((*linesearch->ops->viproject)(snes, W)); in SNESLineSearchApply_CP()
128 PetscCall((*linesearch->ops->snesfunc)(snes, W, F)); in SNESLineSearchApply_CP()
129 if (linesearch->ops->vidirderiv) { in SNESLineSearchApply_CP()
130 PetscCall((*linesearch->ops->vidirderiv)(snes, F, W, Y, &fty_mid2)); in SNESLineSearchApply_CP()
143 PetscCall(PetscViewerASCIIAddTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_CP()
145 PetscCall(PetscViewerASCIISubtractTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_CP()
162 PetscCall(PetscViewerASCIIAddTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_CP()
164 PetscCall(PetscViewerASCIISubtractTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_CP()
166 PetscCall(SNESLineSearchSetReason(linesearch, SNES_LINESEARCH_FAILED_NANORINF)); in SNESLineSearchApply_CP()
178 if (linesearch->ops->viproject) PetscCall((*linesearch->ops->viproject)(snes, W)); in SNESLineSearchApply_CP()
180 PetscCall(SNESLineSearchSetLambda(linesearch, lambda)); in SNESLineSearchApply_CP()
181 PetscCall(SNESLineSearchPostCheck(linesearch, X, Y, W, &changed_y, &changed_w)); in SNESLineSearchApply_CP()
184 if (linesearch->ops->viproject) PetscCall((*linesearch->ops->viproject)(snes, W)); in SNESLineSearchApply_CP()
187 PetscCall((*linesearch->ops->snesfunc)(snes, X, F)); in SNESLineSearchApply_CP()
189 PetscCall(SNESLineSearchComputeNorms(linesearch)); in SNESLineSearchApply_CP()
190 PetscCall(SNESLineSearchGetNorms(linesearch, &xnorm, &gnorm, &ynorm)); in SNESLineSearchApply_CP()
193 PetscCall(PetscViewerASCIIAddTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_CP()
195 PetscCall(PetscViewerASCIISubtractTab(monitor, ((PetscObject)linesearch)->tablevel)); in SNESLineSearchApply_CP()
224 PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_CP(SNESLineSearch linesearch) in SNESLineSearchCreate_CP() argument
227 linesearch->ops->apply = SNESLineSearchApply_CP; in SNESLineSearchCreate_CP()
228 linesearch->ops->destroy = NULL; in SNESLineSearchCreate_CP()
229 linesearch->ops->setfromoptions = NULL; in SNESLineSearchCreate_CP()
230 linesearch->ops->reset = NULL; in SNESLineSearchCreate_CP()
231 linesearch->ops->view = NULL; in SNESLineSearchCreate_CP()
232 linesearch->ops->setup = NULL; in SNESLineSearchCreate_CP()
233 linesearch->order = SNES_LINESEARCH_ORDER_LINEAR; in SNESLineSearchCreate_CP()
235 linesearch->max_it = 1; in SNESLineSearchCreate_CP()