def test_linear_element(): '''Test the implementation of the linear element with simple integrals''' dx = 5. num_elem = 5 mesh = Mesh(type='uniform', ox=0., lx=dx, nx=num_elem) elem_num = 1 connect = mesh.connectivity(elem_num) vertices = mesh.coordinates(connect) elem = LinearElement(elem_num, connect, vertices) # --- test some integrals ex = lambda x: x ex2 = lambda x: x ** 2 # Integrate[phi] ans = elem.integrate() exact = integrate(N, (x, 0, 1)) assert areclose(ans, exact) # Integrate[dphi] ans = elem.integrate(derivative=True) exact = integrate(dN, (x, 0, 1)) assert areclose(ans, exact) # Integrate[x phi] ans = elem.integrate(ex) exact = integrate(x * N, (x, 0, 1)) assert areclose(ans, exact) # Integrate[x dphi] ans = elem.integrate(ex, derivative=True) exact = integrate(x * dN, (x, 0, 1)) assert areclose(ans, exact) # Integrate[x x phi] ans = elem.integrate(ex, ex) exact = integrate(x * x * N, (x, 0, 1)) assert areclose(ans, exact) # Integrate[x x dphi] ans = elem.integrate(ex,ex,derivative=True) exact = integrate(x*x*dN,(x,0,1)) assert areclose(ans, exact)