Calling PVSS Library
PVSS Library consist of Five Calls: 1. VSS_SET (Setup the Data Structure and Reordering)
CALL VSS_SET(NEQ,NCOEFF,DIAG,RHS,AMAT,KPT,KIND,ANS,J_POINTER)
2. VSS_MEM (Allocate memory)
CALL VSS_MEM(NEQ,NCOEFF,DIAG,RHS,AMAT,KPT,KIND,ANS,J_POINTER)
3. VSS (Factorize The matrix)
CALL VSS (NEQ,NCOEFF,DIAG,RHS,AMAT,KPT,KIND,ANS,J_POINTER)
4. VSS2 (Performs Forward/Backward Substitution) Can be called many times for each R.H.S.
CALL VSS2 (NEQ,NCOEFF,DIAG,RHS,AMAT,KPT,KIND,ANS,J_POINTER)
5. VSS_FREE will free all memory used by the solver. Must be called before calling setup again.
CALL VSS_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] AMAT [I] : (off-diagonal) coefficients in row format [size NCOEFF] RHS [I] : Right-Hand Side (Load vector) [size NEQ] ANS [O] : Left-Hand Side (Solution) [size NEQ] J_POINTER [-] : WORKING VECTOR SIZE (100,2) [I] Denotes Input [O] Denotes Output Example: 1 2 3 4 5 6 1 | 100 1 2 5 | | X1 | | 201 | 2 | 200 6 7 9 | | X2 | | 202 | 3 | 300 10 11 12 | | X3 | | 203 | A = 4 | 400 13 14 | | X4 | = | 204 | 5 | 500 15 | | X5 | | 205 | 6 | 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} AMAT = { 1, 2, 5, 6, 7, 9, 10,11,12, 13,14, 15} RHS = { 201, 202, 203, 204, 205, 206}