Exemple #1
0
 def test_load(self):
     el = ConvectionDiffusionReactionElement.Linear_1D_VMS(
         0, 0.25, 1, 0, 0)
     F = el.load_vector(lambda x: x**2)
     self.assertAlmostEqual(F[0], (1.0 / (3.0 * 64.0) - 1.0 / 256.0))
     self.assertAlmostEqual(F[1], (1.0 / 256.0))
     return
Exemple #2
0
 def test_stiffness_convection(self):
     el = ConvectionDiffusionReactionElement.Linear_1D(0, 0.25, 0, 0, 1)
     K = el.stiffness_matrix()
     self.assertAlmostEqual(K[0, 0], 0.5)
     self.assertAlmostEqual(K[0, 1], 0.5)
     self.assertAlmostEqual(K[1, 0], -0.5)
     self.assertAlmostEqual(K[1, 1], -0.5)
     return
Exemple #3
0
 def test_stiffness_reaction(self):
     el = ConvectionDiffusionReactionElement.Linear_1D(0, 0.25, 0, 1, 0)
     K = el.stiffness_matrix()
     self.assertAlmostEqual(K[0, 0], 1.0 / 12.0)
     self.assertAlmostEqual(K[0, 1], 1.0 / 24.0)
     self.assertAlmostEqual(K[1, 0], 1.0 / 24.0)
     self.assertAlmostEqual(K[1, 1], 1.0 / 12.0)
     return
Exemple #4
0
 def test_load(self):
     el = ConvectionDiffusionReactionElement.Cubic_1D(0, 0.25, 1, 0, 0)
     F = el.load_vector(lambda x: x**2)
     self.assertAlmostEqual(F[0], 1.0 / 7680.0)
     self.assertAlmostEqual(F[1], 0)
     self.assertAlmostEqual(F[2], 9.0 / 2560.0)
     self.assertAlmostEqual(F[3], 1.0 / 640.0)
     return
Exemple #5
0
 def test_stiffness_convection(self):
     el = ConvectionDiffusionReactionElement.Linear_1D_VMS(
         0, 0.25, 1, 0, 1)
     K = el.stiffness_matrix()
     tau = numpy.cosh(1.0 / 8.0) / (8.0 * numpy.sinh(1.0 / 8.0)) - 1.0
     self.assertAlmostEqual(K[0, 0], 4.0 + 0.5 + 4 * tau)
     self.assertAlmostEqual(K[0, 1], -4.0 + 0.5 - 4 * tau)
     self.assertAlmostEqual(K[1, 0], -4.0 + -0.5 - 4 * tau)
     self.assertAlmostEqual(K[1, 1], 4.0 + -0.5 + 4 * tau)
     return
Exemple #6
0
 def test_stiffness_convection(self):
     el = ConvectionDiffusionReactionElement.Cubic_1D(0, 0.25, 0, 0, 1)
     K = el.stiffness_matrix()
     self.assertAlmostEqual(K[0, 0], 0.5)
     self.assertAlmostEqual(K[0, 1], 57.0 / 80.0)
     self.assertAlmostEqual(K[0, 2], -0.3)
     self.assertAlmostEqual(K[0, 3], 7.0 / 80.0)
     self.assertAlmostEqual(K[1, 0], -57.0 / 80.0)
     self.assertAlmostEqual(K[1, 1], 0)
     self.assertAlmostEqual(K[1, 2], 81.0 / 80.0)
     self.assertAlmostEqual(K[1, 3], -0.3)
     self.assertAlmostEqual(K[2, 0], 0.3)
     self.assertAlmostEqual(K[2, 1], -81.0 / 80.0)
     self.assertAlmostEqual(K[2, 2], 0)
     self.assertAlmostEqual(K[2, 3], 57.0 / 80.0)
     self.assertAlmostEqual(K[3, 0], -7.0 / 80.0)
     self.assertAlmostEqual(K[3, 1], 3.0 / 10.0)
     self.assertAlmostEqual(K[3, 2], -57.0 / 80.0)
     self.assertAlmostEqual(K[3, 3], -0.5)
     return
Exemple #7
0
 def test_stiffness_reaction(self):
     el = ConvectionDiffusionReactionElement.Cubic_1D(0, 0.25, 0, 1, 0)
     K = el.stiffness_matrix()
     self.assertAlmostEqual(K[0, 0], 2.0 / 105.0)
     self.assertAlmostEqual(K[0, 1], 33.0 / 2240.0)
     self.assertAlmostEqual(K[0, 2], -3.0 / 560.0)
     self.assertAlmostEqual(K[0, 3], 19.0 / 6720.0)
     self.assertAlmostEqual(K[1, 0], 33.0 / 2240.0)
     self.assertAlmostEqual(K[1, 1], 27.0 / 280.0)
     self.assertAlmostEqual(K[1, 2], -27.0 / 2240.0)
     self.assertAlmostEqual(K[1, 3], -3 / 560.0)
     self.assertAlmostEqual(K[2, 0], -3.0 / 560.0)
     self.assertAlmostEqual(K[2, 1], -27.0 / 2240.0)
     self.assertAlmostEqual(K[2, 2], 27.0 / 280.0)
     self.assertAlmostEqual(K[2, 3], 33.0 / 2240.0)
     self.assertAlmostEqual(K[3, 0], 19.0 / 6720.0)
     self.assertAlmostEqual(K[3, 1], -3 / 560.0)
     self.assertAlmostEqual(K[3, 2], 33.0 / 2240.0)
     self.assertAlmostEqual(K[3, 3], 2.0 / 105)
     return
Exemple #8
0
 def test_stiffness_diffusion(self):
     el = ConvectionDiffusionReactionElement.Cubic_1D(0, 0.25, 1, 0, 0)
     K = el.stiffness_matrix()
     self.assertAlmostEqual(K[0, 0], 74.0 / 5.0)
     self.assertAlmostEqual(K[0, 1], -18.9)
     self.assertAlmostEqual(K[0, 2], 27.0 / 5.0)
     self.assertAlmostEqual(K[0, 3], -1.3)
     self.assertAlmostEqual(K[1, 0], -18.9)
     self.assertAlmostEqual(K[1, 1], 216.0 / 5.0)
     self.assertAlmostEqual(K[1, 2], -29.7)
     self.assertAlmostEqual(K[1, 3], 27.0 / 5.0)
     self.assertAlmostEqual(K[2, 0], 27.0 / 5.0)
     self.assertAlmostEqual(K[2, 1], -29.7)
     self.assertAlmostEqual(K[2, 2], 216.0 / 5.0)
     self.assertAlmostEqual(K[2, 3], -18.9)
     self.assertAlmostEqual(K[3, 0], -1.3)
     self.assertAlmostEqual(K[3, 1], 27.0 / 5.0)
     self.assertAlmostEqual(K[3, 2], -18.9)
     self.assertAlmostEqual(K[3, 3], 74.0 / 5.0)
     return