Lines Matching refs:grd
34 subroutine GetGridInfo(da, grd, ierr)
37 type(gridinfo) grd
40 PetscCall(DMDAGetInfo(da, PETSC_NULL_INTEGER, grd%mx, grd%my, PETSC_NULL_INTEGER, PETSC_NULL_INTEGER, PETSC_NULL_INTEGER, PETSC_NULL_INTEGER, PETSC_NULL_INTEGER, PETSC_NULL_INTEGER, PETSC_NULL_INTEGER, PETSC_NULL_INTEGER, PETSC_NULL_INTEGER, PETSC_NULL_INTEGER, ierr))
41 PetscCall(DMDAGetCorners(da, grd%xs, grd%ys, PETSC_NULL_INTEGER, grd%xm, grd%ym, PETSC_NULL_INTEGER, ierr))
42 PetscCall(DMDAGetGhostCorners(da, grd%gxs, grd%gys, PETSC_NULL_INTEGER, grd%gxm, grd%gym, PETSC_NULL_INTEGER, ierr))
44 grd%xs = grd%xs + 1
45 grd%ys = grd%ys + 1
46 grd%gxs = grd%gxs + 1
47 grd%gys = grd%gys + 1
49 grd%ye = grd%ys + grd%ym - 1
50 grd%xe = grd%xs + grd%xm - 1
51 grd%gye = grd%gys + grd%gym - 1
52 grd%gxe = grd%gxs + grd%gxm - 1
56 subroutine InitGuessLocal(grd, x, lambda, ierr)
58 type(gridinfo) grd
59 PetscScalar x(grd%xs:grd%xe, grd%ys:grd%ye)
67 hx = one/(dble(grd%mx - 1))
68 hy = one/(dble(grd%my - 1))
71 do j = grd%ys, grd%ye
72 temp = dble(min(j - 1, grd%my - j))*hy
73 do i = grd%xs, grd%xe
74 if (i == 1 .or. j == 1 .or. i == grd%mx .or. j == grd%my) then
79 x(i, j) = temp1*sqrt(min(dble(min(i - 1, grd%mx - i)*hx), dble(temp)))
87 subroutine FunctionLocal(grd, x, f, lambda, ierr)
89 type(gridinfo) grd
90 PetscScalar x(grd%gxs:grd%gxe, grd%gys:grd%gye)
91 PetscScalar f(grd%xs:grd%xe, grd%ys:grd%ye)
101 hx = one/dble(grd%mx - 1)
102 hy = one/dble(grd%my - 1)
107 do j = grd%ys, grd%ye
108 do i = grd%xs, grd%xe
109 if (i == 1 .or. j == 1 .or. i == grd%mx .or. j == grd%my) then
125 subroutine JacobianLocal(grd, x, Jac, lambda, ierr)
127 type(gridinfo) grd
128 PetscScalar x(grd%gxs:grd%gxe, grd%gys:grd%gye)
141 hx = one/dble(grd%mx - 1)
142 hy = one/dble(grd%my - 1)
147 do j = grd%ys, grd%ye
148 row = (j - grd%gys)*grd%gxm + grd%xs - grd%gxs - 1
149 do i = grd%xs, grd%xe
151 if (i == 1 .or. j == 1 .or. i == grd%mx .or. j == grd%my) then
163 col(1) = row(1) - grd%gxm
167 col(5) = row(1) + grd%gxm
187 type(gridinfo) :: grd
191 PetscCall(GetGridInfo(da, grd, ierr))
192 PetscCall(InitGuessLocal(grd, xx, lambda, ierr))
206 type(gridinfo) :: grd
218 PetscCall(GetGridInfo(da, grd, ierr))
219 PetscCall(FunctionLocal(grd, xx, ff, lambda, ierr))
236 type(gridinfo) :: grd
245 PetscCall(GetGridInfo(da, grd, ierr))
246 PetscCall(JacobianLocal(grd, xx, J, lambda, ierr))