| 41 | }; |
| 42 | |
| 43 | TEST_F(IntegratorTest, FuncOverTriangle) { |
| 44 | FEMeshPtr mesh = load_fem_mesh("square_2D.obj"); |
| 45 | IntegratorPtr integrator = create_integrator(mesh); |
| 46 | const size_t num_element = mesh->getNbrElements(); |
| 47 | for (size_t i=0; i<num_element; i++) { |
| 48 | Float area = mesh->getElementVolume(i); |
| 49 | // Magical numbers come from Gaussian quadrature pts over triangle. |
| 50 | ASSERT_FLOAT_EQ(area / 6.0, integrator->integrate_func(i, 0, 0)); |
| 51 | ASSERT_FLOAT_EQ(area / 12.0, integrator->integrate_func(i, 0, 1)); |
| 52 | ASSERT_FLOAT_EQ(area / 12.0, integrator->integrate_func(i, 0, 2)); |
| 53 | |
| 54 | ASSERT_FLOAT_EQ(area / 12.0, integrator->integrate_func(i, 1, 0)); |
| 55 | ASSERT_FLOAT_EQ(area / 6.0, integrator->integrate_func(i, 1, 1)); |
| 56 | ASSERT_FLOAT_EQ(area / 12.0, integrator->integrate_func(i, 1, 2)); |
| 57 | |
| 58 | ASSERT_FLOAT_EQ(area / 12.0, integrator->integrate_func(i, 2, 0)); |
| 59 | ASSERT_FLOAT_EQ(area / 12.0, integrator->integrate_func(i, 2, 1)); |
| 60 | ASSERT_FLOAT_EQ(area / 6.0, integrator->integrate_func(i, 2, 2)); |
| 61 | } |
| 62 | } |
| 63 | |
| 64 | TEST_F(IntegratorTest, FuncOverTetrahedron) { |
| 65 | FEMeshPtr mesh = load_fem_mesh("cube.msh"); |
nothing calls this directly
no test coverage detected