Lines Matching refs:linesearch
4 static PetscErrorCode SNESLineSearchApply_Basic(SNESLineSearch linesearch) in SNESLineSearchApply_Basic() argument
12 PetscCall(SNESLineSearchGetVecs(linesearch, &X, &F, &Y, &W, NULL)); in SNESLineSearchApply_Basic()
13 PetscCall(SNESLineSearchGetNorms(linesearch, &xnorm, &gnorm, &ynorm)); in SNESLineSearchApply_Basic()
14 PetscCall(SNESLineSearchGetLambda(linesearch, &lambda)); in SNESLineSearchApply_Basic()
15 PetscCall(SNESLineSearchGetSNES(linesearch, &snes)); in SNESLineSearchApply_Basic()
16 PetscCall(SNESLineSearchSetReason(linesearch, SNES_LINESEARCH_SUCCEEDED)); in SNESLineSearchApply_Basic()
19 PetscCall(SNESLineSearchPreCheck(linesearch, X, Y, &changed_y)); in SNESLineSearchApply_Basic()
23 if (linesearch->ops->viproject) PetscCall((*linesearch->ops->viproject)(snes, W)); in SNESLineSearchApply_Basic()
26 PetscCall(SNESLineSearchPostCheck(linesearch, X, Y, W, &changed_y, &changed_w)); in SNESLineSearchApply_Basic()
29 if (linesearch->ops->viproject) PetscCall((*linesearch->ops->viproject)(snes, W)); in SNESLineSearchApply_Basic()
31 if (linesearch->norms || snes->iter < snes->max_its - 1) { in SNESLineSearchApply_Basic()
32 PetscCall((*linesearch->ops->snesfunc)(snes, W, F)); in SNESLineSearchApply_Basic()
34 SNESLineSearchCheckFunctionDomainError(snes, linesearch, fnorm); in SNESLineSearchApply_Basic()
36 if (linesearch->norms) { in SNESLineSearchApply_Basic()
37 PetscCall(VecNormBegin(Y, NORM_2, &linesearch->ynorm)); in SNESLineSearchApply_Basic()
38 PetscCall(VecNormBegin(W, NORM_2, &linesearch->xnorm)); in SNESLineSearchApply_Basic()
39 PetscCall(VecNormEnd(Y, NORM_2, &linesearch->ynorm)); in SNESLineSearchApply_Basic()
40 PetscCall(VecNormEnd(W, NORM_2, &linesearch->xnorm)); in SNESLineSearchApply_Basic()
42 if (linesearch->ops->vinorm) { in SNESLineSearchApply_Basic()
43 linesearch->fnorm = gnorm; in SNESLineSearchApply_Basic()
45 PetscCall((*linesearch->ops->vinorm)(snes, F, W, &linesearch->fnorm)); in SNESLineSearchApply_Basic()
46 } else linesearch->fnorm = fnorm; in SNESLineSearchApply_Basic()
74 PETSC_EXTERN PetscErrorCode SNESLineSearchCreate_Basic(SNESLineSearch linesearch) in SNESLineSearchCreate_Basic() argument
77 linesearch->ops->apply = SNESLineSearchApply_Basic; in SNESLineSearchCreate_Basic()
78 linesearch->ops->destroy = NULL; in SNESLineSearchCreate_Basic()
79 linesearch->ops->setfromoptions = NULL; in SNESLineSearchCreate_Basic()
80 linesearch->ops->reset = NULL; in SNESLineSearchCreate_Basic()
81 linesearch->ops->view = NULL; in SNESLineSearchCreate_Basic()
82 linesearch->ops->setup = NULL; in SNESLineSearchCreate_Basic()