示例#1
0
文件: chebyshev.py 项目: drufat/dec
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)
示例#2
0
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)
示例#3
0
文件: regular.py 项目: drufat/dec
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
示例#4
0
文件: regular.py 项目: drufat/dec
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
示例#5
0
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
示例#6
0
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
示例#7
0
文件: chebyshev.py 项目: drufat/dec
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)
示例#8
0
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)