(self)
| 21 | self.assertAlmostEqual(C[i,j,k,l], C[k,l,i,j]) |
| 22 | |
| 23 | def test_isotropic_material(self): |
| 24 | young = 1000.0 |
| 25 | poisson = 0.3 |
| 26 | mat = Material.create_isotropic(3, 1.0, young, poisson) |
| 27 | self.assertEqual(3, mat.dim) |
| 28 | self.assertEqual(1.0, mat.density) |
| 29 | self.assert_symmetry(mat.material_tensor, mat.dim) |
| 30 | |
| 31 | strain = np.array([ |
| 32 | [1.0, 0.0, 0.0], |
| 33 | [0.0, 0.0, 0.0], |
| 34 | [0.0, 0.0, 0.0], ]) |
| 35 | |
| 36 | stress = mat.strain_to_stress(strain) |
| 37 | self.assertAlmostEqual(young * (1-poisson)/(1+poisson)/(1-2*poisson), |
| 38 | stress[0, 0]) |
| 39 | self.assertAlmostEqual(young * poisson /(1+poisson)/(1-2*poisson), |
| 40 | stress[1, 1]) |
| 41 | self.assertAlmostEqual(young * poisson /(1+poisson)/(1-2*poisson), |
| 42 | stress[2, 2]) |
| 43 | self.assertAlmostEqual(0.0, stress[0, 1]) |
| 44 | self.assertAlmostEqual(0.0, stress[1, 0]) |
| 45 | self.assertAlmostEqual(0.0, stress[0, 2]) |
| 46 | self.assertAlmostEqual(0.0, stress[2, 0]) |
| 47 | self.assertAlmostEqual(0.0, stress[1, 2]) |
| 48 | self.assertAlmostEqual(0.0, stress[2, 1]) |
| 49 | |
| 50 | def test_isotropic_material_2D(self): |
| 51 | young = 1000.0 |
nothing calls this directly
no test coverage detected