PPL Logo

element Class Reference

Tetrahedral mesh element. More...

#include <element.h>

Collaboration diagram for element:

Collaboration graph
[legend]

Public Member Functions

 element ()
 element (nodeRef *n)
void set (int cid, int idx, chunk *cptr)
void set (nodeRef *n)
void update (nodeRef &oldval, nodeRef &newval)
int hasNode (nodeRef n)
int hasNode (node n)
int hasNodes (nodeRef n1, nodeRef n2, nodeRef n3)
int hasNodes (double nodeCoords[3][3])
elemRef getFace (int face[3])
elemRef getFace (int a, int b, int c)
void setFace (int a, int b, int c, elemRef er)
void setFace (int idx, elemRef er)
int hasFace (elemRef face)
int checkFace (node n1, node n2, node n3, elemRef nbr)
void updateFace (int cid, int idx)
void updateFace (elemRef oldElem, elemRef newElem)
nodeRefgetNode (int nodeIdx)
int getNodeIdx (nodeRef n)
int getNode (node n)
elemRefgetMyRef ()
void clear ()
int isPresent ()
double getVolume ()
void calculateVolume ()
double getArea (int n1, int n2, int n3)
void resetTargetVolume (double volume)
void setTargetVolume (double volume)
double getTargetVolume ()
double getCachedVolume ()
double findLongestEdge (int *le1, int *le2, int *nl1, int *nl2)
void flip23 (int face[3])
flip23responseflip23remote (flip23request *fr)
void flip32 (int edge[2])
flip32responseflip32remote (flip32request *fr)
flip32responseremove32element (flip32request *fr)
int test23 (int face[3])
int test32 (int edge[2])
int connectTest ()
void refineLF ()
int lockLF (node n1, node n2, node n3, node n4, elemRef requester, double prio)
splitResponsesplitLF (node in1, node in2, node in3, node in4, elemRef requester)
void refineLE ()
LEsplitResultLEsplit (elemRef root, elemRef parent, nodeRef newNodeRef, node newNode, elemRef newRootElem, elemRef newElem, elemRef targetElem, double targetVol, node aIn, node bIn)
lockResultlockArc (elemRef prioRef, elemRef parentRef, double prio, elemRef destRef, node aNode, node bNode)
void unlockArc1 (int prio, elemRef parentRef, elemRef destRef, node aNode, node bNode)
void unlockArc2 (int prio, elemRef parentRef, elemRef destRef, node aNode, node bNode)
void refineCP ()
void coarsen ()
void improveElement ()
void improveInternalNode (int n)
void improveSurfaceNode (int n)
void improveSurfaceNodeHelp (int n, int ot1, int ot2)
int LEtest ()
int LFtest ()
int CPtest ()
 element ()
void sanityCheck (chunk *C, elemRef ref)
void init ()
void init (int *n, edgeRef *e, int index, chunk *chk)
void init (int *n, int index, chunk *chk)
void updateEdge (int idx, edgeRef e)
void updateEdges (edgeRef e0, edgeRef e1, edgeRef e2)
node getNode (int i) const
const edgeRefgetEdge (int i) const
int getOpNode (int e)
int getOtherNode (int e)
elemRef getNeighbor (int e) const
double getArea ()
void calculateArea ()
void setTargetArea (double area)
double getTargetArea ()
double getCachedArea ()
void setDependency ()
void unsetDependency ()
int hasDependency ()
void setDependent (elemRef e)
void setDependent (int cId, int i)
void unsetDependent ()
int hasDependent ()
void tellDepend ()
void setSpecialRequest (elemRef r)
int isSpecialRequest ()
int isPendingRequest ()
int isRequestResponse ()
void setRequestResponse (node n, node o, edgeRef e)
void refine ()
void refineNeighbor (int longEdge)
void splitBorder (int longEdge)
void splitNeighbors (int longEdge)
void splitBorderLocal (int longEdge, int opnode, int othernode, int modEdge)
void splitNeighborsLocal (int longEdge, int opnode, int othernode, int modEdge, int nbrLongEdge, int nbrOpnode, int nbrOthernode, int nbrModEdge, const elemRef &nbr)
void splitHelp (int longEdge)
void splitResponse (int longEdge)
int findLongestEdge ()
int checkNeighbor (int longEdge)
int checkIfLongEdge (edgeRef e)
 element ()
 Basic element constructor.
 element (int cid, int idx, chunk *C)
 element (int *n)
 element (int *n, edgeRef *e)
 element (int n1, int n2, int n3, edgeRef e1, edgeRef e2, edgeRef e3)
 element (int cid, int idx, chunk *C, int n1, int n2, int n3, edgeRef e1, edgeRef e2, edgeRef e3)
 element (const element &e)
 Copy constructor.
elementoperator= (const element &e)
 Assignment.
void set ()
 Basic set operation.
void set (int c, int i, chunk *ck)
void set (int *n)
void set (int *n, edgeRef *e)
void set (int n1, int n2, int n3)
void set (int n1, int n2, int n3, edgeRef e1, edgeRef e2, edgeRef e3)
void set (edgeRef &e1, edgeRef &e2, edgeRef &e3)
void set (int idx, edgeRef e)
void update (edgeRef &oldval, edgeRef &newval)
 Update an old edgeRef with a new one.
void update (int oldNode, int newNode)
 Update an old node with a new one.
int getNode (int nodeIdx)
 Given index of a node on this element, return node's index in node array.
edgeRef getEdge (int edgeIdx)
 Given index of an edge on this element, return the edgeRef for the edge.
int getEdgeIdx (edgeRef e)
 Given an edgeRef, find its index on this element.
int getNodeIdx (int n)
 Given a node array index, find its index on this element.
elemRef getElement (int edgeIdx)
 Given an edge index on this element, get the neighboring elemRef.
int lockOpNode (edgeRef e, double l)
 Given an edgeRef, lock the node opposite to the edge.
void unlockOpNode (edgeRef e)
 Given an edgeRef, unlock the node opposite to the edge.
void clear ()
int isPresent ()
double getArea ()
void calculateArea ()
void minimizeTargetArea (double area)
void resetTargetArea (double area)
void setTargetArea (double area)
double getTargetArea ()
double getCachedArea ()
void refine ()
void split (int longEdge)
void coarsen ()
void collapse (int shortEdge)
int findNewNodeDetails (node *newNode, double *frac, int kBc, int dBc, int kFx, int dFx, int *kNd, int *dNd, short *nonCC, int *kEg, int *dEg, elemRef *kNbr, elemRef *dNbr, elemRef *nbr)
void translateNodeIDs (int *kIdx, int *dIdx, int sEg, int kNd, int dNd)
int findLongestEdge ()
int findShortestEdge ()
double getShortestEdge (double *angle)
double getAreaQuality ()
double getLargestEdge (double *angle)
int isLongestEdge (edgeRef &e)
bool flipTest (node *, node *)
bool flipInverseTest (node *, node *)
void incnonCoarsen (void)
void resetnonCoarsen (void)
int safeToCoarsen (short *nonCC, int sEg, elemRef dNbr, elemRef kNbr, elemRef nbr)
int safeToCoarsen (edgeRef e)
int neighboring (elemRef e1, elemRef e2)
int neighboring (elemRef e)
void sanityCheck (chunk *c, elemRef shouldRef, int n)

Data Fields

int present
nodeRef nodes [4]
elemRef faceElements [4]
int nodes [3]
edgeRef edges [3]
chunkC
short nonCoarsenCount

Private Attributes

double targetVolume
double currentVolume
elemRef myRef
chunkC
double targetArea
double currentArea
int depend
elemRef dependent
int specialRequest
int pendingRequest
int requestResponse
elemRef specialRequester
node newNode
node otherNode
edgeRef newLongEdgeRef
chunkC

Detailed Description

Tetrahedral mesh element.

Definition at line 28 of file element.h.


Constructor & Destructor Documentation

element::element (  )  [inline]

Definition at line 36 of file element.h.

References C, currentVolume, present, and targetVolume.

element::element ( nodeRef n  )  [inline]

Definition at line 37 of file element.h.

References C, currentVolume, present, and targetVolume.

element::element (  ) 

element::element (  )  [inline]

Basic element constructor.

Definition at line 45 of file element.h.

References currentArea, nonCoarsenCount, and targetArea.

element::element ( int  cid,
int  idx,
chunk C 
) [inline]

Definition at line 46 of file element.h.

element::element ( int n  )  [inline]

Definition at line 47 of file element.h.

element::element ( int n,
edgeRef e 
) [inline]

Definition at line 48 of file element.h.

element::element ( int  n1,
int  n2,
int  n3,
edgeRef  e1,
edgeRef  e2,
edgeRef  e3 
) [inline]

Definition at line 49 of file element.h.

element::element ( int  cid,
int  idx,
chunk C,
int  n1,
int  n2,
int  n3,
edgeRef  e1,
edgeRef  e2,
edgeRef  e3 
) [inline]

Definition at line 52 of file element.h.

element::element ( const element e  )  [inline]

Copy constructor.

Definition at line 57 of file element.h.

References C, currentArea, edges, myRef, nodes, nonCoarsenCount, present, and targetArea.


Member Function Documentation

void element::set ( int  cid,
int  idx,
chunk cptr 
) [inline]

Definition at line 40 of file element.h.

References C, idx, myRef, and objRef::set().

Here is the call graph for this function:

void element::set ( nodeRef n  )  [inline]

Definition at line 41 of file element.h.

References n, and nodes.

void element::update ( nodeRef oldval,
nodeRef newval 
)

Definition at line 11 of file element.C.

References nodes.

int element::hasNode ( nodeRef  n  ) 

Definition at line 20 of file element.C.

References nodes.

Referenced by hasNodes().

Here is the caller graph for this function:

int element::hasNode ( node  n  ) 

Definition at line 25 of file element.C.

References C, objRef::idx, nodes, and chunk::theNodes.

int element::hasNodes ( nodeRef  n1,
nodeRef  n2,
nodeRef  n3 
)

Definition at line 33 of file element.C.

References hasNode().

Here is the call graph for this function:

int element::hasNodes ( double  nodeCoords[3][3]  ) 

Definition at line 38 of file element.C.

References hasNode(), and node::set().

Here is the call graph for this function:

elemRef element::getFace ( int  face[3]  )  [inline]

Definition at line 47 of file element.h.

References faceElements.

Referenced by flip23(), flip23remote(), flip32(), flip32remote(), LEsplit(), lockArc(), refineLE(), remove32element(), unlockArc1(), and unlockArc2().

Here is the caller graph for this function:

elemRef element::getFace ( int  a,
int  b,
int  c 
) [inline]

Definition at line 50 of file element.h.

References faceElements.

void element::setFace ( int  a,
int  b,
int  c,
elemRef  er 
) [inline]

Definition at line 51 of file element.h.

References faceElements.

Referenced by flip23(), flip23remote(), flip32(), and flip32remote().

Here is the caller graph for this function:

void element::setFace ( int  idx,
elemRef  er 
) [inline]

Definition at line 52 of file element.h.

References faceElements.

int element::hasFace ( elemRef  face  ) 

Definition at line 512 of file element.C.

References faceElements.

int element::checkFace ( node  n1,
node  n2,
node  n3,
elemRef  nbr 
)

Definition at line 66 of file element.C.

References PUP::a, PUP::b, c, objRef::cid, PUP::d, faceElements, getArea(), getNode(), getVolume(), objRef::idx, mesh, and myRef.

Here is the call graph for this function:

void element::updateFace ( int  cid,
int  idx 
) [inline]

Definition at line 55 of file element.h.

References objRef::cid, faceElements, and objRef::idx.

void element::updateFace ( elemRef  oldElem,
elemRef  newElem 
) [inline]

Definition at line 58 of file element.h.

References faceElements.

nodeRef& element::getNode ( int  nodeIdx  )  [inline]

Definition at line 65 of file element.h.

References nodes.

Referenced by checkFace(), lockLF(), and splitLF().

Here is the caller graph for this function:

int element::getNodeIdx ( nodeRef  n  ) 

Definition at line 54 of file element.C.

References nodes.

int element::getNode ( node  n  ) 

Definition at line 47 of file element.C.

References C, objRef::idx, nodes, and chunk::theNodes.

elemRef& element::getMyRef (  )  [inline]

Definition at line 68 of file element.h.

References myRef.

void element::clear (  )  [inline]

Definition at line 69 of file element.h.

References present.

int element::isPresent (  )  [inline]

Definition at line 70 of file element.h.

References present.

double element::getVolume ( void   ) 

Definition at line 91 of file element.C.

References calculateVolume(), and currentVolume.

Referenced by checkFace(), and lockArc().

Here is the call graph for this function:

Here is the caller graph for this function:

void element::calculateVolume (  ) 

Definition at line 98 of file element.C.

References C, currentVolume, Matrix::determinant(), objRef::idx, nodes, Matrix::setElement(), and chunk::theNodes.

Referenced by getVolume(), LEsplit(), refineCP(), refineLE(), refineLF(), and splitLF().

Here is the call graph for this function:

Here is the caller graph for this function:

double element::getArea ( int  n1,
int  n2,
int  n3 
)

Definition at line 113 of file element.C.

References C, node::distance(), objRef::idx, len, n, nodes, PUP::s, and chunk::theNodes.

Here is the call graph for this function:

void element::resetTargetVolume ( double  volume  )  [inline]

Definition at line 74 of file element.h.

References targetVolume.

void element::setTargetVolume ( double  volume  ) 

Definition at line 7 of file element.C.

References targetVolume.

double element::getTargetVolume (  )  [inline]

Definition at line 76 of file element.h.

References targetVolume.

double element::getCachedVolume (  )  [inline]

Definition at line 77 of file element.h.

References currentVolume.

double element::findLongestEdge ( int le1,
int le2,
int nl1,
int nl2 
)

Definition at line 133 of file element.C.

References C, objRef::idx, length, nodes, and chunk::theNodes.

void element::flip23 ( int  face[3]  ) 

flip23response * element::flip23remote ( flip23request fr  ) 

void element::flip32 ( int  edge[2]  ) 

flip32response * element::flip32remote ( flip32request fr  ) 

flip32response * element::remove32element ( flip32request fr  ) 

int element::test23 ( int  face[3]  ) 

Definition at line 488 of file element.C.

int element::test32 ( int  edge[2]  ) 

Definition at line 495 of file element.C.

int element::connectTest (  ) 

Definition at line 500 of file element.C.

References intMsg::anInt, objRef::cid, faceElements, idx, mesh, and myRef.

void element::refineLF (  ) 

int element::lockLF ( node  n1,
node  n2,
node  n3,
node  n4,
elemRef  requester,
double  prio 
)

Definition at line 769 of file element.C.

References PUP::a, intMsg::anInt, PUP::b, C, c, objRef::cid, CkFreeMsg(), CthYield(), PUP::d, faceElements, getNode(), chunk::lockLocalChunk(), mesh, and chunk::unlockLocalChunk().

Here is the call graph for this function:

splitResponse * element::splitLF ( node  in1,
node  in2,
node  in3,
node  in4,
elemRef  requester 
)

void element::refineLE (  ) 

LEsplitResult * element::LEsplit ( elemRef  root,
elemRef  parent,
nodeRef  newNodeRef,
node  newNode,
elemRef  newRootElem,
elemRef  newElem,
elemRef  targetElem,
double  targetVol,
node  aIn,
node  bIn 
)

lockResult * element::lockArc ( elemRef  prioRef,
elemRef  parentRef,
double  prio,
elemRef  destRef,
node  aNode,
node  bNode 
)

void element::unlockArc1 ( int  prio,
elemRef  parentRef,
elemRef  destRef,
node  aNode,
node  bNode 
)

Definition at line 1398 of file element.C.

References PUP::a, PUP::b, C, c, objRef::cid, PUP::d, getFace(), objRef::idx, mesh, myRef, nodes, chunk::theNodes, and chunk::unlockLocalChunk().

Here is the call graph for this function:

void element::unlockArc2 ( int  prio,
elemRef  parentRef,
elemRef  destRef,
node  aNode,
node  bNode 
)

Definition at line 1441 of file element.C.

References PUP::a, PUP::b, C, c, objRef::cid, PUP::d, getFace(), objRef::idx, mesh, myRef, nodes, chunk::theElements, chunk::theNodes, and chunk::unlockLocalChunk().

Here is the call graph for this function:

void element::refineCP (  ) 

void element::coarsen (  ) 

Definition at line 1630 of file element.C.

void element::improveElement (  ) 

Definition at line 1635 of file element.C.

References C, objRef::idx, improveInternalNode(), improveSurfaceNode(), nodes, and chunk::theNodes.

Here is the call graph for this function:

void element::improveInternalNode ( int  n  ) 

Definition at line 1645 of file element.C.

References C, node::distance(), node::getCoord(), objRef::idx, mesh, n1, n2, nodeVoteMsg::newCoord, nodes, nodeVoteMsg::oldCoord, r, node::set(), and chunk::theNodes.

Referenced by improveElement().

Here is the call graph for this function:

Here is the caller graph for this function:

void element::improveSurfaceNode ( int  n  ) 

Definition at line 1686 of file element.C.

References C, chunk::faceOnSurface(), objRef::idx, improveSurfaceNodeHelp(), and nodes.

Referenced by improveElement().

Here is the call graph for this function:

Here is the caller graph for this function:

void element::improveSurfaceNodeHelp ( int  n,
int  ot1,
int  ot2 
)

Definition at line 1697 of file element.C.

References C, node::distance(), node::getCoord(), objRef::idx, mesh, n1, n2, nodeVoteMsg::newCoord, nodes, nodeVoteMsg::oldCoord, r, node::set(), and chunk::theNodes.

Referenced by improveSurfaceNode().

Here is the call graph for this function:

Here is the caller graph for this function:

int element::LEtest (  ) 

Definition at line 1728 of file element.C.

References C, objRef::idx, PUP::l, nodes, and chunk::theNodes.

int element::LFtest (  ) 

Definition at line 1744 of file element.C.

References getArea().

Here is the call graph for this function:

int element::CPtest (  ) 

Definition at line 1756 of file element.C.

References C, objRef::idx, PUP::l, nodes, and chunk::theNodes.

void element::sanityCheck ( chunk C,
elemRef  ref 
)

Definition at line 1298 of file tri.C.

References edges, myRef, and objRef::sanityCheck().

Here is the call graph for this function:

void element::init ( void   ) 

Definition at line 193 of file tri.C.

References currentArea, depend, pendingRequest, requestResponse, specialRequest, targetArea, and unsetDependent().

Here is the call graph for this function:

void element::init ( int n,
edgeRef e,
int  index,
chunk chk 
)

Definition at line 213 of file tri.C.

References C, chunk::cid, currentArea, depend, edges, objRef::init(), myRef, nodes, pendingRequest, requestResponse, specialRequest, targetArea, and unsetDependent().

Here is the call graph for this function:

void element::init ( int n,
int  index,
chunk chk 
)

Definition at line 200 of file tri.C.

References C, chunk::cid, currentArea, depend, edges, objRef::init(), myRef, nodes, pendingRequest, requestResponse, specialRequest, targetArea, and unsetDependent().

Here is the call graph for this function:

void element::updateEdge ( int  idx,
edgeRef  e 
) [inline]

Definition at line 255 of file tri.h.

References edges.

void element::updateEdges ( edgeRef  e0,
edgeRef  e1,
edgeRef  e2 
)

Definition at line 826 of file tri.C.

References edges.

node element::getNode ( int  i  )  const

const edgeRef& element::getEdge ( int  i  )  const [inline]

Definition at line 260 of file tri.h.

References edges.

int element::getOpNode ( int  e  )  [inline]

Definition at line 262 of file tri.h.

int element::getOtherNode ( int  e  )  [inline]

Definition at line 264 of file tri.h.

elemRef element::getNeighbor ( int  e  )  const

Definition at line 275 of file tri.C.

References refMsg::aRef, C, objRef::cid, CkFreeMsg(), edges, idx, objRef::idx, mesh, myRef, and chunk::theEdges.

Referenced by checkNeighbor(), refineNeighbor(), and splitNeighbors().

Here is the call graph for this function:

Here is the caller graph for this function:

double element::getArea (  ) 

Definition at line 226 of file tri.C.

References calculateArea(), and currentArea.

Referenced by checkFace(), LFtest(), refine(), and refineLF().

Here is the call graph for this function:

Here is the caller graph for this function:

void element::calculateArea (  ) 

Definition at line 232 of file tri.C.

References C, currentArea, node::distance(), len, n, nodes, PUP::s, and chunk::theNodes.

Referenced by getArea(), split(), splitBorderLocal(), splitHelp(), splitNeighborsLocal(), and splitResponse().

Here is the call graph for this function:

Here is the caller graph for this function:

void element::setTargetArea ( double  area  )  [inline]

Definition at line 273 of file tri.h.

References targetArea.

double element::getTargetArea (  )  [inline]

Definition at line 277 of file tri.h.

References targetArea.

double element::getCachedArea (  )  [inline]

Definition at line 278 of file tri.h.

References currentArea.

void element::setDependency (  )  [inline]

Definition at line 281 of file tri.h.

References depend.

void element::unsetDependency (  )  [inline]

Definition at line 282 of file tri.h.

References depend.

int element::hasDependency (  )  [inline]

Definition at line 283 of file tri.h.

References depend.

void element::setDependent ( elemRef  e  )  [inline]

Definition at line 286 of file tri.h.

References dependent.

void element::setDependent ( int  cId,
int  i 
) [inline]

Definition at line 287 of file tri.h.

References objRef::cid, dependent, and objRef::idx.

void element::unsetDependent (  )  [inline]

Definition at line 288 of file tri.h.

References objRef::cid, dependent, and objRef::idx.

Referenced by init(), and tellDepend().

Here is the caller graph for this function:

int element::hasDependent (  )  [inline]

Definition at line 289 of file tri.h.

References objRef::cid, dependent, and objRef::idx.

Referenced by tellDepend().

Here is the caller graph for this function:

void element::tellDepend (  )  [inline]

Definition at line 290 of file tri.h.

References C, dependent, hasDependent(), elemRef::unsetDependency(), and unsetDependent().

Referenced by splitBorderLocal(), splitHelp(), splitNeighborsLocal(), and splitResponse().

Here is the call graph for this function:

Here is the caller graph for this function:

void element::setSpecialRequest ( elemRef  r  )  [inline]

Definition at line 313 of file tri.h.

References specialRequest, and specialRequester.

int element::isSpecialRequest (  )  [inline]

Definition at line 314 of file tri.h.

References specialRequest.

int element::isPendingRequest (  )  [inline]

Definition at line 315 of file tri.h.

References pendingRequest.

int element::isRequestResponse (  )  [inline]

Definition at line 316 of file tri.h.

References requestResponse.

void element::setRequestResponse ( node  n,
node  o,
edgeRef  e 
) [inline]

Definition at line 317 of file tri.h.

References newLongEdgeRef, newNode, otherNode, and requestResponse.

void element::refine (  ) 

void element::refineNeighbor ( int  longEdge  ) 

Definition at line 804 of file tri.C.

References C, objRef::cid, depend, elemRef::getArea(), getNeighbor(), elemRef::hasDependent(), objRef::idx, mesh, myRef, elemRef::setDependent(), and chunk::theElements.

Referenced by refine().

Here is the call graph for this function:

Here is the caller graph for this function:

void element::splitBorder ( int  longEdge  ) 

Definition at line 352 of file tri.C.

References C, edges, lock, splitBorderLocal(), and edgeRef::unlock().

Referenced by refine().

Here is the call graph for this function:

Here is the caller graph for this function:

void element::splitNeighbors ( int  longEdge  ) 

Definition at line 462 of file tri.C.

References C, objRef::cid, edges, getNeighbor(), objRef::idx, lock, mesh, myRef, nodes, pendingRequest, splitNeighborsLocal(), chunk::theElements, and edgeRef::unlock().

Referenced by refine().

Here is the call graph for this function:

Here is the caller graph for this function:

void element::splitBorderLocal ( int  longEdge,
int  opnode,
int  othernode,
int  modEdge 
)

Definition at line 387 of file tri.C.

References chunk::addEdge(), chunk::addElement(), chunk::addNode(), C, calculateArea(), edges, objRef::idx, PUP::m, myRef, nodes, nullRef, refineClient::split(), targetArea, tellDepend(), chunk::theClient, chunk::theEdges, chunk::theElements, chunk::theNodes, and edgeRef::updateElement().

Referenced by splitBorder().

Here is the call graph for this function:

Here is the caller graph for this function:

void element::splitNeighborsLocal ( int  longEdge,
int  opnode,
int  othernode,
int  modEdge,
int  nbrLongEdge,
int  nbrOpnode,
int  nbrOthernode,
int  nbrModEdge,
const elemRef nbr 
)

Definition at line 516 of file tri.C.

References chunk::addEdge(), chunk::addElement(), chunk::addNode(), C, calculateArea(), edges, objRef::idx, PUP::m, myRef, nodes, nullRef, refineClient::split(), targetArea, tellDepend(), chunk::theClient, chunk::theEdges, chunk::theElements, chunk::theNodes, and edgeRef::updateElement().

Referenced by splitNeighbors().

Here is the call graph for this function:

Here is the caller graph for this function:

void element::splitHelp ( int  longEdge  ) 

void element::splitResponse ( int  longEdge  ) 

int element::findLongestEdge (  ) 

Definition at line 254 of file tri.C.

References C, node::distance(), len, n, nodes, and chunk::theNodes.

Referenced by checkIfLongEdge(), isLongestEdge(), lockArc(), refine(), refineCP(), refineLE(), and refineLF().

Here is the call graph for this function:

Here is the caller graph for this function:

int element::checkNeighbor ( int  longEdge  ) 

Definition at line 289 of file tri.C.

References C, elemRef::checkIfLongEdge(), edges, getNeighbor(), and objRef::idx.

Referenced by refine().

Here is the call graph for this function:

Here is the caller graph for this function:

int element::checkIfLongEdge ( edgeRef  e  ) 

Definition at line 303 of file tri.C.

References edges, and findLongestEdge().

Here is the call graph for this function:

element& element::operator= ( const element e  )  [inline]

Assignment.

Definition at line 67 of file element.h.

References C, currentArea, edges, myRef, nodes, nonCoarsenCount, present, and targetArea.

void element::set (  )  [inline]

Basic set operation.

Definition at line 79 of file element.h.

References currentArea, nonCoarsenCount, present, and targetArea.

void element::set ( int  c,
int  i,
chunk ck 
) [inline]

Definition at line 84 of file element.h.

References C, c, myRef, nonCoarsenCount, present, and objRef::set().

Here is the call graph for this function:

void element::set ( int n  )  [inline]

Definition at line 87 of file element.h.

References n, nodes, nonCoarsenCount, and present.

void element::set ( int n,
edgeRef e 
) [inline]

Definition at line 92 of file element.h.

References edges, n, nodes, nonCoarsenCount, and present.

void element::set ( int  n1,
int  n2,
int  n3 
) [inline]

Definition at line 100 of file element.h.

References n1, n2, nodes, nonCoarsenCount, and present.

void element::set ( int  n1,
int  n2,
int  n3,
edgeRef  e1,
edgeRef  e2,
edgeRef  e3 
) [inline]

Definition at line 105 of file element.h.

References e1, edges, n1, n2, nodes, nonCoarsenCount, and present.

void element::set ( edgeRef e1,
edgeRef e2,
edgeRef e3 
) [inline]

Definition at line 111 of file element.h.

References e1, edges, nonCoarsenCount, and present.

void element::set ( int  idx,
edgeRef  e 
) [inline]

Definition at line 116 of file element.h.

References edges, idx, and nonCoarsenCount.

void element::update ( edgeRef oldval,
edgeRef newval 
) [inline]

Update an old edgeRef with a new one.

Definition at line 119 of file element.h.

References edges.

void element::update ( int  oldNode,
int  newNode 
) [inline]

Update an old node with a new one.

Definition at line 126 of file element.h.

References nodes.

int element::getNode ( int  nodeIdx  )  [inline]

Given index of a node on this element, return node's index in node array.

Definition at line 134 of file element.h.

References nodes.

edgeRef element::getEdge ( int  edgeIdx  )  [inline]

Given index of an edge on this element, return the edgeRef for the edge.

Definition at line 136 of file element.h.

References edges.

int element::getEdgeIdx ( edgeRef  e  )  [inline]

Given an edgeRef, find its index on this element.

Definition at line 138 of file element.h.

References edges.

Referenced by lockOpNode(), and unlockOpNode().

Here is the caller graph for this function:

int element::getNodeIdx ( int  n  )  [inline]

Given a node array index, find its index on this element.

Definition at line 145 of file element.h.

References nodes.

elemRef element::getElement ( int  edgeIdx  )  [inline]

Given an edge index on this element, get the neighboring elemRef.

Definition at line 152 of file element.h.

References edges, edgeRef::getNbr(), and myRef.

Here is the call graph for this function:

int element::lockOpNode ( edgeRef  e,
double  l 
)

Given an edgeRef, lock the node opposite to the edge.

Definition at line 8 of file element.C.

References C, getEdgeIdx(), nodes, and chunk::theNodes.

Here is the call graph for this function:

void element::unlockOpNode ( edgeRef  e  ) 

Given an edgeRef, unlock the node opposite to the edge.

Definition at line 15 of file element.C.

References C, getEdgeIdx(), nodes, and chunk::theNodes.

Here is the call graph for this function:

void element::clear (  )  [inline]

Definition at line 158 of file element.h.

References present.

int element::isPresent (  )  [inline]

Definition at line 159 of file element.h.

References present.

double element::getArea (  )  [inline]

Definition at line 164 of file element.h.

References calculateArea(), and currentArea.

Here is the call graph for this function:

void element::calculateArea (  ) 

void element::minimizeTargetArea ( double  area  )  [inline]

Definition at line 166 of file element.h.

References targetArea.

void element::resetTargetArea ( double  area  )  [inline]

Definition at line 170 of file element.h.

References targetArea.

void element::setTargetArea ( double  area  )  [inline]

Definition at line 171 of file element.h.

References targetArea.

double element::getTargetArea (  )  [inline]

Definition at line 173 of file element.h.

References targetArea.

double element::getCachedArea (  )  [inline]

Definition at line 174 of file element.h.

References currentArea.

void element::refine (  ) 

void element::split ( int  longEdge  ) 

void element::coarsen (  ) 

void element::collapse ( int  shortEdge  ) 

int element::findNewNodeDetails ( node newNode,
double *  frac,
int  kBc,
int  dBc,
int  kFx,
int  dFx,
int kNd,
int dNd,
short *  nonCC,
int kEg,
int dEg,
elemRef kNbr,
elemRef dNbr,
elemRef nbr 
)

Definition at line 537 of file element.C.

References C, objRef::cid, nodes, and chunk::theNodes.

Referenced by collapse().

Here is the caller graph for this function:

void element::translateNodeIDs ( int kIdx,
int dIdx,
int  sEg,
int  kNd,
int  dNd 
)

Definition at line 636 of file element.C.

References C, objRef::cid, edges, edge::existsOn(), IDXL_Side::getRec(), chunk::meshPtr, myRef, FEM_Mesh::node, nodes, and FEM_Node::shared.

Referenced by collapse().

Here is the call graph for this function:

Here is the caller graph for this function:

int element::findLongestEdge (  ) 

int element::findShortestEdge (  ) 

Definition at line 345 of file element.C.

References C, nodes, and chunk::theNodes.

double element::getShortestEdge ( double *  angle  ) 

Definition at line 361 of file element.C.

References C, nodes, and chunk::theNodes.

double element::getAreaQuality (  ) 

Definition at line 382 of file element.C.

References C, currentArea, nodes, and chunk::theNodes.

double element::getLargestEdge ( double *  angle  ) 

Definition at line 393 of file element.C.

References C, nodes, and chunk::theNodes.

int element::isLongestEdge ( edgeRef e  ) 

Definition at line 414 of file element.C.

References edges, and findLongestEdge().

Here is the call graph for this function:

bool element::flipTest ( node oldnode,
node newnode 
)

Definition at line 497 of file element.C.

bool element::flipInverseTest ( node oldnode,
node newnode 
)

Definition at line 501 of file element.C.

References C, objRef::cid, objRef::idx, myRef, nodes, chunk::theNodes, node::X(), and node::Y().

Here is the call graph for this function:

void element::incnonCoarsen ( void   ) 

Definition at line 492 of file element.C.

References nonCoarsenCount.

void element::resetnonCoarsen ( void   )  [inline]

Definition at line 194 of file element.h.

References nonCoarsenCount.

int element::safeToCoarsen ( short *  nonCC,
int  sEg,
elemRef  dNbr,
elemRef  kNbr,
elemRef  nbr 
)

Definition at line 652 of file element.C.

References intMsg::anInt, objRef::cid, edges, objRef::idx, mesh, myRef, and neighboring().

Referenced by collapse().

Here is the call graph for this function:

Here is the caller graph for this function:

int element::safeToCoarsen ( edgeRef  e  ) 

Definition at line 675 of file element.C.

References objRef::cid, edges, myRef, and neighboring().

Here is the call graph for this function:

int element::neighboring ( elemRef  e1,
elemRef  e2 
)

Definition at line 689 of file element.C.

References intMsg::anInt, objRef::cid, objRef::idx, and mesh.

Referenced by safeToCoarsen().

Here is the caller graph for this function:

int element::neighboring ( elemRef  e  ) 

Definition at line 696 of file element.C.

References edges, and myRef.

void element::sanityCheck ( chunk c,
elemRef  shouldRef,
int  n 
)

Definition at line 476 of file element.C.

References C, objRef::cid, edges, objRef::idx, myRef, nodes, objRef::sanityCheck(), and chunk::theEdges.

Here is the call graph for this function:


Field Documentation

double element::targetVolume [private]

double element::currentVolume [private]

Definition at line 29 of file element.h.

Referenced by calculateVolume(), element(), getCachedVolume(), getVolume(), refineCP(), and refineLF().

chunk* element::C [private]

Definition at line 33 of file element.h.

Referenced by clear(), collapse(), element(), isPresent(), operator=(), remove32element(), and set().

double element::targetArea [private]

double element::currentArea [private]

Definition at line 209 of file tri.h.

Referenced by calculateArea(), element(), getArea(), getAreaQuality(), getCachedArea(), init(), operator=(), and set().

int element::depend [private]

Definition at line 218 of file tri.h.

Referenced by hasDependency(), init(), refineNeighbor(), setDependency(), and unsetDependency().

Definition at line 221 of file tri.h.

Referenced by hasDependent(), setDependent(), tellDepend(), and unsetDependent().

Definition at line 225 of file tri.h.

Referenced by init(), isSpecialRequest(), refine(), setSpecialRequest(), splitHelp(), and splitResponse().

Definition at line 225 of file tri.h.

Referenced by init(), isPendingRequest(), refine(), splitHelp(), splitNeighbors(), and splitResponse().

Definition at line 225 of file tri.h.

Referenced by init(), isRequestResponse(), refine(), setRequestResponse(), splitHelp(), and splitResponse().

Definition at line 226 of file tri.h.

Referenced by refine(), setSpecialRequest(), and splitResponse().

Definition at line 227 of file tri.h.

Referenced by collapse(), refineCP(), refineLE(), refineLF(), setRequestResponse(), and splitHelp().

Definition at line 227 of file tri.h.

Referenced by setRequestResponse(), and splitHelp().

Definition at line 228 of file tri.h.

Referenced by setRequestResponse(), and splitHelp().

chunk* element::C [private]

Definition at line 232 of file tri.h.

Definition at line 243 of file tri.h.

Definition at line 40 of file element.h.

Definition at line 42 of file element.h.

Referenced by collapse(), element(), incnonCoarsen(), operator=(), resetnonCoarsen(), and set().


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

Generated on Mon Sep 21 08:22:56 2020 for Charm++ by  doxygen 1.5.5