Select Git revision
Forked from
gmsh / gmsh
Source project has a limited visibility.
GFace.cpp 21.71 KiB
// Gmsh - Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
//
// See the LICENSE.txt file for license information. Please report all
// bugs and problems to <gmsh@geuz.org>.
#include "GModel.h"
#include "GFace.h"
#include "GEdge.h"
#include "MElement.h"
#if defined(HAVE_GMSH_EMBEDDED)
# include "GmshEmbedded.h"
#else
# include "Message.h"
# include "Numeric.h"
# include "GaussLegendre1D.h"
# include "VertexArray.h"
# include "Context.h"
# if defined(HAVE_GSL)
# include <gsl/gsl_vector.h>
# include <gsl/gsl_linalg.h>
# else
# define NRANSI
# include "nrutil.h"
void dsvdcmp(double **a, int m, int n, double w[], double **v);
# endif
#endif
extern Context_T CTX;
#define SQU(a) ((a)*(a))
GFace::GFace(GModel *model, int tag)
: GEntity(model, tag), r1(0), r2(0), va_geom_triangles(0)
{
meshStatistics.status = GFace::PENDING;
resetMeshAttributes();
}
GFace::~GFace()
{
std::list<GEdge*>::iterator it = l_edges.begin();
while (it != l_edges.end()){
(*it)->delFace(this);
++it;
}
for(unsigned int i = 0; i < mesh_vertices.size(); i++)
delete mesh_vertices[i];
for(unsigned int i = 0; i < triangles.size(); i++)
delete triangles[i];
for(unsigned int i = 0; i < quadrangles.size(); i++)
delete quadrangles[i];
if(va_geom_triangles)
delete va_geom_triangles;
}
unsigned int GFace::getNumMeshElements()
{
return triangles.size() + quadrangles.size();
}
MElement *GFace::getMeshElement(unsigned int index)
{
if(index < triangles.size())
return triangles[index];