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

Plot the sparsity pattern of the coefficient matrix in CSR 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_Spy_CSR()
    Const N = 10, NN = N * N
    Dim Fig As Figure, Ax As Axs
    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())
    Set Fig = Plt.Figure()
    Set Ax = Fig.Gca()
    Call Ax.Spy_CSR(NN, NN, Nnz, Val(), Ptr(), Ind(), "markersize=5")
    Call Plt.Show
End Sub