Lines Matching refs:user
53 AppCtx user; /* user-defined work context */ in main() local
65 PetscCall(InitializeUserData(&user)); in main()
68 PetscCall(VecCreateSeq(PETSC_COMM_SELF, user.N, &x)); in main()
69 PetscCall(VecCreateSeq(PETSC_COMM_SELF, user.M, &res)); in main()
72 PetscCall(FormStartingPoint(x, &user)); in main()
77 PetscCall(TaoSetVariableBounds(tao, user.xlb, user.xub)); in main()
80 PetscCall(TaoBRGNSetDictionaryMatrix(tao, user.D)); in main()
83 PetscCall(TaoSetResidualRoutine(tao, res, EvaluateResidual, (void *)&user)); in main()
85 PetscCall(TaoSetJacobianResidualRoutine(tao, user.A, user.A, EvaluateJacobian, (void *)&user)); in main()
88 …gularizerObjectiveAndGradientRoutine(tao, EvaluateRegularizerObjectiveAndGradient, (void *)&user)); in main()
91 PetscCall(MatSetSizes(Hreg, PETSC_DECIDE, PETSC_DECIDE, user.N, user.N)); in main()
95 …tscCall(TaoBRGNSetRegularizerHessianRoutine(tao, Hreg, EvaluateRegularizerHessian, (void *)&user)); in main()
111 PetscCall(VecAXPY(x, -1, user.xGT)); in main()
113 PetscCall(VecNorm(user.xGT, NORM_2, &v2)); in main()
124 PetscCall(MatDestroy(&user.A)); in main()
125 PetscCall(MatDestroy(&user.D)); in main()
126 PetscCall(VecDestroy(&user.b)); in main()
127 PetscCall(VecDestroy(&user.xGT)); in main()
128 PetscCall(VecDestroy(&user.xlb)); in main()
129 PetscCall(VecDestroy(&user.xub)); in main()
138 AppCtx *user = (AppCtx *)ptr; in EvaluateResidual() local
142 PetscCall(MatMult(user->A, X, F)); in EvaluateResidual()
143 PetscCall(VecAXPY(F, -1, user->b)); in EvaluateResidual()
144 PetscCall(PetscLogFlops(2.0 * user->M * user->N)); in EvaluateResidual()
184 PetscErrorCode FormStartingPoint(Vec X, AppCtx *user) in FormStartingPoint() argument
192 PetscErrorCode InitializeUserData(AppCtx *user) in InitializeUserData() argument
212 PetscCall(MatCreate(PETSC_COMM_WORLD, &user->A)); in InitializeUserData()
213 PetscCall(MatSetType(user->A, MATSEQAIJ)); in InitializeUserData()
214 PetscCall(MatLoad(user->A, fd)); in InitializeUserData()
215 PetscCall(VecCreate(PETSC_COMM_WORLD, &user->b)); in InitializeUserData()
216 PetscCall(VecLoad(user->b, fd)); in InitializeUserData()
217 PetscCall(VecCreate(PETSC_COMM_WORLD, &user->xGT)); in InitializeUserData()
218 PetscCall(VecLoad(user->xGT, fd)); in InitializeUserData()
220 PetscCall(VecDuplicate(user->xGT, &user->xlb)); in InitializeUserData()
221 PetscCall(VecSet(user->xlb, 0.0)); in InitializeUserData()
222 PetscCall(VecDuplicate(user->xGT, &user->xub)); in InitializeUserData()
223 PetscCall(VecSet(user->xub, PETSC_INFINITY)); in InitializeUserData()
226 PetscCall(MatGetSize(user->A, &user->M, &user->N)); in InitializeUserData()
239 user->K = user->N; in InitializeUserData()
242 user->K = user->N - 1; in InitializeUserData()
246 PetscCall(MatCreate(PETSC_COMM_SELF, &user->D)); in InitializeUserData()
247 PetscCall(MatSetSizes(user->D, PETSC_DECIDE, PETSC_DECIDE, user->K, user->N)); in InitializeUserData()
248 PetscCall(MatSetFromOptions(user->D)); in InitializeUserData()
249 PetscCall(MatSetUp(user->D)); in InitializeUserData()
254 for (k = 0; k < user->K; k++) { in InitializeUserData()
256 PetscCall(MatSetValues(user->D, 1, &k, 1, &k, &v, INSERT_VALUES)); in InitializeUserData()
260 for (k = 0; k < user->K; k++) { in InitializeUserData()
263 PetscCall(MatSetValues(user->D, 1, &k, 1, &n, &v, INSERT_VALUES)); in InitializeUserData()
265 PetscCall(MatSetValues(user->D, 1, &k, 1, &k, &v, INSERT_VALUES)); in InitializeUserData()
269 PetscCall(MatAssemblyBegin(user->D, MAT_FINAL_ASSEMBLY)); in InitializeUserData()
270 PetscCall(MatAssemblyEnd(user->D, MAT_FINAL_ASSEMBLY)); in InitializeUserData()