From 95880656b237dbbfc57f3b5d88c6df360d6bd377 Mon Sep 17 00:00:00 2001 From: zaharzineb Date: Wed, 17 Nov 2021 14:36:12 +0100 Subject: [PATCH] [BC] enabled import of set 82 from .unv files --- Tests/Data/Mesh/mesh_test_quad_set82.unv | 212 ++++++++++++++++++ Tests/Methods/Import/test_import_mesh_unv.py | 3 + .../Methods/Import/ImportMeshUnv/get_data.py | 26 ++- 3 files changed, 240 insertions(+), 1 deletion(-) create mode 100644 Tests/Data/Mesh/mesh_test_quad_set82.unv diff --git a/Tests/Data/Mesh/mesh_test_quad_set82.unv b/Tests/Data/Mesh/mesh_test_quad_set82.unv new file mode 100644 index 000000000..f0d43c5bc --- /dev/null +++ b/Tests/Data/Mesh/mesh_test_quad_set82.unv @@ -0,0 +1,212 @@ + -1 + 15 + 7 1 0 1 -5.16190E+01 5.16190E+01 5.00000E+01 + 6 1 0 1 -3.65000E+01 6.32200E+01 5.00000E+01 + 5 1 0 1 -1.88940E+01 7.05130E+01 5.00000E+01 + 4 1 0 1 5.09760E-15 8.32500E+01 5.00000E+01 + 3 1 0 1 1.88940E+01 7.05130E+01 5.00000E+01 + 2 1 0 1 3.65000E+01 6.32200E+01 5.00000E+01 + 1 1 0 1 5.16190E+01 5.16190E+01 5.00000E+01 + 24 1 0 1 6.32200E+01 3.65000E+01 5.00000E+01 + 23 1 0 1 7.05130E+01 1.88940E+01 5.00000E+01 + 22 1 0 1 8.32500E+01 0.00000E+00 5.00000E+01 + 21 1 0 1 7.05130E+01 -1.88940E+01 5.00000E+01 + 20 1 0 1 6.32200E+01 -3.65000E+01 5.00000E+01 + 19 1 0 1 5.16190E+01 -5.16190E+01 5.00000E+01 + 18 1 0 1 3.65000E+01 -6.32200E+01 5.00000E+01 + 17 1 0 1 1.88940E+01 -7.05130E+01 5.00000E+01 + 16 1 0 1 5.09760E-15 -8.32500E+01 5.00000E+01 + 15 1 0 1 -1.88940E+01 -7.05130E+01 5.00000E+01 + 14 1 0 1 -3.65000E+01 -6.32200E+01 5.00000E+01 + 13 1 0 1 -5.16190E+01 -5.16190E+01 5.00000E+01 + 12 1 0 1 -6.32200E+01 -3.65000E+01 5.00000E+01 + 11 1 0 1 -7.05130E+01 -1.88940E+01 5.00000E+01 + 10 1 0 1 -8.32500E+01 -1.01950E-14 5.00000E+01 + 9 1 0 1 -7.05130E+01 1.88940E+01 5.00000E+01 + 8 1 0 1 -6.32200E+01 3.65000E+01 5.00000E+01 + 31 1 0 1 -5.16190E+01 5.16190E+01 1.70000E+01 + 30 1 0 1 -3.65000E+01 6.32200E+01 1.70000E+01 + 29 1 0 1 -1.88940E+01 7.05130E+01 1.70000E+01 + 28 1 0 1 5.09760E-15 8.32500E+01 1.70000E+01 + 27 1 0 1 1.88940E+01 7.05130E+01 1.70000E+01 + 26 1 0 1 3.65000E+01 6.32200E+01 1.70000E+01 + 25 1 0 1 5.16190E+01 5.16190E+01 1.70000E+01 + 48 1 0 1 6.32200E+01 3.65000E+01 1.70000E+01 + 47 1 0 1 7.05130E+01 1.88940E+01 1.70000E+01 + 46 1 0 1 8.32500E+01 0.00000E+00 1.70000E+01 + 45 1 0 1 7.05130E+01 -1.88940E+01 1.70000E+01 + 44 1 0 1 6.32200E+01 -3.65000E+01 1.70000E+01 + 43 1 0 1 5.16190E+01 -5.16190E+01 1.70000E+01 + 42 1 0 1 3.65000E+01 -6.32200E+01 1.70000E+01 + 41 1 0 1 1.88940E+01 -7.05130E+01 1.70000E+01 + 40 1 0 1 5.09760E-15 -8.32500E+01 1.70000E+01 + 39 1 0 1 -1.88940E+01 -7.05130E+01 1.70000E+01 + 38 1 0 1 -3.65000E+01 -6.32200E+01 1.70000E+01 + 37 1 0 1 -5.16190E+01 -5.16190E+01 1.70000E+01 + 36 1 0 1 -6.32200E+01 -3.65000E+01 1.70000E+01 + 35 1 0 1 -7.05130E+01 -1.88940E+01 1.70000E+01 + 34 1 0 1 -8.32500E+01 -1.01950E-14 1.70000E+01 + 33 1 0 1 -7.05130E+01 1.88940E+01 1.70000E+01 + 32 1 0 1 -6.32200E+01 3.65000E+01 1.70000E+01 + 55 1 0 1 -5.16190E+01 5.16190E+01 -1.70000E+01 + 54 1 0 1 -3.65000E+01 6.32200E+01 -1.70000E+01 + 53 1 0 1 -1.88940E+01 7.05130E+01 -1.70000E+01 + 52 1 0 1 5.09760E-15 8.32500E+01 -1.70000E+01 + 51 1 0 1 1.88940E+01 7.05130E+01 -1.70000E+01 + 50 1 0 1 3.65000E+01 6.32200E+01 -1.70000E+01 + 49 1 0 1 5.16190E+01 5.16190E+01 -1.70000E+01 + 72 1 0 1 6.32200E+01 3.65000E+01 -1.70000E+01 + 71 1 0 1 7.05130E+01 1.88940E+01 -1.70000E+01 + 70 1 0 1 8.32500E+01 0.00000E+00 -1.70000E+01 + 69 1 0 1 7.05130E+01 -1.88940E+01 -1.70000E+01 + 68 1 0 1 6.32200E+01 -3.65000E+01 -1.70000E+01 + 67 1 0 1 5.16190E+01 -5.16190E+01 -1.70000E+01 + 66 1 0 1 3.65000E+01 -6.32200E+01 -1.70000E+01 + 65 1 0 1 1.88940E+01 -7.05130E+01 -1.70000E+01 + 64 1 0 1 5.09760E-15 -8.32500E+01 -1.70000E+01 + 63 1 0 1 -1.88940E+01 -7.05130E+01 -1.70000E+01 + 62 1 0 1 -3.65000E+01 -6.32200E+01 -1.70000E+01 + 61 1 0 1 -5.16190E+01 -5.16190E+01 -1.70000E+01 + 60 1 0 1 -6.32200E+01 -3.65000E+01 -1.70000E+01 + 59 1 0 1 -7.05130E+01 -1.88940E+01 -1.70000E+01 + 58 1 0 1 -8.32500E+01 -1.01950E-14 -1.70000E+01 + 57 1 0 1 -7.05130E+01 1.88940E+01 -1.70000E+01 + 56 1 0 1 -6.32200E+01 3.65000E+01 -1.70000E+01 + 79 1 0 1 -5.16190E+01 5.16190E+01 -5.00000E+01 + 78 1 0 1 -3.65000E+01 6.32200E+01 -5.00000E+01 + 77 1 0 1 -1.88940E+01 7.05130E+01 -5.00000E+01 + 76 1 0 1 5.09760E-15 8.32500E+01 -5.00000E+01 + 75 1 0 1 1.88940E+01 7.05130E+01 -5.00000E+01 + 74 1 0 1 3.65000E+01 6.32200E+01 -5.00000E+01 + 73 1 0 1 5.16190E+01 5.16190E+01 -5.00000E+01 + 96 1 0 1 6.32200E+01 3.65000E+01 -5.00000E+01 + 95 1 0 1 7.05130E+01 1.88940E+01 -5.00000E+01 + 94 1 0 1 8.32500E+01 0.00000E+00 -5.00000E+01 + 93 1 0 1 7.05130E+01 -1.88940E+01 -5.00000E+01 + 92 1 0 1 6.32200E+01 -3.65000E+01 -5.00000E+01 + 91 1 0 1 5.16190E+01 -5.16190E+01 -5.00000E+01 + 90 1 0 1 3.65000E+01 -6.32200E+01 -5.00000E+01 + 89 1 0 1 1.88940E+01 -7.05130E+01 -5.00000E+01 + 88 1 0 1 5.09760E-15 -8.32500E+01 -5.00000E+01 + 87 1 0 1 -1.88940E+01 -7.05130E+01 -5.00000E+01 + 86 1 0 1 -3.65000E+01 -6.32200E+01 -5.00000E+01 + 85 1 0 1 -5.16190E+01 -5.16190E+01 -5.00000E+01 + 84 1 0 1 -6.32200E+01 -3.65000E+01 -5.00000E+01 + 83 1 0 1 -7.05130E+01 -1.88940E+01 -5.00000E+01 + 82 1 0 1 -8.32500E+01 -1.01950E-14 -5.00000E+01 + 81 1 0 1 -7.05130E+01 1.88940E+01 -5.00000E+01 + 80 1 0 1 -6.32200E+01 3.65000E+01 -5.00000E+01 + -1 + -1 + 82 + 2 864 0 +Stator + 1 25 0 25 48 0 48 24 + 0 24 1 0 25 49 0 49 + 72 0 72 48 0 48 25 0 + 49 73 0 73 96 0 96 72 + 0 72 49 0 24 48 0 48 + 47 0 47 23 0 23 24 0 + 48 72 0 72 71 0 71 47 + 0 47 48 0 72 96 0 96 + 95 0 95 71 0 71 72 0 + 23 47 0 47 46 0 46 22 + 0 22 23 0 47 71 0 71 + 70 0 70 46 0 46 47 0 + 71 95 0 95 94 0 94 70 + 0 70 71 0 22 46 0 46 + 45 0 45 21 0 21 22 0 + 46 70 0 70 69 0 69 45 + 0 45 46 0 70 94 0 94 + 93 0 93 69 0 69 70 0 + 21 45 0 45 44 0 44 20 + 0 20 21 0 45 69 0 69 + 68 0 68 44 0 44 45 0 + 69 93 0 93 92 0 92 68 + 0 68 69 0 20 44 0 44 + 43 0 43 19 0 19 20 0 + 44 68 0 68 67 0 67 43 + 0 43 44 0 68 92 0 92 + 91 0 91 67 0 67 68 0 + 19 43 0 43 42 0 42 18 + 0 18 19 0 43 67 0 67 + 66 0 66 42 0 42 43 0 + 67 91 0 91 90 0 90 66 + 0 66 67 0 18 42 0 42 + 41 0 41 17 0 17 18 0 + 42 66 0 66 65 0 65 41 + 0 41 42 0 66 90 0 90 + 89 0 89 65 0 65 66 0 + 17 41 0 41 40 0 40 16 + 0 16 17 0 41 65 0 65 + 64 0 64 40 0 40 41 0 + 65 89 0 89 88 0 88 64 + 0 64 65 0 16 40 0 40 + 39 0 39 15 0 15 16 0 + 40 64 0 64 63 0 63 39 + 0 39 40 0 64 88 0 88 + 87 0 87 63 0 63 64 0 + 15 39 0 39 38 0 38 14 + 0 14 15 0 39 63 0 63 + 62 0 62 38 0 38 39 0 + 63 87 0 87 86 0 86 62 + 0 62 63 0 14 38 0 38 + 37 0 37 13 0 13 14 0 + 38 62 0 62 61 0 61 37 + 0 37 38 0 62 86 0 86 + 85 0 85 61 0 61 62 0 + 13 37 0 37 36 0 36 12 + 0 12 13 0 37 61 0 61 + 60 0 60 36 0 36 37 0 + 61 85 0 85 84 0 84 60 + 0 60 61 0 12 36 0 36 + 35 0 35 11 0 11 12 0 + 36 60 0 60 59 0 59 35 + 0 35 36 0 60 84 0 84 + 83 0 83 59 0 59 60 0 + 11 35 0 35 34 0 34 10 + 0 10 11 0 35 59 0 59 + 58 0 58 34 0 34 35 0 + 59 83 0 83 82 0 82 58 + 0 58 59 0 10 34 0 34 + 33 0 33 9 0 9 10 0 + 34 58 0 58 57 0 57 33 + 0 33 34 0 58 82 0 82 + 81 0 81 57 0 57 58 0 + 9 33 0 33 32 0 32 8 + 0 8 9 0 33 57 0 57 + 56 0 56 32 0 32 33 0 + 57 81 0 81 80 0 80 56 + 0 56 57 0 8 32 0 32 + 31 0 31 7 0 7 8 0 + 32 56 0 56 55 0 55 31 + 0 31 32 0 56 80 0 80 + 79 0 79 55 0 55 56 0 + 7 31 0 31 30 0 30 6 + 0 6 7 0 31 55 0 55 + 54 0 54 30 0 30 31 0 + 55 79 0 79 78 0 78 54 + 0 54 55 0 6 30 0 30 + 29 0 29 5 0 5 6 0 + 30 54 0 54 53 0 53 29 + 0 29 30 0 54 78 0 78 + 77 0 77 53 0 53 54 0 + 5 29 0 29 28 0 28 4 + 0 4 5 0 29 53 0 53 + 52 0 52 28 0 28 29 0 + 53 77 0 77 76 0 76 52 + 0 52 53 0 4 28 0 28 + 27 0 27 3 0 3 4 0 + 28 52 0 52 51 0 51 27 + 0 27 28 0 52 76 0 76 + 75 0 75 51 0 51 52 0 + 3 27 0 27 26 0 26 2 + 0 2 3 0 27 51 0 51 + 50 0 50 26 0 26 27 0 + 51 75 0 75 74 0 74 50 + 0 50 51 0 2 26 0 26 + 25 0 25 1 0 1 2 0 + 26 50 0 50 49 0 49 25 + 0 25 26 0 50 74 0 74 + 73 0 73 49 0 49 50 0 + -1 diff --git a/Tests/Methods/Import/test_import_mesh_unv.py b/Tests/Methods/Import/test_import_mesh_unv.py index 854aa520d..026a2b428 100644 --- a/Tests/Methods/Import/test_import_mesh_unv.py +++ b/Tests/Methods/Import/test_import_mesh_unv.py @@ -40,6 +40,9 @@ "element_types": ["triangle", "quad"], "n_elements": [3, 1], }, + { + "path": "Data\Mesh\mesh_test_quad_set82.unv", + }, ] diff --git a/pyleecan/Methods/Import/ImportMeshUnv/get_data.py b/pyleecan/Methods/Import/ImportMeshUnv/get_data.py index cc08f9b2a..69fab8ec3 100644 --- a/pyleecan/Methods/Import/ImportMeshUnv/get_data.py +++ b/pyleecan/Methods/Import/ImportMeshUnv/get_data.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from numpy import array as np_array, where, vstack, hstack - +import numpy as np import pyuff @@ -49,4 +49,28 @@ def get_data(self): (elt_dict["element_nums"], np_array(elt_dict["nodes_nums"]).T) ).T + elif dataset["type"] == 82: + # Store connectivities + elements = dict() + nodes_nums = dataset["nodes"] + ind = np.where(nodes_nums == 0.0) ##identify zeros + nodes_nums = np.delete(nodes_nums, ind) # delete zeros + indices = list() ##indices of duplicated node numbers + for i in range(1, len(nodes_nums)): + if nodes_nums[i] == nodes_nums[i - 1]: + indices.append(i) + nodes_nums = np.delete(nodes_nums, indices) + + indices_node1 = np.arange( + 4, len(nodes_nums), 5 + ) ##indices of first node of previous element + + nodes_nums = np.delete(nodes_nums, indices_node1) + + ##assuming quad elements 4 nodes per element + n = int(len(nodes_nums) / 4) + nodes_nums = np.reshape(nodes_nums, (n, 4)) + element_nums = np.arange(len(nodes_nums)) + elements["quad"] = vstack((element_nums, nodes_nums.T)).T + return nodes, elements