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

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

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

revision 2827 by artak, Mon Dec 7 00:02:55 2009 UTC revision 2828 by artak, Tue Dec 22 01:24:40 2009 UTC
# Line 84  Paso_SparseMatrix* Paso_SparseMatrix_get Line 84  Paso_SparseMatrix* Paso_SparseMatrix_get
84          k++;            k++;  
85        }        }
86        else {        else {
87             for (iptr=out->pattern->ptr[i];iptr<out->pattern->ptr[i+1]; ++iptr){             iptr=out->pattern->ptr[i];
88               out->val[iptr]=1;             out->val[iptr]=1;
            }  
89        }        }
90      }      }
91            
# Line 215  void Paso_SparseMatrix_updateWeights(Pas Line 214  void Paso_SparseMatrix_updateWeights(Pas
214              if(sum_strong_pos!=0) {              if(sum_strong_pos!=0) {
215                   beta[k]=sum_all_pos/(sum_strong_pos);                   beta[k]=sum_all_pos/(sum_strong_pos);
216              }              }
217  /*            else {              else {
218                a_ii+=beta[k];                a_ii+=sum_all_pos;
               A->val[dptr]=a_ii;  
219                beta[k]=0;                beta[k]=0;
220              }              }
221  */           alpha[k]=alpha[k]/(a_ii);              alpha[k]=alpha[k]/(a_ii);
222              beta[k]=beta[k]/(a_ii);              beta[k]=beta[k]/(a_ii);
223            k++;            k++;
224         /*printf("Got in row=%d, alpha[%d]=%e, beta[%d]=%e, a_den=%e, b_den=%e \n",i,k-1,alpha[k-1],k-1,beta[k-1],alpha_den[k-1],beta_den[k-1]);*/         /*printf("Got in row=%d, alpha[%d]=%e, beta[%d]=%e, a_den=%e, b_den=%e \n",i,k-1,alpha[k-1],k-1,beta[k-1],alpha_den[k-1],beta_den[k-1]);*/
225        }        }
226     }     }
227        #pragma omp parallel for private(i,iPtr,j) schedule(static)        #pragma omp parallel for private(i,iPtr) schedule(static)
228        for (i = 0; i < W_FC->numRows; ++i) {        for (i = 0; i < W_FC->numRows; ++i) {
229              for (iPtr=W_FC->pattern->ptr[i];iPtr<W_FC->pattern->ptr[i + 1]; ++iPtr) {              for (iPtr=W_FC->pattern->ptr[i];iPtr<W_FC->pattern->ptr[i + 1]; ++iPtr) {
                  j=W_FC->pattern->index[iPtr];  
230                     if(W_FC->val[iPtr]<0) {                     if(W_FC->val[iPtr]<0) {
231                        W_FC->val[iPtr]=-alpha[i]*W_FC->val[iPtr];                        W_FC->val[iPtr]=-alpha[i]*W_FC->val[iPtr];
232                      }                      }

Legend:
Removed from v.2827  
changed lines
  Added in v.2828

  ViewVC Help
Powered by ViewVC 1.1.26