Lines Matching refs:linesearch

173   SNESLineSearch linesearch;  in SNESLineSearchCreate()  local
179 …PetscCall(PetscHeaderCreate(linesearch, SNESLINESEARCH_CLASSID, "SNESLineSearch", "Linesearch", "S… in SNESLineSearchCreate()
180 linesearch->vec_sol_new = NULL; in SNESLineSearchCreate()
181 linesearch->vec_func_new = NULL; in SNESLineSearchCreate()
182 linesearch->vec_sol = NULL; in SNESLineSearchCreate()
183 linesearch->vec_func = NULL; in SNESLineSearchCreate()
184 linesearch->vec_update = NULL; in SNESLineSearchCreate()
186 linesearch->lambda = 1.0; in SNESLineSearchCreate()
187 linesearch->fnorm = 1.0; in SNESLineSearchCreate()
188 linesearch->ynorm = 1.0; in SNESLineSearchCreate()
189 linesearch->xnorm = 1.0; in SNESLineSearchCreate()
190 linesearch->reason = SNES_LINESEARCH_SUCCEEDED; in SNESLineSearchCreate()
191 linesearch->norms = PETSC_TRUE; in SNESLineSearchCreate()
192 linesearch->keeplambda = PETSC_FALSE; in SNESLineSearchCreate()
193 linesearch->damping = 1.0; in SNESLineSearchCreate()
194 linesearch->maxlambda = 1.0; in SNESLineSearchCreate()
195 linesearch->minlambda = 1e-12; in SNESLineSearchCreate()
196 linesearch->rtol = 1e-8; in SNESLineSearchCreate()
197 linesearch->atol = 1e-15; in SNESLineSearchCreate()
198 linesearch->ltol = 1e-8; in SNESLineSearchCreate()
199 linesearch->precheckctx = NULL; in SNESLineSearchCreate()
200 linesearch->postcheckctx = NULL; in SNESLineSearchCreate()
201 linesearch->max_it = 1; in SNESLineSearchCreate()
202 linesearch->setupcalled = PETSC_FALSE; in SNESLineSearchCreate()
203 linesearch->monitor = NULL; in SNESLineSearchCreate()
204 *outlinesearch = linesearch; in SNESLineSearchCreate()
228 PetscErrorCode SNESLineSearchSetUp(SNESLineSearch linesearch) in SNESLineSearchSetUp() argument
231 …if (!((PetscObject)linesearch)->type_name) PetscCall(SNESLineSearchSetType(linesearch, SNESLINESEA… in SNESLineSearchSetUp()
232 if (!linesearch->setupcalled) { in SNESLineSearchSetUp()
233 …if (!linesearch->vec_sol_new) PetscCall(VecDuplicate(linesearch->vec_sol, &linesearch->vec_sol_new… in SNESLineSearchSetUp()
234 …if (!linesearch->vec_func_new) PetscCall(VecDuplicate(linesearch->vec_sol, &linesearch->vec_func_n… in SNESLineSearchSetUp()
235 PetscTryTypeMethod(linesearch, setup); in SNESLineSearchSetUp()
236 …if (!linesearch->ops->snesfunc) PetscCall(SNESLineSearchSetFunction(linesearch, SNESComputeFunctio… in SNESLineSearchSetUp()
237 linesearch->lambda = linesearch->damping; in SNESLineSearchSetUp()
238 linesearch->setupcalled = PETSC_TRUE; in SNESLineSearchSetUp()
258 PetscErrorCode SNESLineSearchReset(SNESLineSearch linesearch) in SNESLineSearchReset() argument
261 PetscTryTypeMethod(linesearch, reset); in SNESLineSearchReset()
263 PetscCall(VecDestroy(&linesearch->vec_sol_new)); in SNESLineSearchReset()
264 PetscCall(VecDestroy(&linesearch->vec_func_new)); in SNESLineSearchReset()
266 PetscCall(VecDestroyVecs(linesearch->nwork, &linesearch->work)); in SNESLineSearchReset()
268 linesearch->nwork = 0; in SNESLineSearchReset()
269 linesearch->setupcalled = PETSC_FALSE; in SNESLineSearchReset()
293 PetscErrorCode SNESLineSearchSetFunction(SNESLineSearch linesearch, PetscErrorCode (*func)(SNES sne… in SNESLineSearchSetFunction() argument
296 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchSetFunction()
297 linesearch->ops->snesfunc = func; in SNESLineSearchSetFunction()
331 PetscErrorCode SNESLineSearchSetPreCheck(SNESLineSearch linesearch, PetscErrorCode (*func)(SNESLine… in SNESLineSearchSetPreCheck() argument
334 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchSetPreCheck()
335 if (func) linesearch->ops->precheck = func; in SNESLineSearchSetPreCheck()
336 if (ctx) linesearch->precheckctx = ctx; in SNESLineSearchSetPreCheck()
354 PetscErrorCode SNESLineSearchGetPreCheck(SNESLineSearch linesearch, PetscErrorCode (**func)(SNESLin… in SNESLineSearchGetPreCheck() argument
357 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchGetPreCheck()
358 if (func) *func = linesearch->ops->precheck; in SNESLineSearchGetPreCheck()
359 if (ctx) *(void **)ctx = linesearch->precheckctx; in SNESLineSearchGetPreCheck()
394 PetscErrorCode SNESLineSearchSetPostCheck(SNESLineSearch linesearch, PetscErrorCode (*func)(SNESLin… in SNESLineSearchSetPostCheck() argument
397 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchSetPostCheck()
398 if (func) linesearch->ops->postcheck = func; in SNESLineSearchSetPostCheck()
399 if (ctx) linesearch->postcheckctx = ctx; in SNESLineSearchSetPostCheck()
417 PetscErrorCode SNESLineSearchGetPostCheck(SNESLineSearch linesearch, PetscErrorCode (**func)(SNESLi… in SNESLineSearchGetPostCheck() argument
420 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchGetPostCheck()
421 if (func) *func = linesearch->ops->postcheck; in SNESLineSearchGetPostCheck()
422 if (ctx) *(void **)ctx = linesearch->postcheckctx; in SNESLineSearchGetPostCheck()
450 PetscErrorCode SNESLineSearchPreCheck(SNESLineSearch linesearch, Vec X, Vec Y, PetscBool *changed) in SNESLineSearchPreCheck() argument
454 if (linesearch->ops->precheck) { in SNESLineSearchPreCheck()
455 PetscUseTypeMethod(linesearch, precheck, X, Y, changed, linesearch->precheckctx); in SNESLineSearchPreCheck()
456 PetscValidLogicalCollectiveBool(linesearch, *changed, 4); in SNESLineSearchPreCheck()
486 PetscErrorCode SNESLineSearchPostCheck(SNESLineSearch linesearch, Vec X, Vec Y, Vec W, PetscBool *c… in SNESLineSearchPostCheck() argument
491 if (linesearch->ops->postcheck) { in SNESLineSearchPostCheck()
492 …PetscUseTypeMethod(linesearch, postcheck, X, Y, W, changed_Y, changed_W, linesearch->postcheckctx); in SNESLineSearchPostCheck()
493 PetscValidLogicalCollectiveBool(linesearch, *changed_Y, 5); in SNESLineSearchPostCheck()
494 PetscValidLogicalCollectiveBool(linesearch, *changed_W, 6); in SNESLineSearchPostCheck()
533 PetscErrorCode SNESLineSearchPreCheckPicard(SNESLineSearch linesearch, Vec X, Vec Y, PetscBool *cha… in SNESLineSearchPreCheckPicard() argument
535 PetscReal angle = *(PetscReal *)linesearch->precheckctx; in SNESLineSearchPreCheckPicard()
543 PetscCall(SNESLineSearchGetSNES(linesearch, &snes)); in SNESLineSearchPreCheckPicard()
623 PetscErrorCode SNESLineSearchApply(SNESLineSearch linesearch, Vec X, Vec F, PetscReal *fnorm, Vec Y) in SNESLineSearchApply() argument
626 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchApply()
631 linesearch->reason = SNES_LINESEARCH_SUCCEEDED; in SNESLineSearchApply()
633 linesearch->vec_sol = X; in SNESLineSearchApply()
634 linesearch->vec_update = Y; in SNESLineSearchApply()
635 linesearch->vec_func = F; in SNESLineSearchApply()
637 PetscCall(SNESLineSearchSetUp(linesearch)); in SNESLineSearchApply()
639 …if (!linesearch->keeplambda) linesearch->lambda = linesearch->damping; /* set the initial guess to… in SNESLineSearchApply()
641 if (fnorm) linesearch->fnorm = *fnorm; in SNESLineSearchApply()
642 else PetscCall(VecNorm(F, NORM_2, &linesearch->fnorm)); in SNESLineSearchApply()
644 PetscCall(PetscLogEventBegin(SNESLINESEARCH_Apply, linesearch, X, F, Y)); in SNESLineSearchApply()
646 PetscUseTypeMethod(linesearch, apply); in SNESLineSearchApply()
648 PetscCall(PetscLogEventEnd(SNESLINESEARCH_Apply, linesearch, X, F, Y)); in SNESLineSearchApply()
650 if (fnorm) *fnorm = linesearch->fnorm; in SNESLineSearchApply()
669 PetscErrorCode SNESLineSearchDestroy(SNESLineSearch *linesearch) in SNESLineSearchDestroy() argument
672 if (!*linesearch) PetscFunctionReturn(PETSC_SUCCESS); in SNESLineSearchDestroy()
673 PetscValidHeaderSpecific(*linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchDestroy()
674 if (--((PetscObject)*linesearch)->refct > 0) { in SNESLineSearchDestroy()
675 *linesearch = NULL; in SNESLineSearchDestroy()
678 PetscCall(PetscObjectSAWsViewOff((PetscObject)*linesearch)); in SNESLineSearchDestroy()
679 PetscCall(SNESLineSearchReset(*linesearch)); in SNESLineSearchDestroy()
680 PetscTryTypeMethod(*linesearch, destroy); in SNESLineSearchDestroy()
681 PetscCall(PetscViewerDestroy(&(*linesearch)->monitor)); in SNESLineSearchDestroy()
682 PetscCall(SNESLineSearchMonitorCancel(*linesearch)); in SNESLineSearchDestroy()
683 PetscCall(PetscHeaderDestroy(linesearch)); in SNESLineSearchDestroy()
709 PetscErrorCode SNESLineSearchSetDefaultMonitor(SNESLineSearch linesearch, PetscViewer viewer) in SNESLineSearchSetDefaultMonitor() argument
712 PetscCall(PetscViewerDestroy(&linesearch->monitor)); in SNESLineSearchSetDefaultMonitor()
713 linesearch->monitor = viewer; in SNESLineSearchSetDefaultMonitor()
732 PetscErrorCode SNESLineSearchGetDefaultMonitor(SNESLineSearch linesearch, PetscViewer *monitor) in SNESLineSearchGetDefaultMonitor() argument
735 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchGetDefaultMonitor()
736 *monitor = linesearch->monitor; in SNESLineSearchGetDefaultMonitor()
819 PetscErrorCode SNESLineSearchSetFromOptions(SNESLineSearch linesearch) in SNESLineSearchSetFromOptions() argument
829 PetscObjectOptionsBegin((PetscObject)linesearch); in SNESLineSearchSetFromOptions()
830 if (((PetscObject)linesearch)->type_name) deft = ((PetscObject)linesearch)->type_name; in SNESLineSearchSetFromOptions()
833 PetscCall(SNESLineSearchSetType(linesearch, type)); in SNESLineSearchSetFromOptions()
834 } else if (!((PetscObject)linesearch)->type_name) { in SNESLineSearchSetFromOptions()
835 PetscCall(SNESLineSearchSetType(linesearch, deft)); in SNESLineSearchSetFromOptions()
838 …eateViewer(PetscObjectComm((PetscObject)linesearch), ((PetscObject)linesearch)->options, ((PetscOb… in SNESLineSearchSetFromOptions()
839 if (set) PetscCall(SNESLineSearchSetDefaultMonitor(linesearch, viewer)); in SNESLineSearchSetFromOptions()
840 …PetscCall(SNESLineSearchMonitorSetFromOptions(linesearch, "-snes_linesearch_monitor_solution_updat… in SNESLineSearchSetFromOptions()
843 …nlambda", "Minimum lambda", "SNESLineSearchSetTolerances", linesearch->minlambda, &linesearch->min… in SNESLineSearchSetFromOptions()
844 …xlambda", "Maximum lambda", "SNESLineSearchSetTolerances", linesearch->maxlambda, &linesearch->max… in SNESLineSearchSetFromOptions()
845 …ce for iterative line search", "SNESLineSearchSetTolerances", linesearch->rtol, &linesearch->rtol,… in SNESLineSearchSetFromOptions()
846 …ce for iterative line search", "SNESLineSearchSetTolerances", linesearch->atol, &linesearch->atol,… in SNESLineSearchSetFromOptions()
847 …ce for iterative line search", "SNESLineSearchSetTolerances", linesearch->ltol, &linesearch->ltol,… in SNESLineSearchSetFromOptions()
848 …for iterative line searches", "SNESLineSearchSetTolerances", linesearch->max_it, &linesearch->max_… in SNESLineSearchSetFromOptions()
854 … search initial lambda guess)", "SNESLineSearchSetDamping", linesearch->damping, &linesearch->damp… in SNESLineSearchSetFromOptions()
856 …revious lambda as damping", "SNESLineSearchSetKeepLambda", linesearch->keeplambda, &linesearch->ke… in SNESLineSearchSetFromOptions()
862linesearch->precheck_picard_angle = 10.; /* correction only active if angle is less than 10 degree… in SNESLineSearchSetFromOptions()
864 … angle at which to activate the correction", "none", linesearch->precheck_picard_angle, &linesearc… in SNESLineSearchSetFromOptions()
865 …PetscCall(SNESLineSearchSetPreCheck(linesearch, SNESLineSearchPreCheckPicard, &linesearch->prechec… in SNESLineSearchSetFromOptions()
867 PetscCall(SNESLineSearchSetPreCheck(linesearch, NULL, NULL)); in SNESLineSearchSetFromOptions()
870 …ximation used in the line search", "SNESLineSearchSetOrder", linesearch->order, &linesearch->order… in SNESLineSearchSetFromOptions()
871 …inal norms in line search", "SNESLineSearchSetComputeNorms", linesearch->norms, &linesearch->norms… in SNESLineSearchSetFromOptions()
873 PetscTryTypeMethod(linesearch, setfromoptions, PetscOptionsObject); in SNESLineSearchSetFromOptions()
875 PetscCall(PetscObjectProcessOptionsHandlers((PetscObject)linesearch, PetscOptionsObject)); in SNESLineSearchSetFromOptions()
893 PetscErrorCode SNESLineSearchView(SNESLineSearch linesearch, PetscViewer viewer) in SNESLineSearchView() argument
898 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchView()
899 …if (!viewer) PetscCall(PetscViewerASCIIGetStdout(PetscObjectComm((PetscObject)linesearch), &viewer… in SNESLineSearchView()
901 PetscCheckSameComm(linesearch, 1, viewer, 2); in SNESLineSearchView()
905 PetscCall(PetscObjectPrintClassNamePrefixType((PetscObject)linesearch, viewer)); in SNESLineSearchView()
907 PetscTryTypeMethod(linesearch, view, viewer); in SNESLineSearchView()
909 …rintf(viewer, " maxlambda=%e, minlambda=%e\n", (double)linesearch->maxlambda, (double)linesearch-… in SNESLineSearchView()
910 …ative=%e, absolute=%e, lambda=%e\n", (double)linesearch->rtol, (double)linesearch->atol, (double)l… in SNESLineSearchView()
911 …PetscCall(PetscViewerASCIIPrintf(viewer, " maximum iterations=%" PetscInt_FMT "\n", linesearch->m… in SNESLineSearchView()
912 if (linesearch->ops->precheck) { in SNESLineSearchView()
913 if (linesearch->ops->precheck == SNESLineSearchPreCheckPicard) { in SNESLineSearchView()
919 …if (linesearch->ops->postcheck) PetscCall(PetscViewerASCIIPrintf(viewer, " using user-defined pos… in SNESLineSearchView()
939 PetscErrorCode SNESLineSearchGetType(SNESLineSearch linesearch, SNESLineSearchType *type) in SNESLineSearchGetType() argument
942 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchGetType()
944 *type = ((PetscObject)linesearch)->type_name; in SNESLineSearchGetType()
968 PetscErrorCode SNESLineSearchSetType(SNESLineSearch linesearch, SNESLineSearchType type) in SNESLineSearchSetType() argument
974 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchSetType()
977 PetscCall(PetscObjectTypeCompare((PetscObject)linesearch, type, &match)); in SNESLineSearchSetType()
981 …PetscCheck(r, PetscObjectComm((PetscObject)linesearch), PETSC_ERR_ARG_UNKNOWN_TYPE, "Unable to fin… in SNESLineSearchSetType()
983 PetscTryTypeMethod(linesearch, destroy); in SNESLineSearchSetType()
984 linesearch->ops->destroy = NULL; in SNESLineSearchSetType()
986 linesearch->ops->apply = NULL; in SNESLineSearchSetType()
987 linesearch->ops->view = NULL; in SNESLineSearchSetType()
988 linesearch->ops->setfromoptions = NULL; in SNESLineSearchSetType()
989 linesearch->ops->destroy = NULL; in SNESLineSearchSetType()
991 PetscCall(PetscObjectChangeTypeName((PetscObject)linesearch, type)); in SNESLineSearchSetType()
992 PetscCall((*r)(linesearch)); in SNESLineSearchSetType()
1012 PetscErrorCode SNESLineSearchSetSNES(SNESLineSearch linesearch, SNES snes) in SNESLineSearchSetSNES() argument
1015 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchSetSNES()
1017 linesearch->snes = snes; in SNESLineSearchSetSNES()
1036 PetscErrorCode SNESLineSearchGetSNES(SNESLineSearch linesearch, SNES *snes) in SNESLineSearchGetSNES() argument
1039 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchGetSNES()
1041 *snes = linesearch->snes; in SNESLineSearchGetSNES()
1066 PetscErrorCode SNESLineSearchGetLambda(SNESLineSearch linesearch, PetscReal *lambda) in SNESLineSearchGetLambda() argument
1069 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchGetLambda()
1071 *lambda = linesearch->lambda; in SNESLineSearchGetLambda()
1092 PetscErrorCode SNESLineSearchSetLambda(SNESLineSearch linesearch, PetscReal lambda) in SNESLineSearchSetLambda() argument
1095 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchSetLambda()
1096 linesearch->lambda = lambda; in SNESLineSearchSetLambda()
1124 PetscErrorCode SNESLineSearchGetTolerances(SNESLineSearch linesearch, PetscReal *minlambda, PetscRe… in SNESLineSearchGetTolerances() argument
1127 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchGetTolerances()
1130 *minlambda = linesearch->minlambda; in SNESLineSearchGetTolerances()
1134 *maxlambda = linesearch->maxlambda; in SNESLineSearchGetTolerances()
1138 *rtol = linesearch->rtol; in SNESLineSearchGetTolerances()
1142 *atol = linesearch->atol; in SNESLineSearchGetTolerances()
1146 *ltol = linesearch->ltol; in SNESLineSearchGetTolerances()
1150 *max_it = linesearch->max_it; in SNESLineSearchGetTolerances()
1184 PetscErrorCode SNESLineSearchSetTolerances(SNESLineSearch linesearch, PetscReal minlambda, PetscRea… in SNESLineSearchSetTolerances() argument
1187 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchSetTolerances()
1188 PetscValidLogicalCollectiveReal(linesearch, minlambda, 2); in SNESLineSearchSetTolerances()
1189 PetscValidLogicalCollectiveReal(linesearch, maxlambda, 3); in SNESLineSearchSetTolerances()
1190 PetscValidLogicalCollectiveReal(linesearch, rtol, 4); in SNESLineSearchSetTolerances()
1191 PetscValidLogicalCollectiveReal(linesearch, atol, 5); in SNESLineSearchSetTolerances()
1192 PetscValidLogicalCollectiveReal(linesearch, ltol, 6); in SNESLineSearchSetTolerances()
1193 PetscValidLogicalCollectiveInt(linesearch, max_it, 7); in SNESLineSearchSetTolerances()
1196 …PetscCheck(minlambda >= 0.0, PetscObjectComm((PetscObject)linesearch), PETSC_ERR_ARG_OUTOFRANGE, "… in SNESLineSearchSetTolerances()
1197 …PetscCheck(minlambda < maxlambda, PetscObjectComm((PetscObject)linesearch), PETSC_ERR_ARG_OUTOFRAN… in SNESLineSearchSetTolerances()
1198 linesearch->minlambda = minlambda; in SNESLineSearchSetTolerances()
1202 …PetscCheck(maxlambda > 0.0, PetscObjectComm((PetscObject)linesearch), PETSC_ERR_ARG_OUTOFRANGE, "M… in SNESLineSearchSetTolerances()
1203 linesearch->maxlambda = maxlambda; in SNESLineSearchSetTolerances()
1207 …PetscCheck(rtol >= 0.0 && rtol < 1.0, PetscObjectComm((PetscObject)linesearch), PETSC_ERR_ARG_OUTO… in SNESLineSearchSetTolerances()
1208 linesearch->rtol = rtol; in SNESLineSearchSetTolerances()
1212 …PetscCheck(atol >= 0.0, PetscObjectComm((PetscObject)linesearch), PETSC_ERR_ARG_OUTOFRANGE, "Absol… in SNESLineSearchSetTolerances()
1213 linesearch->atol = atol; in SNESLineSearchSetTolerances()
1217 …PetscCheck(ltol >= 0.0, PetscObjectComm((PetscObject)linesearch), PETSC_ERR_ARG_OUTOFRANGE, "Lambd… in SNESLineSearchSetTolerances()
1218 linesearch->ltol = ltol; in SNESLineSearchSetTolerances()
1222 …PetscCheck(max_it >= 0, PetscObjectComm((PetscObject)linesearch), PETSC_ERR_ARG_OUTOFRANGE, "Maxim… in SNESLineSearchSetTolerances()
1223 linesearch->max_it = max_it; in SNESLineSearchSetTolerances()
1241 PetscErrorCode SNESLineSearchGetDamping(SNESLineSearch linesearch, PetscReal *damping) in SNESLineSearchGetDamping() argument
1244 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchGetDamping()
1246 *damping = linesearch->damping; in SNESLineSearchGetDamping()
1272 PetscErrorCode SNESLineSearchSetDamping(SNESLineSearch linesearch, PetscReal damping) in SNESLineSearchSetDamping() argument
1275 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchSetDamping()
1276 linesearch->damping = damping; in SNESLineSearchSetDamping()
1293 PetscErrorCode SNESLineSearchGetOrder(SNESLineSearch linesearch, PetscInt *order) in SNESLineSearchGetOrder() argument
1296 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchGetOrder()
1298 *order = linesearch->order; in SNESLineSearchGetOrder()
1324 PetscErrorCode SNESLineSearchSetOrder(SNESLineSearch linesearch, PetscInt order) in SNESLineSearchSetOrder() argument
1327 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchSetOrder()
1328 linesearch->order = order; in SNESLineSearchSetOrder()
1355 PetscErrorCode SNESLineSearchGetNorms(SNESLineSearch linesearch, PetscReal *xnorm, PetscReal *fnorm… in SNESLineSearchGetNorms() argument
1358 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchGetNorms()
1359 if (xnorm) *xnorm = linesearch->xnorm; in SNESLineSearchGetNorms()
1360 if (fnorm) *fnorm = linesearch->fnorm; in SNESLineSearchGetNorms()
1361 if (ynorm) *ynorm = linesearch->ynorm; in SNESLineSearchGetNorms()
1383 PetscErrorCode SNESLineSearchSetNorms(SNESLineSearch linesearch, PetscReal xnorm, PetscReal fnorm, … in SNESLineSearchSetNorms() argument
1386 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchSetNorms()
1387 linesearch->xnorm = xnorm; in SNESLineSearchSetNorms()
1388 linesearch->fnorm = fnorm; in SNESLineSearchSetNorms()
1389 linesearch->ynorm = ynorm; in SNESLineSearchSetNorms()
1409 PetscErrorCode SNESLineSearchComputeNorms(SNESLineSearch linesearch) in SNESLineSearchComputeNorms() argument
1414 if (linesearch->norms) { in SNESLineSearchComputeNorms()
1415 if (linesearch->ops->vinorm) { in SNESLineSearchComputeNorms()
1416 PetscCall(SNESLineSearchGetSNES(linesearch, &snes)); in SNESLineSearchComputeNorms()
1417 PetscCall(VecNorm(linesearch->vec_sol, NORM_2, &linesearch->xnorm)); in SNESLineSearchComputeNorms()
1418 PetscCall(VecNorm(linesearch->vec_update, NORM_2, &linesearch->ynorm)); in SNESLineSearchComputeNorms()
1419 …PetscCall((*linesearch->ops->vinorm)(snes, linesearch->vec_func, linesearch->vec_sol, &linesearch-… in SNESLineSearchComputeNorms()
1421 PetscCall(VecNormBegin(linesearch->vec_func, NORM_2, &linesearch->fnorm)); in SNESLineSearchComputeNorms()
1422 PetscCall(VecNormBegin(linesearch->vec_sol, NORM_2, &linesearch->xnorm)); in SNESLineSearchComputeNorms()
1423 PetscCall(VecNormBegin(linesearch->vec_update, NORM_2, &linesearch->ynorm)); in SNESLineSearchComputeNorms()
1424 PetscCall(VecNormEnd(linesearch->vec_func, NORM_2, &linesearch->fnorm)); in SNESLineSearchComputeNorms()
1425 PetscCall(VecNormEnd(linesearch->vec_sol, NORM_2, &linesearch->xnorm)); in SNESLineSearchComputeNorms()
1426 PetscCall(VecNormEnd(linesearch->vec_update, NORM_2, &linesearch->ynorm)); in SNESLineSearchComputeNorms()
1452 PetscErrorCode SNESLineSearchSetComputeNorms(SNESLineSearch linesearch, PetscBool flg) in SNESLineSearchSetComputeNorms() argument
1455 linesearch->norms = flg; in SNESLineSearchSetComputeNorms()
1486 PetscErrorCode SNESLineSearchGetVecs(SNESLineSearch linesearch, Vec *X, Vec *F, Vec *Y, Vec *W, Vec… in SNESLineSearchGetVecs() argument
1489 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchGetVecs()
1492 *X = linesearch->vec_sol; in SNESLineSearchGetVecs()
1496 *F = linesearch->vec_func; in SNESLineSearchGetVecs()
1500 *Y = linesearch->vec_update; in SNESLineSearchGetVecs()
1504 *W = linesearch->vec_sol_new; in SNESLineSearchGetVecs()
1508 *G = linesearch->vec_func_new; in SNESLineSearchGetVecs()
1530 PetscErrorCode SNESLineSearchSetVecs(SNESLineSearch linesearch, Vec X, Vec F, Vec Y, Vec W, Vec G) in SNESLineSearchSetVecs() argument
1533 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchSetVecs()
1536 linesearch->vec_sol = X; in SNESLineSearchSetVecs()
1540 linesearch->vec_func = F; in SNESLineSearchSetVecs()
1544 linesearch->vec_update = Y; in SNESLineSearchSetVecs()
1548 linesearch->vec_sol_new = W; in SNESLineSearchSetVecs()
1552 linesearch->vec_func_new = G; in SNESLineSearchSetVecs()
1575 PetscErrorCode SNESLineSearchAppendOptionsPrefix(SNESLineSearch linesearch, const char prefix[]) in SNESLineSearchAppendOptionsPrefix() argument
1578 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchAppendOptionsPrefix()
1579 PetscCall(PetscObjectAppendOptionsPrefix((PetscObject)linesearch, prefix)); in SNESLineSearchAppendOptionsPrefix()
1599 PetscErrorCode SNESLineSearchGetOptionsPrefix(SNESLineSearch linesearch, const char *prefix[]) in SNESLineSearchGetOptionsPrefix() argument
1602 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchGetOptionsPrefix()
1603 PetscCall(PetscObjectGetOptionsPrefix((PetscObject)linesearch, prefix)); in SNESLineSearchGetOptionsPrefix()
1621 PetscErrorCode SNESLineSearchSetWorkVecs(SNESLineSearch linesearch, PetscInt nwork) in SNESLineSearchSetWorkVecs() argument
1624 …PetscCheck(linesearch->vec_sol, PetscObjectComm((PetscObject)linesearch), PETSC_ERR_USER, "Cannot … in SNESLineSearchSetWorkVecs()
1625 PetscCall(VecDuplicateVecs(linesearch->vec_sol, nwork, &linesearch->work)); in SNESLineSearchSetWorkVecs()
1646 PetscErrorCode SNESLineSearchGetReason(SNESLineSearch linesearch, SNESLineSearchReason *reason) in SNESLineSearchGetReason() argument
1649 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchGetReason()
1651 *reason = linesearch->reason; in SNESLineSearchGetReason()
1674 PetscErrorCode SNESLineSearchSetReason(SNESLineSearch linesearch, SNESLineSearchReason reason) in SNESLineSearchSetReason() argument
1677 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchSetReason()
1678 linesearch->reason = reason; in SNESLineSearchSetReason()
1709 PetscErrorCode SNESLineSearchSetVIFunctions(SNESLineSearch linesearch, SNESLineSearchVIProjectFn *p… in SNESLineSearchSetVIFunctions() argument
1712 PetscValidHeaderSpecific(linesearch, SNESLINESEARCH_CLASSID, 1); in SNESLineSearchSetVIFunctions()
1713 if (projectfunc) linesearch->ops->viproject = projectfunc; in SNESLineSearchSetVIFunctions()
1714 if (normfunc) linesearch->ops->vinorm = normfunc; in SNESLineSearchSetVIFunctions()
1715 if (dirderivfunc) linesearch->ops->vidirderiv = dirderivfunc; in SNESLineSearchSetVIFunctions()
1737 PetscErrorCode SNESLineSearchGetVIFunctions(SNESLineSearch linesearch, SNESLineSearchVIProjectFn **… in SNESLineSearchGetVIFunctions() argument
1740 if (projectfunc) *projectfunc = linesearch->ops->viproject; in SNESLineSearchGetVIFunctions()
1741 if (normfunc) *normfunc = linesearch->ops->vinorm; in SNESLineSearchGetVIFunctions()
1742 if (dirderivfunc) *dirderivfunc = linesearch->ops->vidirderiv; in SNESLineSearchGetVIFunctions()