Lines Matching refs:ierr
61 subroutine MyObjective(snes, x, result, ctx, ierr) argument
65 PetscErrorCode ierr
69 PetscCall(VecDuplicate(x, f, ierr))
70 PetscCall(SNESComputeFunction(snes, x, f, ierr))
71 PetscCall(VecNorm(f, NORM_2, fnorm, ierr))
73 PetscCall(VecDestroy(f, ierr))
94 subroutine FormInitialGuess(mysnes, Xnest, ierr) argument
98 PetscErrorCode ierr
108 ierr = 0
109 PetscCall(SNESGetApplicationContext(mysnes, solver, ierr))
110 … PetscCall(DMCompositeGetAccessArray(solver%da, Xnest, itwo, PETSC_NULL_INTEGER_ARRAY, Xsub, ierr))
112 PetscCall(InitialGuessLocal(solver, Xsub(1), ierr))
113 PetscCall(VecAssemblyBegin(Xsub(1), ierr))
114 PetscCall(VecAssemblyEnd(Xsub(1), ierr))
117 PetscCall(VecZeroEntries(Xsub(2), ierr))
118 …scCall(DMCompositeRestoreAccessArray(solver%da, Xnest, itwo, PETSC_NULL_INTEGER_ARRAY, Xsub, ierr))
137 subroutine InitialGuessLocal(solver, X1, ierr) argument
141 PetscErrorCode ierr
150 ierr = 0
156 PetscCall(VecGetOwnershipRange(X1, low, high, ierr))
167 PetscCall(VecSetValues(X1, ione, [row], [v], INSERT_VALUES, ierr))
185 subroutine FormJacobian(dummy, X, jac, jac_prec, solver, ierr) argument
191 PetscErrorCode ierr
200 PetscCall(DMCompositeGetAccessArray(solver%da, X, ione, PETSC_NULL_INTEGER_ARRAY, Xsub, ierr))
203 …PetscCall(MatCreateSubMatrix(jac_prec, solver%isPhi, solver%isPhi, MAT_INITIAL_MATRIX, Amat, ierr))
205 PetscCall(FormJacobianLocal(Xsub(1), Amat, solver, .true., ierr))
206 PetscCall(MatDestroy(Amat, ierr)) ! discard our reference
207 … PetscCall(DMCompositeRestoreAccessArray(solver%da, X, ione, PETSC_NULL_INTEGER_ARRAY, Xsub, ierr))
210 PetscCall(MatAssemblyBegin(jac_prec, MAT_FINAL_ASSEMBLY, ierr))
211 PetscCall(MatAssemblyEnd(jac_prec, MAT_FINAL_ASSEMBLY, ierr))
213 PetscCall(MatAssemblyBegin(jac, MAT_FINAL_ASSEMBLY, ierr))
214 PetscCall(MatAssemblyEnd(jac, MAT_FINAL_ASSEMBLY, ierr))
219 PetscCall(MatSetOption(jac_prec, MAT_NEW_NONZERO_LOCATION_ERR, PETSC_TRUE, ierr))
238 subroutine FormJacobianLocal(X1, jac, solver, add_nl_term, ierr) argument
244 PetscErrorCode ierr
264 PetscCall(VecGetOwnershipRange(X1, low, high, ierr))
265 PetscCall(VecGetArrayRead(X1, lx_v, ierr))
277 PetscCall(MatSetValues(jac, ione, row, ione, col, v, INSERT_VALUES, ierr))
296 PetscCall(MatSetValues(jac, ione, row, ifive, col, v, INSERT_VALUES, ierr))
300 PetscCall(VecRestoreArrayRead(X1, lx_v, ierr))
317 subroutine FormFunction(snesIn, X, F, solver, ierr) argument
321 PetscErrorCode ierr
334 PetscCall(DMCompositeGetAccessArray(solver%da, X, itwo, PETSC_NULL_INTEGER_ARRAY, Xsub, ierr))
335 PetscCall(DMCompositeGetAccessArray(solver%da, F, itwo, PETSC_NULL_INTEGER_ARRAY, Fsub, ierr))
337 PetscCall(FormFunctionNLTerm(Xsub(1), Fsub(1), solver, ierr))
338 PetscCall(MatMultAdd(solver%AmatLin, Xsub(1), Fsub(1), Fsub(1), ierr))
341 PetscCall(MatMult(solver%Cmat, Xsub(1), Fsub(2), ierr))
342 PetscCall(MatMultAdd(solver%Bmat, Xsub(2), Fsub(1), Fsub(1), ierr))
343 PetscCall(MatMultAdd(solver%Dmat, Xsub(2), Fsub(2), Fsub(2), ierr))
345 … PetscCall(DMCompositeRestoreAccessArray(solver%da, X, itwo, PETSC_NULL_INTEGER_ARRAY, Xsub, ierr))
346 … PetscCall(DMCompositeRestoreAccessArray(solver%da, F, itwo, PETSC_NULL_INTEGER_ARRAY, Fsub, ierr))
364 subroutine FormFunctionNLTerm(X1, F1, solver, ierr) argument
368 PetscErrorCode ierr
378 PetscCall(VecGetArrayRead(X1, lx_v, ierr))
379 PetscCall(VecGetOwnershipRange(X1, low, high, ierr))
394 PetscCall(VecSetValues(F1, ione, row, v, INSERT_VALUES, ierr))
397 PetscCall(VecRestoreArrayRead(X1, lx_v, ierr))
399 PetscCall(VecAssemblyBegin(F1, ierr))
400 PetscCall(VecAssemblyEnd(F1, ierr))
402 ierr = 0
428 PetscErrorCode ierr
441 PetscCallA(PetscInitialize(ierr))
442 PetscCallMPIA(MPI_Comm_rank(PETSC_COMM_WORLD, solver%rank, ierr))
452 …lA(PetscOptionsGetReal(PETSC_NULL_OPTIONS, PETSC_NULL_CHARACTER, '-par', solver%lambda, flg, ierr))
454 …tscOptionsGetBool(PETSC_NULL_OPTIONS, PETSC_NULL_CHARACTER, '-objective', useobjective, flg, ierr))
461 …DECIDE, PETSC_DECIDE, ione, ione, PETSC_NULL_INTEGER_ARRAY, PETSC_NULL_INTEGER_ARRAY, daphi, ierr))
462 PetscCallA(DMSetFromOptions(daphi, ierr))
463 PetscCallA(DMSetUp(daphi, ierr))
464 …NDARYTYPE, PETSC_NULL_DMBOUNDARYTYPE, PETSC_NULL_DMBOUNDARYTYPE, PETSC_NULL_DMDASTENCILTYPE, ierr))
468 …A(PetscOptionsGetBool(PETSC_NULL_OPTIONS, PETSC_NULL_CHARACTER, '-no_constraints', flg, flg, ierr))
473 PetscCallA(DMDestroy(daphi, ierr))
478 PetscCallA(DMShellCreate(PETSC_COMM_WORLD, daphi, ierr))
479 PetscCallA(DMSetOptionsPrefix(daphi, 'phi_', ierr))
480 PetscCallA(DMSetFromOptions(daphi, ierr))
482 PetscCallA(VecCreate(PETSC_COMM_WORLD, x1, ierr))
483 PetscCallA(VecSetSizes(x1, PETSC_DECIDE, N1, ierr))
484 PetscCallA(VecSetFromOptions(x1, ierr))
486 PetscCallA(VecGetOwnershipRange(x1, low, high, ierr))
489 PetscCallA(MatCreate(PETSC_COMM_WORLD, Amat, ierr))
490 PetscCallA(MatSetSizes(Amat, PETSC_DECIDE, PETSC_DECIDE, N1, N1, ierr))
491 PetscCallA(MatSetUp(Amat, ierr))
493 PetscCallA(MatCreate(PETSC_COMM_WORLD, solver%AmatLin, ierr))
494 PetscCallA(MatSetSizes(solver%AmatLin, PETSC_DECIDE, PETSC_DECIDE, N1, N1, ierr))
495 PetscCallA(MatSetUp(solver%AmatLin, ierr))
497 PetscCallA(FormJacobianLocal(x1, solver%AmatLin, solver, .false., ierr))
498 PetscCallA(MatAssemblyBegin(solver%AmatLin, MAT_FINAL_ASSEMBLY, ierr))
499 PetscCallA(MatAssemblyEnd(solver%AmatLin, MAT_FINAL_ASSEMBLY, ierr))
501 PetscCallA(DMShellSetGlobalVector(daphi, x1, ierr))
502 PetscCallA(DMShellSetMatrix(daphi, Amat, ierr))
504 PetscCallA(VecCreate(PETSC_COMM_SELF, x1loc, ierr))
505 PetscCallA(VecSetSizes(x1loc, nloc, nloc, ierr))
506 PetscCallA(VecSetFromOptions(x1loc, ierr))
507 PetscCallA(DMShellSetLocalVector(daphi, x1loc, ierr))
512 PetscCallA(MatCreate(PETSC_COMM_WORLD, Cmat, ierr))
513 PetscCallA(MatSetSizes(Cmat, PETSC_DECIDE, PETSC_DECIDE, N2, N1, ierr))
514 PetscCallA(MatSetUp(Cmat, ierr))
516 PetscCallA(MatCreate(PETSC_COMM_WORLD, Bmat, ierr))
517 PetscCallA(MatSetSizes(Bmat, PETSC_DECIDE, PETSC_DECIDE, N1, N2, ierr))
518 PetscCallA(MatSetUp(Bmat, ierr))
520 PetscCallA(MatCreate(PETSC_COMM_WORLD, Dmat, ierr))
521 PetscCallA(MatSetSizes(Dmat, PETSC_DECIDE, PETSC_DECIDE, N2, N2, ierr))
522 PetscCallA(MatSetUp(Dmat, ierr))
524 PetscCallA(VecCreate(PETSC_COMM_WORLD, x2, ierr))
525 PetscCallA(VecSetSizes(x2, PETSC_DECIDE, N2, ierr))
526 PetscCallA(VecSetFromOptions(x2, ierr))
528 PetscCallA(VecGetOwnershipRange(x2, lamlow, lamhigh, ierr))
547 PetscCallA(MatSetValues(Bmat, ione, row, ione, col, bval, INSERT_VALUES, ierr))
550 PetscCallA(MatSetValues(Cmat, ione, row, ione, row, cval, INSERT_VALUES, ierr))
553 PetscCallA(MatAssemblyBegin(Bmat, MAT_FINAL_ASSEMBLY, ierr))
554 PetscCallA(MatAssemblyEnd(Bmat, MAT_FINAL_ASSEMBLY, ierr))
555 PetscCallA(MatAssemblyBegin(Cmat, MAT_FINAL_ASSEMBLY, ierr))
556 PetscCallA(MatAssemblyEnd(Cmat, MAT_FINAL_ASSEMBLY, ierr))
564 PetscCallA(MatSetValues(Dmat, ione, row, ione, row, cval, INSERT_VALUES, ierr))
566 PetscCallA(MatAssemblyBegin(Dmat, MAT_FINAL_ASSEMBLY, ierr))
567 PetscCallA(MatAssemblyEnd(Dmat, MAT_FINAL_ASSEMBLY, ierr))
572 PetscCallA(DMShellCreate(PETSC_COMM_WORLD, dalam, ierr))
573 PetscCallA(DMShellSetGlobalVector(dalam, x2, ierr))
574 PetscCallA(DMShellSetMatrix(dalam, Dmat, ierr))
576 PetscCallA(VecCreate(PETSC_COMM_SELF, x2loc, ierr))
577 PetscCallA(VecSetSizes(x2loc, nloclam, nloclam, ierr))
578 PetscCallA(VecSetFromOptions(x2loc, ierr))
579 PetscCallA(DMShellSetLocalVector(dalam, x2loc, ierr))
581 PetscCallA(DMSetOptionsPrefix(dalam, 'lambda_', ierr))
582 PetscCallA(DMSetFromOptions(dalam, ierr))
586 PetscCallA(DMCompositeCreate(PETSC_COMM_WORLD, solver%da, ierr))
587 PetscCallA(DMCompositeAddDM(solver%da, daphi, ierr))
588 PetscCallA(DMCompositeAddDM(solver%da, dalam, ierr))
589 PetscCallA(DMSetFromOptions(solver%da, ierr))
590 PetscCallA(DMSetUp(solver%da, ierr))
591 PetscCallA(DMCompositeGetGlobalISs(solver%da, isglobal, ierr))
593 PetscCallA(PetscObjectReference(solver%isPhi, ierr))
595 PetscCallA(PetscObjectReference(solver%isLambda, ierr))
608 …PetscCallA(MatCreateNest(PETSC_COMM_WORLD, itwo, isglobal, itwo, isglobal, matArray, KKTmat, ierr))
609 PetscCallA(DMCompositeRestoreGlobalISs(solver%da, isglobal, ierr))
610 PetscCallA(MatSetFromOptions(KKTmat, ierr))
614 PetscCallA(MatCreateVecs(KKTmat, x, PETSC_NULL_VEC, ierr))
615 PetscCallA(VecDuplicate(x, r, ierr))
617 PetscCallA(SNESCreate(PETSC_COMM_WORLD, mysnes, ierr))
619 PetscCallA(SNESSetDM(mysnes, solver%da, ierr))
621 PetscCallA(SNESSetApplicationContext(mysnes, solver, ierr))
623 PetscCallA(SNESSetDM(mysnes, solver%da, ierr))
626 PetscCallA(SNESSetFunction(mysnes, r, FormFunction, solver, ierr))
628 PetscCallA(SNESSetObjective(mysnes, MyObjective, solver, ierr))
630 PetscCallA(SNESSetJacobian(mysnes, KKTmat, KKTmat, FormJacobian, solver, ierr))
636 PetscCallA(SNESSetFromOptions(mysnes, ierr))
646 PetscCallA(FormInitialGuess(mysnes, x, ierr))
647 PetscCallA(SNESSolve(mysnes, PETSC_NULL_VEC, x, ierr))
648 PetscCallA(SNESGetIterationNumber(mysnes, its, ierr))
658 PetscCallA(MatDestroy(KKTmat, ierr))
659 PetscCallA(MatDestroy(Amat, ierr))
660 PetscCallA(MatDestroy(Dmat, ierr))
661 PetscCallA(MatDestroy(Bmat, ierr))
662 PetscCallA(MatDestroy(Cmat, ierr))
663 PetscCallA(MatDestroy(solver%AmatLin, ierr))
664 PetscCallA(ISDestroy(solver%isPhi, ierr))
665 PetscCallA(ISDestroy(solver%isLambda, ierr))
666 PetscCallA(VecDestroy(x, ierr))
667 PetscCallA(VecDestroy(x2, ierr))
668 PetscCallA(VecDestroy(x1, ierr))
669 PetscCallA(VecDestroy(x1loc, ierr))
670 PetscCallA(VecDestroy(x2loc, ierr))
671 PetscCallA(VecDestroy(r, ierr))
672 PetscCallA(SNESDestroy(mysnes, ierr))
673 PetscCallA(DMDestroy(solver%da, ierr))
674 PetscCallA(DMDestroy(daphi, ierr))
675 PetscCallA(DMDestroy(dalam, ierr))
677 PetscCallA(PetscFinalize(ierr))