|
OOFEM
2.1
|
#include <subdivision.h>
Inheritance diagram for oofem::Subdivision::RS_Element:
Collaboration diagram for oofem::Subdivision::RS_Element:Public Member Functions | |
| RS_Element (int number, Subdivision::RS_Mesh *m, int parent, IntArray &nodes) | |
| virtual | ~RS_Element () |
| bool | hasIrregulars () |
| Returns true if element has some irregular nodes. | |
| bool | isTerminal () |
| Returns true if receiver is terminal (not further subdivided) | |
| int | giveIrregular (int iedge) |
| void | setIrregular (int iedge, int ir) |
| virtual int | evaluateLongestEdge () |
| virtual void | bisect (std::queue< int > &subdivqueue, std::list< int > &sharedIrregularsQueue) |
| virtual void | generate (std::list< int > &sharedEdgesQueue) |
| virtual void | update_neighbours () |
| virtual double | giveDensity () |
| virtual double | giveRequiredDensity () |
| const IntArray * | giveChildren () |
| virtual bool | isNeighborOf (Subdivision::RS_Element *elem)=0 |
| const IntArray * | giveNeighbors () |
| int | giveNeighbor (int iside) |
| void | setNeighbor (int iside, int nb) |
| bool | containsNode (int _node) |
| virtual void | giveSideNodes (int iside, IntArray &snodes)=0 |
| int | giveParent () |
| int | giveTopParent () |
| bool | giveQueueFlag () |
| void | setQueueFlag (bool _qf) |
| void | buildTopLevelNodeConnectivity (Subdivision::RS_Node *node) |
| virtual void | importConnectivity (ConnectivityTable *ct)=0 |
| const IntArray * | giveNodes () |
| int | giveNode (int i) |
| int | giveNumber () |
| void | setNumber (int newNum) |
| virtual int | giveEdgeIndex (int iNode, int jNode)=0 |
| int | giveLeIndex () |
| Returns the longest edge index of the receiver. | |
| void | setLeIndex (int _n) |
| Sets the longest edge index. | |
| virtual void | drawGeometry () |
| virtual void | numberSharedEdges (int iNode, IntArray &connNodes)=0 |
| const IntArray * | giveSharedEdges () |
| virtual void | makeSharedEdges ()=0 |
| int | giveSharedEdge (int iedge) |
| void | setSharedEdge (int iedge, int num) |
| elementParallelMode | giveParallelMode () const |
| void | setParallelMode (elementParallelMode _mode) |
| int | giveGlobalNumber () |
| void | setGlobalNumber (int gn) |
Protected Attributes | |
| int | number |
| IntArray | nodes |
| IntArray | neghbours_base_elements |
| IntArray | irregular_nodes |
| IntArray | children |
| int | parent |
| int | leIndex |
| RS_Mesh * | mesh |
| bool | queue_flag |
| int | globalNumber |
| elementParallelMode | parallel_mode |
| IntArray | shared_edges |
Definition at line 157 of file subdivision.h.
| oofem::Subdivision::RS_Element::RS_Element | ( | int | number, |
| Subdivision::RS_Mesh * | m, | ||
| int | parent, | ||
| IntArray & | nodes | ||
| ) | [inline] |
Definition at line 184 of file subdivision.h.
References oofem::Element_local, globalNumber, leIndex, mesh, nodes, number, parallel_mode, parent, and queue_flag.
| virtual oofem::Subdivision::RS_Element::~RS_Element | ( | ) | [inline, virtual] |
Definition at line 196 of file subdivision.h.
| virtual void oofem::Subdivision::RS_Element::bisect | ( | std::queue< int > & | subdivqueue, |
| std::list< int > & | sharedIrregularsQueue | ||
| ) | [inline, virtual] |
Reimplemented in oofem::Subdivision::RS_Tetra, and oofem::Subdivision::RS_Triangle.
Definition at line 207 of file subdivision.h.
Referenced by oofem::Subdivision::bisectMesh().
Definition at line 132 of file subdivision.C.
References buildTopLevelNodeConnectivity(), oofem::Subdivision::RS_Mesh::giveElement(), giveNode(), giveNodes(), oofem::Subdivision::RS_Node::giveNumber(), oofem::IntArray::giveSize(), oofem::Subdivision::RS_Node::insertConnectedElement(), and oofem::Subdivision::mesh.
Referenced by oofem::Subdivision::RS_Node::buildTopLevelNodeConnectivity(), and buildTopLevelNodeConnectivity().
| bool oofem::Subdivision::RS_Element::containsNode | ( | int | _node | ) | [inline] |
Definition at line 217 of file subdivision.h.
References oofem::IntArray::findFirstIndexOf(), and nodes.
Referenced by oofem::Subdivision::RS_Triangle::importConnectivity(), oofem::Subdivision::RS_Tetra::importConnectivity(), oofem::Subdivision::RS_Triangle::isNeighborOf(), and oofem::Subdivision::RS_Tetra::isNeighborOf().
| virtual void oofem::Subdivision::RS_Element::drawGeometry | ( | ) | [inline, virtual] |
Reimplemented in oofem::Subdivision::RS_Tetra, and oofem::Subdivision::RS_Triangle.
Definition at line 236 of file subdivision.h.
Referenced by oofem::Subdivision::bisectMesh(), and oofem::Subdivision::createMesh().
| virtual int oofem::Subdivision::RS_Element::evaluateLongestEdge | ( | ) | [inline, virtual] |
Reimplemented in oofem::Subdivision::RS_Tetra, and oofem::Subdivision::RS_Triangle.
Definition at line 206 of file subdivision.h.
Referenced by oofem::Subdivision::bisectMesh().
| virtual void oofem::Subdivision::RS_Element::generate | ( | std::list< int > & | sharedEdgesQueue | ) | [inline, virtual] |
Reimplemented in oofem::Subdivision::RS_Tetra, and oofem::Subdivision::RS_Triangle.
Definition at line 208 of file subdivision.h.
Referenced by oofem::Subdivision::bisectMesh().
| const IntArray* oofem::Subdivision::RS_Element::giveChildren | ( | ) | [inline] |
Definition at line 212 of file subdivision.h.
References children.
Referenced by oofem::Subdivision::RS_Triangle::update_neighbours(), and oofem::Subdivision::RS_Tetra::update_neighbours().
| virtual double oofem::Subdivision::RS_Element::giveDensity | ( | ) | [inline, virtual] |
Reimplemented in oofem::Subdivision::RS_Tetra, and oofem::Subdivision::RS_Triangle.
Definition at line 210 of file subdivision.h.
Referenced by oofem::Subdivision::bisectMesh().
| virtual int oofem::Subdivision::RS_Element::giveEdgeIndex | ( | int | iNode, |
| int | jNode | ||
| ) | [pure virtual] |
Implemented in oofem::Subdivision::RS_Tetra, and oofem::Subdivision::RS_Triangle.
Referenced by oofem::Subdivision::RS_Triangle::bisect(), oofem::Subdivision::RS_Tetra::bisect(), oofem::Subdivision::exchangeSharedEdges(), oofem::Subdivision::RS_Tetra::numberSharedEdges(), oofem::Subdivision::unpackIrregularSharedGlobnums(), oofem::Subdivision::unpackSharedEdges(), and oofem::Subdivision::unpackSharedIrregulars().
| int oofem::Subdivision::RS_Element::giveGlobalNumber | ( | ) | [inline] |
Definition at line 248 of file subdivision.h.
References globalNumber.
Referenced by oofem::Subdivision::createMesh().
| int oofem::Subdivision::RS_Element::giveIrregular | ( | int | iedge | ) | [inline] |
Definition at line 203 of file subdivision.h.
References oofem::IntArray::at(), and irregular_nodes.
Referenced by oofem::Subdivision::RS_Tetra::bisect(), oofem::Subdivision::RS_Tetra::generate(), oofem::Subdivision::unpackIrregularSharedGlobnums(), and oofem::Subdivision::unpackSharedIrregulars().
| int oofem::Subdivision::RS_Element::giveLeIndex | ( | ) | [inline] |
Returns the longest edge index of the receiver.
Definition at line 231 of file subdivision.h.
References leIndex.
| int oofem::Subdivision::RS_Element::giveNeighbor | ( | int | iside | ) | [inline] |
Definition at line 215 of file subdivision.h.
References oofem::IntArray::at(), and neghbours_base_elements.
Referenced by oofem::Subdivision::RS_Tetra::bisect(), oofem::Subdivision::RS_Tetra::generate(), oofem::Subdivision::smoothMesh(), and oofem::Subdivision::unpackSharedIrregulars().
| const IntArray* oofem::Subdivision::RS_Element::giveNeighbors | ( | ) | [inline] |
Definition at line 214 of file subdivision.h.
References neghbours_base_elements.
Referenced by oofem::Subdivision::RS_Triangle::generate(), oofem::Subdivision::RS_Tetra::generate(), oofem::Subdivision::smoothMesh(), and oofem::Subdivision::RS_Tetra::update_neighbours().
| int oofem::Subdivision::RS_Element::giveNode | ( | int | i | ) | [inline] |
Definition at line 226 of file subdivision.h.
References oofem::IntArray::at(), and nodes.
Referenced by oofem::Subdivision::RS_Tetra::bisect(), buildTopLevelNodeConnectivity(), oofem::Subdivision::smoothMesh(), and oofem::Subdivision::unpackSharedIrregulars().
| const IntArray* oofem::Subdivision::RS_Element::giveNodes | ( | ) | [inline] |
Definition at line 225 of file subdivision.h.
References nodes.
Referenced by buildTopLevelNodeConnectivity(), oofem::Subdivision::createMesh(), oofem::Subdivision::smoothMesh(), and oofem::Subdivision::RS_Tetra::update_neighbours().
| int oofem::Subdivision::RS_Element::giveNumber | ( | ) | [inline] |
Definition at line 227 of file subdivision.h.
References number.
Referenced by oofem::Subdivision::RS_Tetra::bisect(), oofem::Subdivision::bisectMesh(), oofem::Subdivision::exchangeSharedEdges(), giveTopParent(), oofem::Subdivision::unpackIrregularSharedGlobnums(), oofem::Subdivision::unpackSharedEdges(), oofem::Subdivision::unpackSharedIrregulars(), and oofem::Subdivision::RS_Tetra::update_neighbours().
| elementParallelMode oofem::Subdivision::RS_Element::giveParallelMode | ( | ) | const [inline] |
Definition at line 245 of file subdivision.h.
References parallel_mode.
Referenced by oofem::Subdivision::bisectMesh(), oofem::Subdivision::RS_Node::buildTopLevelNodeConnectivity(), oofem::Subdivision::createMesh(), oofem::Subdivision::RS_Node::importConnectivity(), oofem::Subdivision::RS_Triangle::importConnectivity(), oofem::Subdivision::RS_Tetra::importConnectivity(), and oofem::Subdivision::smoothMesh().
| int oofem::Subdivision::RS_Element::giveParent | ( | ) | [inline] |
| bool oofem::Subdivision::RS_Element::giveQueueFlag | ( | ) | [inline] |
Definition at line 221 of file subdivision.h.
References queue_flag.
Referenced by oofem::Subdivision::RS_Triangle::bisect(), oofem::Subdivision::RS_Tetra::bisect(), oofem::Subdivision::bisectMesh(), and oofem::Subdivision::unpackSharedIrregulars().
| double oofem::Subdivision::RS_Element::giveRequiredDensity | ( | ) | [virtual] |
Definition at line 370 of file subdivision.C.
References oofem::Subdivision::RS_Mesh::giveNode(), and oofem::Subdivision::mesh.
Referenced by oofem::Subdivision::bisectMesh().
| int oofem::Subdivision::RS_Element::giveSharedEdge | ( | int | iedge | ) | [inline] |
Definition at line 243 of file subdivision.h.
References oofem::IntArray::at(), and shared_edges.
Referenced by oofem::Subdivision::unpackIrregularSharedGlobnums(), oofem::Subdivision::unpackSharedEdges(), and oofem::Subdivision::unpackSharedIrregulars().
| const IntArray* oofem::Subdivision::RS_Element::giveSharedEdges | ( | ) | [inline] |
Definition at line 241 of file subdivision.h.
References shared_edges.
Referenced by oofem::Subdivision::RS_Tetra::bisect(), oofem::Subdivision::exchangeSharedEdges(), oofem::Subdivision::RS_Tetra::numberSharedEdges(), oofem::Subdivision::unpackIrregularSharedGlobnums(), oofem::Subdivision::unpackSharedEdges(), and oofem::Subdivision::unpackSharedIrregulars().
| virtual void oofem::Subdivision::RS_Element::giveSideNodes | ( | int | iside, |
| IntArray & | snodes | ||
| ) | [pure virtual] |
Implemented in oofem::Subdivision::RS_Tetra, and oofem::Subdivision::RS_Triangle.
Referenced by oofem::Subdivision::smoothMesh(), and oofem::Subdivision::RS_Tetra::update_neighbours().
Definition at line 384 of file subdivision.C.
References oofem::Subdivision::RS_Mesh::giveElement(), giveNumber(), giveParent(), and oofem::Subdivision::mesh.
Referenced by oofem::Subdivision::RS_Tetra::bisect(), oofem::Subdivision::createMesh(), oofem::Subdivision::smoothMesh(), and oofem::Subdivision::unpackSharedIrregulars().
| bool oofem::Subdivision::RS_Element::hasIrregulars | ( | ) | [inline] |
Returns true if element has some irregular nodes.
Definition at line 199 of file subdivision.h.
References oofem::IntArray::containsOnlyZeroes(), and irregular_nodes.
Referenced by oofem::Subdivision::RS_Triangle::generate(), oofem::Subdivision::RS_Tetra::generate(), oofem::Subdivision::RS_Triangle::update_neighbours(), and oofem::Subdivision::RS_Tetra::update_neighbours().
| virtual void oofem::Subdivision::RS_Element::importConnectivity | ( | ConnectivityTable * | ct | ) | [pure virtual] |
Implemented in oofem::Subdivision::RS_Tetra, and oofem::Subdivision::RS_Triangle.
Referenced by oofem::Subdivision::createMesh().
| virtual bool oofem::Subdivision::RS_Element::isNeighborOf | ( | Subdivision::RS_Element * | elem | ) | [pure virtual] |
Implemented in oofem::Subdivision::RS_Tetra, and oofem::Subdivision::RS_Triangle.
| bool oofem::Subdivision::RS_Element::isTerminal | ( | ) | [inline] |
Returns true if receiver is terminal (not further subdivided)
Definition at line 201 of file subdivision.h.
References children, and oofem::IntArray::isEmpty().
Referenced by oofem::Subdivision::bisectMesh(), oofem::Subdivision::createMesh(), oofem::Subdivision::smoothMesh(), and oofem::Subdivision::RS_Tetra::update_neighbours().
| virtual void oofem::Subdivision::RS_Element::makeSharedEdges | ( | ) | [pure virtual] |
Implemented in oofem::Subdivision::RS_Tetra, and oofem::Subdivision::RS_Triangle.
Referenced by oofem::Subdivision::RS_Tetra::numberSharedEdges().
| virtual void oofem::Subdivision::RS_Element::numberSharedEdges | ( | int | iNode, |
| IntArray & | connNodes | ||
| ) | [pure virtual] |
Implemented in oofem::Subdivision::RS_Tetra, and oofem::Subdivision::RS_Triangle.
| void oofem::Subdivision::RS_Element::setGlobalNumber | ( | int | gn | ) | [inline] |
Definition at line 249 of file subdivision.h.
References globalNumber.
Referenced by oofem::Subdivision::createMesh().
| void oofem::Subdivision::RS_Element::setIrregular | ( | int | iedge, |
| int | ir | ||
| ) | [inline] |
Definition at line 204 of file subdivision.h.
References oofem::IntArray::at(), and irregular_nodes.
Referenced by oofem::Subdivision::RS_Triangle::bisect(), oofem::Subdivision::RS_Tetra::bisect(), oofem::Subdivision::RS_Tetra::generate(), and oofem::Subdivision::unpackSharedIrregulars().
| void oofem::Subdivision::RS_Element::setLeIndex | ( | int | _n | ) | [inline] |
| void oofem::Subdivision::RS_Element::setNeighbor | ( | int | iside, |
| int | nb | ||
| ) | [inline] |
Definition at line 216 of file subdivision.h.
References oofem::IntArray::at(), and neghbours_base_elements.
Referenced by oofem::Subdivision::RS_Triangle::generate(), and oofem::Subdivision::RS_Tetra::generate().
| void oofem::Subdivision::RS_Element::setNumber | ( | int | newNum | ) | [inline] |
Definition at line 228 of file subdivision.h.
References number.
| void oofem::Subdivision::RS_Element::setParallelMode | ( | elementParallelMode | _mode | ) | [inline] |
Definition at line 247 of file subdivision.h.
References parallel_mode.
Referenced by oofem::Subdivision::createMesh().
| void oofem::Subdivision::RS_Element::setQueueFlag | ( | bool | _qf | ) | [inline] |
Definition at line 222 of file subdivision.h.
References queue_flag.
Referenced by oofem::Subdivision::RS_Triangle::bisect(), oofem::Subdivision::RS_Tetra::bisect(), oofem::Subdivision::bisectMesh(), and oofem::Subdivision::unpackSharedIrregulars().
| void oofem::Subdivision::RS_Element::setSharedEdge | ( | int | iedge, |
| int | num | ||
| ) | [inline] |
Definition at line 244 of file subdivision.h.
References oofem::IntArray::at(), and shared_edges.
Referenced by oofem::Subdivision::exchangeSharedEdges(), oofem::Subdivision::RS_Triangle::generate(), oofem::Subdivision::RS_Tetra::generate(), and oofem::Subdivision::RS_Tetra::numberSharedEdges().
| virtual void oofem::Subdivision::RS_Element::update_neighbours | ( | ) | [inline, virtual] |
Reimplemented in oofem::Subdivision::RS_Tetra, and oofem::Subdivision::RS_Triangle.
Definition at line 209 of file subdivision.h.
Referenced by oofem::Subdivision::bisectMesh().
IntArray oofem::Subdivision::RS_Element::children [protected] |
Definition at line 168 of file subdivision.h.
Referenced by giveChildren(), and isTerminal().
int oofem::Subdivision::RS_Element::globalNumber [protected] |
Definition at line 178 of file subdivision.h.
Referenced by giveGlobalNumber(), RS_Element(), and setGlobalNumber().
Definition at line 166 of file subdivision.h.
Referenced by giveIrregular(), hasIrregulars(), oofem::Subdivision::RS_Tetra::RS_Tetra(), oofem::Subdivision::RS_Triangle::RS_Triangle(), and setIrregular().
int oofem::Subdivision::RS_Element::leIndex [protected] |
Definition at line 172 of file subdivision.h.
Referenced by giveLeIndex(), RS_Element(), and setLeIndex().
RS_Mesh* oofem::Subdivision::RS_Element::mesh [protected] |
Definition at line 174 of file subdivision.h.
Referenced by RS_Element().
Definition at line 164 of file subdivision.h.
Referenced by giveNeighbor(), giveNeighbors(), oofem::Subdivision::RS_Tetra::RS_Tetra(), oofem::Subdivision::RS_Triangle::RS_Triangle(), and setNeighbor().
IntArray oofem::Subdivision::RS_Element::nodes [protected] |
Definition at line 162 of file subdivision.h.
Referenced by containsNode(), giveNode(), giveNodes(), and RS_Element().
int oofem::Subdivision::RS_Element::number [protected] |
Definition at line 160 of file subdivision.h.
Referenced by giveNumber(), RS_Element(), and setNumber().
Definition at line 179 of file subdivision.h.
Referenced by giveParallelMode(), RS_Element(), and setParallelMode().
int oofem::Subdivision::RS_Element::parent [protected] |
Definition at line 170 of file subdivision.h.
Referenced by giveParent(), and RS_Element().
bool oofem::Subdivision::RS_Element::queue_flag [protected] |
Definition at line 176 of file subdivision.h.
Referenced by giveQueueFlag(), RS_Element(), and setQueueFlag().
IntArray oofem::Subdivision::RS_Element::shared_edges [protected] |
Definition at line 181 of file subdivision.h.
Referenced by giveSharedEdge(), giveSharedEdges(), oofem::Subdivision::RS_Triangle::makeSharedEdges(), oofem::Subdivision::RS_Tetra::makeSharedEdges(), and setSharedEdge().