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

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

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

revision 1388 by trankine, Fri Jan 11 07:45:58 2008 UTC revision 1556 by gross, Mon May 12 00:54:58 2008 UTC
# Line 353  void Paso_Solver_solveILU(Paso_Solver_IL Line 353  void Paso_Solver_solveILU(Paso_Solver_IL
353            
354            
355       /* copy x into b*/       /* copy x into b*/
356       #pragma omp for private(i) schedule(static)       #pragma omp parallel for private(i) schedule(static)
357       for (i=0;i<n*n_block;++i) x[i]=b[i];       for (i=0;i<n*n_block;++i) x[i]=b[i];
358       /* forward substitution */       /* forward substitution */
359       for (color=0;color<ilu->num_colors;++color) {       for (color=0;color<ilu->num_colors;++color) {
360             if (n_block==1) {             if (n_block==1) {
361                #pragma omp for schedule(static) private(i,iptr_ik,k,S1,R1,iptr_main)                #pragma omp parallel for schedule(static) private(i,iptr_ik,k,S1,R1,iptr_main)
362                for (i = 0; i < n; ++i) {                for (i = 0; i < n; ++i) {
363                     if (ilu->colorOf[i]==color) {                     if (ilu->colorOf[i]==color) {
364                       /* x_i=x_i-a_ik*x_k */                                           /* x_i=x_i-a_ik*x_k */                    
# Line 375  void Paso_Solver_solveILU(Paso_Solver_IL Line 375  void Paso_Solver_solveILU(Paso_Solver_IL
375                     }                     }
376                }                }
377             } else if (n_block==2) {             } else if (n_block==2) {
378                #pragma omp for schedule(static) private(i,iptr_ik,k,iptr_main,S1,S2,R1,R2)                #pragma omp parallel for schedule(static) private(i,iptr_ik,k,iptr_main,S1,S2,R1,R2)
379                for (i = 0; i < n; ++i) {                for (i = 0; i < n; ++i) {
380                     if (ilu->colorOf[i]==color) {                     if (ilu->colorOf[i]==color) {
381                       /* x_i=x_i-a_ik*x_k */                       /* x_i=x_i-a_ik*x_k */
# Line 397  void Paso_Solver_solveILU(Paso_Solver_IL Line 397  void Paso_Solver_solveILU(Paso_Solver_IL
397    
398                }                }
399             } else if (n_block==3) {             } else if (n_block==3) {
400                #pragma omp for schedule(static) private(i,iptr_ik,iptr_main,k,S1,S2,S3,R1,R2,R3)                #pragma omp parallel for schedule(static) private(i,iptr_ik,iptr_main,k,S1,S2,S3,R1,R2,R3)
401                for (i = 0; i < n; ++i) {                for (i = 0; i < n; ++i) {
402                     if (ilu->colorOf[i]==color) {                     if (ilu->colorOf[i]==color) {
403                       /* x_i=x_i-a_ik*x_k */                       /* x_i=x_i-a_ik*x_k */
# Line 422  void Paso_Solver_solveILU(Paso_Solver_IL Line 422  void Paso_Solver_solveILU(Paso_Solver_IL
422                   }                   }
423                }                }
424             }             }
            #pragma omp barrier  
425       }       }
426       /* backward substitution */       /* backward substitution */
427       for (color=(ilu->num_colors)-1;color>-1;--color) {       for (color=(ilu->num_colors)-1;color>-1;--color) {
428             if (n_block==1) {             if (n_block==1) {
429                #pragma omp for schedule(static) private(i,iptr_ik,k,S1,R1)                #pragma omp parallel for schedule(static) private(i,iptr_ik,k,S1,R1)
430                for (i = 0; i < n; ++i) {                for (i = 0; i < n; ++i) {
431                     if (ilu->colorOf[i]==color) {                     if (ilu->colorOf[i]==color) {
432                       /* x_i=x_i-a_ik*x_k */                       /* x_i=x_i-a_ik*x_k */
# Line 443  void Paso_Solver_solveILU(Paso_Solver_IL Line 442  void Paso_Solver_solveILU(Paso_Solver_IL
442                     }                     }
443                }                }
444             } else if (n_block==2) {             } else if (n_block==2) {
445                #pragma omp for schedule(static) private(i,iptr_ik,k,S1,S2,R1,R2)                #pragma omp parallel for schedule(static) private(i,iptr_ik,k,S1,S2,R1,R2)
446                for (i = 0; i < n; ++i) {                for (i = 0; i < n; ++i) {
447                     if (ilu->colorOf[i]==color) {                     if (ilu->colorOf[i]==color) {
448                       /* x_i=x_i-a_ik*x_k */                       /* x_i=x_i-a_ik*x_k */
# Line 463  void Paso_Solver_solveILU(Paso_Solver_IL Line 462  void Paso_Solver_solveILU(Paso_Solver_IL
462                     }                     }
463                }                }
464             } else if (n_block==3) {             } else if (n_block==3) {
465                #pragma omp for schedule(static) private(i,iptr_ik,k,S1,S2,S3,R1,R2,R3)                #pragma omp parallel for schedule(static) private(i,iptr_ik,k,S1,S2,S3,R1,R2,R3)
466                for (i = 0; i < n; ++i) {                for (i = 0; i < n; ++i) {
467                     if (ilu->colorOf[i]==color) {                     if (ilu->colorOf[i]==color) {
468                       /* x_i=x_i-a_ik*x_k */                       /* x_i=x_i-a_ik*x_k */

Legend:
Removed from v.1388  
changed lines
  Added in v.1556

  ViewVC Help
Powered by ViewVC 1.1.26