/[escript]/trunk/paso/src/Solver.c
ViewVC logotype

Diff of /trunk/paso/src/Solver.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2239 by gross, Mon Dec 15 05:09:02 2008 UTC revision 2240 by artak, Wed Feb 4 01:17:06 2009 UTC
# Line 158  void Paso_Solver(Paso_SystemMatrix* A,do Line 158  void Paso_Solver(Paso_SystemMatrix* A,do
158                 }                 }
159              }              }
160              /* construct the preconditioner */              /* construct the preconditioner */
                 
161              blocktimer_precond = blocktimer_time();              blocktimer_precond = blocktimer_time();
162              Performance_startMonitor(pp,PERFORMANCE_PRECONDITIONER_INIT);              Performance_startMonitor(pp,PERFORMANCE_PRECONDITIONER_INIT);
163              Paso_Solver_setPreconditioner(A,options);              Paso_Solver_setPreconditioner(A,options);
# Line 186  void Paso_Solver(Paso_SystemMatrix* A,do Line 185  void Paso_Solver(Paso_SystemMatrix* A,do
185                      #pragma omp parallel for private(i) schedule(static)                      #pragma omp parallel for private(i) schedule(static)
186                      for (i = 0; i < numEqua; i++) r[i]=b[i];                      for (i = 0; i < numEqua; i++) r[i]=b[i];
187                      Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(DBLE(-1), A, x, DBLE(1), r);                      Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(DBLE(-1), A, x, DBLE(1), r);
               
188                      #pragma omp parallel private(norm2_of_residual_local,norm_max_of_residual_local)                      #pragma omp parallel private(norm2_of_residual_local,norm_max_of_residual_local)
189                      {                      {
190                         norm2_of_residual_local = 0;                         norm2_of_residual_local = 0;
# Line 271  void Paso_Solver(Paso_SystemMatrix* A,do Line 269  void Paso_Solver(Paso_SystemMatrix* A,do
269                time_iter=Paso_timer()-time_iter;                time_iter=Paso_timer()-time_iter;
270                if (options->verbose)  {                if (options->verbose)  {
271                   printf("\ntiming: Paso_Solver:  %.4e sec\n",time_iter);                   printf("\ntiming: Paso_Solver:  %.4e sec\n",time_iter);
272                   if (totIter>0) printf("timing: per iteration step: %.4e sec\n",time_iter/totIter);                   if (totIter>0) {
273                        if(totIter==options->iter_max) {
274                            printf("timing: Total MAX steps, time per iteration step: %.4e sec\n",time_iter/totIter);
275                        } else {
276                            printf("timing: Total %d steps, time per iteration step: %.4e sec\n",totIter,time_iter/totIter);    
277                        }
278                     }
279                     else {
280                        printf("timing: Total 0 step, time per iteration step: %.4e sec\n",time_iter);
281                        }  
282                }                }
283             }             }
284          }          }

Legend:
Removed from v.2239  
changed lines
  Added in v.2240

  ViewVC Help
Powered by ViewVC 1.1.26