Lines Matching refs:snes
7 static PetscErrorCode SNESSolve_KSPONLY(SNES snes) in SNESSolve_KSPONLY() argument
9 SNES_KSPONLY *ksponly = (SNES_KSPONLY *)snes->data; in SNESSolve_KSPONLY()
15 …snes->xl && !snes->xu && !snes->ops->computevariablebounds, PetscObjectComm((PetscObject)snes), PE… in SNESSolve_KSPONLY()
17 snes->numFailures = 0; in SNESSolve_KSPONLY()
18 snes->numLinearSolveFailures = 0; in SNESSolve_KSPONLY()
19 snes->reason = SNES_CONVERGED_ITERATING; in SNESSolve_KSPONLY()
20 snes->iter = 0; in SNESSolve_KSPONLY()
21 snes->norm = 0.0; in SNESSolve_KSPONLY()
23 X = snes->vec_sol; in SNESSolve_KSPONLY()
24 F = snes->vec_func; in SNESSolve_KSPONLY()
25 Y = snes->vec_sol_update; in SNESSolve_KSPONLY()
27 if (!snes->vec_func_init_set) PetscCall(SNESComputeFunction(snes, X, F)); in SNESSolve_KSPONLY()
28 else snes->vec_func_init_set = PETSC_FALSE; in SNESSolve_KSPONLY()
30 PetscCall(SNESGetNormSchedule(snes, &normschedule)); in SNESSolve_KSPONLY()
31 …if (snes->numbermonitors && (normschedule == SNES_NORM_ALWAYS || normschedule == SNES_NORM_INITIAL… in SNESSolve_KSPONLY()
34 SNESCheckFunctionDomainError(snes, fnorm); in SNESSolve_KSPONLY()
35 PetscCall(SNESMonitor(snes, 0, fnorm)); in SNESSolve_KSPONLY()
39 PetscTryTypeMethod(snes, update, 0); in SNESSolve_KSPONLY()
42 PetscCall(SNESComputeJacobian(snes, X, snes->jacobian, snes->jacobian_pre)); in SNESSolve_KSPONLY()
43 SNESCheckJacobianDomainError(snes); in SNESSolve_KSPONLY()
45 PetscCall(KSPSetOperators(snes->ksp, snes->jacobian, snes->jacobian_pre)); in SNESSolve_KSPONLY()
47 PetscCall(KSPSolveTranspose(snes->ksp, F, Y)); in SNESSolve_KSPONLY()
49 PetscCall(KSPSolve(snes->ksp, F, Y)); in SNESSolve_KSPONLY()
51 snes->reason = SNES_CONVERGED_ITS; in SNESSolve_KSPONLY()
52 SNESCheckKSPSolve(snes); in SNESSolve_KSPONLY()
54 PetscCall(KSPGetIterationNumber(snes->ksp, &lits)); in SNESSolve_KSPONLY()
55 …PetscCall(PetscInfo(snes, "iter=%" PetscInt_FMT ", linear solve iterations=%" PetscInt_FMT "\n", s… in SNESSolve_KSPONLY()
56 snes->iter++; in SNESSolve_KSPONLY()
61 …if (snes->numbermonitors && (normschedule == SNES_NORM_ALWAYS || normschedule == SNES_NORM_FINAL_O… in SNESSolve_KSPONLY()
63 PetscCall(SNESComputeFunction(snes, X, F)); in SNESSolve_KSPONLY()
65 SNESCheckFunctionDomainError(snes, fnorm); in SNESSolve_KSPONLY()
66 PetscCall(SNESMonitor(snes, 1, fnorm)); in SNESSolve_KSPONLY()
71 static PetscErrorCode SNESSetUp_KSPONLY(SNES snes) in SNESSetUp_KSPONLY() argument
74 PetscCall(SNESSetUpMatrices(snes)); in SNESSetUp_KSPONLY()
78 static PetscErrorCode SNESDestroy_KSPONLY(SNES snes) in SNESDestroy_KSPONLY() argument
81 PetscCall(PetscFree(snes->data)); in SNESDestroy_KSPONLY()
96 PETSC_EXTERN PetscErrorCode SNESCreate_KSPONLY(SNES snes) in SNESCreate_KSPONLY() argument
101 snes->ops->setup = SNESSetUp_KSPONLY; in SNESCreate_KSPONLY()
102 snes->ops->solve = SNESSolve_KSPONLY; in SNESCreate_KSPONLY()
103 snes->ops->destroy = SNESDestroy_KSPONLY; in SNESCreate_KSPONLY()
104 snes->ops->setfromoptions = NULL; in SNESCreate_KSPONLY()
105 snes->ops->view = NULL; in SNESCreate_KSPONLY()
106 snes->ops->reset = NULL; in SNESCreate_KSPONLY()
108 snes->usesksp = PETSC_TRUE; in SNESCreate_KSPONLY()
109 snes->usesnpc = PETSC_FALSE; in SNESCreate_KSPONLY()
111 snes->alwayscomputesfinalresidual = PETSC_FALSE; in SNESCreate_KSPONLY()
113 PetscCall(SNESParametersInitialize(snes)); in SNESCreate_KSPONLY()
116 snes->data = (void *)ksponly; in SNESCreate_KSPONLY()
131 PETSC_EXTERN PetscErrorCode SNESCreate_KSPTRANSPOSEONLY(SNES snes) in SNESCreate_KSPTRANSPOSEONLY() argument
136 PetscCall(SNESCreate_KSPONLY(snes)); in SNESCreate_KSPTRANSPOSEONLY()
137 PetscCall(PetscObjectChangeTypeName((PetscObject)snes, SNESKSPTRANSPOSEONLY)); in SNESCreate_KSPTRANSPOSEONLY()
138 kspo = (SNES_KSPONLY *)snes->data; in SNESCreate_KSPTRANSPOSEONLY()