getfem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Getfem-commits] r4697 - /trunk/getfem/src/getfem_import.cc


From: logari81
Subject: [Getfem-commits] r4697 - /trunk/getfem/src/getfem_import.cc
Date: Mon, 30 Jun 2014 15:02:46 -0000

Author: logari81
Date: Mon Jun 30 17:02:45 2014
New Revision: 4697

URL: http://svn.gna.org/viewcvs/getfem?rev=4697&view=rev
Log:
add support for importing some 3rd order gmsh elements

Modified:
    trunk/getfem/src/getfem_import.cc

Modified: trunk/getfem/src/getfem_import.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_import.cc?rev=4697&r1=4696&r2=4697&view=diff
==============================================================================
--- trunk/getfem/src/getfem_import.cc   (original)
+++ trunk/getfem/src/getfem_import.cc   Mon Jun 30 17:02:45 2014
@@ -73,6 +73,12 @@
       case 15: { /* POINT */
         GMM_WARNING2("ignoring point element");
       } break;
+      case 26: { /* 3RD ORDER LINE */
+        pgt = bgeot::simplex_geotrans(1,3);
+      } break;
+      case 21: { /* 3RD ORDER TRIANGLE */
+        pgt = bgeot::simplex_geotrans(2,3);
+      } break;
       default: { /* UNKNOWN .. */
         /* higher order elements : to be done .. */
         GMM_ASSERT1(false, "gmsh element type " << type << " is unknown.");
@@ -120,9 +126,15 @@
       case 15: { /* POINT */
         GMM_WARNING2("ignoring point element");
       } break;
+      case 26: { /* 3RD ORDER LINE */
+        nodes.resize(4);
+      } break;
+      case 21: { /* 3RD ORDER TRIANGLE */
+        nodes.resize(10);
+      } break;
       default: { /* UNKNOWN .. */
         /* higher order elements : to be done .. */
-        GMM_ASSERT1(false, "the gmsh element type " << type << "is unknown..");
+        GMM_ASSERT1(false, "the gmsh element type " << type << " is 
unknown..");
       } break;
       }
     }
@@ -346,6 +358,26 @@
           ci.nodes[4] = tmp_nodes[4]; ci.nodes[5] = tmp_nodes[5];
           ci.nodes[6] = tmp_nodes[6]; ci.nodes[7] = tmp_nodes[7];
           ci.nodes[8] = tmp_nodes[8];
+        }
+          break;
+        case 26 : { /* Third order line */
+          std::vector<size_type> tmp_nodes(4);
+          tmp_nodes[0] = ci.nodes[0]; tmp_nodes[1] = ci.nodes[2];
+          tmp_nodes[2] = ci.nodes[3]; tmp_nodes[3] = ci.nodes[1];
+
+          ci.nodes[0] = tmp_nodes[0]; ci.nodes[1] = tmp_nodes[1];
+          ci.nodes[2] = tmp_nodes[2]; ci.nodes[3] = tmp_nodes[3];
+        }
+          break;
+        case 21 : { /* Third order triangle */
+          std::vector<size_type> tmp_nodes(10);
+          tmp_nodes[0] = ci.nodes[0]; tmp_nodes[1] = ci.nodes[3];
+          tmp_nodes[2] = ci.nodes[4]; tmp_nodes[3] = ci.nodes[1];
+          tmp_nodes[4] = ci.nodes[8]; tmp_nodes[5] = ci.nodes[9];
+          tmp_nodes[6] = ci.nodes[5]; tmp_nodes[7] = ci.nodes[7];
+          tmp_nodes[8] = ci.nodes[6]; tmp_nodes[9] = ci.nodes[2];
+
+          gmm::copy(tmp_nodes, ci.nodes);
         }
           break;
         }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]