Lines Matching refs:user

60   AppCtx             user; /* application context */  in main()  local
67 PetscCall(PetscStrncpy(user.name, "HS21", sizeof(user.name))); in main()
68 PetscCall(PetscOptionsGetString(NULL, NULL, "-cutername", user.name, sizeof(user.name), &flg)); in main()
70 PetscCall(PetscPrintf(PETSC_COMM_WORLD, "\n---- MAROS Problem %s -----\n", user.name)); in main()
71 PetscCall(InitializeProblem(&user)); in main()
72 PetscCall(VecDuplicate(user.d, &x)); in main()
73 PetscCall(VecDuplicate(user.beq, &ceq)); in main()
74 PetscCall(VecDuplicate(user.bin, &cin)); in main()
80 PetscCall(TaoSetObjectiveAndGradient(tao, NULL, FormFunctionGradient, (void *)&user)); in main()
81 PetscCall(TaoSetEqualityConstraintsRoutine(tao, ceq, FormEqualityConstraints, (void *)&user)); in main()
82 PetscCall(TaoSetInequalityConstraintsRoutine(tao, cin, FormInequalityConstraints, (void *)&user)); in main()
83 PetscCall(TaoSetInequalityBounds(tao, user.bin, NULL)); in main()
84 …PetscCall(TaoSetJacobianEqualityRoutine(tao, user.Aeq, user.Aeq, FormEqualityJacobian, (void *)&us… in main()
85 …PetscCall(TaoSetJacobianInequalityRoutine(tao, user.Ain, user.Ain, FormInequalityJacobian, (void *… in main()
86 PetscCall(TaoSetHessian(tao, user.H, user.H, FormHessian, (void *)&user)); in main()
107 PetscCall(DestroyProblem(&user)); in main()
117 PetscErrorCode InitializeProblem(AppCtx *user) in InitializeProblem() argument
128 PetscCall(PetscStrncpy(filebase, user->name, sizeof(filebase))); in InitializeProblem()
134 PetscCall(VecCreate(comm, &user->d)); in InitializeProblem()
135 PetscCall(VecLoad(user->d, loader)); in InitializeProblem()
137 PetscCall(VecGetSize(user->d, &nrows)); in InitializeProblem()
138 PetscCall(VecSetFromOptions(user->d)); in InitializeProblem()
139 user->n = nrows; in InitializeProblem()
145 PetscCall(MatCreate(comm, &user->H)); in InitializeProblem()
146 PetscCall(MatSetSizes(user->H, PETSC_DECIDE, PETSC_DECIDE, nrows, nrows)); in InitializeProblem()
147 PetscCall(MatLoad(user->H, loader)); in InitializeProblem()
149 PetscCall(MatGetSize(user->H, &nrows, &ncols)); in InitializeProblem()
150 PetscCheck(nrows == user->n, comm, PETSC_ERR_ARG_SIZ, "H: nrows != n"); in InitializeProblem()
151 PetscCheck(ncols == user->n, comm, PETSC_ERR_ARG_SIZ, "H: ncols != n"); in InitializeProblem()
152 PetscCall(MatSetFromOptions(user->H)); in InitializeProblem()
157 PetscCall(MatCreate(comm, &user->Aeq)); in InitializeProblem()
158 PetscCall(MatLoad(user->Aeq, loader)); in InitializeProblem()
160 PetscCall(MatGetSize(user->Aeq, &nrows, &ncols)); in InitializeProblem()
161 PetscCheck(ncols == user->n, comm, PETSC_ERR_ARG_SIZ, "Aeq ncols != H nrows"); in InitializeProblem()
162 PetscCall(MatSetFromOptions(user->Aeq)); in InitializeProblem()
163 user->me = nrows; in InitializeProblem()
168 PetscCall(VecCreate(comm, &user->beq)); in InitializeProblem()
169 PetscCall(VecLoad(user->beq, loader)); in InitializeProblem()
171 PetscCall(VecGetSize(user->beq, &nrows)); in InitializeProblem()
172 PetscCheck(nrows == user->me, comm, PETSC_ERR_ARG_SIZ, "Aeq nrows != Beq n"); in InitializeProblem()
173 PetscCall(VecSetFromOptions(user->beq)); in InitializeProblem()
175 user->mi = user->n; in InitializeProblem()
177 PetscCall(MatCreate(comm, &user->Ain)); in InitializeProblem()
178 PetscCall(MatSetType(user->Ain, MATAIJ)); in InitializeProblem()
179 PetscCall(MatSetSizes(user->Ain, PETSC_DECIDE, PETSC_DECIDE, user->mi, user->mi)); in InitializeProblem()
181 PetscCall(MatMPIAIJSetPreallocation(user->Ain, 1, NULL, 0, NULL)); in InitializeProblem()
182 PetscCall(MatSeqAIJSetPreallocation(user->Ain, 1, NULL)); in InitializeProblem()
184 …for (i = 0; i < user->mi; i++) PetscCall(MatSetValues(user->Ain, 1, &i, 1, &i, &one, INSERT_VALUES… in InitializeProblem()
185 PetscCall(MatAssemblyBegin(user->Ain, MAT_FINAL_ASSEMBLY)); in InitializeProblem()
186 PetscCall(MatAssemblyEnd(user->Ain, MAT_FINAL_ASSEMBLY)); in InitializeProblem()
187 PetscCall(MatSetFromOptions(user->Ain)); in InitializeProblem()
190 PetscCall(VecCreate(comm, &user->bin)); in InitializeProblem()
191 PetscCall(VecSetType(user->bin, VECMPI)); in InitializeProblem()
192 PetscCall(VecSetSizes(user->bin, PETSC_DECIDE, user->mi)); in InitializeProblem()
193 PetscCall(VecSet(user->bin, 0.0)); in InitializeProblem()
194 PetscCall(VecSetFromOptions(user->bin)); in InitializeProblem()
195 user->m = user->me + user->mi; in InitializeProblem()
199 PetscErrorCode DestroyProblem(AppCtx *user) in DestroyProblem() argument
202 PetscCall(MatDestroy(&user->H)); in DestroyProblem()
203 PetscCall(MatDestroy(&user->Aeq)); in DestroyProblem()
204 PetscCall(MatDestroy(&user->Ain)); in DestroyProblem()
205 PetscCall(VecDestroy(&user->beq)); in DestroyProblem()
206 PetscCall(VecDestroy(&user->bin)); in DestroyProblem()
207 PetscCall(VecDestroy(&user->d)); in DestroyProblem()
213 AppCtx *user = (AppCtx *)ctx; in FormFunctionGradient() local
217 PetscCall(MatMult(user->H, x, g)); in FormFunctionGradient()
219 PetscCall(VecDot(x, user->d, f)); in FormFunctionGradient()
221 PetscCall(VecAXPY(g, 1.0, user->d)); in FormFunctionGradient()
233 AppCtx *user = (AppCtx *)ctx; in FormInequalityConstraints() local
236 PetscCall(MatMult(user->Ain, x, ci)); in FormInequalityConstraints()
242 AppCtx *user = (AppCtx *)ctx; in FormEqualityConstraints() local
245 PetscCall(MatMult(user->Aeq, x, ce)); in FormEqualityConstraints()
246 PetscCall(VecAXPY(ce, -1.0, user->beq)); in FormEqualityConstraints()