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); |
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]); |