From 9b8d761c976f0042914a54f33b079eba04e59350 Mon Sep 17 00:00:00 2001 From: eap Date: Mon, 9 Aug 2010 08:38:48 +0000 Subject: [PATCH] 0020955: EDF 1493 SMESH: Bad import of .unv file * Complete the set of readable 2D elements --- src/DriverUNV/DriverUNV_R_SMDS_Mesh.cxx | 36 +++-- src/DriverUNV/UNV2412_Structure.cxx | 191 +++++++++++++++++++++--- 2 files changed, 193 insertions(+), 34 deletions(-) diff --git a/src/DriverUNV/DriverUNV_R_SMDS_Mesh.cxx b/src/DriverUNV/DriverUNV_R_SMDS_Mesh.cxx index bfb1d6394..24150eeda 100644 --- a/src/DriverUNV/DriverUNV_R_SMDS_Mesh.cxx +++ b/src/DriverUNV/DriverUNV_R_SMDS_Mesh.cxx @@ -95,20 +95,24 @@ Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform() } else if(IsFace(aRec.fe_descriptor_id)) { switch(aRec.fe_descriptor_id){ - case 71: // TRI3 - case 72: - case 74: - - case 41: // Plane Stress Linear Triangle - TRI3 - case 91: // Thin Shell Linear Triangle - TRI3 + case 41: // Plane Stress Linear Triangle + case 51: // Plane Strain Linear Triangle + case 61: // Plate Linear Triangle + case 74: // Membrane Linear Triangle + case 81: // Axisymetric Solid Linear Triangle + case 91: // Thin Shell Linear Triangle anElement = myMesh->AddFaceWithID(aRec.node_labels[0], aRec.node_labels[1], aRec.node_labels[2], aLabel); break; - case 42: // Plane Stress Quadratic Triangle - TRI6 - case 92: // Thin Shell Quadratic Triangle - TRI6 + case 42: // Plane Stress Parabolic Triangle + case 52: // Plane Strain Parabolic Triangle + case 62: // Plate Parabolic Triangle + case 72: // Membrane Parabolic Triangle + case 82: // Axisymetric Solid Parabolic Triangle + case 92: // Thin Shell Parabolic Triangle anElement = myMesh->AddFaceWithID(aRec.node_labels[0], aRec.node_labels[2], aRec.node_labels[4], @@ -118,8 +122,12 @@ Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform() aLabel); break; - case 44: // Plane Stress Linear Quadrilateral - QUAD4 - case 94: // Thin Shell Linear Quadrilateral - QUAD4 + case 44: // Plane Stress Linear Quadrilateral + case 54: // Plane Strain Linear Quadrilateral + case 64: // Plate Linear Quadrilateral + case 71: // Membrane Linear Quadrilateral + case 84: // Axisymetric Solid Linear Quadrilateral + case 94: // Thin Shell Linear Quadrilateral anElement = myMesh->AddFaceWithID(aRec.node_labels[0], aRec.node_labels[1], aRec.node_labels[2], @@ -127,8 +135,12 @@ Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform() aLabel); break; - case 45: // Plane Stress Quadratic Quadrilateral - QUAD8 - case 95: // Thin Shell Quadratic Quadrilateral - QUAD8 + case 45: // Plane Stress Parabolic Quadrilateral + case 55: // Plane Strain Parabolic Quadrilateral + case 65: // Plate Parabolic Quadrilateral + case 75: // Membrane Parabolic Quadrilateral + case 85: // Axisymetric Solid Parabolic Quadrilateral + case 95: // Thin Shell Parabolic Quadrilateral anElement = myMesh->AddFaceWithID(aRec.node_labels[0], aRec.node_labels[2], aRec.node_labels[4], diff --git a/src/DriverUNV/UNV2412_Structure.cxx b/src/DriverUNV/UNV2412_Structure.cxx index 893fa2391..35cb62afe 100644 --- a/src/DriverUNV/UNV2412_Structure.cxx +++ b/src/DriverUNV/UNV2412_Structure.cxx @@ -30,11 +30,155 @@ using namespace std; using namespace UNV; using namespace UNV2412; -#ifdef _DEBUG_ -static int MYDEBUG = 1; -#else -static int MYDEBUG = 0; -#endif +// Universal Dataset Number 2412 + +// Name: Elements +// Status: Current +// Owner: Simulation +// Revision Date: 14-AUG-1992 +// ----------------------------------------------------------------------- + +// Record 1: FORMAT(6I10) +// Field 1 -- element label +// Field 2 -- fe descriptor id +// Field 3 -- physical property table number +// Field 4 -- material property table number +// Field 5 -- color +// Field 6 -- number of nodes on element + +// Record 2: *** FOR NON-BEAM ELEMENTS *** +// FORMAT(8I10) +// Fields 1-n -- node labels defining element + +// Record 2: *** FOR BEAM ELEMENTS ONLY *** +// FORMAT(3I10) +// Field 1 -- beam orientation node number +// Field 2 -- beam fore-end cross section number +// Field 3 -- beam aft-end cross section number + +// Record 3: *** FOR BEAM ELEMENTS ONLY *** +// FORMAT(8I10) +// Fields 1-n -- node labels defining element + +// Records 1 and 2 are repeated for each non-beam element in the model. +// Records 1 - 3 are repeated for each beam element in the model. + +// Example: + +// -1 +// 2412 +// 1 11 1 5380 7 2 +// 0 1 1 +// 1 2 +// 2 21 2 5380 7 2 +// 0 1 1 +// 3 4 +// 3 22 3 5380 7 2 +// 0 1 2 +// 5 6 +// 6 91 6 5380 7 3 +// 11 18 12 +// 9 95 6 5380 7 8 +// 22 25 29 30 31 26 24 23 +// 14 136 8 0 7 2 +// 53 54 +// 36 116 16 5380 7 20 +// 152 159 168 167 166 158 150 151 +// 154 170 169 153 157 161 173 172 +// 171 160 155 156 +// -1 + +// FE Descriptor Id definitions +// ____________________________ + +// 11 Rod +// 21 Linear beam +// 22 Tapered beam +// 23 Curved beam +// 24 Parabolic beam +// 31 Straight pipe +// 32 Curved pipe +// 41 Plane Stress Linear Triangle +// 42 Plane Stress Parabolic Triangle +// 43 Plane Stress Cubic Triangle +// 44 Plane Stress Linear Quadrilateral +// 45 Plane Stress Parabolic Quadrilateral +// 46 Plane Strain Cubic Quadrilateral +// 51 Plane Strain Linear Triangle +// 52 Plane Strain Parabolic Triangle +// 53 Plane Strain Cubic Triangle +// 54 Plane Strain Linear Quadrilateral +// 55 Plane Strain Parabolic Quadrilateral +// 56 Plane Strain Cubic Quadrilateral +// 61 Plate Linear Triangle +// 62 Plate Parabolic Triangle +// 63 Plate Cubic Triangle +// 64 Plate Linear Quadrilateral +// 65 Plate Parabolic Quadrilateral +// 66 Plate Cubic Quadrilateral +// 71 Membrane Linear Quadrilateral +// 72 Membrane Parabolic Triangle +// 73 Membrane Cubic Triangle +// 74 Membrane Linear Triangle +// 75 Membrane Parabolic Quadrilateral +// 76 Membrane Cubic Quadrilateral +// 81 Axisymetric Solid Linear Triangle +// 82 Axisymetric Solid Parabolic Triangle +// 84 Axisymetric Solid Linear Quadrilateral +// 85 Axisymetric Solid Parabolic Quadrilateral +// 91 Thin Shell Linear Triangle +// 92 Thin Shell Parabolic Triangle +// 93 Thin Shell Cubic Triangle +// 94 Thin Shell Linear Quadrilateral +// 95 Thin Shell Parabolic Quadrilateral +// 96 Thin Shell Cubic Quadrilateral +// 101 Thick Shell Linear Wedge +// 102 Thick Shell Parabolic Wedge +// 103 Thick Shell Cubic Wedge +// 104 Thick Shell Linear Brick +// 105 Thick Shell Parabolic Brick +// 106 Thick Shell Cubic Brick +// 111 Solid Linear Tetrahedron +// 112 Solid Linear Wedge +// 113 Solid Parabolic Wedge +// 114 Solid Cubic Wedge +// 115 Solid Linear Brick +// 116 Solid Parabolic Brick +// 117 Solid Cubic Brick +// 118 Solid Parabolic Tetrahedron +// 121 Rigid Bar +// 122 Rigid Element +// 136 Node To Node Translational Spring +// 137 Node To Node Rotational Spring +// 138 Node To Ground Translational Spring +// 139 Node To Ground Rotational Spring +// 141 Node To Node Damper +// 142 Node To Gound Damper +// 151 Node To Node Gap +// 152 Node To Ground Gap +// 161 Lumped Mass +// 171 Axisymetric Linear Shell +// 172 Axisymetric Parabolic Shell +// 181 Constraint +// 191 Plastic Cold Runner +// 192 Plastic Hot Runner +// 193 Plastic Water Line +// 194 Plastic Fountain +// 195 Plastic Baffle +// 196 Plastic Rod Heater +// 201 Linear node-to-node interface +// 202 Linear edge-to-edge interface +// 203 Parabolic edge-to-edge interface +// 204 Linear face-to-face interface +// 208 Parabolic face-to-face interface +// 212 Linear axisymmetric interface +// 213 Parabolic axisymmetric interface +// 221 Linear rigid surface +// 222 Parabolic rigin surface +// 231 Axisymetric linear rigid surface +// 232 Axisymentric parabolic rigid surface + + static string _label_dataset = "2412"; @@ -158,31 +302,34 @@ bool UNV2412::IsBeam(int theFeDescriptorId){ bool UNV2412::IsFace(int theFeDescriptorId){ - switch (theFeDescriptorId){ + return ( 41 <= theFeDescriptorId && theFeDescriptorId <= 96 ); +// switch (theFeDescriptorId){ - case 71: // TRI3 - case 72: - case 74: +// case 71: // TRI3 +// case 72: +// case 74: - case 41: // Plane Stress Linear Triangle - TRI3 - case 91: // Thin Shell Linear Triangle - TRI3 +// case 41: // Plane Stress Linear Triangle - TRI3 +// case 51: // Plane Strain Linear Triangle +// case 91: // Thin Shell Linear Triangle - TRI3 - case 42: // Plane Stress Quadratic Triangle - TRI6 - case 92: // Thin Shell Quadratic Triangle - TRI6 +// case 42: // Plane Stress Quadratic Triangle - TRI6 +// case 52: // Plane Strain Parabolic Triangle +// case 92: // Thin Shell Quadratic Triangle - TRI6 - case 43: // Plane Stress Cubic Triangle +// case 43: // Plane Stress Cubic Triangle - case 44: // Plane Stress Linear Quadrilateral - QUAD4 - case 94: // Thin Shell Linear Quadrilateral - QUAD4 +// case 44: // Plane Stress Linear Quadrilateral - QUAD4 +// case 94: // Thin Shell Linear Quadrilateral - QUAD4 - case 45: // Plane Stress Quadratic Quadrilateral - QUAD8 - case 95: // Thin Shell Quadratic Quadrilateral - QUAD8 +// case 45: // Plane Stress Quadratic Quadrilateral - QUAD8 +// case 95: // Thin Shell Quadratic Quadrilateral - QUAD8 - case 46: // Plane Stress Cubic Quadrilateral +// case 46: // Plane Stress Cubic Quadrilateral - return true; - } - return false; +// return true; +// } +// return false; } -- 2.39.2