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

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

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

revision 2662 by artak, Tue Sep 15 03:05:23 2009 UTC revision 2666 by artak, Thu Sep 17 00:10:00 2009 UTC
# Line 99  void Paso_Solver_setPreconditioner(Paso_ Line 99  void Paso_Solver_setPreconditioner(Paso_
99                  prec->amg=Paso_Solver_getAMG(A->mainBlock,options->level_max,options);                    prec->amg=Paso_Solver_getAMG(A->mainBlock,options->level_max,options);  
100                }                }
101                else {                else {
                 #pragma omp parallel for private(i) schedule(static)  
102                  for (i=0;i<A->row_block_size;++i) {                  for (i=0;i<A->row_block_size;++i) {
103                  prec->amgSystem->block[i]=Paso_SparseMatrix_getBlock(A->mainBlock,i+1);                  prec->amgSystem->block[i]=Paso_SparseMatrix_getBlock(A->mainBlock,i+1);
104                  prec->amgSystem->amgblock[i]=Paso_Solver_getAMG(prec->amgSystem->block[i],options->level_max,options);                  prec->amgSystem->amgblock[i]=Paso_Solver_getAMG(prec->amgSystem->block[i],options->level_max,options);
# Line 204  void Paso_Solver_solvePreconditioner(Pas Line 203  void Paso_Solver_solvePreconditioner(Pas
203                      }                      }
204                   }                   }
205                                                                    
                 #pragma omp parallel for private(i) schedule(static)  
206                  for (i=0;i<A->row_block_size;i++) {                  for (i=0;i<A->row_block_size;i++) {
207                  Paso_Solver_solveAMG(prec->amgSystem->amgblock[i],xx[i],bb[i]);                  Paso_Solver_solveAMG(prec->amgSystem->amgblock[i],xx[i],bb[i]);
208                  }                  }
209                      
210                  #pragma omp parallel for private(i,j) schedule(static)                  #pragma omp parallel for private(i,j) schedule(static)
211                  for (i=0;i<n;i++) {                  for (i=0;i<n;i++) {
212                      for (j=0;j<A->row_block_size;j++) {                      for (j=0;j<A->row_block_size;j++) {
213                      x[A->row_block_size*i+j]=xx[j][i];                      x[A->row_block_size*i+j]=xx[j][i];
214                      }                      }
215                   }                   }
216                                                  
217                  for (i=0;i<A->row_block_size;i++) {                  for (i=0;i<A->row_block_size;i++) {
218                  MEMFREE(xx[i]);                  MEMFREE(xx[i]);
219                  MEMFREE(bb[i]);                  MEMFREE(bb[i]);

Legend:
Removed from v.2662  
changed lines
  Added in v.2666

  ViewVC Help
Powered by ViewVC 1.1.26