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

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

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

trunk/paso/src/Solver_AMLI.c revision 3119 by gross, Fri Aug 13 08:38:06 2010 UTC trunk/paso/src/AMLI.c revision 3120 by gross, Mon Aug 30 10:48:00 2010 UTC
# Line 23  Line 23 
23  /**************************************************************/  /**************************************************************/
24        
25  #include "Paso.h"  #include "Paso.h"
26  #include "Solver.h"  #include "Preconditioner.h"
27  #include "Options.h"  #include "Options.h"
28  #include "PasoUtil.h"  #include "PasoUtil.h"
29  #include "UMFPACK.h"  #include "UMFPACK.h"
30  #include "MKL.h"  #include "MKL.h"
31  #include "SystemMatrix.h"  #include "SystemMatrix.h"
32  #include "Pattern_coupling.h"  #include "Pattern_coupling.h"
33    #include "BlockOps.h"
34    
35  /**************************************************************/  /**************************************************************/
36    
# Line 486  void Paso_Solver_solveAMLI(Paso_Solver_A Line 487  void Paso_Solver_solveAMLI(Paso_Solver_A
487          for (i=0;i<amli->n_C;++i) amli->b_C[i]=r[amli->rows_in_C[i]];          for (i=0;i<amli->n_C;++i) amli->b_C[i]=r[amli->rows_in_C[i]];
488    
489          /* x_F=invA_FF*b_F  */          /* x_F=invA_FF*b_F  */
490          Paso_Solver_applyBlockDiagonalMatrix(1,amli->n_F,amli->inv_A_FF,amli->A_FF_pivot,amli->x_F,amli->b_F);          Paso_BlockOps_allMV(1,amli->n_F,amli->inv_A_FF,amli->A_FF_pivot,amli->x_F,amli->b_F);
491                    
492          /* b_C=b_C-A_CF*x_F */          /* b_C=b_C-A_CF*x_F */
493          Paso_SparseMatrix_MatrixVector_CSR_OFFSET0(-1.,amli->A_CF,amli->x_F,1.,amli->b_C);          Paso_SparseMatrix_MatrixVector_CSR_OFFSET0(-1.,amli->A_CF,amli->x_F,1.,amli->b_C);
# Line 502  void Paso_Solver_solveAMLI(Paso_Solver_A Line 503  void Paso_Solver_solveAMLI(Paso_Solver_A
503          /* b_F=-A_FC*x_C */          /* b_F=-A_FC*x_C */
504          Paso_SparseMatrix_MatrixVector_CSR_OFFSET0(-1.,amli->A_FC,amli->x_C,0.,amli->b_F);          Paso_SparseMatrix_MatrixVector_CSR_OFFSET0(-1.,amli->A_FC,amli->x_C,0.,amli->b_F);
505          /* x_F_temp=invA_FF*b_F  */          /* x_F_temp=invA_FF*b_F  */
506          Paso_Solver_applyBlockDiagonalMatrix(1,amli->n_F,amli->inv_A_FF,amli->A_FF_pivot,x_F_temp,amli->b_F);          Paso_BlockOps_allMV(1,amli->n_F,amli->inv_A_FF,amli->A_FF_pivot,x_F_temp,amli->b_F);
507                    
508          #pragma omp parallel for private(i) schedule(static)          #pragma omp parallel for private(i) schedule(static)
509          for (i=0;i<amli->n_F;++i) {          for (i=0;i<amli->n_F;++i) {

Legend:
Removed from v.3119  
changed lines
  Added in v.3120

  ViewVC Help
Powered by ViewVC 1.1.26