Example #1
0
    def test99_assemble(self):
        """Check diff way to assemble syst are consistent"""
        mesh = UnitSquareMesh(10, 10)
        V = FunctionSpace(mesh, 'Lagrange', 2)
        u0 = Expression('0')

        def u0_bdy(x, on_boundary):
            return on_boundary

        bc = DirichletBC(V, u0, u0_bdy)
        OpEll = OperatorMass(V, V, bc)
        f = Expression('1')
        OpEll.assemble_A()
        A1 = OpEll.A
        v = TestFunction(V)
        L = f * v * dx
        b1 = assemble(L)
        bc.apply(b1)
        u1 = Function(V)
        solve(A1, u1.vector(), b1)

        A2, b2 = OpEll.assemble_Ab(f)
        u2 = Function(V)
        solve(A2, u2.vector(), b2)
        diffa = A1.array() - A2.array()
        self.assertTrue(max(abs(u1.vector().array() - \
        u2.vector().array())) < 1e-14 and max(abs(u1.vector().array())) > 1e-3)
    def test99_assemble(self):
        """Check diff way to assemble syst are consistent"""
        mesh = UnitSquareMesh(10,10)
        V = FunctionSpace(mesh, 'Lagrange', 2)
        u0 = Expression('0')
        def u0_bdy(x, on_boundary): return on_boundary
        bc = DirichletBC(V, u0, u0_bdy)
        OpEll = OperatorMass(V, V, bc)
        f = Expression('1')
        OpEll.assemble_A()
        A1 = OpEll.A
        v = TestFunction(V)
        L = f*v*dx
        b1 = assemble(L)
        bc.apply(b1)
        u1 = Function(V)
        solve(A1, u1.vector(), b1)

        A2, b2 = OpEll.assemble_Ab(f)
        u2 = Function(V)
        solve(A2, u2.vector(), b2)
        diffa = A1.array() - A2.array()
        self.assertTrue(max(abs(u1.vector().array() - \
        u2.vector().array())) < 1e-14 and max(abs(u1.vector().array())) > 1e-3)