Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

dss_solve_real
,
dss_solve_complex

Compute the corresponding solution vector and place it in the output array.

Syntax

call dss_solve_real
(
handle
,
opt
,
rRhsValues
,
nRhs
,
rSolValues
)
call dss_solve_complex
(
handle
,
opt
,
cRhsValues
,
nRhs
,
cSolValues
)
call dss_solve
(
handle
,
opt
,
RhsValues
,
nRhs
,
SolValues
)
Include Files
  • mkl.fi
    ,
    mkl_dss.f90
Description
For each right-hand side column vector defined in the arrays
rRhsValues
,
cRhsValues
, or
RhsValues
, these routines compute the corresponding solution vector and place it in the arrays
rSolValues
,
cSolValues
, or
SolValues
respectively.
The data type (single or double precision) of all arrays must be in correspondence with precision specified by the parameter
opt
in the routine
dss_create
.
The lengths of the right-hand side and solution vectors,
nRows
and
nCols
respectively, must be defined in a previous call to dss_define_structure .
By default, both routines perform the full solution step (it corresponds to
phase
= 33
in
Intel® MKL
PARDISO). The parameter
opt
enables you to calculate the final solution step-by-step, calling forward and backward substitutions.
If it is set to
MKL_DSS_FORWARD_SOLVE
, the forward substitution (corresponding to
phase
= 331
in
Intel® MKL
PARDISO) is performed;
if it is set to
MKL_DSS_DIAGONAL_SOLVE
, the diagonal substitution (corresponding to
phase
= 332
in
Intel® MKL
PARDISO) is performed, if possible;
if it is set to
MKL_DSS_BACKWARD_SOLVE
, the backward substitution (corresponding to
phase
= 333
in
Intel® MKL
PARDISO) is performed.
For more details about using these substitutions for different types of matrices, see Separate Forward and Backward Substitution in the
Intel® MKL
PARDISO solver description.
This parameter also can control the number of refinement steps that is used on the solution stage: if it is set to
MKL_DSS_REFINEMENT_OFF
, the maximum number of refinement steps equal to zero, and if it is set to
MKL_DSS_REFINEMENT_ON
(default value), the maximum number of refinement steps is equal to 2.
MKL_DSS_CONJUGATE_SOLVE
option added to the parameter
opt
enables solving a conjugate transposed system
A
H
X
=
B
based on the factorization of the matrix
A
. This option is equivalent to the parameter
iparm
(12)
= 1
in
Intel® MKL
PARDISO.
MKL_DSS_TRANSPOSE_SOLVE
option added to the parameter
opt
enables solving a transposed system
A
T
X
=
B
based on the factorization of the matrix
A
. This option is equivalent to the parameter
iparm
(12)
= 2
in
Intel® MKL
PARDISO.
Input Parameters
handle
TYPE (MKL_DSS_HANDLE)
,
INTENT(INOUT)
Pointer to the data structure storing internal DSS results (
MKL_DSS_HANDLE
).
opt
INTEGER
,
INTENT(IN)
Parameter to pass the DSS options.
nRhs
INTEGER
,
INTENT(IN)
Number of the right-hand sides in the system of linear equations.
rRhsValues
REAL*8
REAL(KIND=4)
,
INTENT(IN)
or
REAL(KIND=8)
,
INTENT(IN)
Array of size
nRows
*
nRhs
. Contains real right-hand side vectors. Real data, single or double precision as it is specified by the parameter
opt
in the routine
dss_create
.
cRhsValues