diff --git a/cbind/test/pargen/Makefile b/cbind/test/pargen/Makefile index 2e74497f..e1da6892 100644 --- a/cbind/test/pargen/Makefile +++ b/cbind/test/pargen/Makefile @@ -9,7 +9,7 @@ FINCLUDES=$(FMFLAG). $(FMFLAG)$(HERE) $(FMFLAG)$(MODDIR) CINCLUDES=-I. -I$(HERE) -I$(INCLUDEDIR) PSBC_LIBS= -L$(LIBDIR) -lpsb_cbind -PSB_LIBS=-lpsb_util -lpsb_krylov -lpsb_prec -lpsb_base -L$(LIBDIR) +PSB_LIBS=-lpsb_util -lpsb_linsolve -lpsb_prec -lpsb_base -L$(LIBDIR) # # Compilers and such diff --git a/docs/html/index.html b/docs/html/index.html index 083bd90a..2ccf61d9 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -54,11 +54,11 @@ href="userhtmlse10.html#x15-13500010" id="QQ2-15-165">Preconditioner routines  11 Iterative Methods
 12 Extensions +href="userhtmlse12.html#x19-14500012" id="QQ2-19-175">Extensions
 13 CUDA Environment Routines +href="userhtmlse13.html#x20-15400013" id="QQ2-20-190">CUDA Environment Routines
 References +href="userhtmlli2.html#x21-169000" id="QQ2-21-219">References diff --git a/docs/html/userhtml.html b/docs/html/userhtml.html index 083bd90a..2ccf61d9 100644 --- a/docs/html/userhtml.html +++ b/docs/html/userhtml.html @@ -54,11 +54,11 @@ href="userhtmlse10.html#x15-13500010" id="QQ2-15-165">Preconditioner routines  11 Iterative Methods
 12 Extensions +href="userhtmlse12.html#x19-14500012" id="QQ2-19-175">Extensions
 13 CUDA Environment Routines +href="userhtmlse13.html#x20-15400013" id="QQ2-20-190">CUDA Environment Routines
 References +href="userhtmlli2.html#x21-169000" id="QQ2-21-219">References diff --git a/docs/html/userhtmlli1.html b/docs/html/userhtmlli1.html index e767ddcf..40ffe257 100644 --- a/docs/html/userhtmlli1.html +++ b/docs/html/userhtmlli1.html @@ -310,46 +310,48 @@ href="userhtmlse10.html#x15-14100010.6" id="QQ2-15-171">free — Free a prec href="userhtmlse11.html#x17-14200011">Iterative Methods
  11.1 psb_krylov — Krylov Methods Driver Routine +
  11.2 psb_richardson — Richardson Iteration Driver Routine
 12 Extensions +href="userhtmlse12.html#x19-14500012">Extensions
  12.1 Using the extensions +href="userhtmlse12.html#x19-14600012.1" id="QQ2-19-176">Using the extensions
  12.2 Extensions’ Data Structures +href="userhtmlse12.html#x19-14700012.2" id="QQ2-19-177">Extensions’ Data Structures
  12.3 CPU-class extensions +href="userhtmlse12.html#x19-14800012.3" id="QQ2-19-180">CPU-class extensions
  12.4 CUDA-class extensions +href="userhtmlse12.html#x19-15300012.4" id="QQ2-19-189">CUDA-class extensions
 13 CUDA Environment Routines +href="userhtmlse13.html#x20-15400013">CUDA Environment Routines
  psb_cuda_init +href="userhtmlse13.html#Q1-20-192">psb_cuda_init
  psb_cuda_exit +href="userhtmlse13.html#Q1-20-194">psb_cuda_exit
  psb_cuda_DeviceSync +href="userhtmlse13.html#Q1-20-196">psb_cuda_DeviceSync
  psb_cuda_getDeviceCount +href="userhtmlse13.html#Q1-20-198">psb_cuda_getDeviceCount
  psb_cuda_getDevice +href="userhtmlse13.html#Q1-20-200">psb_cuda_getDevice
  psb_cuda_setDevice +href="userhtmlse13.html#Q1-20-202">psb_cuda_setDevice
  psb_cuda_DeviceHasUVA +href="userhtmlse13.html#Q1-20-204">psb_cuda_DeviceHasUVA
  psb_cuda_WarpSize +href="userhtmlse13.html#Q1-20-206">psb_cuda_WarpSize
  psb_cuda_MultiProcessors +href="userhtmlse13.html#Q1-20-208">psb_cuda_MultiProcessors
  psb_cuda_MaxThreadsPerMP +href="userhtmlse13.html#Q1-20-210">psb_cuda_MaxThreadsPerMP
  psb_cuda_MaxRegisterPerBlock +href="userhtmlse13.html#Q1-20-212">psb_cuda_MaxRegisterPerBlock
  psb_cuda_MemoryClockRate +href="userhtmlse13.html#Q1-20-214">psb_cuda_MemoryClockRate
  psb_cuda_MemoryBusWidth +href="userhtmlse13.html#Q1-20-216">psb_cuda_MemoryBusWidth
  psb_cuda_MemoryPeakBandwidth +href="userhtmlse13.html#Q1-20-218">psb_cuda_MemoryPeakBandwidth diff --git a/docs/html/userhtmlli2.html b/docs/html/userhtmlli2.html index e486077a..f31a33cf 100644 --- a/docs/html/userhtmlli2.html +++ b/docs/html/userhtmlli2.html @@ -16,7 +16,7 @@ href="userhtmlse13.html#tailuserhtmlse13.html" >prev-tail] [tail] [up]

References

+ id="x21-169000">References

diff --git a/docs/html/userhtmlse11.html b/docs/html/userhtmlse11.html index 41a4cd65..c99d4e40 100644 --- a/docs/html/userhtmlse11.html +++ b/docs/html/userhtmlse11.html @@ -17,10 +17,9 @@ href="userhtmlse8.html#tailuserhtmlse11.html">tail] [up]

11 Iterative Methods

-

In this chapter we provide routines for preconditioners and iterative methods. -The interfaces for Krylov subspace methods are available in the module -psb_krylov_mod. +

In this chapter we provide routines for preconditioners and iterative methods. The +interfaces for iterative methods are available in the module psb_linsolve_mod. @@ -456,6 +455,344 @@ class="newline" />An integer value; 0 means no error has been detected.11.2 psb_richardson — Richardson Iteration Driver Routine +

This subroutine is a driver implementig a Richardson iteration +

+x   = M - 1(b - Ax )+ x ,
+ k+1             k    k
+
+

with the preconditioner operator M defined in the previous section. +

The stopping criterion can take the following values: +

+

+1

+

normwise backward error in the infinity norm; the iteration is stopped + when +

+      -----∥ri∥------
+err = (∥A∥∥xi∥+ ∥b∥) < eps
+
+

+

+

+2

+

Relative residual in the 2-norm; the iteration is stopped when +

+      ∥ri∥-
+err = ∥b∥2 < eps
+
+

+

+

+3

+

Relative residual reduction in the 2-norm; the iteration is stopped when +

+     -∥ri∥-
+err = ∥r0∥2 < eps
+
+

+ + + +

The behaviour is controlled by the istop argument (see later). In the above formulae, xi +is the tentative solution and ri = b - Axi the corresponding residual at the i-th +iteration. + +

call psb_richardson(a,prec,b,x,eps,desc_a,info,& 
+    & itmax,iter,err,itrace,istop)
+ +

+

+

+Type:

+

Synchronous. +

+

+On Entry

+

+

+

+a

+

the local portion of global sparse matrix A.
Scope: local
Type: required
Intent: in.
Specified as: a structured data of type psb_Tspmat_type. +

+

+prec

+

The data structure containing the preconditioner.
Scope: local
Type: required
Intent: in.
Specified as: a structured data of type psb_prec_type. +

+

+b

+

The RHS vector.
Scope: local
Type: required
Intent: in.
Specified as: a rank one array or an object of type psb_T_vect_type. +

+

+x

+ + + +

The initial guess.
Scope: local
Type: required
Intent: inout.
Specified as: a rank one array or an object of type psb_T_vect_type. +

+

+eps

+

The stopping tolerance.
Scope: global
Type: required
Intent: in.
Specified as: a real number. +

+

+desc_a

+

contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: a structured data of type psb_desc_type. +

+

+itmax

+

The maximum number of iterations to perform.
Scope: global
Type: optional
Intent: in.
Default: itmax = 1000.
Specified as: an integer variable itmax 1. +

+

+itrace

+

If > 0 print out an informational message about convergence every itrace + iterations. If = 0 print a message in case of convergence failure.
Scope: global
Type: optional
Intent: in.
Default: itrace = -1.
+

+

+istop

+ + + +

An integer specifying the stopping criterion.
Scope: global
Type: optional.
Intent: in.
Values: 1: use the normwise backward error, 2: use the scaled 2-norm of + the residual, 3: use the residual reduction in the 2-norm. Default: 2. +

+

+On Return

+

+

+

+x

+

The computed solution.
Scope: local
Type: required
Intent: inout.
Specified as: a rank one array or an object of type psb_T_vect_type. +

+

+iter

+

The number of iterations performed.
Scope: global
Type: optional
Intent: out.
Returned as: an integer variable. +

+

+err

+

The convergence estimate on exit.
Scope: global
Type: optional
Intent: out.
Returned as: a real number. +

+

+info

+

Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.

+ + + diff --git a/docs/html/userhtmlse12.html b/docs/html/userhtmlse12.html index e47c099d..180aa0dd 100644 --- a/docs/html/userhtmlse12.html +++ b/docs/html/userhtmlse12.html @@ -16,7 +16,7 @@ href="userhtmlse11.html#tailuserhtmlse11.html" >prev-tail] [tail] [up]

12 Extensions

+ id="x19-14500012">Extensions

The EXT, CUDA and RSB subdirectories contains a set of extensions to the base library. The extensions provide additional storage formats beyond the ones already contained in the base library, as well as interfaces to: @@ -49,7 +49,7 @@ in [22].

12.1 Using the extensions

+ id="x19-14600012.1">Using the extensions

A sample application using the PSBLAS extensions will contain the following steps: