Lines Matching refs:subsnes

6   SNES       *subsnes;       /* nonlinear solvers for each subdomain */  member
45 if (nasm->subsnes) PetscCall(SNESDestroy(&nasm->subsnes[i])); in SNESReset_NASM()
59 PetscCall(PetscFree(nasm->subsnes)); in SNESReset_NASM()
107 if (!nasm->subsnes) { in SNESSetUp_NASM()
118 PetscCall(PetscMalloc1(nasm->n, &nasm->subsnes)); in SNESSetUp_NASM()
120 PetscCall(SNESCreate(PetscObjectComm((PetscObject)subdms[i]), &nasm->subsnes[i])); in SNESSetUp_NASM()
121 … PetscCall(PetscObjectIncrementTabLevel((PetscObject)nasm->subsnes[i], (PetscObject)snes, 1)); in SNESSetUp_NASM()
122 PetscCall(SNESAppendOptionsPrefix(nasm->subsnes[i], optionsprefix)); in SNESSetUp_NASM()
123 PetscCall(SNESAppendOptionsPrefix(nasm->subsnes[i], "sub_")); in SNESSetUp_NASM()
124 PetscCall(SNESSetDM(nasm->subsnes[i], subdms[i])); in SNESSetUp_NASM()
126 …PetscCall(SNESSetComputeApplicationContext(nasm->subsnes[i], snes->ops->ctxcompute, snes->ops->ctx… in SNESSetUp_NASM()
131 PetscCall(SNESSetApplicationContext(nasm->subsnes[i], ctx)); in SNESSetUp_NASM()
133 PetscCall(SNESSetFromOptions(nasm->subsnes[i])); in SNESSetUp_NASM()
146 PetscCall(SNESGetFunction(nasm->subsnes[i], &F, NULL, NULL)); in SNESSetUp_NASM()
151 PetscCall(SNESGetDM(nasm->subsnes[i], &subdm)); in SNESSetUp_NASM()
159 for (i = 0; i < nasm->n; i++) PetscCall(SNESSetUpMatrices(nasm->subsnes[i])); in SNESSetUp_NASM()
212 if (nasm->subsnes) { in SNESView_NASM()
220 PetscCall(SNESView(nasm->subsnes[0], sviewer)); in SNESView_NASM()
239 PetscCall(SNESView(nasm->subsnes[i], sviewer)); in SNESView_NASM()
248 if (nasm->subsnes && rank == 0) PetscCall(SNESView(nasm->subsnes[0], sviewer)); in SNESView_NASM()
335 PetscErrorCode SNESNASMSetSubdomains(SNES snes, PetscInt n, SNES subsnes[], VecScatter iscatter[], … in SNESNASMSetSubdomains() argument
341 if (f) PetscCall((f)(snes, n, subsnes, iscatter, oscatter, gscatter)); in SNESNASMSetSubdomains()
345 static PetscErrorCode SNESNASMSetSubdomains_NASM(SNES snes, PetscInt n, SNES subsnes[], VecScatter … in SNESNASMSetSubdomains_NASM() argument
383 if (subsnes) { in SNESNASMSetSubdomains_NASM()
384 PetscCall(PetscMalloc1(n, &nasm->subsnes)); in SNESNASMSetSubdomains_NASM()
385 for (i = 0; i < n; i++) nasm->subsnes[i] = subsnes[i]; in SNESNASMSetSubdomains_NASM()
409 PetscErrorCode SNESNASMGetSubdomains(SNES snes, PetscInt *n, SNES *subsnes[], VecScatter *iscatter[… in SNESNASMGetSubdomains() argument
415 if (f) PetscCall((f)(snes, n, subsnes, iscatter, oscatter, gscatter)); in SNESNASMGetSubdomains()
419 static PetscErrorCode SNESNASMGetSubdomains_NASM(SNES snes, PetscInt *n, SNES *subsnes[], VecScatte… in SNESNASMGetSubdomains_NASM() argument
428 if (subsnes) *subsnes = nasm->subsnes; in SNESNASMGetSubdomains_NASM()
591 SNES subsnes; in SNESNASMSolveLocal_Private() local
629 subsnes = nasm->subsnes[i]; in SNESNASMSolveLocal_Private()
630 PetscCall(SNESGetDM(subsnes, &subdm)); in SNESNASMSolveLocal_Private()
642 PetscCall(SNESGetDM(subsnes, &subdm)); in SNESNASMSolveLocal_Private()
648 PetscCall(SNESSolve(subsnes, Bl, Xl)); in SNESNASMSolveLocal_Private()
672 SNES subsnes; in SNESNASMComputeFinalJacobian_Private() local
695 Fl = nasm->subsnes[i]->vec_func; in SNESNASMComputeFinalJacobian_Private()
698 subsnes = nasm->subsnes[i]; in SNESNASMComputeFinalJacobian_Private()
702 PetscCall(SNESGetDM(subsnes, &subdm)); in SNESNASMComputeFinalJacobian_Private()
708 if (subsnes->lagjacobian == -1) subsnes->lagjacobian = -2; in SNESNASMComputeFinalJacobian_Private()
709 else if (subsnes->lagjacobian > 1) lag = subsnes->lagjacobian; in SNESNASMComputeFinalJacobian_Private()
710 PetscCall(SNESComputeFunction(subsnes, Xl, Fl)); in SNESNASMComputeFinalJacobian_Private()
711 PetscCall(SNESComputeJacobian(subsnes, Xl, subsnes->jacobian, subsnes->jacobian_pre)); in SNESNASMComputeFinalJacobian_Private()
712 if (lag > 1) subsnes->lagjacobian = lag; in SNESNASMComputeFinalJacobian_Private()
840 nasm->subsnes = NULL; in SNESCreate_NASM()
903 PetscErrorCode SNESNASMGetSNES(SNES snes, PetscInt i, SNES *subsnes) in SNESNASMGetSNES() argument
909 *subsnes = nasm->subsnes[i]; in SNESNASMGetSNES()