Lines Matching refs:user
61 AppCtx user; /* application context */ in main() local
73 PetscCall(InitializeProblem(&user)); /* sets up problem, function below */ in main()
77 PetscCall(TaoSetSolution(tao, user.x)); in main()
78 if (!user.noboundflag) PetscCall(TaoSetVariableBounds(tao, user.xl, user.xu)); in main()
79 PetscCall(TaoSetObjectiveAndGradient(tao, NULL, FormFunctionGradient, (void *)&user)); in main()
85 if (!user.noeqflag) { in main()
86 … PetscCall(TaoSetEqualityConstraintsRoutine(tao, user.ce, FormEqualityConstraints, (void *)&user)); in main()
87 …PetscCall(TaoSetJacobianEqualityRoutine(tao, user.Ae, user.Ae, FormEqualityJacobian, (void *)&user… in main()
89 …PetscCall(TaoSetInequalityConstraintsRoutine(tao, user.ci, FormInequalityConstraints, (void *)&use… in main()
90 …PetscCall(TaoSetJacobianInequalityRoutine(tao, user.Ai, user.Ai, FormInequalityJacobian, (void *)&… in main()
105 PetscCall(TaoSetHessian(tao, user.H, user.H, FormPDIPMHessian, (void *)&user)); in main()
109 if (user.initview) { in main()
111 PetscCall(VecDuplicate(user.x, &G)); in main()
112 PetscCall(FormFunctionGradient(tao, user.x, &f, G, (void *)&user)); in main()
113 if (pdipm) PetscCall(FormPDIPMHessian(tao, user.x, user.H, user.H, (void *)&user)); in main()
116 PetscCall(VecView(user.x, PETSC_VIEWER_STDOUT_WORLD)); in main()
120 if (pdipm) PetscCall(MatView(user.H, PETSC_VIEWER_STDOUT_WORLD)); in main()
122 PetscCall(FormInequalityJacobian(tao, user.x, user.Ai, user.Ai, (void *)&user)); in main()
123 PetscCall(MatCreateVecs(user.Ai, NULL, &CI)); in main()
124 PetscCall(FormInequalityConstraints(tao, user.x, CI, (void *)&user)); in main()
127 PetscCall(MatView(user.Ai, PETSC_VIEWER_STDOUT_WORLD)); in main()
129 if (!user.noeqflag) { in main()
130 PetscCall(FormEqualityJacobian(tao, user.x, user.Ae, user.Ae, (void *)&user)); in main()
131 PetscCall(MatCreateVecs(user.Ae, NULL, &CE)); in main()
132 PetscCall(FormEqualityConstraints(tao, user.x, CE, (void *)&user)); in main()
135 PetscCall(MatView(user.Ae, PETSC_VIEWER_STDOUT_WORLD)); in main()
148 PetscCall(DestroyProblem(&user)); in main()
154 PetscErrorCode InitializeProblem(AppCtx *user) in InitializeProblem() argument
163 user->noeqflag = PETSC_FALSE; in InitializeProblem()
164 user->noboundflag = PETSC_FALSE; in InitializeProblem()
165 PetscCall(PetscOptionsGetBool(NULL, NULL, "-no_eq", &user->noeqflag, NULL)); in InitializeProblem()
166 PetscCall(PetscOptionsGetBool(NULL, NULL, "-no_bound", &user->noboundflag, NULL)); in InitializeProblem()
167 user->initview = PETSC_FALSE; in InitializeProblem()
168 PetscCall(PetscOptionsGetBool(NULL, NULL, "-init_view", &user->initview, NULL)); in InitializeProblem()
171 if (!user->noeqflag) { in InitializeProblem()
175 …if (user->noboundflag) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Expected solution (-no_eq, -no_bou… in InitializeProblem()
180 user->n = 2; /* global length */ in InitializeProblem()
181 nloc = (size == 1) ? user->n : 1; in InitializeProblem()
182 PetscCall(VecCreate(PETSC_COMM_WORLD, &user->x)); in InitializeProblem()
183 PetscCall(VecSetSizes(user->x, nloc, user->n)); in InitializeProblem()
184 PetscCall(VecSetFromOptions(user->x)); in InitializeProblem()
185 PetscCall(VecSet(user->x, 0.0)); in InitializeProblem()
188 PetscCall(VecDuplicate(user->x, &user->xl)); in InitializeProblem()
189 PetscCall(VecDuplicate(user->x, &user->xu)); in InitializeProblem()
190 PetscCall(VecSet(user->xl, -1.0)); in InitializeProblem()
191 PetscCall(VecSet(user->xu, 2.0)); in InitializeProblem()
194 PetscCall(VecScatterCreateToZero(user->x, &user->scat, &user->Xseq)); in InitializeProblem()
196 user->ne = 1; in InitializeProblem()
197 user->ni = 2; in InitializeProblem()
198 neloc = (rank == 0) ? user->ne : 0; in InitializeProblem()
199 niloc = (size == 1) ? user->ni : 1; in InitializeProblem()
201 if (!user->noeqflag) { in InitializeProblem()
202 PetscCall(VecCreate(PETSC_COMM_WORLD, &user->ce)); /* a 1x1 vec for equality constraints */ in InitializeProblem()
203 PetscCall(VecSetSizes(user->ce, neloc, user->ne)); in InitializeProblem()
204 PetscCall(VecSetFromOptions(user->ce)); in InitializeProblem()
205 PetscCall(VecSetUp(user->ce)); in InitializeProblem()
208 PetscCall(VecCreate(PETSC_COMM_WORLD, &user->ci)); /* a 2x1 vec for inequality constraints */ in InitializeProblem()
209 PetscCall(VecSetSizes(user->ci, niloc, user->ni)); in InitializeProblem()
210 PetscCall(VecSetFromOptions(user->ci)); in InitializeProblem()
211 PetscCall(VecSetUp(user->ci)); in InitializeProblem()
214 if (!user->noeqflag) { in InitializeProblem()
215 PetscCall(MatCreate(PETSC_COMM_WORLD, &user->Ae)); in InitializeProblem()
216 PetscCall(MatSetSizes(user->Ae, neloc, nloc, user->ne, user->n)); in InitializeProblem()
217 PetscCall(MatSetFromOptions(user->Ae)); in InitializeProblem()
218 PetscCall(MatSetUp(user->Ae)); in InitializeProblem()
221 PetscCall(MatCreate(PETSC_COMM_WORLD, &user->Ai)); in InitializeProblem()
222 PetscCall(MatSetSizes(user->Ai, niloc, nloc, user->ni, user->n)); in InitializeProblem()
223 PetscCall(MatSetFromOptions(user->Ai)); in InitializeProblem()
224 PetscCall(MatSetUp(user->Ai)); in InitializeProblem()
226 PetscCall(MatCreate(PETSC_COMM_WORLD, &user->H)); in InitializeProblem()
227 PetscCall(MatSetSizes(user->H, nloc, nloc, user->n, user->n)); in InitializeProblem()
228 PetscCall(MatSetFromOptions(user->H)); in InitializeProblem()
229 PetscCall(MatSetUp(user->H)); in InitializeProblem()
233 PetscErrorCode DestroyProblem(AppCtx *user) in DestroyProblem() argument
236 if (!user->noeqflag) PetscCall(MatDestroy(&user->Ae)); in DestroyProblem()
237 PetscCall(MatDestroy(&user->Ai)); in DestroyProblem()
238 PetscCall(MatDestroy(&user->H)); in DestroyProblem()
240 PetscCall(VecDestroy(&user->x)); in DestroyProblem()
241 if (!user->noeqflag) PetscCall(VecDestroy(&user->ce)); in DestroyProblem()
242 PetscCall(VecDestroy(&user->ci)); in DestroyProblem()
243 PetscCall(VecDestroy(&user->xl)); in DestroyProblem()
244 PetscCall(VecDestroy(&user->xu)); in DestroyProblem()
245 PetscCall(VecDestroy(&user->Xseq)); in DestroyProblem()
246 PetscCall(VecScatterDestroy(&user->scat)); in DestroyProblem()
260 AppCtx *user = (AppCtx *)ctx; in FormFunctionGradient() local
261 Vec Xseq = user->Xseq; in FormFunctionGradient()
262 VecScatter scat = user->scat; in FormFunctionGradient()
295 AppCtx *user = (AppCtx *)ctx; in FormPDIPMHessian() local
312 if (!user->noeqflag) { in FormPDIPMHessian()
322 …if (!user->noeqflag) PetscCall(VecGetArrayRead(Deseq, &de)); /* places equality constraint dual in… in FormPDIPMHessian()
325 if (!user->noeqflag) { in FormPDIPMHessian()
338 if (!user->noeqflag) { in FormPDIPMHessian()
357 AppCtx *user = (AppCtx *)ctx; in FormInequalityConstraints() local
358 Vec Xseq = user->Xseq; in FormInequalityConstraints()
359 VecScatter scat = user->scat; in FormInequalityConstraints()
390 AppCtx *user = (AppCtx *)ctx; in FormEqualityConstraints() local
391 Vec Xseq = user->Xseq; in FormEqualityConstraints()
392 VecScatter scat = user->scat; in FormEqualityConstraints()
418 AppCtx *user = (AppCtx *)ctx; in FormInequalityJacobian() local
422 Vec Xseq = user->Xseq; in FormInequalityJacobian()
423 VecScatter scat = user->scat; in FormInequalityJacobian()