Skip to content
Snippets Groups Projects
Select Git revision
  • 6ed82e15f6ff7bca8fcfb2a15f13c00a6f0ac4d6
  • master default
  • cgnsUnstructured
  • partitioning
  • poppler
  • HighOrderBLCurving
  • gmsh_3_0_4
  • gmsh_3_0_3
  • gmsh_3_0_2
  • gmsh_3_0_1
  • gmsh_3_0_0
  • gmsh_2_16_0
  • gmsh_2_15_0
  • gmsh_2_14_1
  • gmsh_2_14_0
  • gmsh_2_13_2
  • gmsh_2_13_1
  • gmsh_2_12_0
  • gmsh_2_11_0
  • gmsh_2_10_1
  • gmsh_2_10_0
  • gmsh_2_9_3
  • gmsh_2_9_2
  • gmsh_2_9_1
  • gmsh_2_9_0
  • gmsh_2_8_6
26 results

gmshFace.cpp

Blame
  • Forked from gmsh / gmsh
    Source project has a limited visibility.
    meshGRegionLocalMeshMod.cpp 35.80 KiB
    // $Id: meshGRegionLocalMeshMod.cpp,v 1.10 2008-02-06 07:33:49 geuzaine Exp $
    //
    // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
    //
    // This program is free software; you can redistribute it and/or modify
    // it under the terms of the GNU General Public License as published by
    // the Free Software Foundation; either version 2 of the License, or
    // (at your option) any later version.
    //
    // This program is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    // GNU General Public License for more details.
    //
    // You should have received a copy of the GNU General Public License
    // along with this program; if not, write to the Free Software
    // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
    // USA.
    // 
    // Please report all bugs and problems to <gmsh@geuz.org>.
    
    #include "meshGRegionLocalMeshMod.h"
    #include "GEntity.h"
    #include "GRegion.h"
    #include "Message.h"
    #include "Numeric.h"
    
    static int edges[6][2] =    {{0,1},{0,2},{0,3},{1,2},{1,3},{2,3}};
    static int efaces[6][2] =   {{0,2},{0,1},{1,2},{0,3},{2,3},{1,3}};
    //static int enofaces[6][2] = {{1,3},{2,3},{0,3},{1,2},{0,1},{0,2}};
    //static int facesXedges[4][3] = {{0,1,3},{1,2,5},{0,2,4},{3,4,5}};
    static int faces[4][3] = {{0,1,2},{0,2,3},{0,1,3},{1,2,3}};
    static int vnofaces[4] = {3,1,2,0};
    static int vFac[4][3] = {{0,1,2},{0,2,3},{0,1,3},{1,2,3}};
    
    // as input, we give a tet and an edge, as return, we get
    // all tets that share this edge and all vertices that are
    // forming the outer ring of the cavity 
    // we return true if the cavity is closed and false if it is open
    
    void computeNeighboringTetsOfACavity(const std::vector<MTet4*> &cavity,
    				     std::vector<MTet4*> &outside)
    {
      outside.clear();
      for (unsigned int i = 0; i < cavity.size(); i++){
        for (int j = 0; j < 4; j++){
          MTet4 * neigh = cavity[i]->getNeigh(j);
          if(neigh){
    	bool found = false;
    	for (unsigned int k = 0; k < outside.size(); k++){
    	  if(outside[k] == neigh){
    	    found = true;
    	    break;
    	  }
    	}
    	if(!found){
    	  for (unsigned int k = 0; k < cavity.size(); k++){
    	    if(cavity[k] == neigh){
    	      found = true;
    	    }
    	  }
    	}
    	if(!found)outside.push_back(neigh);
          }
        }
      }
    }
    		   
    bool gmshBuildEdgeCavity(MTet4 *t, 
    			 int iLocalEdge,