Lines Matching refs:user
31 User user = (User)ctx; in IFunction() local
39 f[0] = user->c * xdot[0] - user->b * x[0]; in IFunction()
48 User user = (User)ctx; in IJacobian() local
55 J[0][0] = user->c * a - user->b * 1.0; in IJacobian()
70 User user = (User)ctx; in IJacobianP() local
80 if (user->der == 1) J[0][0] = xdot[0]; in IJacobianP()
81 if (user->der == 2) J[0][0] = -x[0]; in IJacobianP()
95 struct _n_User user; in main() local
104 user.a = 2.0; in main()
105 user.b = 4.0; in main()
106 user.c = 3.0; in main()
107 user.steps = 0; in main()
108 user.ftime = 1.0; in main()
109 user.der = 1; in main()
110 PetscCall(PetscOptionsGetInt(NULL, NULL, "-der", &user.der, NULL)); in main()
114 PetscCall(MatCreate(PETSC_COMM_WORLD, &user.Jac)); in main()
115 PetscCall(MatSetSizes(user.Jac, PETSC_DECIDE, PETSC_DECIDE, 1, 1)); in main()
116 PetscCall(MatSetFromOptions(user.Jac)); in main()
117 PetscCall(MatSetUp(user.Jac)); in main()
118 PetscCall(MatCreateVecs(user.Jac, &user.x, NULL)); in main()
122 PetscCall(TSSetIFunction(ts, NULL, IFunction, &user)); in main()
123 PetscCall(TSSetIJacobian(ts, user.Jac, user.Jac, IJacobian, &user)); in main()
125 PetscCall(TSSetMaxTime(ts, user.ftime)); in main()
127 PetscCall(VecGetArrayWrite(user.x, &x_ptr)); in main()
128 x_ptr[0] = user.a; in main()
129 PetscCall(VecRestoreArrayWrite(user.x, &x_ptr)); in main()
133 PetscCall(MatCreate(PETSC_COMM_WORLD, &user.Jacp)); in main()
134 PetscCall(MatSetSizes(user.Jacp, PETSC_DECIDE, PETSC_DECIDE, rows, cols)); in main()
135 PetscCall(MatSetFromOptions(user.Jacp)); in main()
136 PetscCall(MatSetUp(user.Jacp)); in main()
137 …PetscCall(MatCreateDense(PETSC_COMM_WORLD, PETSC_DECIDE, PETSC_DECIDE, rows, cols, NULL, &user.sp)… in main()
138 PetscCall(MatZeroEntries(user.sp)); in main()
139 PetscCall(TSForwardSetSensitivities(ts, cols, user.sp)); in main()
140 PetscCall(TSSetIJacobianP(ts, user.Jacp, IJacobianP, &user)); in main()
145 PetscCall(TSSolve(ts, user.x)); in main()
146 PetscCall(TSGetSolveTime(ts, &user.ftime)); in main()
147 PetscCall(TSGetStepNumber(ts, &user.steps)); in main()
148 PetscCall(VecGetArray(user.x, &x_ptr)); in main()
150 PetscCall(VecRestoreArray(user.x, &x_ptr)); in main()
151 …C_COMM_WORLD, "\n analytical solution %g\n", (double)(user.a * PetscExpReal(user.b / user.c * user… in main()
153 …user.der == 1) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "\n analytical derivative w.r.t. c %g\n", (… in main()
154 …user.der == 2) PetscCall(PetscPrintf(PETSC_COMM_WORLD, "\n analytical derivative w.r.t. b %g\n", (… in main()
156 PetscCall(MatView(user.sp, PETSC_VIEWER_STDOUT_WORLD)); in main()
158 PetscCall(MatCreateVecs(user.Jac, &user.lambda[0], NULL)); in main()
160 PetscCall(VecGetArrayWrite(user.lambda[0], &x_ptr)); in main()
162 PetscCall(VecRestoreArrayWrite(user.lambda[0], &x_ptr)); in main()
163 PetscCall(MatCreateVecs(user.Jacp, &user.mup[0], NULL)); in main()
164 PetscCall(VecGetArrayWrite(user.mup[0], &x_ptr)); in main()
166 PetscCall(VecRestoreArrayWrite(user.mup[0], &x_ptr)); in main()
168 PetscCall(TSSetCostGradients(ts, 1, user.lambda, user.mup)); in main()
172 PetscCall(VecView(user.mup[0], PETSC_VIEWER_STDOUT_WORLD)); in main()
174 PetscCall(MatDestroy(&user.Jac)); in main()
175 PetscCall(MatDestroy(&user.sp)); in main()
176 PetscCall(MatDestroy(&user.Jacp)); in main()
177 PetscCall(VecDestroy(&user.x)); in main()
178 PetscCall(VecDestroy(&user.lambda[0])); in main()
179 PetscCall(VecDestroy(&user.mup[0])); in main()