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

#include <QuadFace.hpp>

Inheritance diagram for QuadFace:
Collaboration diagram for QuadFace:

Public Member Functions

 QuadFace (Node **theNodes)
 Builds the QuadFace object from an array of four nodes. More...
 
 QuadFace ()
 
 ~QuadFace ()
 Destructor. More...
 
virtual int getNumNodes () const
 Returns the number of nodes for this type of face (four for the quad face) More...
 
virtual ElementbuildCohesive (Element *side_elem, Node *node, Node *new_node)
 
- Public Member Functions inherited from Face
 Face (Type type)
 Constructor: set type & reset params. More...
 
 Face ()
 
 ~Face ()
 Destructor. More...
 
void setID (int theID)
 Sets the serial ID for the face. More...
 
int getID () const
 Returns the serial ID of the face. More...
 
void setFlag (int theFlag)
 Sets the flag for the face. More...
 
int getFlag () const
 Gets the flag for the face. More...
 
Node ** getNodes ()
 Returns the array of nodes. More...
 
void setElement1 (Element *elem1)
 Sets the pointer to the first element that this face is associated with. More...
 
ElementgetElement1 ()
 Get the pointer to the first element that this face is associated with. More...
 
void setElement2 (Element *elem2)
 Sets the pointer to the second element that this face is associated with. More...
 
ElementgetElement2 ()
 Get the pointer to the second element that this face is associated with. More...
 
void addElement (Element *theElement)
 
void removeElement (Element *theElement)
 
Type getFaceType () const
 Returns the face type of this face (see the Type attribute of the Face class). More...
 
boolean isExterior () const
 
void replaceNode (Node *node, Node *new_node)
 
boolean containsNode (Node *node) const
 

Additional Inherited Members

- Public Types inherited from Face
enum  Type { e_tri, e_quad, e_MAX_TYPE }
 
enum  eType {
  e_tet, e_hex, e_tri_cohesive, e_quad_cohesive,
  e_MAX_ELEMENT_TYPE
}
 
- Static Public Member Functions inherited from Face
static Facecreate (eType type)
 
static void setMesh (Mesh *emesh)
 
- Protected Attributes inherited from Face
int d_ID
 Serial ID assigned to this face. More...
 
int d_flag
 User-defined integer flag assigned to this face. More...
 
Elementd_E1
 Pointer to the first element that this face is associated with. More...
 
Elementd_E2
 The second element that this face is associated with. More...
 
Node ** d_nodes
 Array of nodes assigned to this face. More...
 
Type d_eType
 The Type of face (triangular or square for now). More...
 
- Static Protected Attributes inherited from Face
static Meshs_mesh = 0
 

Detailed Description

Definition at line 9 of file QuadFace.hpp.

Constructor & Destructor Documentation

QuadFace ( Node **  theNodes)

Builds the QuadFace object from an array of four nodes.

The element(s) must be set later with the setElement methods.

Definition at line 6 of file QuadFace.cpp.

References Node::addFace(), Face::d_nodes, and i.

6  :
7  Face( e_quad )
8 {
9  d_nodes = new Node*[4];
10  int i;
11  for( i = 0; i < 4; i++ ){
12  d_nodes[i] = theNodes[i];
13  d_nodes[i]->addFace( this );
14  }
15 }
This class encapsulate a node over a window manifold.
Definition: Manifold_2.h:370
void addFace(Face *face)
Definition: Node.cpp:55
blockLoc i
Definition: read.cpp:79
Face()
Definition: Face.cpp:19
Node ** d_nodes
Array of nodes assigned to this face.
Definition: Face.hpp:161

Here is the call graph for this function:

QuadFace ( )

Definition at line 17 of file QuadFace.cpp.

References Face::d_nodes, and i.

18 {
19  d_nodes = new Node*[4];
20  int i;
21  for( i = 0; i < 4; i++ ){
22  d_nodes[i] = 0;
23  }
24 }
This class encapsulate a node over a window manifold.
Definition: Manifold_2.h:370
blockLoc i
Definition: read.cpp:79
Node ** d_nodes
Array of nodes assigned to this face.
Definition: Face.hpp:161
~QuadFace ( )

Destructor.

Definition at line 27 of file QuadFace.cpp.

References Face::d_nodes, i, and Node::removeFace().

27  {
28 
29  int i;
30  for( i = 0; i < 4; i++ ){
31  d_nodes[i]->removeFace( this );
32  }
33 }
blockLoc i
Definition: read.cpp:79
Node ** d_nodes
Array of nodes assigned to this face.
Definition: Face.hpp:161
void removeFace(Face *face)
Definition: Node.cpp:70

Here is the call graph for this function:

Member Function Documentation

Element * buildCohesive ( Element side_elem,
Node node,
Node new_node 
)
virtual

Implements Face.

Definition at line 39 of file QuadFace.cpp.

References Face::d_E1, Face::d_E2, Face::d_nodes, Element::getFaces(), and i.

40  {
41 
42  int ind;
43  int i;
44  for( i = 0; i < 4; i++ ){
45  if( d_nodes[i] == node ){
46  ind = i;
47  break;
48  }
49  }
50  Element* coelem;
51 
52  Node* new_nodes[8];
53  if( d_E1 == side_elem ){ // normal to side
54  new_nodes[0] = d_nodes[0];
55  new_nodes[1] = d_nodes[1];
56  new_nodes[2] = d_nodes[2];
57  new_nodes[3] = d_nodes[3];
58  new_nodes[4] = (ind == 0 ? new_node : d_nodes[0] );
59  new_nodes[5] = (ind == 1 ? new_node : d_nodes[1] );
60  new_nodes[6] = (ind == 2 ? new_node : d_nodes[2] );
61  new_nodes[7] = (ind == 3 ? new_node : d_nodes[3] );
62  d_E1 = d_E2;
63  d_E2 = 0;
64  coelem = new QCoElement( new_nodes );
65  // now for this face set E1 to the coelem
66  d_E2 = d_E1;
67  d_E1 = coelem;
68  Face* oface = coelem->getFaces()[1];
69  ((QuadFace*)oface)->d_E2 = side_elem;
70  }
71  else { // normal to the other side
72  d_E2 = 0;
73  new_nodes[0] = (ind == 0 ? new_node : d_nodes[0] );
74  new_nodes[1] = (ind == 1 ? new_node : d_nodes[1] );
75  new_nodes[2] = (ind == 2 ? new_node : d_nodes[2] );
76  new_nodes[3] = (ind == 3 ? new_node : d_nodes[3] );
77  new_nodes[4] = d_nodes[0];
78  new_nodes[5] = d_nodes[1];
79  new_nodes[6] = d_nodes[2];
80  new_nodes[7] = d_nodes[3];
81  coelem = new QCoElement( new_nodes );
82  // now for the new face set E2 to side_elem (will correct the nodes later)
83  Face* oface = coelem->getFaces()[0];
84  ((QuadFace*)oface)->d_E2 = side_elem;
85  }
86  return coelem;
87 }
This class encapsulate a node over a window manifold.
Definition: Manifold_2.h:370
Element * d_E2
The second element that this face is associated with.
Definition: Face.hpp:154
Element * d_E1
Pointer to the first element that this face is associated with.
Definition: Face.hpp:147
Face ** getFaces()
Definition: Element.hpp:106
blockLoc i
Definition: read.cpp:79
Node ** d_nodes
Array of nodes assigned to this face.
Definition: Face.hpp:161
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:

int getNumNodes ( ) const
virtual

Returns the number of nodes for this type of face (four for the quad face)

Implements Face.

Definition at line 35 of file QuadFace.cpp.

36 { return 4;}

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