XLPack for Matplotlib Experimental Version 0.1
Example Programs
Loading...
Searching...
No Matches

Plot the sparsity pattern of the coefficient matrix in CSC format of the system of linear equations generated by five-point difference approximation of the two-dimensional Poisson equation.


Sub GenMat_5DF_CSX(N As Long, Nnz As Long, Value() As Double, Index() As Long, Ptr() As Long)
    Dim NN As Long, II As Long, I As Long, J As Long, Ctr As Long
    NN = N * N
    Ctr = 0
    For II = 0 To NN - 1
        I = Int(II / N)
        J = II - I * N
        If I > 0 Then
            Index(Ctr) = II - N
            Value(Ctr) = -1
            Ctr = Ctr + 1
        End If
        If I < N - 1 Then
            Index(Ctr) = II + N
            Value(Ctr) = -1
            Ctr = Ctr + 1
        End If
        If J > 0 Then
            Index(Ctr) = II - 1
            Value(Ctr) = -1
            Ctr = Ctr + 1
        End If
        If J < N - 1 Then
            Index(Ctr) = II + 1
            Value(Ctr) = -1
            Ctr = Ctr + 1
        End If
        Index(Ctr) = II
        Value(Ctr) = 4
        Ctr = Ctr + 1
        Ptr(II + 1) = Ctr
    Next
    Ptr(0) = 0
    Nnz = Ctr
End Sub

Sub Test_Plt_Spy_CSC()
    Const N = 10, NN = N * N
    Dim Val(5 * NN - 1) As Double, Ind(5 * NN - 1) As Long, Ptr(NN) As Long
    Dim Nnz As Long
    Call GenMat_5DF_CSX(N, Nnz, Val(), Ind(), Ptr())
    Call Plt.Spy_CSR(NN, NN, Nnz, Val(), Ptr(), Ind(), "markersize=5")
    Call Plt.Show
End Sub