Vectorize Sparse Solver (UVSS)

 

Calling UVSS Library

 

UVSS Libraray consist of Three Calls:

1. UVSS_SET (Setup the Data Structure and Reordering)

CALL UVSS_SET (NEQ,NCOEFF,DIAG,RHS,A,A2,KPT,KIND,ANS,J_POINTER)

2. UVSS_MEM (Allocate memory)

CALL UVSS_MEM (NEQ,NCOEFF,DIAG,RHS,A,A2,KPT,KIND,ANS,J_POINTER)

3. UVSS (Factorize The matrix)

CALL UVSS (NEQ,NCOEFF,DIAG,RHS,A,A2,KPT,KIND,ANS,J_POINTER)

4. UVSS2 (Performs Forwared/Backward Substitution)
   Can be called many times for each R.H.S.

CALL UVSS2 (NEQ,NCOEFF,DIAG,RHS,A,A2,KPT,KIND,ANS,J_POINTER)

5. UVSS_FREE will free all memory used by the solver.
   Must be called before calling uvss_set again.

CALL UVSS_FREE (NEQ,NCOEFF,J_POINTER)


     NEQ        [I]   :  number of equations
     NCOEFF     [I]   :  number of non-zero coefficients 
     DIAG       [I]   :  diagonal terms  [size NEQ]
     KPT        [I]   :  number of (off- diagonal) coefficients in each row  [size NEQ]
     KIND       [I]   :  column location of each coefficient  [size NCOEFF]
     A          [I]   :  (off-diagonal) coefficients in row format  [size NCOEFF] (UPPER)
     A2         [I]   :  (off-diagonal) coefficients in column format  [size NCOEFF] (LOWER)
     RHS        [I]   :  Right-Hand Side (Load vector)  [size NEQ]
     ANS        [O]   :  Left-Hand Side (Solution)  [size NEQ]
     J_POINTER  [I]   :  WORKING VECTOR SIZE (100,2)

[I] Denotes Input
[O] Denotes Onput
   Example:
                1    2    3    4     5     6

          1  | 100   1    2                5  |  | X1 |     | 201 |
          2  |  41 200    6    7           9  |  | X2 |     | 202 |
          3  |  42  46  300   10    11    12  |  | X3 |     | 203 |
      A = 4  |      47   50   400   13    14  |  | X4 |  =  | 204 |
          5  |           51    53  500    15  |  | X5 |     | 205 |
          6  |  45  49   52    54   55   600  |  | X6 |     | 206 |


     NUMBER OF EQUATIONS    =  6

     NUMBER OF COEFFICIENTS = 12

     NEQ       = 6
     NCOEFF    = 12
     DIAG      = { 100, 200, 300, 400, 500, 600}
     KPT       = { 3, 3, 3, 2, 1, 0}
     KIND      = { 2, 3, 6,  3, 4, 6,  4, 5, 6,  5, 6,  6}
     A         = { 1, 2, 5,  6, 7, 9, 10,11,12, 13,14, 15}
     A2        = { 41, 42, 45,  46, 47, 49, 50,51,52, 53,54,55}
     RHS       = { 201, 202, 203, 204, 205, 206}

UVSS Page