;return_padcompact_deriv ; ;PURPOSE: ; This function will return a fourth order accurate of the derivative ; for an NxN matrix ; function return_padecompact_deriv,Matrix MatSize=size(Matrix) N=MatSize(1) Slopes=Fltarr(N-2,N-2,2) ;Create A Banded TriDiagonal Matrix Diag=fltarr(N-2) Diag(*)=4 OffDiag=fltarr(N-3) OffDiag(*)=1 B=Diag_Matrix(Diag)+Diag_Matrix(OffDiag,1)+Diag_Matrix(OffDiag,-1) XCentered=Fltarr(N-2,N-2) YCentered=Fltarr(N-2,N-2) XCentered(*,*)=0.5*(Matrix(2:N-1,1:N-2)-Matrix(0:N-3,1:N-2)) YCentered(*,*)=0.5*(Matrix(1:N-2,2:N-1)-Matrix(1:N-2,0:N-3)) Slopes(*,*,0)=6*XCentered#Invert(B) Slopes(*,*,1)=6*Invert(B)#YCentered return,Slopes end