Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
QCoElement Class Reference

#include <QCoElement.hpp>

Inheritance diagram for QCoElement:
Collaboration diagram for QCoElement:

Public Member Functions

 QCoElement ()
 
 QCoElement (Node **thenodes)
 
 ~QCoElement ()
 
virtual int getNumNodes () const
 
virtual int getNumFaces () const
 
virtual void replaceFaceNode (Node *node, Node *new_node, Face *face)
 
- Public Member Functions inherited from Element
 Element (Type type)
 
 ~Element ()
 
int getID () const
 
void setID (int theID)
 
Node ** getNodes ()
 
Face ** getFaces ()
 
Type getElementType () const
 
boolean isCohesive () const
 
int getMaterialType () const
 
void setMaterialType (int mtype)
 
virtual void setFromNodes (Node **thenodes)
 
void replaceNode (Node *node, Node *new_node)
 
void replaceFace (Face *face, Face *new_face)
 
virtual double getMinEdgeLength ()
 

Protected Member Functions

virtual void setFaceFromNodes (int num, Node **nodes)
 
virtual void setFromMyNodes ()
 
- Protected Member Functions inherited from Element
void setFace (int num, Face *face)
 

Additional Inherited Members

- Public Types inherited from Element
enum  Type {
  e_tet, e_hex, e_tri_cohesive, e_quad_cohesive,
  e_MAX_TYPE
}
 
enum  fType { e_tri, e_quad, e_MAX_FACE_TYPE }
 
enum  MaterialType { e_unset_material = -1 }
 
- Static Public Member Functions inherited from Element
static Elementcreate (int id, Type type)
 
static void setMesh (Mesh *emesh)
 
- Protected Attributes inherited from Element
Type d_eType
 
int d_ID
 
Node ** d_nodes
 
Face ** d_faces
 
int d_materialType
 
- Static Protected Attributes inherited from Element
static Meshs_mesh = 0
 

Detailed Description

Definition at line 8 of file QCoElement.hpp.

Constructor & Destructor Documentation

Definition at line 7 of file QCoElement.cpp.

References Element::d_faces, Element::d_nodes, getNumFaces(), and getNumNodes().

7  :
9 
10  d_nodes = new Node*[getNumNodes()];
11  d_faces = new Face*[getNumFaces()];
12 
13 }
Face ** d_faces
Definition: Element.hpp:87
This class encapsulate a node over a window manifold.
Definition: Manifold_2.h:370
Node ** d_nodes
Definition: Element.hpp:86
Element(Type type)
Definition: Element.cpp:17
virtual int getNumNodes() const
Definition: QCoElement.cpp:37
virtual int getNumFaces() const
Definition: QCoElement.cpp:40
The Face class is an abstract base class that supplies implemented general methods, as well as a vew virtual interface methods to child classes.
Definition: Face.hpp:19

Here is the call graph for this function:

QCoElement ( Node **  thenodes)

Definition at line 16 of file QCoElement.cpp.

References Element::d_faces, Element::d_nodes, getNumFaces(), getNumNodes(), and Element::setFromNodes().

16  :
18 
19  d_nodes = new Node*[getNumNodes()];
20  d_faces = new Face*[getNumFaces()];
21  setFromNodes( thenodes );
22 }
Face ** d_faces
Definition: Element.hpp:87
This class encapsulate a node over a window manifold.
Definition: Manifold_2.h:370
Node ** d_nodes
Definition: Element.hpp:86
virtual void setFromNodes(Node **thenodes)
Definition: Element.cpp:59
Element(Type type)
Definition: Element.cpp:17
virtual int getNumNodes() const
Definition: QCoElement.cpp:37
virtual int getNumFaces() const
Definition: QCoElement.cpp:40
The Face class is an abstract base class that supplies implemented general methods, as well as a vew virtual interface methods to child classes.
Definition: Face.hpp:19

Here is the call graph for this function:

~QCoElement ( )

Definition at line 24 of file QCoElement.cpp.

References Element::d_faces, Element::d_nodes, getNumFaces(), getNumNodes(), i, Node::removeElement(), and Face::removeElement().

24  {
25 
26  int numn = getNumNodes();
27  int i;
28  for( i = 0; i < numn; i++ ){
29  d_nodes[i]->removeElement( this );
30  }
31  int numf = getNumFaces();
32  for( i = 0; i < numf; i++ ){
33  d_faces[i]->removeElement( this );
34  }
35 }
Face ** d_faces
Definition: Element.hpp:87
Node ** d_nodes
Definition: Element.hpp:86
blockLoc i
Definition: read.cpp:79
void removeElement(Element *theElement)
Definition: Face.cpp:81
virtual int getNumNodes() const
Definition: QCoElement.cpp:37
virtual int getNumFaces() const
Definition: QCoElement.cpp:40
void removeElement(Element *elem)
Definition: Node.cpp:102

Here is the call graph for this function:

Member Function Documentation

int getNumFaces ( ) const
virtual

Implements Element.

Definition at line 40 of file QCoElement.cpp.

Referenced by QCoElement(), and ~QCoElement().

41 { return 2; }

Here is the caller graph for this function:

int getNumNodes ( ) const
virtual

Implements Element.

Definition at line 37 of file QCoElement.cpp.

Referenced by QCoElement(), and ~QCoElement().

38 { return 8; }

Here is the caller graph for this function:

void replaceFaceNode ( Node node,
Node new_node,
Face face 
)
virtual

Reimplemented from Element.

Definition at line 44 of file QCoElement.cpp.

References Node::addElement(), Element::d_faces, Element::d_nodes, i, Node::removeElement(), and Face::replaceNode().

44  {
45 
46  int start = ( face == d_faces[0] ? 0 : 4 );
47  int i;
48  for( i = start; i < start+4; i++ ){
49  if( d_nodes[i] == node ){
50  d_nodes[i] = new_node;
51  node->removeElement( this );
52  new_node->addElement( this );
53  }
54  }
55  face->replaceNode( node, new_node );
56 }
Face ** d_faces
Definition: Element.hpp:87
void replaceNode(Node *node, Node *new_node)
Definition: Face.cpp:93
Node ** d_nodes
Definition: Element.hpp:86
blockLoc i
Definition: read.cpp:79
void addElement(Element *elem)
Definition: Node.cpp:86
void removeElement(Element *elem)
Definition: Node.cpp:102

Here is the call graph for this function:

void setFaceFromNodes ( int  num,
Node **  nodes 
)
protectedvirtual

Implements Element.

Definition at line 58 of file QCoElement.cpp.

References Mesh::addFace(), Element::d_nodes, Element::s_mesh, Element::setFace(), and Node::sharedFace().

Referenced by setFromMyNodes().

58  {
59 
60  // find if face exist (if not creates it)
61  Face* face = nodes[0]->sharedFace( nodes[1], d_nodes[2], nodes[3] );
62  if( !face ){
63  face = new QuadFace( nodes );
64  s_mesh->addFace( face );
65  }
66  setFace( num, face );
67 }
void addFace(Face *face)
Definition: Mesh.cpp:96
Face * sharedFace(Node *n2, Node *n3, Node *n4=0)
Definition: Node.cpp:118
Definition: face.h:90
Node ** d_nodes
Definition: Element.hpp:86
static Mesh * s_mesh
Definition: Element.hpp:91
void setFace(int num, Face *face)
Definition: Element.hpp:127
The Face class is an abstract base class that supplies implemented general methods, as well as a vew virtual interface methods to child classes.
Definition: Face.hpp:19

Here is the call graph for this function:

Here is the caller graph for this function:

void setFromMyNodes ( )
protectedvirtual

Implements Element.

Definition at line 70 of file QCoElement.cpp.

References Node::addNextLink(), Element::d_nodes, i, and setFaceFromNodes().

70  {
71 
72  // !!! check ordering
73 
74  Node *nodes[4];
75  nodes[0] = d_nodes[0];
76  nodes[1] = d_nodes[1];
77  nodes[2] = d_nodes[2];
78  nodes[3] = d_nodes[3];
79  setFaceFromNodes( 0, nodes );
80 
81  nodes[0] = d_nodes[7];
82  nodes[1] = d_nodes[6];
83  nodes[2] = d_nodes[5];
84  nodes[3] = d_nodes[4];
85  setFaceFromNodes( 1, nodes );
86 
87  // here separate node loops
88  int i;
89  for( i = 0; i < 4; i++ ){
90  if( d_nodes[i] != d_nodes[ 4 + i] ){
91  d_nodes[i]->addNextLink( d_nodes[ 4 + i ] );
92  }
93  }
94 
95 }
This class encapsulate a node over a window manifold.
Definition: Manifold_2.h:370
void addNextLink(Node *link)
Definition: Node.cpp:139
Node ** d_nodes
Definition: Element.hpp:86
blockLoc i
Definition: read.cpp:79
virtual void setFaceFromNodes(int num, Node **nodes)
Definition: QCoElement.cpp:58

Here is the call graph for this function:


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