xref: /phasta/phSolver/compressible/itrpr1.f (revision 712d3df0b59ebebaaeaea358162c8d2c043c6e08)
159599516SKenneth E. Jansen        subroutine itrPr1 (ien,  Binv,   uBrg,    uBtmp,  code)
259599516SKenneth E. Jansenc
359599516SKenneth E. Jansenc----------------------------------------------------------------------
459599516SKenneth E. Jansenc
559599516SKenneth E. Jansenc This routine preconditions a given vector, element-by-element.
659599516SKenneth E. Jansenc The preconditioner used is Gauss-Siedel.
759599516SKenneth E. Jansenc
859599516SKenneth E. Jansenc input:
9*513954efSKenneth E. Jansenc  ien    (npro,nshl)         : element nodal connectivity
1059599516SKenneth E. Jansenc  Binv   (npro,nedof,nedof)	: LHS element preconditioner matrices
1159599516SKenneth E. Jansenc  code				: preconditioning code
1259599516SKenneth E. Jansenc				    .eq. 'R_Pcond ', Right precond.
1359599516SKenneth E. Jansenc				    .eq. 'L_Pcond ', Left  precond.
1459599516SKenneth E. Jansenc
1559599516SKenneth E. Jansenc output:
1659599516SKenneth E. Jansenc  uBrg    (nshg,nflow)	        : preconditioned vector (uBrg)
1759599516SKenneth E. Jansenc
1859599516SKenneth E. Jansenc Farzin Shakib, Winter 1987.
1959599516SKenneth E. Jansenc----------------------------------------------------------------------
2059599516SKenneth E. Jansenc
2159599516SKenneth E. Jansen        include "common.h"
2259599516SKenneth E. Jansenc
2359599516SKenneth E. Jansen	dimension Binv(npro,nedof,nedof),  uBrg(nshg,nflow),
24*513954efSKenneth E. Jansen     &		  uBrgl(npro,nshl*nflow), ien(npro,nshl),
2559599516SKenneth E. Jansen     &            uBtmp(nshg,nflow)
2659599516SKenneth E. Jansenc
2759599516SKenneth E. Jansen	character*8 code
2859599516SKenneth E. Jansenc
2959599516SKenneth E. Jansenc.... -------------------->  Right Pre-condition  <--------------------
3059599516SKenneth E. Jansenc
3159599516SKenneth E. Jansen	if (code .eq. 'R_Pcond ') then
3259599516SKenneth E. Jansenc
3359599516SKenneth E. Jansenc.... perform the upper triangular solve
3459599516SKenneth E. Jansenc
3559599516SKenneth E. Jansen	   call localt (uBrg,   uBrgl,   abs(ien),  nflow,   'gather  ' )
3659599516SKenneth E. Jansenc
3759599516SKenneth E. Jansen           do i = nedof-1, 1, -1
3859599516SKenneth E. Jansen              do j = i+1, nedof
3959599516SKenneth E. Jansen                 uBrgl(:,i) = uBrgl(:,i) - Binv(:,i,j) * uBrgl(:,j)
4059599516SKenneth E. Jansen              enddo
4159599516SKenneth E. Jansen           enddo
4259599516SKenneth E. Jansenc
4359599516SKenneth E. Jansen	   call localt (uBrg,   uBrgl,   abs(ien),  nflow,   'globaliz')
4459599516SKenneth E. Jansenc
4559599516SKenneth E. Jansen	return
4659599516SKenneth E. Jansenc
4759599516SKenneth E. Jansen	endif
4859599516SKenneth E. Jansenc
4959599516SKenneth E. Jansenc.... -------------------->  Left Pre-condition  <---------------------
5059599516SKenneth E. Jansenc
5159599516SKenneth E. Jansen	if (code .eq. 'L_Pcond ') then
5259599516SKenneth E. Jansenc
5359599516SKenneth E. Jansenc.... perform the lower triangular solve (in reverse order)
5459599516SKenneth E. Jansenc
5559599516SKenneth E. Jansen           call localt (uBrg,   uBrgl,   abs(ien),  nflow, 'gather  ')
5659599516SKenneth E. Jansenc
5759599516SKenneth E. Jansen           do  i = 2, nedof
5859599516SKenneth E. Jansen              do  j = 1, i-1
5959599516SKenneth E. Jansen                 uBrgl(:,i) = uBrgl(:,i) - Binv(:,i,j) * uBrgl(:,j)
6059599516SKenneth E. Jansen              enddo
6159599516SKenneth E. Jansen           enddo
6259599516SKenneth E. Jansen
6359599516SKenneth E. Jansen           call localt (uBrg,   uBrgl,   abs(ien),  nflow, 'globaliz')
6459599516SKenneth E. Jansenc
6559599516SKenneth E. Jansen	return
6659599516SKenneth E. Jansenc
6759599516SKenneth E. Jansen      endif
6859599516SKenneth E. Jansenc
6959599516SKenneth E. Jansenc.... error handling
7059599516SKenneth E. Jansenc
7159599516SKenneth E. Jansen      call error ('itrPr1  ', code, iGMRES)
7259599516SKenneth E. Jansenc
7359599516SKenneth E. Jansenc.... end
7459599516SKenneth E. Jansenc
7559599516SKenneth E. Jansen      end
76