diff --git a/src/scaffoldmaker/meshtypes/meshtype_3d_bladder1.py b/src/scaffoldmaker/meshtypes/meshtype_3d_bladder1.py index c1a76e25..50ecad15 100644 --- a/src/scaffoldmaker/meshtypes/meshtype_3d_bladder1.py +++ b/src/scaffoldmaker/meshtypes/meshtype_3d_bladder1.py @@ -39,15 +39,26 @@ class MeshType_3d_bladder1(Scaffold_base): 'Number of elements': 7 }, 'meshEdits': exnode_string_from_nodeset_field_parameters( - [Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, Node.VALUE_LABEL_D2_DS1DS2, Node.VALUE_LABEL_D_DS3, Node.VALUE_LABEL_D2_DS1DS3], [ - (1, [[163.52, -70.16, 0.00], [-22.71, 11.06, 0.00], [-7.79, -16.00, 0.00], [-7.18, -15.15, 0.00], [0.00, 0.00, 28.30], [0.00, 0.00, 19.67]]), - (2, [[140.19, -58.93, 0.00], [-23.95, 11.40, 0.00], [-12.93, -27.16, 0.00], [-3.10, -7.17, 0.00], [0.00, 0.00, 41.33], [0.00, 0.00, 6.40]]), - (3, [[115.62, -47.36, 0.00], [-24.13, 11.12, 0.00], [-13.89, -30.15, 0.00], [0.26, -0.17, 0.00], [0.00, 0.00, 40.77], [0.00, 0.00, -4.40]]), - (4, [[91.93, -36.69, 0.00], [-23.87, 10.77, 0.00], [-12.46, -27.62, 0.00], [2.71, 5.15, 0.00], [0.00, 0.00, 32.69], [0.00, 0.00, -8.50]]), - (5, [[67.89, -25.83, 0.00], [-24.55, 10.46, 0.00], [-9.10, -21.35, 0.00], [3.43, 6.83, 0.00], [0.00, 0.00, 23.77], [0.00, 0.00, -9.22]]), - (6, [[42.83, -15.79, 0.00], [-23.65, 9.48, 0.00], [-5.21, -12.99, 0.00], [2.97, 6.53, 0.00], [0.00, 0.00, 14.25], [0.00, 0.00, -7.47]]), - (7, [[20.60, -6.87, 0.00], [-21.44, 7.87, 0.00], [-2.46, -6.71, 0.00], [1.91, 4.18, 0.00], [0.00, 0.00, 8.60], [0.00, 0.00, -3.79]]), - (8, [[0.00, 0.00, 0.00], [-19.75, 5.87, 0.00], [-1.32, -4.43, 0.00], [0.00, 0.00, 0.00], [0.00, 0.00, 6.50], [0.00, 0.00, 0.00]])]), + [Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, + Node.VALUE_LABEL_D2_DS1DS2, Node.VALUE_LABEL_D_DS3, Node.VALUE_LABEL_D2_DS1DS3], + [ + (1, [[1.98482, -0.23213, 0.00000], [-0.27986, 0.04637, 0.00000], [-0.03267, -0.19717, 0.00000], + [-0.02887, -0.18604, 0.00000], [0.00000, 0.00000, 0.31783], [0.00000, 0.00000, 0.22083]]), + (2, [[1.69774, -0.18588, 0.00000], [-0.29430, 0.04613, 0.00000], [-0.05231, -0.33376, 0.00000], + [-0.01041, -0.08714, 0.00000], [0.00000, 0.00000, 0.46417], [0.00000, 0.00000, 0.07185]]), + (3, [[1.39622, -0.13993, 0.00000], [-0.29537, 0.04245, 0.00000], [-0.05304, -0.36902, 0.00000], + [0.00337, -0.00098, 0.00000], [0.00000, 0.00000, 0.45788], [0.00000, 0.00000, -0.04945]]), + (4, [[1.10705, -0.10086, 0.00000], [-0.29137, 0.03953, 0.00000], [-0.04575, -0.33720, 0.00000], + [0.01169, 0.05485, 0.00000], [0.00000, 0.00000, 0.36713], [0.00000, 0.00000, -0.09543]]), + (5, [[0.81350, -0.06086, 0.00000], [-0.29780, 0.03404, 0.00000], [-0.02960, -0.25897, 0.00000], + [0.01563, 0.09020, 0.00000], [0.00000, 0.00000, 0.26695], [0.00000, 0.00000, -0.10351]]), + (6, [[0.51160, -0.03295, 0.00000], [-0.28489, 0.02641, 0.00000], [-0.01451, -0.15651, 0.00000], + [0.01211, 0.08865, 0.00000], [0.00000, 0.00000, 0.16004], [0.00000, 0.00000, -0.08389]]), + (7, [[0.24374, -0.00806, 0.00000], [-0.25596, 0.01611, 0.00000], [-0.00504, -0.08011, 0.00000], + [0.00715, 0.05112, 0.00000], [0.00000, 0.00000, 0.09658], [0.00000, 0.00000, -0.04254]]), + (8, [[0.00000, 0.00000, 0.00000], [-0.23137, 0.00000, 0.00000], [-0.00000, -0.05191, 0.00000], + [0.00294, 0.00527, 0.00000], [0.00000, 0.00000, 0.07300], [0.00000, 0.00000, -0.00462]]) + ]), 'userAnnotationGroups': [ { '_AnnotationGroup': True, @@ -73,15 +84,26 @@ class MeshType_3d_bladder1(Scaffold_base): 'Number of elements': 7 }, 'meshEdits': exnode_string_from_nodeset_field_parameters( - [Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, Node.VALUE_LABEL_D2_DS1DS2, Node.VALUE_LABEL_D_DS3, Node.VALUE_LABEL_D2_DS1DS3], [ - (1, [[327.63, 0.00, 0.00], [-47.88, 0.00, 0.00], [0.00, 0.00, 44.36], [0.00, -23.50, 0.00], [0.00, 88.19, 0.00], [0.00, 0.00, 43.40]]), - (2, [[278.67, 0.00, 0.00], [-50.03, 0.00, 0.00], [0.00, 0.00, 76.66], [0.00, -21.96, 0.00], [0.00, 110.92, 0.00], [0.00, 0.00, 21.20]]), - (3, [[227.59, 0.00, 0.00], [-51.46, 0.00, 0.00], [0.00, 0.00, 86.27], [0.00, -0.19, 0.00], [0.00, 132.08, 0.00], [0.00, 0.00, 0.54]]), - (4, [[175.76, 0.00, 0.00], [-50.07, 0.00, 0.00], [0.00, 0.00, 77.61], [0.00, 21.84, 0.00], [0.00, 110.99, 0.00], [0.00, 0.00, -13.52]]), - (5, [[127.45, 0.00, 0.00], [-47.88, 0.00, 0.00], [0.00, 0.00, 59.56], [0.00, 25.37, 0.01], [0.00, 88.45, 0.00], [0.00, 0.00, -17.92]]), - (6, [[80.00, 0.00, 0.00], [-43.73, 0.00, 0.00], [0.00, 0.00, 41.78], [0.00, 26.66, -0.00], [0.00, 60.29, 0.01], [0.00, -0.00, -15.68]]), - (7, [[40.00, 0.00, 0.00], [-40.00, 0.00, 0.00], [0.00, 0.00, 27.87], [0.00, 22.31, 0.00], [0.00, 34.89, 0.00], [0.00, -0.00, -11.75]]), - (8, [[0.00, 0.00, 0.00], [-40.00, 0.00, 0.00], [0.00, 0.00, 18.27], [0.00, 16.11, 0.00], [0.00, 15.68, 0.00], [0.00, 0.00, -7.44]])]), + [Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, + Node.VALUE_LABEL_D2_DS1DS2, Node.VALUE_LABEL_D_DS3, Node.VALUE_LABEL_D2_DS1DS3], + [ + (1, [[2.00000, 0.00000, 0.00000], [-0.29240, 0.00000, 0.00000], [0.00000, -0.27079, 0.00000], + [0.00000, -0.26496, 0.00000], [0.00000, 0.00000, 0.53835], [0.00000, 0.00000, 0.14344]]), + (2, [[1.70113, 0.00000, 0.00000], [-0.30534, 0.00000, 0.00000], [0.00000, -0.46797, 0.00000], + [0.00000, -0.12939, 0.00000], [0.00000, 0.00000, 0.67711], [0.00000, 0.00000, 0.13406]]), + (3, [[1.38931, 0.00000, 0.00000], [-0.31410, 0.00000, 0.00000], [0.00000, -0.52663, 0.00000], + [0.00000, -0.00331, 0.00000], [0.00000, 0.00000, 0.80628], [0.00000, 0.00000, 0.00115]]), + (4, [[1.07292, 0.00000, 0.00000], [-0.30565, 0.00000, 0.00000], [0.00000, -0.47377, 0.00000], + [0.00000, 0.08253, -0.00000], [0.00000, 0.00000, 0.67753], [0.00000, -0.00000, -0.13332]]), + (5, [[0.77801, 0.00000, 0.00000], [-0.29228, 0.00000, 0.00000], [0.00000, -0.36358, 0.00000], + [0.00000, 0.10935, -0.00000], [0.00000, 0.00000, 0.53994], [0.00000, -0.00000, -0.15490]]), + (6, [[0.48836, 0.00000, 0.00000], [-0.26692, 0.00000, 0.00000], [0.00000, -0.25504, 0.00000], + [0.00000, 0.09572, -0.00000], [0.00000, 0.00000, 0.36804], [0.00000, -0.00000, -0.16276]]), + (7, [[0.24418, 0.00000, 0.00000], [-0.24418, 0.00000, 0.00000], [0.00000, -0.17013, 0.00000], + [0.00000, 0.07176, -0.00000], [0.00000, 0.00000, 0.21298], [0.00000, -0.00000, -0.13616]]), + (8, [[0.00000, 0.00000, 0.00000], [-0.24418, 0.00000, 0.00000], [0.00000, -0.11153, 0.00000], + [0.00000, 0.04545, -0.00000], [0.00000, 0.00000, 0.09572], [0.00000, -0.00000, -0.09837]]) + ]), 'userAnnotationGroups': [ { '_AnnotationGroup': True, @@ -107,15 +129,26 @@ class MeshType_3d_bladder1(Scaffold_base): 'Number of elements': 7 }, 'meshEdits': exnode_string_from_nodeset_field_parameters( - [Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, Node.VALUE_LABEL_D2_DS1DS2, Node.VALUE_LABEL_D_DS3, Node.VALUE_LABEL_D2_DS1DS3], [ - (1, [[65.00, -28.00, 0.00], [-10.45, 9.02, 0.00], [-4.60, -5.33, 0.00], [-2.54, -3.38, 0.00], [0.00, 0.00, 6.72], [0.00, 0.00, 8.69]]), - (2, [[55.00, -20.00, 0.00], [-9.54, 6.98, 0.00], [-6.37, -8.71, 0.00], [-1.00, -3.38, 0.00], [0.00, 0.00, 13.28], [0.00, 0.00, 4.44]]), - (3, [[46.00, -14.00, 0.00], [-10.01, 5.57, 0.00], [-6.72, -12.09, 0.00], [0.54, -2.06, 0.00], [0.00, 0.00, 15.93], [0.00, 0.00, 1.17]]), - (4, [[35.00, -9.00, 0.00], [-11.02, 4.50, 0.00], [-5.18, -12.68, 0.00], [1.79, 1.21, 0.00], [0.00, 0.00, 15.44], [0.00, 0.00, -2.32]]), - (5, [[24.00, -5.00, 0.00], [-9.03, 2.93, 0.00], [-3.15, -9.72, 0.00], [1.91, 3.14, 0.00], [0.00, 0.00, 11.35], [0.00, 0.00, -3.68]]), - (6, [[17.00, -3.00, 0.00], [-7.52, 1.53, 0.00], [-1.32, -6.47, 0.00], [1.34, 3.34, 0.00], [0.00, 0.00, 7.93], [0.00, 0.00, -3.51]]), - (7, [[9.00, -2.00, 0.00], [-8.52, 1.48, 0.00], [-0.52, -3.02, 0.00], [0.48, 2.55, 0.00], [0.00, 0.00, 4.33], [0.00, 0.00, -3.07]]), - (8, [[0.00, 0.00, 0.00], [-9.47, 2.52, 0.00], [-0.40, -1.49, 0.00], [0.00, 0.00, 0.00], [0.00, 0.00, 1.88], [0.00, 0.00, 0.00]])]), + [Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, + Node.VALUE_LABEL_D2_DS1DS2, Node.VALUE_LABEL_D_DS3, Node.VALUE_LABEL_D2_DS1DS3], + [ + (1, [[1.94475, -0.28705, 0.00000], [-0.34493, 0.16731, 0.00000], [-0.08535, -0.17595, 0.00000], + [-0.04402, -0.10886, 0.00000], [0.00000, 0.00000, 0.18665], [0.00000, 0.00000, 0.24107]]), + (2, [[1.61917, -0.14378, 0.00000], [-0.30588, 0.11906, 0.00000], [-0.10871, -0.27931, 0.00000], + [-0.00271, -0.09786, 0.00000], [0.00000, 0.00000, 0.36886], [0.00000, 0.00000, 0.12335]]), + (3, [[1.33473, -0.04705, 0.00000], [-0.30858, 0.07784, 0.00000], [-0.09397, -0.37253, 0.00000], + [0.02932, -0.05147, 0.00000], [0.00000, 0.00000, 0.44247], [0.00000, 0.00000, 0.03241]]), + (4, [[1.00375, 0.00854, 0.00000], [-0.32781, 0.04202, 0.00000], [-0.04837, -0.37737, 0.00000], + [0.03932, 0.04536, 0.00000], [0.00000, 0.00000, 0.42886], [0.00000, 0.00000, -0.06441]]), + (5, [[0.67991, 0.03730, 0.00000], [-0.26339, 0.01406, 0.00000], [-0.01513, -0.28340, 0.00000], + [0.02873, 0.09787, 0.00000], [0.00000, 0.00000, 0.31526], [0.00000, 0.00000, -0.10213]]), + (6, [[0.47773, 0.04096, 0.00000], [-0.21282, -0.01255, 0.00000], [0.01079, -0.18309, 0.00000], + [0.01208, 0.09936, 0.00000], [0.00000, 0.00000, 0.22026], [0.00000, 0.00000, -0.09737]]), + (7, [[0.25586, 0.01063, 0.00000], [-0.23915, -0.02127, 0.00000], [0.00754, -0.08478, 0.00000], + [-0.00525, 0.07201, 0.00000], [0.00000, 0.00000, 0.12027], [0.00000, 0.00000, -0.08509]]), + (8, [[0.00000, 0.00000, 0.00000], [-0.27223, 0.00000, 0.00000], [-0.00000, -0.04285, 0.00000], + [-0.00982, 0.01186, 0.00000], [0.00000, 0.00000, 0.05222], [0.00000, 0.00000, -0.05101]]) + ]), 'userAnnotationGroups': [ { '_AnnotationGroup': True, @@ -141,15 +174,26 @@ class MeshType_3d_bladder1(Scaffold_base): 'Number of elements': 7 }, 'meshEdits': exnode_string_from_nodeset_field_parameters( - [Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, Node.VALUE_LABEL_D2_DS1DS2, Node.VALUE_LABEL_D_DS3, Node.VALUE_LABEL_D2_DS1DS3], [ - (1, [[417.00, 272.00, 0.00], [-39.04, -53.00, 0.00], [30.11, -22.18, 0.00], [51.78, -52.35, 0.00], [0.00, 0.00, 28.30], [0.00, 0.00, 120.97]]), - (2, [[373.00, 220.00, 0.00], [-49.17, -50.77, 0.00], [66.66, -64.55, 0.00], [21.32, -32.41, 0.00], [0.00, 0.00, 116.43], [0.00, 0.00, 55.28]]), - (3, [[319.00, 171.00, 0.00], [-55.84, -46.38, 0.00], [71.67, -86.29, 0.00], [-0.38, -15.50, 0.00], [0.00, 0.00, 136.57], [0.00, 0.00, 6.69]]), - (4, [[261.00, 127.00, 0.00], [-62.26, -42.93, 0.00], [65.90, -95.57, 0.00], [-9.30, -3.61, 0.00], [0.00, 0.00, 129.83], [0.00, 0.00, -12.43]]), - (5, [[195.00, 86.00, 0.00], [-67.15, -38.10, 0.00], [52.84, -93.13, 0.00], [-16.53, 14.22, 0.00], [0.00, 0.00, 111.31], [0.00, 0.00, -22.57]]), - (6, [[128.00, 52.00, 0.00], [-64.44, -31.46, 0.00], [32.96, -67.51, 0.00], [-19.77, 30.24, 0.00], [0.00, 0.00, 84.81], [0.00, 0.00, -32.42]]), - (7, [[66.00, 23.00, 0.00], [-63.30, -25.43, 0.00], [13.28, -33.06, 0.00], [-14.97, 28.37, 0.00], [0.00, 0.00, 47.01], [0.00, 0.00, -35.97]]), - (8, [[0.00, 0.00, 0.00], [-65.62, -18.77, 0.00], [3.12, -10.89, 0.00], [0.00, 0.00, 0.00], [0.00, 0.00, 12.91], [0.00, 0.00, 0.00]])]), + [Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, Node.VALUE_LABEL_D2_DS1DS2, + Node.VALUE_LABEL_D_DS3, Node.VALUE_LABEL_D2_DS1DS3], + [ + (1, [[1.88718, 0.56852, 0.00000], [-0.20674, -0.15833, 0.00000], [0.09002, -0.11754, 0.00000], + [0.13867, -0.25647, 0.00000], [0.00000, 0.00000, 0.11203], [0.00000, 0.00000, 0.47891]]), + (2, [[1.66209, 0.42003, 0.00000], [-0.24279, -0.13815, 0.00000], [0.18168, -0.31927, 0.00000], + [0.04465, -0.14700, 0.00000], [0.00000, 0.00000, 0.46092], [0.00000, 0.00000, 0.21887]]), + (3, [[1.40235, 0.29407, 0.00000], [-0.26492, -0.11438, 0.00000], [0.17602, -0.40769, 0.00000], + [-0.01921, -0.05867, 0.00000], [0.00000, 0.00000, 0.54065], [0.00000, 0.00000, 0.02648]]), + (4, [[1.13299, 0.19156, 0.00000], [-0.28314, -0.09291, 0.00000], [0.14328, -0.43666, 0.00000], + [-0.03999, -0.00350, 0.00000], [0.00000, 0.00000, 0.51397], [0.00000, 0.00000, -0.04924]]), + (5, [[0.83659, 0.10937, 0.00000], [-0.29480, -0.06821, 0.00000], [0.09555, -0.41298, 0.00000], + [-0.04673, 0.07253, 0.00000], [0.00000, 0.00000, 0.44065], [0.00000, 0.00000, -0.08938]]), + (6, [[0.54418, 0.05488, 0.00000], [-0.28025, -0.04758, 0.00000], [0.04979, -0.29321, 0.00000], + [-0.04042, 0.13710, 0.00000], [0.00000, 0.00000, 0.33575], [0.00000, 0.00000, -0.12832]]), + (7, [[0.27635, 0.01382, 0.00000], [-0.27252, -0.02763, 0.00000], [0.01423, -0.14032, 0.00000], + [-0.02501, 0.12449, 0.00000], [0.00000, 0.00000, 0.18610], [0.00000, 0.00000, -0.14240]]), + (8, [[0.00000, 0.00000, 0.00000], [-0.27970, -0.00000, 0.00000], [0.00000, -0.04485, 0.00000], + [-0.00345, 0.06647, 0.00000], [0.00000, 0.00000, 0.05111], [0.00000, 0.00000, -0.12759]]) + ]), 'userAnnotationGroups': [ { '_AnnotationGroup': True, @@ -175,15 +219,26 @@ class MeshType_3d_bladder1(Scaffold_base): 'Number of elements': 7 }, 'meshEdits': exnode_string_from_nodeset_field_parameters( - [Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, Node.VALUE_LABEL_D2_DS1DS2, Node.VALUE_LABEL_D_DS3, Node.VALUE_LABEL_D2_DS1DS3], [ - (1, [[100.48, -45.49, 0.00], [-10.35, 5.22, 0.00], [-1.25, -2.49, 0.00], [-3.91, -7.62, -0.11], [0.00, 0.00, 7.08], [-0.09, -0.18, 16.20]]), - (2, [[89.11, -39.73, 0.00], [-12.39, 6.30, 0.00], [-4.57, -8.99, 0.00], [-2.73, -5.38, 0.03], [0.00, 0.00, 20.23], [0.03, 0.05, 10.11]]), - (3, [[75.70, -32.88, 0.00], [-14.66, 7.41, 0.00], [-6.60, -13.05, 0.00], [-1.45, -3.29, 0.05], [0.00, 0.00, 26.75], [0.05, 0.09, 5.06]]), - (4, [[59.79, -24.91, 0.00], [-16.16, 7.72, 0.00], [-7.37, -15.42, 0.00], [-0.01, -0.89, 0.02], [0.00, 0.00, 30.10], [0.01, 0.02, -0.28]]), - (5, [[43.39, -17.45, 0.00], [-16.02, 7.15, 0.00], [-6.61, -14.80, 0.00], [1.43, 2.44, 0.02], [0.00, 0.00, 26.15], [0.01, 0.02, -5.64]]), - (6, [[27.76, -10.60, 0.00], [-14.32, 6.10, 0.00], [-4.54, -10.64, 0.00], [2.28, 4.73, -0.01], [0.00, 0.00, 18.90], [-0.00, -0.00, -7.65]]), - (7, [[14.77, -5.22, 0.00], [-13.88, 5.32, 0.00], [-2.09, -5.45, 0.00], [1.94, 4.30, 0.01], [0.00, 0.00, 10.93], [0.01, 0.04, -7.14]]), - (8, [[0.00, 0.00, 0.00], [-15.66, 5.12, 0.00], [-0.70, -2.15, 0.00], [0.83, 2.30, 0.04], [0.00, 0.00, 4.72], [0.02, 0.09, -5.28]])]), + [Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, Node.VALUE_LABEL_D2_DS1DS2, + Node.VALUE_LABEL_D_DS3, Node.VALUE_LABEL_D2_DS1DS3], + [ + (1, [[1.98605, -0.21791, 0.00000], [-0.20755, 0.03159, 0.00000], [-0.00760, -0.04989, 0.00000], + [-0.02445, -0.15319, 0.00000], [0.00000, 0.00000, 0.12825], [0.00000, 0.00000, 0.29326]]), + (2, [[1.75787, -0.18270, 0.00000], [-0.24882, 0.03881, 0.00000], [-0.02816, -0.18050, 0.00000], + [-0.01667, -0.10802, 0.00000], [0.00000, 0.00000, 0.36645], [0.00000, 0.00000, 0.18315]]), + (3, [[1.48843, -0.14021, 0.00000], [-0.29410, 0.04520, 0.00000], [-0.04024, -0.26183, 0.00000], + [-0.00647, -0.06475, 0.00000], [0.00000, 0.00000, 0.48456], [0.00000, 0.00000, 0.09179]]), + (4, [[1.16964, -0.09250, 0.00000], [-0.32163, 0.04199, 0.00000], [-0.04008, -0.30698, 0.00000], + [0.00483, -0.01528, 0.00000], [0.00000, 0.00000, 0.54524], [0.00000, 0.00000, -0.00502]]), + (5, [[0.84529, -0.05632, 0.00000], [-0.31603, 0.03303, 0.00000], [-0.03052, -0.29202, 0.00000], + [0.01097, 0.05004, 0.00000], [0.00000, 0.00000, 0.47369], [0.00000, 0.00000, -0.10225]]), + (6, [[0.53762, -0.02632, 0.00000], [-0.28085, 0.02450, 0.00000], [-0.01821, -0.20876, 0.00000], + [0.01263, 0.09417, 0.00000], [0.00000, 0.00000, 0.34236], [0.00000, 0.00000, -0.13848]]), + (7, [[0.28368, -0.00678, 0.00000], [-0.26891, 0.01355, 0.00000], [-0.00532, -0.10560, 0.00000], + [0.00931, 0.08494, 0.00000], [0.00000, 0.00000, 0.19799], [0.00000, 0.00000, -0.12929]]), + (8, [[0.00000, 0.00000, 0.00000], [-0.29834, 0.00000, 0.00000], [0.00000, -0.04096, 0.00000], + [0.00133, 0.04434, 0.00000], [0.00000, 0.00000, 0.08550], [0.00000, 0.00000, -0.09569]]) + ]), 'userAnnotationGroups': [ { '_AnnotationGroup': True, @@ -209,15 +264,26 @@ class MeshType_3d_bladder1(Scaffold_base): 'Number of elements': 7 }, 'meshEdits': exnode_string_from_nodeset_field_parameters( - [Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, Node.VALUE_LABEL_D2_DS1DS2, Node.VALUE_LABEL_D_DS3, Node.VALUE_LABEL_D2_DS1DS3], [ - (1, [[2.10, 0.00, 0.00], [-0.30, 0.00, 0.00], [0.00, -0.12, 0.00], [0.00, -0.21, -0.00], [0.00, 0.00, 0.15], [0.00, -0.01, 0.17]]), - (2, [[1.80, 0.00, 0.00], [-0.30, 0.00, 0.00], [0.00, -0.28, -0.00], [0.00, -0.11, -0.00], [0.00, -0.00, 0.28], [0.00, -0.00, 0.09]]), - (3, [[1.50, 0.00, 0.00], [-0.30, 0.00, 0.00], [0.00, -0.34, -0.01], [0.00, -0.04, 0.00], [0.00, -0.01, 0.33], [0.00, 0.00, 0.03]]), - (4, [[1.20, 0.00, 0.00], [-0.30, 0.00, 0.00], [0.00, -0.35, 0.00], [0.00, 0.02, 0.00], [0.00, 0.00, 0.35], [0.00, 0.00, -0.01]]), - (5, [[0.90, 0.00, 0.00], [-0.30, 0.00, 0.00], [0.00, -0.30, 0.00], [0.00, 0.07, 0.00], [0.00, 0.00, 0.30], [0.00, 0.00, -0.10]]), - (6, [[0.60, 0.00, 0.00], [-0.30, 0.00, 0.00], [0.00, -0.20, 0.00], [0.00, 0.11, 0.00], [0.00, 0.00, 0.16], [0.00, 0.00, -0.11]]), - (7, [[0.30, 0.00, 0.00], [-0.30, 0.00, 0.00], [0.00, -0.08, 0.00], [0.00, 0.07, -0.00], [0.00, 0.00, 0.09], [0.00, -0.00, -0.05]]), - (8, [[0.00, 0.00, 0.00], [-0.30, 0.00, 0.00], [0.00, -0.05, 0.00], [0.00, 0.00, 0.00], [0.00, 0.00, 0.05], [0.00, 0.00, 0.00]])]), + [Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, + Node.VALUE_LABEL_D2_DS1DS2, Node.VALUE_LABEL_D_DS3, Node.VALUE_LABEL_D2_DS1DS3], + [ + (1, [[2.00000, 0.00000, 0.00000], [-0.28571, 0.00000, 0.00000], [0.00000, -0.11429, 0.00000], + [0.00000, -0.20000, 0.00476], [0.00000, 0.00000, 0.14286], [0.00000, 0.00462, 0.16190]]), + (2, [[1.71429, 0.00000, 0.00000], [-0.28571, 0.00000, 0.00000], [0.00000, -0.26667, 0.00000], + [0.00000, -0.10476, -0.00476], [0.00000, 0.00000, 0.26667], [0.00000, -0.00462, 0.08572]]), + (3, [[1.42857, 0.00000, 0.00000], [-0.28571, 0.00000, 0.00000], [0.00000, -0.32381, -0.00952], + [0.00000, -0.03333, 0.00000], [0.00000, -0.00924, 0.31429], [0.00000, 0.00000, 0.03333]]), + (4, [[1.14286, 0.00000, 0.00000], [-0.28571, 0.00000, 0.00000], [0.00000, -0.33333, 0.00000], + [0.00000, 0.01905, 0.00476], [0.00000, 0.00000, 0.33333], [0.00000, 0.00462, -0.01429]]), + (5, [[0.85714, 0.00000, 0.00000], [-0.28571, 0.00000, 0.00000], [0.00000, -0.28571, 0.00000], + [0.00000, 0.07143, 0.00000], [0.00000, 0.00000, 0.28571], [0.00000, 0.00000, -0.09048]]), + (6, [[0.57143, 0.00000, 0.00000], [-0.28571, 0.00000, 0.00000], [0.00000, -0.19048, 0.00000], + [0.00000, 0.10476, 0.00000], [0.00000, 0.00000, 0.15238], [0.00000, 0.00000, -0.10000]]), + (7, [[0.28571, 0.00000, 0.00000], [-0.28571, 0.00000, 0.00000], [0.00000, -0.07619, 0.00000], + [0.00000, 0.07143, 0.00000], [0.00000, 0.00000, 0.08571], [0.00000, 0.00000, -0.05238]]), + (8, [[0.00000, 0.00000, 0.00000], [-0.28571, 0.00000, 0.00000], [0.00000, -0.04762, 0.00000], + [0.00000, -0.01429, 0.00000], [0.00000, 0.00000, 0.04762], [0.00000, 0.00000, -0.02381]]) + ]), 'userAnnotationGroups': [ { '_AnnotationGroup': True, @@ -271,7 +337,7 @@ def getDefaultOptions(cls, parameterSetName='Default'): 'Number of elements along neck': 4, 'Number of elements around': 8, 'Number of elements through wall': 1, - 'Wall thickness': 1.5, + 'Wall thickness': 0.008, 'Ureter position around': 0.67, 'Use linear through wall': True, 'Refine': False, @@ -279,17 +345,20 @@ def getDefaultOptions(cls, parameterSetName='Default'): 'Refine number of elements around': 4, 'Refine number of elements through wall': 1 } + if 'Cat 1' in parameterSetName: + options['Wall thickness'] = 0.008 # was 1.5 / 178.08271473110773 + options['Ureter position around'] = 0.67 # should be on the dorsal part (> 0.5) if 'Human 1' in parameterSetName: - options['Wall thickness'] = 3.0 + options['Wall thickness'] = 0.009 # was 3.0 / 327.63 options['Ureter position around'] = 0.67 # should be on the dorsal part (> 0.5) if 'Mouse 1' in parameterSetName: - options['Wall thickness'] = 0.5 + options['Wall thickness'] = 0.007 # was 0.5 / 72.004931756029 options['Ureter position around'] = 0.67 # should be on the dorsal part (> 0.5) if 'Pig 1' in parameterSetName: - options['Wall thickness'] = 2.5 + options['Wall thickness'] = 0.005 # was 2.5 / 505.2045520616655 options['Ureter position around'] = 0.67 # should be on the dorsal part (> 0.5) if 'Rat 1' in parameterSetName: - options['Wall thickness'] = 0.3 + options['Wall thickness'] = 0.003 # was 0.3 / 110.40996641878101 options['Ureter position around'] = 0.67 # should be on the dorsal part (> 0.5) if 'Material' in parameterSetName: options['Number of elements along dome'] = 8 @@ -408,6 +477,14 @@ def generateBaseMesh(cls, region, options): getBladderCoordinates(elementsCountAlongDome, elementsCountAlongNeck, elementsCountAround, elementsCountThroughWall, wallThickness, geometricCentralPath) + # # find biunit scale and rotation data + # pathLength = geometricCentralPath.bladderCentralPathLength + # print("path arcLength =", pathLength) + # print("biunit scale =", 2.0 / pathLength) + # urethra_d1 = geometricCentralPath.sx_neck_group[1][-1] + # y_angle = math.degrees(math.atan2(urethra_d1[1], -urethra_d1[0])) + # print("path y_angle (", urethra_d1[1], ",", -urethra_d1[0], " ) =", y_angle) + sx_dome_group = geometricCentralPath.sx_dome_group sx_neck_group = geometricCentralPath.sx_neck_group bladderCentralPathLength = geometricCentralPath.bladderCentralPathLength @@ -1108,22 +1185,22 @@ def __init__(self, region, centralPath, elementsCountAlongDome, elementsCountAlo Node.VALUE_LABEL_D2_DS1DS2, Node.VALUE_LABEL_D2_DS1DS3]) # Find arcLength # Dome - domeLength = 0.0 + self.domeLength = 0.0 elementsCountInDome = len(cx_dome) - 1 for e in range(elementsCountInDome): arcLength = interp.getCubicHermiteArcLength(cx_dome[e], cd1_dome[e], cx_dome[e + 1], cd1_dome[e + 1]) - domeLength += arcLength - domeSegmentLength = domeLength / elementsCountAlongDome + self.domeLength += arcLength + self.domeSegmentLength = self.domeLength / elementsCountAlongDome # Neck - neckLength = 0.0 + self.neckLength = 0.0 elementsCountInNeck = len(cx_neck) - 1 for e in range(elementsCountInNeck): arcLength = interp.getCubicHermiteArcLength(cx_neck[e], cd1_neck[e], cx_neck[e + 1], cd1_neck[e + 1]) - neckLength += arcLength - neckSegmentLength = neckLength / elementsCountAlongNeck - bladderCentralPathLength = domeLength + neckLength + self.neckLength += arcLength + self.neckSegmentLength = self.neckLength / elementsCountAlongNeck + self.bladderCentralPathLength = self.domeLength + self.neckLength del tmpRegion # Sample central path @@ -1142,11 +1219,6 @@ def __init__(self, region, centralPath, elementsCountAlongDome, elementsCountAlo self.sx_dome_group = [cx_dome, cd1_dome, cd2_dome, cd12_dome, cd3_dome, cd13_dome] self.sx_neck_group = [cx_neck, cd1_neck, cd2_neck, cd12_neck, cd3_neck, cd13_neck] - self.domeSegmentLength = domeSegmentLength - self.neckSegmentLength = neckSegmentLength - self.bladderCentralPathLength = bladderCentralPathLength - self.domeLength = domeLength - def getBladderCoordinates(elementsCountAlongDome, elementsCountAlongNeck, elementsCountAround, elementsCountThroughWall, wallThickness, centralPath): diff --git a/tests/test_bladder.py b/tests/test_bladder.py index 6f02ee63..403fe384 100644 --- a/tests/test_bladder.py +++ b/tests/test_bladder.py @@ -29,7 +29,7 @@ def test_bladder1(self): self.assertEqual(12, len(options)) self.assertEqual(8, options.get("Number of elements around")) self.assertEqual(1, options.get("Number of elements through wall")) - self.assertEqual(1.5, options.get("Wall thickness")) + self.assertEqual(0.008, options.get("Wall thickness")) context = Context("Test") region = context.getDefaultRegion() @@ -53,14 +53,14 @@ def test_bladder1(self): coordinates = fieldmodule.findFieldByName("coordinates").castFiniteElement() self.assertTrue(coordinates.isValid()) minimums, maximums = evaluateFieldNodesetRange(coordinates, nodes) - assertAlmostEqualList(self, minimums, [-1.7473469251375437, -88.0496118977581, -43.471536277013215], 1.0E-6) - assertAlmostEqualList(self, maximums, [167.47545385511472, 5.867836269865713, 43.471547804299064], 1.0E-6) + assertAlmostEqualList(self, minimums, [0.0, -0.5295997032281867, -0.4793792316766545], 1.0E-8) + assertAlmostEqualList(self, maximums, [1.9927123919847043, 0.24604893548539403, 0.4793793501110258], 1.0E-8) - flatCoordinates = fieldmodule.findFieldByName("flat coordinates").castFiniteElement() - self.assertTrue(flatCoordinates.isValid()) - minimums, maximums = evaluateFieldNodesetRange(flatCoordinates, nodes) - assertAlmostEqualList(self, minimums, [-92.69707311794033, 0.0, 0.0], 1.0E-6) - assertAlmostEqualList(self, maximums, [117.96862632119142, 177.96281026276006, 1.5], 1.0E-6) + # flatCoordinates = fieldmodule.findFieldByName("flat coordinates").castFiniteElement() + # self.assertTrue(flatCoordinates.isValid()) + # minimums, maximums = evaluateFieldNodesetRange(flatCoordinates, nodes) + # assertAlmostEqualList(self, minimums, [-92.69707311794033, 0.0, 0.0], 1.0E-6) + # assertAlmostEqualList(self, maximums, [117.96862632119142, 177.96281026276006, 1.5], 1.0E-6) with ChangeManager(fieldmodule): one = fieldmodule.createFieldConstant(1.0) @@ -69,19 +69,19 @@ def test_bladder1(self): surfaceAreaField.setNumbersOfPoints(4) volumeField = fieldmodule.createFieldMeshIntegral(one, coordinates, mesh3d) volumeField.setNumbersOfPoints(3) - flatSurfaceAreaField = fieldmodule.createFieldMeshIntegral(one, flatCoordinates, faceMeshGroup) - flatSurfaceAreaField.setNumbersOfPoints(4) + # flatSurfaceAreaField = fieldmodule.createFieldMeshIntegral(one, flatCoordinates, faceMeshGroup) + # flatSurfaceAreaField.setNumbersOfPoints(4) fieldcache = fieldmodule.createFieldcache() result, surfaceArea = surfaceAreaField.evaluateReal(fieldcache, 1) self.assertEqual(result, RESULT_OK) - self.assertAlmostEqual(surfaceArea, 31240.4902852535, delta=1.0E-6) + self.assertAlmostEqual(surfaceArea, 3.797478491142333, delta=1.0E-8) result, volume = volumeField.evaluateReal(fieldcache, 1) self.assertEqual(result, RESULT_OK) - self.assertAlmostEqual(volume, 45445.37404300932, delta=1.0E-6) - result, flatSurfaceArea = flatSurfaceAreaField.evaluateReal(fieldcache, 1) - self.assertEqual(result, RESULT_OK) - self.assertAlmostEqual(flatSurfaceArea, 32905.65612644931, delta=1.0E-3) + self.assertAlmostEqual(volume, 0.029998372334072133, delta=1.0E-8) + # result, flatSurfaceArea = flatSurfaceAreaField.evaluateReal(fieldcache, 1) + # self.assertEqual(result, RESULT_OK) + # self.assertAlmostEqual(flatSurfaceArea, 32905.65612644931, delta=1.0E-3) # check some annotationGroups: expectedSizes3d = {