Beispiel #1
0
def test_QuadOneOverR_1():
    f = lambda x: 1 / (x - 0.4)
    exact = np.log(3.0 / 2.0)
    qi = piessens(2, 0.4, nonsingular_N = 10)
    qx = np.array(qi.x)
    qw = np.array(qi.w)
    est = np.sum(f(qx) * qw)
    np.testing.assert_almost_equal(exact, est)
Beispiel #2
0
def test_plot_single_integral_kernel():
    msh = simple_line_mesh(2)
    x = np.linspace(0.0, 1, 1000)
    kernel = TractionKernel(1.0, 0.25)
    bf = basis_funcs.basis_from_degree(8)
    bf1 = ConstantBasis((1.0, 1.0))
    k = np.zeros_like(x)
    k_int = np.zeros_like(x)
    for (i, x_val) in enumerate(x):
        q = quadrature.piessens(16, x_val, 16)
        kernel.set_interior_data([x_val, 0.0], [0.0,1.0])
        kd = kernel.get_interior_integral_data([1.0, 0.0], [0.0, 1.0])
        k[i] = kernel._call(kd, 0, 1)
        k_int[i] = single_integral(msh.elements[1].mapping.eval, kernel, bf1,
                                bf, q, 0, 4)[0][1]