mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-16 10:52:08 +00:00
psblas3:
krylov/psb_cfcg.F90 krylov/psb_dfcg.F90 krylov/psb_sfcg.F90 krylov/psb_zfcg.F90 test/fileread/runs/dfs.inp test/kernel/d_file_spmv.f90 test/kernel/runs/fspmv.inp test/kernel/s_file_spmv.f90 Take out old variables.
This commit is contained in:
+4
-6
@@ -123,7 +123,7 @@ subroutine psb_cfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
! = Local data
|
||||
type(psb_c_vect_type) :: v, w
|
||||
type(psb_c_vect_type), dimension(0:1) :: d
|
||||
complex(psb_spk_) :: delta_old, alpha, tau, tau1, beta, delta
|
||||
complex(psb_spk_) :: alpha, tau, tau1, beta, delta
|
||||
real(psb_dpk_) :: derr
|
||||
integer(psb_ipk_) :: i, idx, nc2l, it, itx, istop_, itmax_, itrace_
|
||||
integer(psb_ipk_) :: n_col, mglob, naux, err_act
|
||||
@@ -239,8 +239,6 @@ subroutine psb_cfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
!Compute w = -Ax + b
|
||||
|
||||
call psb_geaxpby(-cone, v, cone, w, desc_a, info)
|
||||
delta = psb_gedot(w, w, desc_a, info)
|
||||
! rhs_norm = psb_gedot(b, b, desc_a, info)
|
||||
|
||||
!Apply the preconditioner
|
||||
|
||||
@@ -248,7 +246,7 @@ subroutine psb_cfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
|
||||
call prec%apply(w,d(idx),desc_a,info,work=aux)
|
||||
|
||||
delta_old = psb_gedot(d(idx), w, desc_a, info)
|
||||
delta = psb_gedot(d(idx), w, desc_a, info)
|
||||
|
||||
|
||||
!Loop
|
||||
@@ -271,7 +269,7 @@ subroutine psb_cfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
tau = psb_gedot(d(idx), v, desc_a, info)
|
||||
|
||||
|
||||
alpha = delta_old/tau
|
||||
alpha = delta/tau
|
||||
!Update solution x
|
||||
call psb_geaxpby(alpha, d(idx), cone, x, desc_a, info)
|
||||
!Update residual w
|
||||
@@ -292,7 +290,7 @@ subroutine psb_cfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
call psb_geaxpby(-beta, d(idx + 1), cone, d(idx), desc_a, info)
|
||||
endif
|
||||
|
||||
delta_old=psb_gedot(w, d(idx), desc_a, info)
|
||||
delta = psb_gedot(w, d(idx), desc_a, info)
|
||||
|
||||
if (psb_check_conv(methdname,itx ,x,w,desc_a,stopdat,info)) exit restart
|
||||
if (info /= psb_success_) Then
|
||||
|
||||
+4
-6
@@ -123,7 +123,7 @@ subroutine psb_dfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
! = Local data
|
||||
type(psb_d_vect_type) :: v, w
|
||||
type(psb_d_vect_type), dimension(0:1) :: d
|
||||
real(psb_dpk_) :: delta_old, alpha, tau, tau1, beta, delta
|
||||
real(psb_dpk_) :: alpha, tau, tau1, beta, delta
|
||||
real(psb_dpk_) :: derr
|
||||
integer(psb_ipk_) :: i, idx, nc2l, it, itx, istop_, itmax_, itrace_
|
||||
integer(psb_ipk_) :: n_col, mglob, naux, err_act
|
||||
@@ -239,8 +239,6 @@ subroutine psb_dfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
!Compute w = -Ax + b
|
||||
|
||||
call psb_geaxpby(-done, v, done, w, desc_a, info)
|
||||
delta = psb_gedot(w, w, desc_a, info)
|
||||
! rhs_norm = psb_gedot(b, b, desc_a, info)
|
||||
|
||||
!Apply the preconditioner
|
||||
|
||||
@@ -248,7 +246,7 @@ subroutine psb_dfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
|
||||
call prec%apply(w,d(idx),desc_a,info,work=aux)
|
||||
|
||||
delta_old = psb_gedot(d(idx), w, desc_a, info)
|
||||
delta = psb_gedot(d(idx), w, desc_a, info)
|
||||
|
||||
|
||||
!Loop
|
||||
@@ -271,7 +269,7 @@ subroutine psb_dfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
tau = psb_gedot(d(idx), v, desc_a, info)
|
||||
|
||||
|
||||
alpha = delta_old/tau
|
||||
alpha = delta/tau
|
||||
!Update solution x
|
||||
call psb_geaxpby(alpha, d(idx), done, x, desc_a, info)
|
||||
!Update residual w
|
||||
@@ -292,7 +290,7 @@ subroutine psb_dfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
call psb_geaxpby(-beta, d(idx + 1), done, d(idx), desc_a, info)
|
||||
endif
|
||||
|
||||
delta_old=psb_gedot(w, d(idx), desc_a, info)
|
||||
delta = psb_gedot(w, d(idx), desc_a, info)
|
||||
|
||||
if (psb_check_conv(methdname,itx ,x,w,desc_a,stopdat,info)) exit restart
|
||||
if (info /= psb_success_) Then
|
||||
|
||||
+4
-6
@@ -123,7 +123,7 @@ subroutine psb_sfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
! = Local data
|
||||
type(psb_s_vect_type) :: v, w
|
||||
type(psb_s_vect_type), dimension(0:1) :: d
|
||||
real(psb_spk_) :: delta_old, alpha, tau, tau1, beta, delta
|
||||
real(psb_spk_) :: alpha, tau, tau1, beta, delta
|
||||
real(psb_dpk_) :: derr
|
||||
integer(psb_ipk_) :: i, idx, nc2l, it, itx, istop_, itmax_, itrace_
|
||||
integer(psb_ipk_) :: n_col, mglob, naux, err_act
|
||||
@@ -239,8 +239,6 @@ subroutine psb_sfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
!Compute w = -Ax + b
|
||||
|
||||
call psb_geaxpby(-sone, v, sone, w, desc_a, info)
|
||||
delta = psb_gedot(w, w, desc_a, info)
|
||||
! rhs_norm = psb_gedot(b, b, desc_a, info)
|
||||
|
||||
!Apply the preconditioner
|
||||
|
||||
@@ -248,7 +246,7 @@ subroutine psb_sfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
|
||||
call prec%apply(w,d(idx),desc_a,info,work=aux)
|
||||
|
||||
delta_old = psb_gedot(d(idx), w, desc_a, info)
|
||||
delta = psb_gedot(d(idx), w, desc_a, info)
|
||||
|
||||
|
||||
!Loop
|
||||
@@ -271,7 +269,7 @@ subroutine psb_sfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
tau = psb_gedot(d(idx), v, desc_a, info)
|
||||
|
||||
|
||||
alpha = delta_old/tau
|
||||
alpha = delta/tau
|
||||
!Update solution x
|
||||
call psb_geaxpby(alpha, d(idx), sone, x, desc_a, info)
|
||||
!Update residual w
|
||||
@@ -292,7 +290,7 @@ subroutine psb_sfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
call psb_geaxpby(-beta, d(idx + 1), sone, d(idx), desc_a, info)
|
||||
endif
|
||||
|
||||
delta_old=psb_gedot(w, d(idx), desc_a, info)
|
||||
delta = psb_gedot(w, d(idx), desc_a, info)
|
||||
|
||||
if (psb_check_conv(methdname,itx ,x,w,desc_a,stopdat,info)) exit restart
|
||||
if (info /= psb_success_) Then
|
||||
|
||||
+4
-6
@@ -123,7 +123,7 @@ subroutine psb_zfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
! = Local data
|
||||
type(psb_z_vect_type) :: v, w
|
||||
type(psb_z_vect_type), dimension(0:1) :: d
|
||||
complex(psb_dpk_) :: delta_old, alpha, tau, tau1, beta, delta
|
||||
complex(psb_dpk_) :: alpha, tau, tau1, beta, delta
|
||||
real(psb_dpk_) :: derr
|
||||
integer(psb_ipk_) :: i, idx, nc2l, it, itx, istop_, itmax_, itrace_
|
||||
integer(psb_ipk_) :: n_col, mglob, naux, err_act
|
||||
@@ -239,8 +239,6 @@ subroutine psb_zfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
!Compute w = -Ax + b
|
||||
|
||||
call psb_geaxpby(-zone, v, zone, w, desc_a, info)
|
||||
delta = psb_gedot(w, w, desc_a, info)
|
||||
! rhs_norm = psb_gedot(b, b, desc_a, info)
|
||||
|
||||
!Apply the preconditioner
|
||||
|
||||
@@ -248,7 +246,7 @@ subroutine psb_zfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
|
||||
call prec%apply(w,d(idx),desc_a,info,work=aux)
|
||||
|
||||
delta_old = psb_gedot(d(idx), w, desc_a, info)
|
||||
delta = psb_gedot(d(idx), w, desc_a, info)
|
||||
|
||||
|
||||
!Loop
|
||||
@@ -271,7 +269,7 @@ subroutine psb_zfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
tau = psb_gedot(d(idx), v, desc_a, info)
|
||||
|
||||
|
||||
alpha = delta_old/tau
|
||||
alpha = delta/tau
|
||||
!Update solution x
|
||||
call psb_geaxpby(alpha, d(idx), zone, x, desc_a, info)
|
||||
!Update residual w
|
||||
@@ -292,7 +290,7 @@ subroutine psb_zfcg_vect(a,prec,b,x,eps,desc_a,info,&
|
||||
call psb_geaxpby(-beta, d(idx + 1), zone, d(idx), desc_a, info)
|
||||
endif
|
||||
|
||||
delta_old=psb_gedot(w, d(idx), desc_a, info)
|
||||
delta = psb_gedot(w, d(idx), desc_a, info)
|
||||
|
||||
if (psb_check_conv(methdname,itx ,x,w,desc_a,stopdat,info)) exit restart
|
||||
if (info /= psb_success_) Then
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
11 Number of inputs
|
||||
kivap005.mtx This (and others) from: http://math.nist.gov/MatrixMarket/ or
|
||||
A_Z.mtx kivap005.mtx This (and others) from: http://math.nist.gov/MatrixMarket/ or
|
||||
NONE sherman3_b.mtx http://www.cise.ufl.edu/research/sparse/matrices/index.html
|
||||
MM File format: MM: Matrix Market HB: Harwell-Boeing.
|
||||
BiCGSTAB Iterative method: BiCGSTAB CGS RGMRES BiCGSTABL BICG CG
|
||||
BJAC Preconditioner NONE DIAG BJAC
|
||||
CG BiCGSTAB Iterative method: BiCGSTAB CGS RGMRES BiCGSTABL BICG CG
|
||||
NONE BJAC Preconditioner NONE DIAG BJAC
|
||||
CSR Storage format CSR COO JAD
|
||||
2 IPART: Partition method 0: BLK 2: graph (with Metis)
|
||||
2 ISTOPC
|
||||
02100 ITMAX
|
||||
00100 ITMAX
|
||||
-1 ITRACE
|
||||
002 IRST (restart for RGMRES and
|
||||
1.d-6 EPS
|
||||
0.0d0 1.d-9 EPS
|
||||
|
||||
@@ -62,7 +62,7 @@ program d_file_spmv
|
||||
character(len=20) :: name
|
||||
character(len=2) :: filefmt
|
||||
integer(psb_ipk_), parameter :: iunit=12
|
||||
integer(psb_ipk_), parameter :: times=10
|
||||
integer(psb_ipk_), parameter :: times=20
|
||||
integer(psb_ipk_) :: iparm(20)
|
||||
|
||||
! other variables
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
ASIC_100ks.mtx
|
||||
ML_Laplace.mtx
|
||||
MM
|
||||
0
|
||||
|
||||
|
||||
@@ -182,7 +182,7 @@ program s_file_spmv
|
||||
ivg(i) = ipv(1)
|
||||
enddo
|
||||
call psb_matdist(aux_a, a, ictxt, &
|
||||
& desc_a,b_col_glob,b_col,info,fmt=afmt,v=ivg)
|
||||
& desc_a,info,b_glob=b_col_glob,b=b_col,fmt=afmt,v=ivg)
|
||||
|
||||
else if (ipart == 2) then
|
||||
if (iam==psb_root_) then
|
||||
@@ -196,12 +196,12 @@ program s_file_spmv
|
||||
call distr_mtpart(psb_root_,ictxt)
|
||||
call getv_mtpart(ivg)
|
||||
call psb_matdist(aux_a, a, ictxt, &
|
||||
& desc_a,b_col_glob,b_col,info,fmt=afmt,v=ivg)
|
||||
& desc_a,info,b_glob=b_col_glob,b=b_col,fmt=afmt,v=ivg)
|
||||
|
||||
else
|
||||
if (iam==psb_root_) write(psb_out_unit,'("Partition type: block")')
|
||||
call psb_matdist(aux_a, a, ictxt, &
|
||||
& desc_a,b_col_glob,b_col,info,fmt=afmt,parts=part_block)
|
||||
& desc_a,info,b_glob=b_col_glob,b=b_col,fmt=afmt,parts=part_block)
|
||||
end if
|
||||
|
||||
call psb_geall(x_col,desc_a,info)
|
||||
|
||||
Reference in New Issue
Block a user