示例#1
0
 def test_integrate_master(self):
     el = Element.Cubic_1D(-1, 1)
     I = el.integrate(lambda x: 1)
     self.assertAlmostEqual(I, 2.0)
     I = el.integrate(lambda x: x**2)
     self.assertAlmostEqual(I, 2.0 / 3.0)
     return
示例#2
0
 def test_integrate_arbitrary(self):
     el = Element.Cubic_1D(1.0, 1.5)
     I = el.integrate(lambda x: 2)
     self.assertAlmostEqual(I, 1.0)
     I = el.integrate(lambda x: x**3)
     self.assertAlmostEqual(I, ((1.5)**4 - 1) / 4.0)
     return
示例#3
0
 def test_T_arbitrary(self):
     el = Element.Cubic_1D(0.5, 0.7)
     self.assertAlmostEqual(el.T(0.5), -1)
     self.assertAlmostEqual(el.T(0.6), 0)
     self.assertAlmostEqual(el.T(0.7), 1)
     self.assertAlmostEqual(el.w[0], -9.0 / 16.0)
     self.assertAlmostEqual(el.w[1], 27.0 / 16.0)
     self.assertAlmostEqual(el.w[2], -27.0 / 16.0)
     self.assertAlmostEqual(el.w[3], 9.0 / 16.0)
     self.assertAlmostEqual(el.xipts[0], -1)
     self.assertAlmostEqual(el.xipts[1], -1.0 / 3.0)
     self.assertAlmostEqual(el.xipts[2], 1.0 / 3.0)
     self.assertAlmostEqual(el.xipts[3], 1)
     return
示例#4
0
 def test_gradsqphi_master(self):
     el = Element.Cubic_1D(-1, 1)
     ggp0 = el.gradsqphi(0)
     ggp1 = el.gradsqphi(1)
     ggp2 = el.gradsqphi(2)
     ggp3 = el.gradsqphi(3)
     self.assertAlmostEqual(ggp0(-1), 4.5)
     self.assertAlmostEqual(ggp0(1.0 / 3.0), 0)
     self.assertAlmostEqual(ggp1(-1), -45.0 / 4.0)
     self.assertAlmostEqual(ggp1(1.0 / 9.0), 0)
     self.assertAlmostEqual(ggp2(-1), 9.0)
     self.assertAlmostEqual(ggp2(-1.0 / 9.0), 0)
     self.assertAlmostEqual(ggp3(-1), -9.0 / 4.0)
     self.assertAlmostEqual(ggp3(-1.0 / 3.0), 0)
     return
示例#5
0
 def test_T_master(self):
     el = Element.Cubic_1D(-1, 1)
     self.assertAlmostEqual(el.T(-1), -1)
     self.assertAlmostEqual(el.T(-0.5), -0.5)
     self.assertAlmostEqual(el.T(0), 0)
     self.assertAlmostEqual(el.T(0.5), 0.5)
     self.assertAlmostEqual(el.T(1), 1)
     self.assertAlmostEqual(el.w[0], -9.0 / 16.0)
     self.assertAlmostEqual(el.w[1], 27.0 / 16.0)
     self.assertAlmostEqual(el.w[2], -27.0 / 16.0)
     self.assertAlmostEqual(el.w[3], 9.0 / 16.0)
     self.assertAlmostEqual(el.xipts[0], -1)
     self.assertAlmostEqual(el.xipts[1], -1.0 / 3.0)
     self.assertAlmostEqual(el.xipts[2], 1.0 / 3.0)
     self.assertAlmostEqual(el.xipts[3], 1)
     return
示例#6
0
 def test_jacobian_arbitrary(self):
     el = Element.Cubic_1D(-23, 51)
     self.assertAlmostEqual(el.jacobian(0), 2.0 / 74.0)
     return
示例#7
0
 def test_jacobian_master(self):
     el = Element.Cubic_1D(-1, 1)
     self.assertAlmostEqual(el.jacobian(0), 1.0)
     return