예제 #1
0
    def test_load(self):
        rectangle = Rectangle(model="potential")
        self.assertEqual(len(rectangle.domain_points), 1)
        self.assertEqual(len(rectangle.boundary_points), 8)
        self.assertEqual(len(rectangle.all_points), 9)

        rectangle = Rectangle(model="viscoelastic")
        self.assertEqual(len(rectangle.domain_points), 1)
        self.assertEqual(len(rectangle.boundary_points), 8)
        self.assertEqual(len(rectangle.all_points), 9)
예제 #2
0
    def test_condition(self):
        rectangle = Rectangle(model="potential")
        self.assertEqual(rectangle.condition([0, 0.1])[0], "NEUMANN")
        self.assertEqual(rectangle.condition([0.1, 0])[0], "DIRICHLET")

        rectangle = Rectangle(model="viscoelastic")
        self.assertEqual(rectangle.condition([0, 0.1])[0], "DIRICHLET")
        self.assertEqual(rectangle.condition([0.1, 0])[0], "DIRICHLET")
        self.assertEqual(rectangle.condition([0, 0.1])[1], "NEUMANN")
        self.assertEqual(rectangle.condition([0.1, 0])[1], "NEUMANN")
예제 #3
0
 def test_distance_from_boundary(self):
     rectangle = Rectangle(model="potential")
     self.assertAlmostEqual(
         rectangle.distance_from_boundary([0.123, 0.456]), 0.123, 5)
예제 #4
0
 def test_integration_limits(self):
     rectangle = Rectangle(model="potential")
     self.assertAlmostEqual(
         rectangle.boundary_integration_limits([0, 0])[0], 0, 5)
     self.assertAlmostEqual(
         rectangle.boundary_integration_limits([0, 0])[1], np.pi / 2, 5)
예제 #5
0
 def test_normal(self):
     rectangle = Rectangle(model="potential")
     self.assertAlmostEqual(rectangle.normal([0, 0.1])[0], -1, 5)
     self.assertAlmostEqual(rectangle.normal([0, 0.1])[1], 0, 5)
     self.assertAlmostEqual(rectangle.normal([0.1, 0])[0], 0, 5)
     self.assertAlmostEqual(rectangle.normal([0.1, 0])[1], -1, 5)
예제 #6
0
 def test_petrov_galerkin_viscoelasticity_rectangular(self):
     self.visco_template(PetrovGalerkinMethod, PlaneStressViscoelasticModel,
                         Rectangle(model='viscoelastic'))
예제 #7
0
 def test_petrov_galerkin_potential_rectangular(self):
     self.template(PetrovGalerkinMethod, PotentialModel,
                   Rectangle(model='potential'))
예제 #8
0
 def test_petrov_galerkin_elasticity_rectangular(self):
     self.template(PetrovGalerkinMethod, PlaneStressElasticModel,
                   Rectangle(model='elastic'))
예제 #9
0
 def test_subregion_viscoelasticity_rectangular(self):
     self.visco_template(SubregionMethod, PlaneStressViscoelasticModel,
                         Rectangle(model='viscoelastic'))
예제 #10
0
 def test_subregion_elasticity_rectangular(self):
     self.template(SubregionMethod, PlaneStressElasticModel,
                   Rectangle(model='elastic'))
예제 #11
0
 def test_subregion_potential_rectangular(self):
     self.template(SubregionMethod, PotentialModel,
                   Rectangle(model='potential'))
예제 #12
0
 def test_collocation_elasticity_rectangular(self):
     self.template(CollocationMethod, PlaneStressElasticModel,
                   Rectangle(model='elastic'))
예제 #13
0
 def test_collocation_potential_rectangular(self):
     self.template(CollocationMethod, PotentialModel,
                   Rectangle(model='potential'))