Compute the corresponding solutions vector and place it in the output array.
C:
dss_solve_real(handle, opt, rRhsValues, nRhs, rSolValues)
dss_solve_complex(handle, opt, cRhsValues, nRhs, cSolValues)
FORTRAN 77:
call dss_solve_real(handle, opt, rRhsValues, nRhs, rSolValues)
call dss_solve_complex(handle, opt, cRhsValues, nRhs, cSolValues)
Fortran 90:
unified Fortran 90 interface:
call dss_solve(handle, opt, RhsValues, nRhs, SolValues)
or FORTRAN 77 like interface:
call dss_solve_real(handle, opt, rRhsValues, nRhs, rSolValues)
call dss_solve_complex(handle, opt, cRhsValues, nRhs, cSolValues)
The FORTRAN 77 interface is specified in the mkl_dss.f77 include file, the Fortran 90 interface is specified in the mkl_dss.f90 include file, and the C interface is specified in the mkl_dss.h include file.
For each right hand side column vector defined in the arrays rRhsValues, cRhsValues, or RhsValues, these routines compute the corresponding solutions vector and place it in the arrays rSolValues, cSolValues, or SolValues respectively.
The lengths of the right-hand side and solution vectors, nCols and nRows respectively, must be defined in a previous call to dss_define_structure.
By default, both routines perform full solution step (it corresponds to phase =33 in PARDISO). The parameter opt enables 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 PARDISO) is performed, if it is set to MKL_DSS_DIAGONAL_SOLVE - the diagonal substitution (corresponding to phase =332 in PARDISO) is performed, and if it is set to MKL_DSS_BACKWARD_SOLVE - the backward substitution (corresponding to phase =333 in PARDISO ) is performed. For more details about using these substitutions for different types of matrices, see description of the PARDISO solver.
This parameter also can control 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.
Name |
Type |
Description |
---|---|---|
handle |
FORTRAN 77: INTEGER*8 Fortran 90: TYPE (MKL_DSS_HANDLE), INTENT(INOUT) C: _MKL_DSS_HANDLE_t* |
Pointer to the data structure storing intermediate DSS results (MKL_DSS_HANDLE). |
opt |
FORTRAN 77: INTEGER Fortran 90: INTEGER, INTENT(IN) C: _INTEGER_t const* |
Parameter to pass the DSS options. |
nRhs |
FORTRAN 77: INTEGER Fortran 90: INTEGER, INTENT(IN) C: _INTEGER_t const* |
Number of the right-hand sides in the linear equation. |
rRhsValues |
FORTRAN 77: REAL*4 or REAL*8 Fortran 90: REAL(KIND=4), INTENT(IN) or REAL(KIND=8), INTENT(IN) C: VOID const* |
Array of size nRows by nRhs. Contains real right-hand side vectors. Real data, single or double precision*). |
cRhsValues |
FORTRAN 77: COMPLEX*8 or COMPLEX*16 Fortran 90: COMPLEX(KIND=4), INTENT(IN) or COMPLEX(KIND=8), INTENT(IN) C: VOID const* |
Array of size nRows by nRhs. Contains complex right-hand side vectors. Complex data, single or double precision*). |
RhsValues |
Fortran 90: REAL(KIND=4), INTENT(IN), or REAL(KIND=8), INTENT(IN), or COMPLEX(KIND=4), INTENT(IN), or COMPLEX(KIND=8), INTENT(IN) |
Array of size nRows by nRhs. Contains right-hand side vectors. Real or complex data, single or double precision*). |
*) - data type (single or double precision) must be in correspondence with precision specified by the parameter opt in the routine dss_create.
Name |
Type |
Description |
---|---|---|
rSolValues |
FORTRAN 77: REAL*4 or REAL*8 Fortran 90: REAL(KIND=4), INTENT(OUT) or REAL(KIND=8), INTENT(OUT) C: VOID const* |
Array of size nCols by nRhs. Contains real solution vectors. Real data, single or double precision*). |
cSolValues |
FORTRAN 77: COMPLEX*8 or COMPLEX*16 Fortran 90: COMPLEX(KIND=4), INTENT(OUT) or COMPLEX(KIND=8), INTENT(OUT) C: VOID const* |
Array of size nCols by nRhs. Contains complex solution vectors. Complex data, single or double precision*). |
SolValues |
Fortran 90: REAL(KIND=4), INTENT(OUT), or REAL(KIND=8), INTENT(OUT), or COMPLEX(KIND=4), INTENT(OUT), or COMPLEX(KIND=8), INTENT(OUT) |
Array of size nColws by nRhs. Contains solution vectors. Real or complex data, single or double precision*). |
*) - data type (single or double precision) must be in correspondence with precision specified by the parameter opt in the routine dss_create.
Copyright © 1994 - 2010, Intel Corporation. All rights reserved.