Lines Matching refs:W
274 static PetscErrorCode SNESNewtonTRDCPostCheck(SNES snes, Vec X, Vec Y, Vec W, PetscBool *changed_Y,… in SNESNewtonTRDCPostCheck() argument
282 PetscCall((*tr->postcheck)(snes, X, Y, W, changed_Y, changed_W, tr->postcheckctx)); in SNESNewtonTRDCPostCheck()
298 Vec X, F, Y, G, W, GradF, YNtmp; in SNESSolve_NEWTONTRDC() local
320 W = snes->work[2]; /* temporary vector */ in SNESSolve_NEWTONTRDC()
389 PetscCall(VecStrideSet(W, j, inorms[j])); in SNESSolve_NEWTONTRDC()
400 PetscCall(MatDiagonalScale(jac, NULL, W)); in SNESSolve_NEWTONTRDC()
413 PetscCall(MatMult(jac, GradF, W)); in SNESSolve_NEWTONTRDC()
414 PetscCall(VecDotRealPart(W, W, &gTBg)); /* completes GradF^T J^T J GradF */ in SNESSolve_NEWTONTRDC()
440 PetscCall(VecWAXPY(W, tau, YNtmp, YCtmp)); in SNESSolve_NEWTONTRDC()
441 PetscCall(VecAXPY(W, -tau, YCtmp)); in SNESSolve_NEWTONTRDC()
442 PetscCall(VecCopy(W, Y)); /* this could be improved */ in SNESSolve_NEWTONTRDC()
453 PetscCall(MatMult(jac, Y, W)); in SNESSolve_NEWTONTRDC()
454 PetscCall(VecDotRealPart(W, W, &yTHy)); /* completes GradY^T J^T J GradY */ in SNESSolve_NEWTONTRDC()
478 PetscCall(VecWAXPY(W, -1.0, Y, X)); in SNESSolve_NEWTONTRDC()
479 PetscCall(SNESNewtonTRDCPostCheck(snes, X, Y, W, &changed_y, &changed_w)); in SNESSolve_NEWTONTRDC()
480 if (changed_y) PetscCall(VecWAXPY(W, -1.0, Y, X)); in SNESSolve_NEWTONTRDC()
482 PetscCall(SNESComputeFunction(snes, W, G)); /* F(X-Y) = G */ in SNESSolve_NEWTONTRDC()
543 PetscCall(VecCopy(W, X)); in SNESSolve_NEWTONTRDC()