101 |
cg3d_need2destroy_mat = .FALSE. |
cg3d_need2destroy_mat = .FALSE. |
102 |
ENDIF |
ENDIF |
103 |
|
|
104 |
|
! Print *, "GOT HERE CG3D", local_dofs,global_dofs, |
105 |
|
! & cg3d_dofs_cum_sum |
106 |
|
|
107 |
#ifdef ALLOW_USE_MPI |
#ifdef ALLOW_USE_MPI |
108 |
|
|
114 |
|
|
115 |
cg3d_dofs_cum_sum(0) = 0 |
cg3d_dofs_cum_sum(0) = 0 |
116 |
|
|
117 |
DO i=1,nPx*nPy*MAX_CG3D_PETSC_CPUINVERT-1 |
DO i=0,nPx*nPy*MAX_CG3D_PETSC_CPUINVERT-1 |
118 |
IF (i.le.cg3d_petsc_cpuInVert) THEN |
! IF (i.le.cg3d_petsc_cpuInVert) THEN |
119 |
global_dofs = global_dofs + cg3d_dofs_process (i) |
global_dofs = global_dofs + cg3d_dofs_process (i) |
120 |
if (i.ge.1) then |
if (i.ge.1) then |
121 |
cg3d_dofs_cum_sum(i) = cg3d_dofs_cum_sum(i-1)+ |
cg3d_dofs_cum_sum(i) = cg3d_dofs_cum_sum(i-1)+ |
122 |
& cg3d_dofs_process(i-1) |
& cg3d_dofs_process(i-1) |
123 |
endif |
endif |
124 |
ENDIF |
! ENDIF |
125 |
ENDDO |
ENDDO |
126 |
|
|
127 |
local_offset = cg3d_dofs_cum_sum(mpimywid) |
local_offset = cg3d_dofs_cum_sum(mpimywid) |
133 |
local_offset = 0 |
local_offset = 0 |
134 |
|
|
135 |
#endif |
#endif |
136 |
|
Print *, "GOT HERE CG3D", local_dofs,global_dofs, |
137 |
|
& cg3d_dofs_cum_sum |
138 |
|
|
139 |
!---------------------- |
!---------------------- |
140 |
|
|
193 |
call VecAssemblyEnd(solution, ierr) |
call VecAssemblyEnd(solution, ierr) |
194 |
|
|
195 |
|
|
196 |
|
|
197 |
if (cg3d_need2create_mat) then |
if (cg3d_need2create_mat) then |
198 |
CALL TIMER_START ('CG3D_PETSC_MATCREATE',myThid) |
CALL TIMER_START ('CG3D_PETSC_MATCREATE',myThid) |
199 |
|
|
290 |
endif |
endif |
291 |
endif |
endif |
292 |
|
|
293 |
|
|
294 |
call matSetValues (matrix_petsc_cg3d, 1, dof_index, col_iter, |
call matSetValues (matrix_petsc_cg3d, 1, dof_index, col_iter, |
295 |
& indices_col, |
& indices_col, |
296 |
& mat_values,INSERT_VALUES,ierr) |
& mat_values,INSERT_VALUES,ierr) |
391 |
CALL TIMER_START ('CG3D_PETSC_SOLVE',myThid) |
CALL TIMER_START ('CG3D_PETSC_SOLVE',myThid) |
392 |
|
|
393 |
call KSPSolve(ksp_cg3d, rhs, solution, ierr) |
call KSPSolve(ksp_cg3d, rhs, solution, ierr) |
394 |
|
|
395 |
|
|
396 |
CALL TIMER_STOP ('CG3D_PETSC_SOLVE',myThid) |
CALL TIMER_STOP ('CG3D_PETSC_SOLVE',myThid) |
397 |
|
|
398 |
call KSPGetIterationNumber(ksp_cg3d,iters,ierr) |
call KSPGetIterationNumber(ksp_cg3d,iters,ierr) |
|
print *, "GOT HERE CG3D PETSC SOLVE COMPLETE", iters |
|
399 |
|
|
400 |
maxIter = iters |
maxIter = iters |
401 |
|
|