def H1_cheb(f): f = sp.mirror1(f, -1) N = f.shape[0]; h = 2*pi/N f = sp.F(f) f = sp.fourier_K_inv(f, 0, h) f = sp.fourier_S(f, +h/2) f = sp.Finv(f) f = sp.unmirror1(f) return real(f)
def H1_cheb(f): f = sp.mirror1(f, -1) N = f.shape[0] h = 2 * pi / N f = sp.F(f) f = sp.fourier_K_inv(f, 0, h) f = sp.fourier_S(f, +h / 2) f = sp.Finv(f) f = sp.unmirror1(f) return real(f)
def H0d_regular(f): r''' .. math:: \widetilde{\mathbf{H}}^{0}= \mathbf{M}_{1}^{\dagger} \mathbf{I}^{-\frac{h}{2},\frac{h}{2}} \mathbf{M}_{1}^{+} ''' f = sp.mirror1(f, +1) N = f.shape[0]; h = 2*pi/N f = sp.I_space(-h/2, h/2)(f) f = sp.unmirror1(f) return f
def H1_regular(f): r''' .. math:: \mathbf{H}^{1}= \mathbf{M}_{1}^{\dagger} {\mathbf{I}^{-\frac{h}{2},\frac{h}{2}}}^{-1} \mathbf{M}_{1}^{+} ''' f = sp.mirror1(f, +1) N = f.shape[0]; h = 2*pi/N f = sp.I_space_inv(-h/2, h/2)(f) f = sp.unmirror1(f) return f
def H0d_regular(f): r''' .. math:: \widetilde{\mathbf{H}}^{0}= \mathbf{M}_{1}^{\dagger} \mathbf{I}^{-\frac{h}{2},\frac{h}{2}} \mathbf{M}_{1}^{+} ''' f = sp.mirror1(f, +1) N = f.shape[0] h = 2 * pi / N f = sp.I_space(-h / 2, h / 2)(f) f = sp.unmirror1(f) return f
def H1_regular(f): r''' .. math:: \mathbf{H}^{1}= \mathbf{M}_{1}^{\dagger} {\mathbf{I}^{-\frac{h}{2},\frac{h}{2}}}^{-1} \mathbf{M}_{1}^{+} ''' f = sp.mirror1(f, +1) N = f.shape[0] h = 2 * pi / N f = sp.I_space_inv(-h / 2, h / 2)(f) f = sp.unmirror1(f) return f
def S_cheb(f): ''' Interpolate from primal to dual vertices. >>> S_cheb(array([-1, 0, 1])) array([-0.70710678, 0.70710678]) >>> S_cheb(array([1, 0, -1])) array([ 0.70710678, -0.70710678]) >>> sp.to_matrix(S_cheb, 3).round(3) array([[ 0.604, 0.5 , -0.104], [-0.104, 0.5 , 0.604]]) ''' f = sp.mirror0(f, +1) N = f.shape[0]; h = 2*pi/N f = sp.Finv(sp.F(f)*sp.S_diag(N, h/2)) f = sp.unmirror1(f) return real(f)
def S_cheb(f): ''' Interpolate from primal to dual vertices. >>> S_cheb(array([-1, 0, 1])) array([-0.70710678, 0.70710678]) >>> S_cheb(array([1, 0, -1])) array([ 0.70710678, -0.70710678]) >>> sp.to_matrix(S_cheb, 3).round(3) array([[ 0.604, 0.5 , -0.104], [-0.104, 0.5 , 0.604]]) ''' f = sp.mirror0(f, +1) N = f.shape[0] h = 2 * pi / N f = sp.Finv(sp.F(f) * sp.S_diag(N, h / 2)) f = sp.unmirror1(f) return real(f)