Lines Matching +full:- +full:j
6 …This example is taken from the book, Numerical Solution of Time-Dependent Advection-Diffusion-Reac…
7 W. Hundsdorf and J.G. Verwer, Page 21, Pattern Formation with Reaction-Diffusion Equations
9 u_t = D_1 (u_{xx} + u_{yy}) - u*v^2 + \gamma(1 -u) \\
10 v_t = D_2 (v_{xx} + v_{yy}) + u*v^2 - (\gamma + \kappa)v
17 RHSFunction - Evaluates nonlinear function, F(x).
20 . ts - the TS context
21 . X - input vector
22 . ptr - optional user-defined context, as set by TSSetRHSFunction()
25 . F - function vector
31 PetscInt i, j, Mx, My, xs, ys, xm, ym; in RHSFunction() local
47 Scatter ghost points to local vector,using the 2-step process in RHSFunction()
69 for (j = ys; j < ys + ym; j++) { in RHSFunction()
71 uc = u[j][i].u; in RHSFunction()
72 uxx = (-2.0 * uc + u[j][i - 1].u + u[j][i + 1].u) * sx; in RHSFunction()
73 uyy = (-2.0 * uc + u[j - 1][i].u + u[j + 1][i].u) * sy; in RHSFunction()
74 vc = u[j][i].v; in RHSFunction()
75 vxx = (-2.0 * vc + u[j][i - 1].v + u[j][i + 1].v) * sx; in RHSFunction()
76 vyy = (-2.0 * vc + u[j - 1][i].v + u[j + 1][i].v) * sy; in RHSFunction()
77 f[j][i].u = appctx->D1 * (uxx + uyy) - uc * vc * vc + appctx->gamma * (1.0 - uc); in RHSFunction()
78 f[j][i].v = appctx->D2 * (vxx + vyy) + uc * vc * vc - (appctx->gamma + appctx->kappa) * vc; in RHSFunction()
94 AppCtx *appctx = (AppCtx *)ctx; /* user-defined application context */ in RHSJacobian()
96 PetscInt i, j, Mx, My, xs, ys, xm, ym; in RHSJacobian() local
115 Scatter ghost points to local vector,using the 2-step process in RHSJacobian()
143 for (j = ys; j < ys + ym; j++) { in RHSJacobian()
144 stencil[0].j = j - 1; in RHSJacobian()
145 stencil[1].j = j + 1; in RHSJacobian()
146 stencil[2].j = j; in RHSJacobian()
147 stencil[3].j = j; in RHSJacobian()
148 stencil[4].j = j; in RHSJacobian()
149 stencil[5].j = j; in RHSJacobian()
151 rowstencil.j = j; in RHSJacobian()
153 uc = u[j][i].u; in RHSJacobian()
154 vc = u[j][i].v; in RHSJacobian()
156 /* uxx = (-2.0*uc + u[j][i-1].u + u[j][i+1].u)*sx; in RHSJacobian()
157 uyy = (-2.0*uc + u[j-1][i].u + u[j+1][i].u)*sy; in RHSJacobian()
159 vxx = (-2.0*vc + u[j][i-1].v + u[j][i+1].v)*sx; in RHSJacobian()
160 vyy = (-2.0*vc + u[j-1][i].v + u[j+1][i].v)*sy; in RHSJacobian()
161 f[j][i].u = appctx->D1*(uxx + uyy) - uc*vc*vc + appctx->gamma*(1.0 - uc);*/ in RHSJacobian()
165 entries[0] = appctx->D1 * sy; in RHSJacobian()
168 entries[1] = appctx->D1 * sy; in RHSJacobian()
169 stencil[2].i = i - 1; in RHSJacobian()
171 entries[2] = appctx->D1 * sx; in RHSJacobian()
174 entries[3] = appctx->D1 * sx; in RHSJacobian()
177 entries[4] = -2.0 * appctx->D1 * (sx + sy) - vc * vc - appctx->gamma; in RHSJacobian()
180 entries[5] = -2.0 * uc * vc; in RHSJacobian()
185 …if (appctx->aijpc) PetscCall(MatSetValuesStencil(BB, 1, &rowstencil, 6, stencil, entries, INSERT_V… in RHSJacobian()
187 entries[0] = appctx->D2 * sy; in RHSJacobian()
189 entries[1] = appctx->D2 * sy; in RHSJacobian()
191 entries[2] = appctx->D2 * sx; in RHSJacobian()
193 entries[3] = appctx->D2 * sx; in RHSJacobian()
195 entries[4] = -2.0 * appctx->D2 * (sx + sy) + 2.0 * uc * vc - appctx->gamma - appctx->kappa; in RHSJacobian()
201 …if (appctx->aijpc) PetscCall(MatSetValuesStencil(BB, 1, &rowstencil, 6, stencil, entries, INSERT_V… in RHSJacobian()
202 /* f[j][i].v = appctx->D2*(vxx + vyy) + uc*vc*vc - (appctx->gamma + appctx->kappa)*vc; */ in RHSJacobian()
215 if (appctx->aijpc) { in RHSJacobian()
224 IFunction - Evaluates implicit nonlinear function, xdot - F(x).
227 . ts - the TS context
228 . U - input vector
229 . Udot - input vector
230 . ptr - optional user-defined context, as set by TSSetRHSFunction()
233 . F - function vector
239 PetscInt i, j, Mx, My, xs, ys, xm, ym; in IFunction() local
255 Scatter ghost points to local vector,using the 2-step process in IFunction()
278 for (j = ys; j < ys + ym; j++) { in IFunction()
280 uc = u[j][i].u; in IFunction()
281 uxx = (-2.0 * uc + u[j][i - 1].u + u[j][i + 1].u) * sx; in IFunction()
282 uyy = (-2.0 * uc + u[j - 1][i].u + u[j + 1][i].u) * sy; in IFunction()
283 vc = u[j][i].v; in IFunction()
284 vxx = (-2.0 * vc + u[j][i - 1].v + u[j][i + 1].v) * sx; in IFunction()
285 vyy = (-2.0 * vc + u[j - 1][i].v + u[j + 1][i].v) * sy; in IFunction()
286 … f[j][i].u = udot[j][i].u - (appctx->D1 * (uxx + uyy) - uc * vc * vc + appctx->gamma * (1.0 - uc)); in IFunction()
287 …f[j][i].v = udot[j][i].v - (appctx->D2 * (vxx + vyy) + uc * vc * vc - (appctx->gamma + appctx->kap… in IFunction()
304 AppCtx *appctx = (AppCtx *)ctx; /* user-defined application context */ in IJacobian()
306 PetscInt i, j, Mx, My, xs, ys, xm, ym; in IJacobian() local
325 Scatter ghost points to local vector,using the 2-step process in IJacobian()
353 for (j = ys; j < ys + ym; j++) { in IJacobian()
354 stencil[0].j = j - 1; in IJacobian()
355 stencil[1].j = j + 1; in IJacobian()
356 stencil[2].j = j; in IJacobian()
357 stencil[3].j = j; in IJacobian()
358 stencil[4].j = j; in IJacobian()
359 stencil[5].j = j; in IJacobian()
361 rowstencil.j = j; in IJacobian()
363 uc = u[j][i].u; in IJacobian()
364 vc = u[j][i].v; in IJacobian()
366 /* uxx = (-2.0*uc + u[j][i-1].u + u[j][i+1].u)*sx; in IJacobian()
367 uyy = (-2.0*uc + u[j-1][i].u + u[j+1][i].u)*sy; in IJacobian()
369 vxx = (-2.0*vc + u[j][i-1].v + u[j][i+1].v)*sx; in IJacobian()
370 vyy = (-2.0*vc + u[j-1][i].v + u[j+1][i].v)*sy; in IJacobian()
371 f[j][i].u = appctx->D1*(uxx + uyy) - uc*vc*vc + appctx->gamma*(1.0 - uc);*/ in IJacobian()
375 entries[0] = -appctx->D1 * sy; in IJacobian()
378 entries[1] = -appctx->D1 * sy; in IJacobian()
379 stencil[2].i = i - 1; in IJacobian()
381 entries[2] = -appctx->D1 * sx; in IJacobian()
384 entries[3] = -appctx->D1 * sx; in IJacobian()
387 entries[4] = 2.0 * appctx->D1 * (sx + sy) + vc * vc + appctx->gamma + a; in IJacobian()
395 …if (appctx->aijpc) PetscCall(MatSetValuesStencil(BB, 1, &rowstencil, 6, stencil, entries, INSERT_V… in IJacobian()
397 entries[0] = -appctx->D2 * sy; in IJacobian()
399 entries[1] = -appctx->D2 * sy; in IJacobian()
401 entries[2] = -appctx->D2 * sx; in IJacobian()
403 entries[3] = -appctx->D2 * sx; in IJacobian()
405 … entries[4] = 2.0 * appctx->D2 * (sx + sy) - 2.0 * uc * vc + appctx->gamma + appctx->kappa + a; in IJacobian()
407 entries[5] = -vc * vc; in IJacobian()
411 …if (appctx->aijpc) PetscCall(MatSetValuesStencil(BB, 1, &rowstencil, 6, stencil, entries, INSERT_V… in IJacobian()
412 /* f[j][i].v = appctx->D2*(vxx + vyy) + uc*vc*vc - (appctx->gamma + appctx->kappa)*vc; */ in IJacobian()
425 if (appctx->aijpc) { in IJacobian()