MeshOfHexahedra Class Reference

#include <MeshOfHexahedra.hpp>

Inheritance diagram for MeshOfHexahedra:

Inheritance graph
[legend]
Collaboration diagram for MeshOfHexahedra:

Collaboration graph
[legend]

List of all members.

Public Types

enum  { family = Mesh::volume }
typedef Hexahedron CellType
typedef Hexahedron::FaceType FaceType
typedef MeshOfHexahedra Transformed
typedef SurfaceMeshOfQuadrangles BorderMeshType
typedef Mesh::T_iterator
< MeshOfHexahedra, Hexahedron
iterator
typedef Mesh::T_iterator
< const MeshOfHexahedra, const
Hexahedron
const_iterator
enum  Type {
  cartesianHexahedraMesh, hexahedraMesh, octreeMesh, tetrahedraMesh,
  trianglesMesh, spectralMesh, surfaceMeshTriangles, surfaceMeshQuadrangles
}
enum  Family { volume, surface, plane }
 Family. More...

Public Member Functions

std::string typeName () const
bool inside (const real_t &x, const real_t &y, const real_t &z) const
 Returns true if the point p is inside the mesh.
bool inside (const TinyVector< 3 > &p) const
 Returns true if the point p is inside the mesh.
bool hasBorderMesh () const
ConstReferenceCounting
< BorderMeshType
borderMesh () const
ConstReferenceCounting< MeshborderBaseMesh () const
void buildEdges ()
bool hasFaces () const
void buildFaces ()
const FaceTypeface (const size_t &i) const
size_t faceNumber (const FaceType &f) const
const size_t & numberOfFaces () const
 Read-only access to the number of cells.
const size_t & numberOfCells () const
 Read-only access to the number of cells.
size_t cellNumber (const Hexahedron &h) const
void buildLocalizationTools ()
MeshOfHexahedra::const_iterator find (const double &x, const double &y, const double &z) const
MeshOfHexahedra::const_iterator find (const TinyVector< 3 > &X) const
Hexahedroncell (const size_t &i)
const Hexahedroncell (const size_t &i) const
const Connectivity
< MeshOfHexahedra > & 
connectivity () const
Connectivity< MeshOfHexahedra > & connectivity ()
 MeshOfHexahedra (const size_t &numberOfVertices, const size_t &numberOfCells)
 MeshOfHexahedra (ReferenceCounting< VerticesSet > vertices, ReferenceCounting< VerticesCorrespondance > correspondances, ReferenceCounting< Vector< Hexahedron > > hexahedra, ReferenceCounting< BorderMeshType > borderMesh)
 MeshOfHexahedra (ReferenceCounting< VerticesSet > vertices, ReferenceCounting< VerticesCorrespondance > correspondances, ReferenceCounting< Vector< Hexahedron > > hexahedra)
 ~MeshOfHexahedra ()
virtual bool isPeriodic () const
virtual bool inside (const TinyVector< 3, real_t > &p) const =0
const Mesh::Typetype () const
const Mesh::Familyfamily () const
const size_t & id () const
size_t vertexNumber (const Vertex &v) const
bool hasEdges () const
size_t edgeNumber (const Edge &e) const
const size_t & numberOfVertices () const
void setNumberOfVertices (const size_t &size)
size_t numberOfEdges () const
ReferenceCounting< VerticesSetverticesSet ()
ConstReferenceCounting
< VerticesSet
verticesSet () const
ReferenceCounting
< VerticesCorrespondance
verticesCorrespondance ()
ConstReferenceCounting
< VerticesCorrespondance
verticesCorrespondance () const
const Vertexvertex (const size_t &i) const
Vertexvertex (const size_t &i)
const size_t & correspondance (const size_t &i) const
const Edgeedge (const size_t &i) const
Edgeedge (const size_t &i)

Protected Attributes

ReferenceCounting< VerticesSet__verticesSet
ReferenceCounting
< VerticesCorrespondance
__verticesCorrespondance
ReferenceCounting< EdgesSet__edgesSet

Private Member Functions

 MeshOfHexahedra (const MeshOfHexahedra &m)

Private Attributes

ReferenceCounting< Vector
< Hexahedron > > 
__cells
ReferenceCounting< BorderMeshType__borderMesh
ReferenceCounting< FacesSet
< Quadrangle > > 
__facesSet
Connectivity< MeshOfHexahedra__connectivity
ReferenceCounting< Octree
< size_t, 3 > > 
__octree
TinyVector< 3, real_t > __a
TinyVector< 3, real_t > __b


Detailed Description

Definition at line 46 of file MeshOfHexahedra.hpp.


Member Typedef Documentation

Definition at line 50 of file MeshOfHexahedra.hpp.

Definition at line 51 of file MeshOfHexahedra.hpp.

Definition at line 53 of file MeshOfHexahedra.hpp.

Definition at line 55 of file MeshOfHexahedra.hpp.

Definition at line 172 of file MeshOfHexahedra.hpp.

Definition at line 173 of file MeshOfHexahedra.hpp.


Member Enumeration Documentation

anonymous enum

Enumerator:
family 

Definition at line 57 of file MeshOfHexahedra.hpp.

00057        {
00058     family = Mesh::volume
00059   };

enum Mesh::Type [inherited]

Enumerator:
cartesianHexahedraMesh 
hexahedraMesh 
octreeMesh 
tetrahedraMesh 
trianglesMesh 
spectralMesh 
surfaceMeshTriangles 
surfaceMeshQuadrangles 

Definition at line 43 of file Mesh.hpp.

enum Mesh::Family [inherited]

Family.

Enumerator:
volume 
surface 
plane 

Definition at line 55 of file Mesh.hpp.

00055                {
00056     volume,
00057     surface,
00058     plane
00059   } Family;


Constructor & Destructor Documentation

MeshOfHexahedra::MeshOfHexahedra ( const MeshOfHexahedra m  )  [private]

Forbids copy contructor

Parameters:
m another mesh

MeshOfHexahedra::MeshOfHexahedra ( const size_t &  numberOfVertices,
const size_t &  numberOfCells 
) [inline]

Hexahedra mesh constructor

Parameters:
numberOfVertices the number of vertices
numberOfCells the number of cells

Definition at line 237 of file MeshOfHexahedra.hpp.

References buildLocalizationTools().

00239     : Mesh(Mesh::hexahedraMesh,
00240            Mesh::volume,
00241            numberOfVertices), 
00242       __cells(new Vector<Hexahedron>(numberOfCells)),
00243       __borderMesh(0),
00244       __facesSet(0),
00245       __connectivity(*this)
00246   {
00247     this->buildLocalizationTools();
00248   }

Here is the call graph for this function:

MeshOfHexahedra::MeshOfHexahedra ( ReferenceCounting< VerticesSet vertices,
ReferenceCounting< VerticesCorrespondance correspondances,
ReferenceCounting< Vector< Hexahedron > >  hexahedra,
ReferenceCounting< BorderMeshType borderMesh 
) [inline]

Hexahedra mesh constructor

Parameters:
vertices a set of vertices
correspondances "real" vertices numbers
hexahedra the hexahedra
borderMesh the surface mesh

Definition at line 259 of file MeshOfHexahedra.hpp.

References buildLocalizationTools().

00263     : Mesh(Mesh::hexahedraMesh,
00264            Mesh::volume,
00265            vertices,
00266            correspondances),
00267       __cells(hexahedra),
00268       __borderMesh(borderMesh),
00269       __facesSet(0),
00270       __connectivity(*this)
00271   {
00272     this->buildLocalizationTools();
00273   }

Here is the call graph for this function:

MeshOfHexahedra::MeshOfHexahedra ( ReferenceCounting< VerticesSet vertices,
ReferenceCounting< VerticesCorrespondance correspondances,
ReferenceCounting< Vector< Hexahedron > >  hexahedra 
) [inline]

With this constructor, border has to be built

Parameters:
vertices a set of vertices
correspondances "real" vertices numbers
hexahedra the hexahedra

Definition at line 283 of file MeshOfHexahedra.hpp.

References buildLocalizationTools().

00286     : Mesh(Mesh::hexahedraMesh,
00287            Mesh::volume,
00288            vertices,
00289            correspondances),
00290       __cells(hexahedra),
00291       __borderMesh(0),
00292       __facesSet(0),
00293       __connectivity(*this)
00294   {
00295     this->buildLocalizationTools();
00296   }

Here is the call graph for this function:

MeshOfHexahedra::~MeshOfHexahedra (  )  [inline]

Destructor

Definition at line 303 of file MeshOfHexahedra.hpp.

00304   {
00305     ;
00306   }


Member Function Documentation

std::string MeshOfHexahedra::typeName (  )  const [inline, virtual]

Returns the typename of the mesh

Returns:
type name of the mesh

Implements Mesh.

Definition at line 85 of file MeshOfHexahedra.hpp.

00086   {
00087     return "unstructured mesh of hexahedra";
00088   }

bool MeshOfHexahedra::inside ( const real_t &  x,
const real_t &  y,
const real_t &  z 
) const [inline, virtual]

Returns true if the point p is inside the mesh.

Implements Mesh.

Definition at line 91 of file MeshOfHexahedra.hpp.

References find().

Referenced by inside().

00092   {
00093     return not(this->find(x, y, z).end());
00094   }

Here is the call graph for this function:

bool MeshOfHexahedra::inside ( const TinyVector< 3 > &  p  )  const [inline]

Returns true if the point p is inside the mesh.

Definition at line 97 of file MeshOfHexahedra.hpp.

References inside().

00098   {
00099     return this->inside(p[0], p[1], p[2]);
00100   }

Here is the call graph for this function:

bool MeshOfHexahedra::hasBorderMesh (  )  const [inline, virtual]

Implements Mesh.

Definition at line 102 of file MeshOfHexahedra.hpp.

References __borderMesh.

Referenced by WriterMedit::__proceedMesh().

00103   {
00104     return (__borderMesh != 0);
00105   }

ConstReferenceCounting<BorderMeshType> MeshOfHexahedra::borderMesh (  )  const [inline]

Definition at line 107 of file MeshOfHexahedra.hpp.

References __borderMesh.

Referenced by WriterMedit::__proceedMesh(), and BoundaryExpressionSurfaceMesh::execute().

00108   {
00109     return __borderMesh;
00110   }

ConstReferenceCounting<Mesh> MeshOfHexahedra::borderBaseMesh (  )  const [inline, virtual]

Implements Mesh.

Definition at line 112 of file MeshOfHexahedra.hpp.

References __borderMesh.

00113   {
00114     return static_cast<const BorderMeshType*>(__borderMesh);
00115   }

void MeshOfHexahedra::buildEdges (  )  [virtual]

Builds the internal edges of the mesh

Implements Mesh.

Definition at line 29 of file MeshOfHexahedra.cpp.

References Mesh::__edgesSet, and EdgesBuilder< MeshType >::edgesSet().

00030 {
00031   EdgesBuilder<MeshOfHexahedra> edgesBuilder(*this);
00032   __edgesSet = edgesBuilder.edgesSet();
00033 }

Here is the call graph for this function:

bool MeshOfHexahedra::hasFaces (  )  const [inline, virtual]

Builds the internal faces of the mesh

Implements Mesh.

Definition at line 127 of file MeshOfHexahedra.hpp.

References __facesSet.

00128   {
00129     return (__facesSet != 0);
00130   }

void MeshOfHexahedra::buildFaces (  )  [virtual]

Builds the internal faces of the mesh

Implements Mesh.

Definition at line 36 of file MeshOfHexahedra.cpp.

References __facesSet, and FacesBuilder< MeshType >::facesSet().

00037 {
00038   FacesBuilder<MeshOfHexahedra> facesBuilder(*this);
00039   __facesSet = facesBuilder.facesSet();
00040 }

Here is the call graph for this function:

const FaceType& MeshOfHexahedra::face ( const size_t &  i  )  const [inline]

Read-only access to a face

Parameters:
i the face number
Returns:
the i th face

Definition at line 145 of file MeshOfHexahedra.hpp.

References __facesSet.

00146   {
00147     return (*__facesSet)[i];
00148   }

size_t MeshOfHexahedra::faceNumber ( const FaceType f  )  const [inline]

Definition at line 150 of file MeshOfHexahedra.hpp.

00151   {
00152     return (*__facesSet).number(f);
00153   }

const size_t& MeshOfHexahedra::numberOfFaces (  )  const [inline]

Read-only access to the number of cells.

Definition at line 156 of file MeshOfHexahedra.hpp.

00157   {
00158     return (*__facesSet).numberOfFaces();
00159   }

const size_t& MeshOfHexahedra::numberOfCells (  )  const [inline, virtual]

Read-only access to the number of cells.

Implements Mesh.

Definition at line 162 of file MeshOfHexahedra.hpp.

Referenced by buildLocalizationTools().

00163   {
00164     return (*__cells).size();
00165   }

size_t MeshOfHexahedra::cellNumber ( const Hexahedron h  )  const [inline]

Definition at line 167 of file MeshOfHexahedra.hpp.

Referenced by find().

00168   {
00169     return (*__cells).number(h);
00170   }

void MeshOfHexahedra::buildLocalizationTools (  ) 

Definition at line 44 of file MeshOfHexahedra.cpp.

References __a, __b, __borderMesh, __octree, ConnectivityBuilder< MeshType >::borderMesh(), cell(), ffout(), ConnectivityBuilder< MeshType >::generates(), StaticBase< QuadratureFormulaQ1Hexahedron >::instance(), ErrorHandler::normal, numberOfCells(), QuadratureFormulaQ1Hexahedron::numberOfQuadraturePoints, Mesh::numberOfVertices(), ConformTransformationQ1Hexahedron::value(), and Mesh::vertex().

Referenced by MeshOfHexahedra().

00045 {
00046   if (this->numberOfVertices()==0) {
00047     throw ErrorHandler(__FILE__,__LINE__,
00048                        "the mesh contains no vertices\n",
00049                        ErrorHandler::normal);
00050   }
00051 
00052   {
00053     // Localization inside a hexahedra mesh requires the cell to cell
00054     // connectivity
00055     ConnectivityBuilder<MeshOfHexahedra> builder(*this);
00056     builder.generates(Connectivity<MeshOfHexahedra>::CellToCells);
00057   }
00058 
00059   if (__borderMesh != 0) {
00060     ConnectivityBuilder<MeshOfHexahedra> builder(*this);
00061     builder.borderMesh(__borderMesh);
00062     __borderMesh->setBackgroundMesh(this);
00063   }
00064 
00065   // getting bounding box size
00066   __a = (this->vertex(0));
00067   __b = __a;
00068   for (size_t i=1; i<this->numberOfVertices(); ++i) {
00069     Vertex& x = this->vertex(i);
00070     for (size_t k=0; k<3; ++k) {
00071       __a[k] = std::min(__a[k],x[k]);
00072       __b[k] = std::max(__b[k],x[k]);
00073     }
00074   }
00075   ffout(3) << "- Bounding box is " << __a << ',' << __b << '\n';
00076 
00077   __a -= TinyVector<3,real_t>(1,1,1);
00078   __b += TinyVector<3,real_t>(1,1,1);
00079 
00080   ffout(3) << "- Building the octree\n";
00081   __octree = new Octree<size_t, 3>(__a,__b);
00082 
00083   for (size_t i = 0; i < this->numberOfCells(); ++i) {
00084 
00085     ConformTransformationQ1Hexahedron T(this->cell(i));
00086 
00087     for (size_t k=0; k<QuadratureFormulaQ1Hexahedron::numberOfQuadraturePoints; ++k) {
00088       TinyVector<3,real_t> X;
00089       T.value(QuadratureFormulaQ1Hexahedron::instance()[k], X);
00090       __octree->add(i,X);
00091     }
00092   }
00093 }

Here is the call graph for this function:

MeshOfHexahedra::const_iterator MeshOfHexahedra::find ( const double &  x,
const double &  y,
const double &  z 
) const

Definition at line 97 of file MeshOfHexahedra.cpp.

References __connectivity, cellNumber(), Connectivity< MeshType >::cells(), Mesh::T_iterator< MeshType, CellType >::end(), Mesh::T_iterator< MeshType, CellType >::End, and ConformTransformationQ1Hexahedron::invertT().

Referenced by find(), and inside().

00100 {
00101   TinyVector<3,real_t> X(x,y,z);
00102 
00103   Octree<size_t, 3>::iterator i = (*__octree).fuzzySearch(X);
00104 
00105   size_t cellNumber = (*i).value();
00106 
00107   MeshOfHexahedra::const_iterator h0(*this, cellNumber);
00108 
00109   bool found=false;
00110 
00111   std::set<MeshOfHexahedra::const_iterator> visited;
00112   std::set<MeshOfHexahedra::const_iterator> toVisitSet;
00113   std::queue<MeshOfHexahedra::const_iterator> toVisitQueue;
00114 
00115   toVisitSet.insert(h0);
00116   toVisitQueue.push(h0);
00117   MeshOfHexahedra::const_iterator h(*this);
00118 
00119   TinyVector<3, real_t> Xhat;
00120   size_t cpt = 0;
00121   do {
00122     if (cpt > 125) {
00123       break; // test 3 layers arround the seeked point then consideres that point was missed
00124     }
00125     // treating next cell
00126     h = toVisitQueue.front();
00127 
00128     toVisitSet.erase(h);
00129     toVisitQueue.pop();
00130     visited.insert(h);
00131 
00132     const Hexahedron& H = *h;
00133 
00134     ConformTransformationQ1Hexahedron T(H);
00135     found = T.invertT(x,y,z, Xhat);
00136 
00137     if (not found) {
00138       for (size_t k=0; k<6; ++k) {
00139         MeshOfHexahedra::const_iterator icell(*this,const_iterator::End);
00140         icell = __connectivity.cells(*h)[k];
00141         if (not(icell.end())) {
00142           if (visited.find(icell) == visited.end()) {
00143             if (toVisitSet.find(icell) == toVisitSet.end()) {
00144               toVisitSet.insert(icell);
00145               toVisitQueue.push(icell);
00146             }
00147           }
00148         }
00149       }
00150     }
00151     cpt++;
00152   } while (not(found) and not(toVisitQueue.empty()));
00153 
00154   if (not found) {
00155     return MeshOfHexahedra::const_iterator(*this,const_iterator::End);
00156   }
00157   return  h;
00158 }

Here is the call graph for this function:

MeshOfHexahedra::const_iterator MeshOfHexahedra::find ( const TinyVector< 3 > &  X  )  const [inline]

Definition at line 181 of file MeshOfHexahedra.hpp.

References find().

00182   {
00183     return find(X[0], X[1], X[2]);
00184   }

Here is the call graph for this function:

Hexahedron& MeshOfHexahedra::cell ( const size_t &  i  )  [inline]

Access to the Cell i of the mesh.

Parameters:
i an hexahedron number
Returns:
the corresponding hexahedron

Definition at line 193 of file MeshOfHexahedra.hpp.

References __cells.

Referenced by buildLocalizationTools().

00194   {
00195     return (*__cells)[i];
00196   }

const Hexahedron& MeshOfHexahedra::cell ( const size_t &  i  )  const [inline]

Read-only access to the Cell i of the mesh.

Parameters:
i an hexahedron number
Returns:
the corresponding hexahedron

Definition at line 205 of file MeshOfHexahedra.hpp.

References __cells.

00206   {
00207     return (*__cells)[i];
00208   }

const Connectivity<MeshOfHexahedra>& MeshOfHexahedra::connectivity (  )  const [inline]

Read only access to the mesh connectivity

Returns:
the connectivity

Definition at line 215 of file MeshOfHexahedra.hpp.

References __connectivity.

00216   {
00217     return __connectivity;
00218   }

Connectivity<MeshOfHexahedra>& MeshOfHexahedra::connectivity (  )  [inline]

Access to the mesh connectivity

Returns:
the connectivity

Definition at line 225 of file MeshOfHexahedra.hpp.

References __connectivity.

00226   {
00227     return __connectivity;
00228   }

virtual bool Mesh::isPeriodic (  )  const [inline, virtual, inherited]

Checks if a mesh has a periodic topology

Returns:
true if the mesh is periodic

Reimplemented in OctreeMesh.

Definition at line 238 of file Mesh.hpp.

References Mesh::__verticesCorrespondance, and Mesh::__verticesSet.

00239   {
00240     return __verticesSet->numberOfVertices() != __verticesCorrespondance->numberOfCorrespondances();
00241   }

virtual bool Mesh::inside ( const TinyVector< 3, real_t > &  p  )  const [pure virtual, inherited]

Checks if a point is inside the mesh

Parameters:
p the point to localize
Returns:
true if the point p is inside the mesh.

const Mesh::Type& Mesh::type (  )  const [inline, inherited]

Read-only access to the type of the mesh

Returns:
__type

Definition at line 277 of file Mesh.hpp.

References Mesh::__type.

Referenced by BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__meshWrapper(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardDirichletBorderLinearOperator(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardGetDiagonalVariationalBorderBilinearOperator(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardVariationalBorderBilinearOperator(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardVariationalBorderBilinearOperatorTimesX(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardVariationalBorderBilinearOperatorTransposedTimesX(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardVariationalBorderLinearOperator(), ScalarDegreeOfFreedomPositionsSet::Builder::build(), FEMFunctionBuilder::build(), DGFunctionBuilder::build(), SpectralFEMPreconditioner::Internal::computes(), SpectralFEMPreconditioner::Internal::computesTransposed(), DegreeOfFreedomSetBuilder::DegreeOfFreedomSetBuilder(), RealExpressionIntegrate::execute(), FunctionExpressionConvection::execute(), BoundaryExpressionSurfaceMesh::execute(), SurfaceMeshGenerator::generateSurfacicMesh(), BoundaryConditionDiscretizationSpectralNonConform::getDiagonal(), MeshSimplifier::MeshSimplifier(), MultiGrid::MultiGrid(), ScalarFunctionIntegrate::operator()(), BoundaryConditionDiscretizationSpectralNonConform::setSecondMember(), BoundaryConditionDiscretizationSpectralNonConform::timesX(), and BoundaryConditionDiscretizationSpectralNonConform::transposedTimesX().

00278   {
00279     return __type;
00280   }

const Mesh::Family& Mesh::family (  )  const [inline, inherited]

Read-only access to the family of the mesh

Returns:
__family

Definition at line 287 of file Mesh.hpp.

References Mesh::__family.

Referenced by RealExpressionIntegrate::execute(), and BoundaryExpressionSurfaceMesh::execute().

00288   {
00289     return __family;
00290   }

const size_t& Mesh::id (  )  const [inline, inherited]

Read-only access to the id of the mesh

Returns:
__meshId

Definition at line 297 of file Mesh.hpp.

References Mesh::__meshId.

00298   {
00299     return __meshId;
00300   }

size_t Mesh::vertexNumber ( const Vertex v  )  const [inline, inherited]

Returns the number of the vertex v in the list

Parameters:
v a vertex
Returns:
the vertex v number
Note:
polymorphism is not used for clarity reason

Definition at line 311 of file Mesh.hpp.

References Mesh::__verticesSet.

Referenced by MeshOfTetrahedra::buildLocalizationTools(), OctreeMeshBuilder::buildMesh(), and MeshDomainTetrahedrizor::run().

00312   {
00313     return __verticesSet->number(v);
00314   }

bool Mesh::hasEdges (  )  const [inline, inherited]

tests if the EdgesSet has been built

Returns:
true if __edgesSet is not NULL

Definition at line 321 of file Mesh.hpp.

References Mesh::__edgesSet.

00322   {
00323     return __edgesSet != 0;
00324   }

size_t Mesh::edgeNumber ( const Edge e  )  const [inline, inherited]

Returns the number of the Edge e in the list

Parameters:
e an Edge
Returns:
the edge E number
Note:
polymorphism is not used for clarity reason

Definition at line 353 of file Mesh.hpp.

References Mesh::__edgesSet, and ASSERT.

00354   {
00355     ASSERT(__edgesSet != 0);
00356     return __edgesSet->number(e);
00357   }

const size_t& Mesh::numberOfVertices (  )  const [inline, inherited]

void Mesh::setNumberOfVertices ( const size_t &  size  )  [inline, inherited]

Changes the size of the vertices container.

Parameters:
size vertices set new size
Bug:
this function should not be allowed!

Definition at line 375 of file Mesh.hpp.

References Mesh::__verticesCorrespondance, and Mesh::__verticesSet.

Referenced by SurfaceMeshGenerator::Internals::__constructionFinalMesh().

00376   {
00377     if (__verticesSet == 0) {
00378       __verticesSet = new VerticesSet(size);
00379       __verticesCorrespondance = new VerticesCorrespondance(size);
00380     } else {
00381       __verticesSet->setNumberOfVertices(size);
00382       __verticesCorrespondance = new VerticesCorrespondance(size);
00383     }
00384   }

size_t Mesh::numberOfEdges (  )  const [inline, inherited]

Read-only access to the number of edges

Returns:
number of edges

Definition at line 398 of file Mesh.hpp.

References Mesh::__edgesSet, and ASSERT.

Referenced by SurfaceMeshGenerator::Internals::__createSurface().

00399   {
00400     ASSERT(__edgesSet != 0);
00401     return __edgesSet->numberOfEdges();
00402   }

ReferenceCounting<VerticesSet> Mesh::verticesSet (  )  [inline, inherited]

Access to the vertices set of the mesh

Returns:
__verticesSet

Definition at line 409 of file Mesh.hpp.

References Mesh::__verticesSet.

00410   {
00411     return __verticesSet;
00412   }

ConstReferenceCounting<VerticesSet> Mesh::verticesSet (  )  const [inline, inherited]

Read only access to the vertices set of the mesh

Returns:
__verticesSet

Definition at line 419 of file Mesh.hpp.

References Mesh::__verticesSet.

00420   {
00421     return __verticesSet;
00422   }

ReferenceCounting<VerticesCorrespondance> Mesh::verticesCorrespondance (  )  [inline, inherited]

Access to the vertices correspondance table

Returns:
__verticesCorrespondance

Definition at line 429 of file Mesh.hpp.

References Mesh::__verticesCorrespondance.

00430   {
00431     return __verticesCorrespondance;
00432   }

ConstReferenceCounting<VerticesCorrespondance> Mesh::verticesCorrespondance (  )  const [inline, inherited]

Read only access to the vertices correspondance table

Returns:
__verticesCorrespondance

Definition at line 439 of file Mesh.hpp.

References Mesh::__verticesCorrespondance.

00440   {
00441     return __verticesCorrespondance;
00442   }

const Vertex& Mesh::vertex ( const size_t &  i  )  const [inline, inherited]

Vertex& Mesh::vertex ( const size_t &  i  )  [inline, inherited]

Access to the ith vertex of the mesh

Parameters:
i the number of the vertex to access
Returns:
the ith vertex

Reimplemented in SpectralMesh, and Structured3DMesh.

Definition at line 463 of file Mesh.hpp.

References Mesh::__verticesSet.

00464   {
00465     return (*__verticesSet)[i];
00466   }

const size_t& Mesh::correspondance ( const size_t &  i  )  const [inline, inherited]

Read only access to the ith vertex "real" number (ie: when dealing with periodic boundaries)

Parameters:
i the number of the vertex
Returns:
the vertex "real" number

Definition at line 476 of file Mesh.hpp.

References Mesh::__verticesCorrespondance.

Referenced by MeshDomainTetrahedrizor::run().

00477   {
00478     return (*__verticesCorrespondance)[i];
00479   }

const Edge& Mesh::edge ( const size_t &  i  )  const [inline, inherited]

read-only access to the ith edge

Parameters:
i the number of the edge
Returns:
ith edge

Definition at line 489 of file Mesh.hpp.

References Mesh::__edgesSet.

Referenced by SurfaceMeshGenerator::Internals::__createSurface().

00490   {
00491     return (*__edgesSet)[i];
00492   }

Edge& Mesh::edge ( const size_t &  i  )  [inline, inherited]

access to the ith edge

Parameters:
i the number of the edge
Returns:
ith edge

Definition at line 501 of file Mesh.hpp.

References Mesh::__edgesSet.

00502   {
00503     return (*__edgesSet)[i];
00504   }


Member Data Documentation

Cells list

Definition at line 61 of file MeshOfHexahedra.hpp.

Referenced by cell().

The various border lists

Definition at line 64 of file MeshOfHexahedra.hpp.

Referenced by borderBaseMesh(), borderMesh(), buildLocalizationTools(), and hasBorderMesh().

internal and external quadrangles set

Definition at line 67 of file MeshOfHexahedra.hpp.

Referenced by buildFaces(), face(), and hasFaces().

Connectivity

Definition at line 69 of file MeshOfHexahedra.hpp.

Referenced by connectivity(), and find().

Octree refering to the cells

Definition at line 71 of file MeshOfHexahedra.hpp.

Referenced by buildLocalizationTools().

TinyVector<3,real_t> MeshOfHexahedra::__a [private]

bounding box lower corner

Definition at line 73 of file MeshOfHexahedra.hpp.

Referenced by buildLocalizationTools().

TinyVector<3,real_t> MeshOfHexahedra::__b [private]

bounding box higher corner

Definition at line 74 of file MeshOfHexahedra.hpp.

Referenced by buildLocalizationTools().

ReferenceCounting<EdgesSet> Mesh::__edgesSet [protected, inherited]


The documentation for this class was generated from the following files:

Generated on Wed Nov 19 00:09:52 2008 for FreeFEM3D (aka ff3d) by  doxygen 1.5.6