xref: /phasta/phSolver/compressible/asaugmr.f (revision 712d3df0b59ebebaaeaea358162c8d2c043c6e08)
159599516SKenneth E. Jansen        subroutine AsAuGMR (ien,  EGmass,  uBrg, uBtmp )
259599516SKenneth E. Jansenc
359599516SKenneth E. Jansenc----------------------------------------------------------------------
459599516SKenneth E. Jansenc This routine computes and assembles the Au product for the
559599516SKenneth E. Jansenc GMRES solver.
659599516SKenneth E. Jansenc
759599516SKenneth E. Jansenc input:
8*513954efSKenneth E. Jansenc     ien    (npro,nshl)       : nodal connectivity
959599516SKenneth E. Jansenc     EGmass (npro,nedof,nedof)  : element mass matrix
1059599516SKenneth E. Jansenc     uBrg   (nshg,nflow)         : u_i before product
1159599516SKenneth E. Jansenc
1259599516SKenneth E. Jansenc output:
1359599516SKenneth E. Jansenc     uBrg   (nshg,nflow)         : result of product ( u_{i+1} )
1459599516SKenneth E. Jansenc
1559599516SKenneth E. Jansenc----------------------------------------------------------------------
1659599516SKenneth E. Jansenc
1759599516SKenneth E. Jansen        include "common.h"
1859599516SKenneth E. Jansenc
1959599516SKenneth E. Jansen        dimension ien(npro,nshl),     EGmass(npro,nedof,nedof),
2059599516SKenneth E. Jansen     &            uBrg(nshg,nflow),    uBtmp(nshg,nflow)
2159599516SKenneth E. Jansenc
2259599516SKenneth E. Jansen        dimension uBrgl(npro,nedof),  ubBgl(npro,nedof)
2359599516SKenneth E. Jansenc
2459599516SKenneth E. Jansenc.... localize this K-vector for the EBE product
2559599516SKenneth E. Jansenc
2659599516SKenneth E. Jansen        call localt (uBrg,  uBrgl,  abs(ien),  nflow,  'gather  ')
2759599516SKenneth E. Jansen
2859599516SKenneth E. Jansen        ubBgl = zero
2959599516SKenneth E. Jansenc
3059599516SKenneth E. Jansenc.... ----------------------->  Au product  <---------------------------
3159599516SKenneth E. Jansenc
3259599516SKenneth E. Jansen        do i = 1, nflow*nshl, nflow
3359599516SKenneth E. Jansen           do j = 1, nflow*nshl, nflow
3459599516SKenneth E. Jansen              ubBgl(:,i  ) = ubBgl(:,i  )
3559599516SKenneth E. Jansen     &                     + EGmass(:,i  ,j  ) * uBrgl(:,j  )
3659599516SKenneth E. Jansen     &                     + EGmass(:,i  ,j+1) * uBrgl(:,j+1)
3759599516SKenneth E. Jansen     &                     + EGmass(:,i  ,j+2) * uBrgl(:,j+2)
3859599516SKenneth E. Jansen     &                     + EGmass(:,i  ,j+3) * uBrgl(:,j+3)
3959599516SKenneth E. Jansen     &                     + EGmass(:,i  ,j+4) * uBrgl(:,j+4)
4059599516SKenneth E. Jansenc
4159599516SKenneth E. Jansen              ubBgl(:,i+1) = ubBgl(:,i+1)
4259599516SKenneth E. Jansen     &                     + EGmass(:,i+1,j  ) * uBrgl(:,j  )
4359599516SKenneth E. Jansen     &                     + EGmass(:,i+1,j+1) * uBrgl(:,j+1)
4459599516SKenneth E. Jansen     &                     + EGmass(:,i+1,j+2) * uBrgl(:,j+2)
4559599516SKenneth E. Jansen     &                     + EGmass(:,i+1,j+3) * uBrgl(:,j+3)
4659599516SKenneth E. Jansen     &                     + EGmass(:,i+1,j+4) * uBrgl(:,j+4)
4759599516SKenneth E. Jansenc
4859599516SKenneth E. Jansen              ubBgl(:,i+2) = ubBgl(:,i+2)
4959599516SKenneth E. Jansen     &                     + EGmass(:,i+2,j  ) * uBrgl(:,j  )
5059599516SKenneth E. Jansen     &                     + EGmass(:,i+2,j+1) * uBrgl(:,j+1)
5159599516SKenneth E. Jansen     &                     + EGmass(:,i+2,j+2) * uBrgl(:,j+2)
5259599516SKenneth E. Jansen     &                     + EGmass(:,i+2,j+3) * uBrgl(:,j+3)
5359599516SKenneth E. Jansen     &                     + EGmass(:,i+2,j+4) * uBrgl(:,j+4)
5459599516SKenneth E. Jansenc
5559599516SKenneth E. Jansen              ubBgl(:,i+3) = ubBgl(:,i+3)
5659599516SKenneth E. Jansen     &                     + EGmass(:,i+3,j  ) * uBrgl(:,j  )
5759599516SKenneth E. Jansen     &                     + EGmass(:,i+3,j+1) * uBrgl(:,j+1)
5859599516SKenneth E. Jansen     &                     + EGmass(:,i+3,j+2) * uBrgl(:,j+2)
5959599516SKenneth E. Jansen     &                     + EGmass(:,i+3,j+3) * uBrgl(:,j+3)
6059599516SKenneth E. Jansen     &                     + EGmass(:,i+3,j+4) * uBrgl(:,j+4)
6159599516SKenneth E. Jansenc
6259599516SKenneth E. Jansen              ubBgl(:,i+4) = ubBgl(:,i+4)
6359599516SKenneth E. Jansen     &                     + EGmass(:,i+4,j  ) * uBrgl(:,j  )
6459599516SKenneth E. Jansen     &                     + EGmass(:,i+4,j+1) * uBrgl(:,j+1)
6559599516SKenneth E. Jansen     &                     + EGmass(:,i+4,j+2) * uBrgl(:,j+2)
6659599516SKenneth E. Jansen     &                     + EGmass(:,i+4,j+3) * uBrgl(:,j+3)
6759599516SKenneth E. Jansen     &                     + EGmass(:,i+4,j+4) * uBrgl(:,j+4)
6859599516SKenneth E. Jansenc
6959599516SKenneth E. Jansen           enddo
7059599516SKenneth E. Jansen        enddo
7159599516SKenneth E. Jansenc
7259599516SKenneth E. Jansenc.... assemble the result of the product
7359599516SKenneth E. Jansenc
7459599516SKenneth E. Jansen        call localt (uBtmp,  ubBgl,  abs(ien),  nflow,  'scatter ')
7559599516SKenneth E. Jansenc
7659599516SKenneth E. Jansenc.... end
7759599516SKenneth E. Jansenc
7859599516SKenneth E. Jansen        return
7959599516SKenneth E. Jansen        end
8059599516SKenneth E. Jansenc
8159599516SKenneth E. Jansenc
8259599516SKenneth E. Jansenc
8359599516SKenneth E. Jansen        subroutine AsAuGMRSclr (ien,  EGmass,  uBrg, uBtmp )
8459599516SKenneth E. Jansenc
8559599516SKenneth E. Jansenc----------------------------------------------------------------------
8659599516SKenneth E. Jansenc This routine computes and assembles the Au product for the
8759599516SKenneth E. Jansenc GMRES solver.
8859599516SKenneth E. Jansenc
8959599516SKenneth E. Jansenc input:
9059599516SKenneth E. Jansenc     ien    (npro,nshl)       : nodal connectivity
9159599516SKenneth E. Jansenc     EGmass (npro,nen,nen)    : element mass matrix
9259599516SKenneth E. Jansenc     uBrg   (nshg)           : u_i before product
9359599516SKenneth E. Jansenc
9459599516SKenneth E. Jansenc output:
9559599516SKenneth E. Jansenc     uBtmp   (nshg)           : result of product ( u_{i+1} )
9659599516SKenneth E. Jansenc
9759599516SKenneth E. Jansenc----------------------------------------------------------------------
9859599516SKenneth E. Jansenc
9959599516SKenneth E. Jansen        include "common.h"
10059599516SKenneth E. Jansen        include "mpif.h"
10159599516SKenneth E. Jansen        include "auxmpi.h"
10259599516SKenneth E. Jansenc
10359599516SKenneth E. Jansen       dimension ien(npro,nshl),   EGmass(npro,nshape,nshape),
10459599516SKenneth E. Jansen     &           uBrg(nshg),       uBtmp(nshg)
10559599516SKenneth E. Jansenc
106*513954efSKenneth E. Jansen       dimension uBrgl(npro,nshl), ubBgl(npro,nshl)
10759599516SKenneth E. Jansenc
10859599516SKenneth E. Jansenc.... localize this K-vector for the EBE product
10959599516SKenneth E. Jansenc
11059599516SKenneth E. Jansen        uBrgl = zero
11159599516SKenneth E. Jansen        call localtSclr(uBrg,  uBrgl,  ien,  'gather  ')
11259599516SKenneth E. Jansen
11359599516SKenneth E. Jansen        ubBgl = zero
11459599516SKenneth E. Jansenc
11559599516SKenneth E. Jansenc.... ----------------------->  Au product  <---------------------------
11659599516SKenneth E. Jansenc
11759599516SKenneth E. Jansen        do i = 1, nshl
11859599516SKenneth E. Jansen           do j = 1, nshl
11959599516SKenneth E. Jansen              ubBgl(:,i  ) = ubBgl(:,i  )
12059599516SKenneth E. Jansen     &                     + EGmass(:,i  ,j  ) * uBrgl(:,j  )
12159599516SKenneth E. Jansenc
12259599516SKenneth E. Jansen           enddo
12359599516SKenneth E. Jansen         enddo
12459599516SKenneth E. Jansenc
12559599516SKenneth E. Jansenc.... assemble the result of the product
12659599516SKenneth E. Jansenc
12759599516SKenneth E. Jansen        call localtSclr(uBtmp,  ubBgl,  ien,  'scatter ')
12859599516SKenneth E. Jansenc
12959599516SKenneth E. Jansenc.... end
13059599516SKenneth E. Jansenc
13159599516SKenneth E. Jansen        return
13259599516SKenneth E. Jansen        end
13359599516SKenneth E. Jansen
13459599516SKenneth E. Jansen
13559599516SKenneth E. Jansen
13659599516SKenneth E. Jansen
13759599516SKenneth E. Jansen
13859599516SKenneth E. Jansen
139