class TestBoxDMPLEX3D(unittest.TestCase): def setUp(self): data3D = { 'lower': [0, 0, 0], 'upper': [0.6, 0.8, 1], "nelem": [3, 4, 5] } self.dom = DMPlexDom(boxMesh=data3D) self.dom.setFemIndexing(3) def test_generate_dmplex(self): assert self.dom.getDimension() == 3 def test_cell_start_end(self): self.assertEqual(self.dom.cellStart, 0) self.assertEqual(self.dom.cellEnd, 3 * 4 * 5) def test_cell_corners_coords(self): coords_cell_0 = np.array([[0, 0, 0], [0, 0.2, 0], [0.2, 0.2, 0], [0.2, 0, 0], [0, 0, 0.2], [0.2, 0, 0.2], [0.2, 0.2, 0.2], [0, 0.2, 0.2]]) coords_cell_0.shape = 8 * 3 coord = self.dom.getCellCornersCoords(0) np_test.assert_array_almost_equal(coords_cell_0, coord, decimal=13) def test_border_names(self): borderNames = self.dom.getBordersNames() assert len(borderNames) == 6 for b in borderNames: assert b in ['up', 'down', 'left', 'right', 'front', 'back'] def test_borders_nodes(self): totalArc = 28 * 11 totalFace = 35 * 2 total = totalArc + totalFace bordersNodes = self.dom.getBordersNodes() bordersNodes_alt = self.dom.getNodesFromLabel("External Boundary") assert type(bordersNodes) == set assert len(bordersNodes) == total assert type(bordersNodes_alt) == set assert len(bordersNodes_alt) == total np_test.assert_equal(bordersNodes, bordersNodes_alt) def test_border_nodes(self): borderNames = self.dom.getBordersNames() for b in borderNames: if b in ['up', 'down']: assert len(self.dom.getBorderNodes(b)) == 7 * 11 elif b in ['left', 'right']: assert len(self.dom.getBorderNodes(b)) == 9 * 11 else: assert len(self.dom.getBorderNodes(b)) == 7 * 9
class TestBoxDMPLEX2D(unittest.TestCase): # Test Roadmap ## 1. Separate dmplex from indicesmanager def setUp(self): data2D = {'lower': [0, 0], 'upper': [0.6, 0.8], "nelem": [3, 4]} self.dom = DMPlexDom(boxMesh=data2D) self.dom.setFemIndexing(3) def test_generate_dmplex(self): assert self.dom.getDimension() == 2 def test_cell_start_end(self): self.assertEqual(self.dom.cellStart, 0) self.assertEqual(self.dom.cellEnd, 12) def test_cell_corners_coords(self): coords_cell_0 = np.array([[0, 0], [0.2, 0], [0.2, 0.2], [0, 0.2]]) coords_cell_0.shape = 8 coord = self.dom.getCellCornersCoords(0) np_test.assert_array_almost_equal(coords_cell_0, coord, decimal=13) def test_borders_nodes(self): total = 28 bordersNodes = self.dom.getBordersNodes() bordersNodes_alt = self.dom.getNodesFromLabel("External Boundary") assert type(bordersNodes) == set assert len(bordersNodes) == total assert type(bordersNodes_alt) == set assert len(bordersNodes_alt) == total np_test.assert_equal(bordersNodes, bordersNodes_alt) def test_border_nodes(self): borderNames = self.dom.getBordersNames() for b in borderNames: if b in ['up', 'down']: assert len(self.dom.getBorderNodes(b)) == 7 else: assert len(self.dom.getBorderNodes(b)) == 9