/[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 2659 by artak, Thu Sep 10 03:54:50 2009 UTC revision 2660 by artak, Thu Sep 10 04:26:39 2009 UTC
# Line 206  void Paso_Solver_solvePreconditioner(Pas Line 206  void Paso_Solver_solvePreconditioner(Pas
206                  #pragma omp parallel for private(i) schedule(static)                  #pragma omp parallel for private(i) schedule(static)
207                  for (i=0;i<prec->amgSystem->amgblock1->n;i++) {                  for (i=0;i<prec->amgSystem->amgblock1->n;i++) {
208                      b1[i]=b[2*i];                      b1[i]=b[2*i];
                 }  
                   
                 #pragma omp parallel for private(i) schedule(static)  
                 for (i=0;i<prec->amgSystem->amgblock2->n;i++) {  
209                      b2[i]=b[2*i+1];                      b2[i]=b[2*i+1];
210                  }                  }
211                                    
212                    
213                  Paso_Solver_solveAMG(prec->amgSystem->amgblock1,x1,b1);                  Paso_Solver_solveAMG(prec->amgSystem->amgblock1,x1,b1);
214                  Paso_Solver_solveAMG(prec->amgSystem->amgblock2,x2,b2);                  Paso_Solver_solveAMG(prec->amgSystem->amgblock2,x2,b2);
215                                    
216                  #pragma omp parallel for private(i) schedule(static)                  #pragma omp parallel for private(i) schedule(static)
217                  for (i=0;i<prec->amgSystem->amgblock1->n;i++) {                  for (i=0;i<prec->amgSystem->amgblock1->n;i++) {
218                      x[2*i]=x1[i];                      x[2*i]=x1[i];
                 }  
                   
                 #pragma omp parallel for private(i) schedule(static)  
                 for (i=0;i<prec->amgSystem->amgblock2->n;i++) {  
219                      x[2*i+1]=x2[i];                      x[2*i+1]=x2[i];
220                  }                  }
221                                                                    
222                  MEMFREE(x1);                  MEMFREE(x1);
223                  MEMFREE(x2);                  MEMFREE(x2);
224                  MEMFREE(b1);                  MEMFREE(b1);
# Line 245  void Paso_Solver_solvePreconditioner(Pas Line 238  void Paso_Solver_solvePreconditioner(Pas
238                  #pragma omp parallel for private(i) schedule(static)                  #pragma omp parallel for private(i) schedule(static)
239                  for (i=0;i<prec->amgSystem->amgblock1->n;i++) {                  for (i=0;i<prec->amgSystem->amgblock1->n;i++) {
240                      b1[i]=b[3*i];                      b1[i]=b[3*i];
                  }  
                   
                 #pragma omp parallel for private(i) schedule(static)  
                 for (i=0;i<prec->amgSystem->amgblock2->n;i++) {  
241                      b2[i]=b[3*i+1];                      b2[i]=b[3*i+1];
                 }  
                   
                 #pragma omp parallel for private(i) schedule(static)  
                 for (i=0;i<prec->amgSystem->amgblock3->n;i++) {  
242                      b3[i]=b[3*i+2];                      b3[i]=b[3*i+2];
243                  }                   }
                   
244                                    
245                  Paso_Solver_solveAMG(prec->amgSystem->amgblock1,x1,b1);                  Paso_Solver_solveAMG(prec->amgSystem->amgblock1,x1,b1);
246                  Paso_Solver_solveAMG(prec->amgSystem->amgblock2,x2,b2);                  Paso_Solver_solveAMG(prec->amgSystem->amgblock2,x2,b2);
# Line 265  void Paso_Solver_solvePreconditioner(Pas Line 249  void Paso_Solver_solvePreconditioner(Pas
249                  #pragma omp parallel for private(i) schedule(static)                  #pragma omp parallel for private(i) schedule(static)
250                  for (i=0;i<prec->amgSystem->amgblock1->n;i++) {                  for (i=0;i<prec->amgSystem->amgblock1->n;i++) {
251                      x[3*i]=x1[i];                      x[3*i]=x1[i];
                 }  
                   
                 #pragma omp parallel for private(i) schedule(static)  
                 for (i=0;i<prec->amgSystem->amgblock2->n;i++) {  
252                      x[3*i+1]=x2[i];                      x[3*i+1]=x2[i];
                 }  
                   
                 #pragma omp parallel for private(i) schedule(static)  
                 for (i=0;i<prec->amgSystem->amgblock3->n;i++) {  
253                      x[3*i+2]=x3[i];                      x[3*i+2]=x3[i];
254                  }                  }
255                                    

Legend:
Removed from v.2659  
changed lines
  Added in v.2660

  ViewVC Help
Powered by ViewVC 1.1.26