1 #ifndef UNSTRUCTURED_MAPPING_H
2 #define UNSTRUCTURED_MAPPING_H
6 #ifndef OV_USE_OLD_STL_HEADERS
81 {
return et<
id.et ?
true : (
et==
id.et ?
e<
id.e :
false) ; }
84 {
return et<
id.et ?
true : (
et==
id.et ?
e<
id.e :
false) ; }
87 {
return (
et==
id.
et &&
e==
id.
e); }
90 {
return (
et==
id.
et &&
e==
id.
e); }
93 {
return !(*
this==id); }
96 {
return !(*
this==id); }
105 int rangeDimension_ ,
123 bool includeGhost=
false) {
return node; }
180 bool skipGhostEntities=
false)
const;
183 bool skipGhostEntities=
false)
const;
186 bool skipGhostEntities=
false)
const;
188 bool skipGhostEntities=
false)
const;
191 bool skipGhostEntities=
false)
const;
193 bool skipGhostEntities=
false)
const;
196 bool skipGhostEntities=
false)
const;
198 bool skipGhostEntities=
false)
const;
203 const intArray & elements,
208 const intArray & elements,
209 const intArray & faces,
215 bool constantNumberOfNodesPerElement=
false );
219 const intArray & elements,
220 const intArray & neighbours,
225 void setTags(
const intArray &new_tags);
234 const int & side1=-1,
235 const int &
axis1=-1,
236 const int & side2=-1,
237 const int &
axis2=-1,
238 const real & tol=0. )
const;
268 virtual int get(
const aString & fileName );
286 int & intersectionFace,
int & intersectionFace2,
310 const void *tagData,
const bool copyTag=
false,
const int tagSize=0 );
320 const void *data,
const bool copyData=
false,
const int tagSize=0 );
550 int s2,
int &
i2,
int & j2,
int & e2m,
int & e2p,
IntegerArray & connectionInfo2,
551 const intArray & elementface2,
553 int maxNumberOfElements,
int maxNumberOfFaces );
570 real & dist0,
real & dist1,
real & dist2,
int debugFlag);
572 void replaceNode(
int n,
int n0, intArray & nodeInfo, intArray & ef );
582 mutable std::map<IDTuple, std::list<EntityTag*> >
entityTags;
583 mutable std::map<std::string, std::list<IDTuple>, std::less<std::string> >
tagEntities;
613 int position,
bool skipGhostEntites_ =
false );
618 if ( l<numberOfEntities)
628 while ( e<numberOfEntities && (entityMask[e]&skipMask) ) e++;
656 int numberOfEntities;
659 bool skipGhostEntities;
671 int position,
bool skipGhostEntities_ =
false );
677 while ( e<numberOfEntities && (entityMask[entityArray[offset + e*stride]]&skipMask) ) e++;
683 inline int operator*()
const {
return e<numberOfEntities ?
abs(entityArray[offset + e*stride]) : -1; }
686 {
return entityArray ? ( (i.adjEntityType==adjEntityType) && ( (**
this)==(*i) ) ) : entityArray==i.entityArray; }
695 {
return entityArray ? (i.e==
abs(entityArray[offset + e*stride])) && i.entityType==adjEntityType :
false; }
698 {
return ! (*
this==i);}
703 {
return !(*
this==i); }
707 inline int orientation()
const {
return orientationArray ? (orientationArray[offset + e*stride] ? 1 : -1) : 1; }
713 inline int nAdjacent()
const {
return numberOfEntities; }
722 char *orientationArray;
723 int numberOfEntities, stride, offset;
726 bool skipGhostEntities;
755 emslice.reshape(Iface);
758 retArray =
element(ia, emslice);
759 retArray.reshape(Iface);
761 retArray.resize(Iface);
762 for (
int i=0; i<Iface.getLength(); i++)
988 for (
int i=7; i>=3; i-- )
989 if ( earray(entity,i)!=-1 )
996 for (
int i=3; i>1; i-- )
997 if ( earray(entity,i)!=-1 )