コード例 #1
0
def operator_2d(current, coeff):
    u, v = current
    N, M = v.shape
    coeff1, coeff2 = coeff
    a11, b11, c11, d11, e11, f11, a12, b12, c12, d12, e12, f12 = coeff1
    a21, b21, c21, d21, e21, f21, a22, b22, c22, d22, e22, f22 = coeff2
    defect1 = llt.PDE(u, N, [a11, b11, c11, d11, e11, f11]) + llt.PDE(v, N, [a12, b12, c12, d12, e12, f12])
    defect2 = llt.PDE(u, N, [a21, b21, c21, d21, e21, f21]) + llt.PDE(v, N, [a22, b22, c22, d22, e22, f22])
    return np.array([defect1, defect2])
コード例 #2
0
def residuals_2d(current, coeff, rhs):
    u, v = current
    N, M = v.shape
    coeff1, coeff2 = coeff
    a11, b11, c11, d11, e11, f11, a12, b12, c12, d12, e12, f12 = coeff1
    a21, b21, c21, d21, e21, f21, a22, b22, c22, d22, e22, f22 = coeff2
    r1, r2 = rhs
    defect1 = r1 - llt.PDE(u, N, [a11, b11, c11, d11, e11, f11]) - llt.PDE(v, N, [a12, b12, c12, d12, e12, f12])
    defect2 = r2 - llt.PDE(u, N, [a21, b21, c21, d21, e21, f21]) - llt.PDE(v, N, [a22, b22, c22, d22, e22, f22])
    return np.array([defect1, defect2])
コード例 #3
0
def defects_2d(current, coeff, rhs):
    u, v = current
    N, M = v.shape
    coeff1, coeff2 = coeff
    a11, b11, c11, d11, e11, f11, a12, b12, c12, d12, e12, f12 = coeff1
    a21, b21, c21, d21, e21, f21, a22, b22, c22, d22, e22, f22 = coeff2
    r1, r2 = rhs
    defect1 = llt.PDE(u, N, [a11, b11, c11, d11, e11, f11]) + llt.PDE(v, N, [a12, b12, c12, d12, e12, f12]) - r1
    defect2 = llt.PDE(u, N, [a21, b21, c21, d21, e21, f21]) + llt.PDE(v, N, [a22, b22, c22, d22, e22, f22]) - r2
    d1 = np.linalg.norm(defect1[1:-1, 1:-1].reshape((-1,)), ord=np.inf)
    d2 = np.linalg.norm(defect2[1:-1, 1:-1].reshape((-1,)), ord=np.inf)
    return np.array([d1, d2])
コード例 #4
0
def operator_1d(current, coeff):
    u = current[0]
    N, M = u.shape
    coeff1 = coeff[0]
    a11, b11, c11, d11, e11, f11 = coeff1
    defect1 = llt.PDE(u, N, [a11, b11, c11, d11, e11, f11])
    return np.array([defect1])
コード例 #5
0
def residuals_1d(current, coeff, rhs):
    u = current[0]
    N, M = u.shape
    coeff1 = coeff[0]
    a11, b11, c11, d11, e11, f11 = coeff1
    r1 = rhs[0]
    defect1 = - llt.PDE(u, N, [a11, b11, c11, d11, e11, f11]) + r1
    return np.array([defect1])
コード例 #6
0
def defects_1d(current, coeff, rhs):
    u = current[0]
    N, M = u.shape
    coeff1 = coeff[0]
    a11, b11, c11, d11, e11, f11 = coeff1
    r1 = rhs[0]
    defect1 = llt.PDE(u, N, [a11, b11, c11, d11, e11, f11]) - r1
    d1 = np.linalg.norm(defect1[1:-1, 1:-1].reshape((-1,)), ord=np.inf)
    return np.array([d1])