コード例 #1
0
ファイル: test_asm.py プロジェクト: mfkiwl/sp.fem
    def runTest(self):
        import numpy as np
        from spfem.mesh import MeshTri
        from spfem.asm import AssemblerAbstract, AssemblerElement
        from spfem.element import AbstractElementTriPp, ElementTriP1
        from spfem.utils import direct

        m = MeshTri()
        m.refine(3)

        e = AbstractElementTriPp(1)
        e1 = ElementTriP1()
        a = AssemblerAbstract(m,e)
        b = AssemblerElement(m,e1)

        A=a.iasm(lambda du,dv: du[0]*dv[0]+du[1]*dv[1])
        f=a.iasm(lambda v: 1.0*v)

        x=direct(A,f,I=m.boundary_nodes())

        K=a.inorm(lambda u: u[0], {0:x})

        self.assertAlmostEqual(np.sqrt(np.sum(K)),b.L2error(x,lambda X:0*X[0]))