The shell element class defines triangular and quadrilateral polygonal elements.
More...
|
| ShellElement (long ID, long compID, Node &n0, Node &n1, Node &n2, bool allowBadNormal=false, unsigned stateSize=0, unsigned integerDataSize=0) |
|
| ShellElement (long ID, long compID, Node &n0, Node &n1, Node &n2, Node &n3, bool allowBadNormal=false, unsigned stateSize=0, unsigned integerDataSize=0) |
|
| ~ShellElement () override |
|
void | addToNormal (const Vector3d &v) |
|
double | area () const |
|
void | attachElement () override |
|
void | attachNodes () override |
|
bool | calcNormal (bool allowWarnings=true, bool updateOldNormal=true) |
|
void | convertToQuad (Node &oppositeNode, int afterIndex) |
|
void | copyNormal (ShellElement &elem) |
|
void | detachElement () override |
|
const Vector3d & | getNormal () const |
|
const Vector3d & | getOldNormal () const |
|
bool | isDuplicateOf (const ShellElement &elem) const |
|
bool | isQuad () const |
|
bool | isSplinter (double edgeDistTol_2) const |
|
bool | isTri () const |
|
double | minNodeToEdgeDist () const |
|
double | minNodeToEdgeDist (Node *&closeNode) const |
|
double | minNodeToEdgeDist2 () const |
|
double | minNodeToEdgeDist2 (Node *&closeNode) const |
|
Node & | nearestNode (Node &node) const |
|
void | scaleNormal (double d) |
|
void | scaleOldNormal (double d) |
|
void | scaleToUnitNormal () |
|
void | setNormal (const Vector3d &v) |
|
void | setOldNormal (const Vector3d &v) |
|
ShellElement * | sharedEdge (int indexToNode) const |
|
ShellElement * | sharedEdge (Node &node_A, Node &node_B) const |
|
void | truncateToTRI3 (ElementNodes::iterator j) |
|
void | truncateToTRI3 (Node &node) |
|
void | updateOldNormal () |
|
|
|
bool | CalcNormal (bool allowWarnings=true, bool updateOldNormal=true) |
|
void | CopyNormal (ShellElement &elem) |
|
void | UpdateOldNormal () |
|
ShellElementTypes | GetElementType () const |
|
bool | IsDuplicateOf (const ShellElement &elem) const |
|
void | TruncateToTRI3 (ElementNodes::iterator j) |
|
void | TruncateToTRI3 (Node &node) |
|
void | ConvertToQuad (Node &oppositeNode, int afterIndex) |
|
bool | IsTri () const |
|
bool | IsQuad () const |
|
bool | IsSplinter (double edgeDistTol_2) const |
|
bool | IsPorousInterface () const |
|
bool | IsInflow () const |
|
bool | IsBoundary () const |
|
bool | InvolvedInCollision () const |
|
void | SetCollided () |
|
double | MinNodeToEdgeDist2 (Node *&closeNode) const |
|
double | MinNodeToEdgeDist2 () const |
|
double | MinNodeToEdgeDist (Node *&closeNode) const |
|
double | MinNodeToEdgeDist () const |
|
Node & | NearestNode (Node &node) const |
|
double | Area () const |
|
ShellElement * | SharedEdge (Node &node_A, Node &node_B) const |
|
ShellElement * | SharedEdge (int indexToNode) const |
|
const Vector3d & | GetNormal () const |
|
const Vector3d & | GetOldNormal () const |
|
void | SetOldNormal (const Vector3d &v) |
|
void | ScaleOldNormal (double d) |
|
void | SetNormal (const Vector3d &v) |
|
void | ScaleNormal (double d) |
|
void | AddToNormal (const Vector3d &v) |
|
void | ScaleToUnitNormal () |
|
virtual | ~Element ()=default |
|
virtual void | attachElement ()=0 |
|
virtual void | attachNodes ()=0 |
|
virtual void | detachElement ()=0 |
|
Vector3d | getCentroid () const |
|
Node & | getNode (int index) const |
|
ElementNodes & | getNodes () |
|
const ElementNodes & | getNodes () const |
|
Node * | nodeAfter (const Node &node) const |
|
Node * | nodeBefore (const Node &node) const |
|
unsigned | numNodes () const |
|
void | setNode (int index, Node &n) |
|
void | setNodeStates (int index, const Vector3d &v) |
|
void | setNodeStates (int index, double v) |
|
void | setNodeStates (int index, int v) |
|
bool | usesNode (const Node &node) const |
|
bool | UsesNode (const Node &node) const |
|
bool | usesNode (long id) const |
|
bool | UsesNode (long id) const |
|
const ElementNodes & | GetNodes () const |
|
ElementNodes & | GetNodes () |
|
Node & | GetNode (int index) const |
|
void | SetNode (int index, Node &n) |
|
Node * | NodeBefore (const Node &node) const |
|
Node * | NodeAfter (const Node &node) const |
|
void | setNodeFlags (unsigned flag, bool b=true) |
|
void | SetNodeFlags (unsigned flag, bool b=true) |
|
void | SetNodeStates (int index, double v) |
|
void | SetNodeStates (int index, const Vector3d &v) |
|
Vector3d | GetCentroid () const |
|
long | getCompID () const |
| Get the ID of the component this entity belongs to.
|
|
void | setCompID (long compID) |
|
void | SetCompID (long compID) |
|
long | GetCompID () const |
|
| NumberedObject (long ID) |
| Create an object with the specified ID and all flags except isValid not set.
|
|
void | clearFlag (unsigned flag) |
| Clear flag. Do not use this to manipulate the isValid flag, since list managers are responsible for that.
|
|
void | copyFlags (const NumberedObject &t) |
|
long | getID () const |
|
long | getIndex () const |
|
bool | isFlagSet (unsigned flag) const |
|
bool | isValid () const |
|
void | setFlag (unsigned flag, bool b=true) |
| Set flag to b. Do not use this to manipulate the isValid flag, since list managers are responsible for that.
|
|
void | setID (long ID) |
|
void | setIndex (long i) |
|
void | SetID (long ID) |
|
long | GetID () const |
|
void | SetIndex (long i) |
|
long | GetIndex () const |
|
bool | IsFlagSet (unsigned flag) const |
|
void | ClearFlag (unsigned flag) |
|
void | SetFlag (unsigned flag) |
|
void | setFlagTo (unsigned flag, bool b=true) |
|
void | SetFlagTo (unsigned flag, bool b=true) |
|
bool | IsValid () const |
|
| State (unsigned stateSize, unsigned integerDataSize) |
|
| ~State () |
|
void | addToIntegerData (int index, long val) |
|
void | addToState (int index, const Vector3d &v) |
|
void | addToState (int index, double val) |
|
void | copyIntegerData (int index, const State &s) |
|
void | copyState (int index, const State &s) |
|
void | copyStateVector (int index, const State &s) |
|
long | getIntegerData (int index) const |
|
double | getState (int index) const |
|
Vector3d | getStateVector (int index) const |
|
void | setIntegerData (int index, long val) |
|
void | setState (int index, const Vector3d &v) |
|
void | setState (int index, double val) |
|
void | CopyIntegerData (int index, const State &s) |
|
void | AddToIntegerData (int index, long val) |
|
void | SetIntegerData (int index, long val) |
|
long | GetIntegerData (int index) const |
|
void | CopyStateVector (int index, const State &s) |
|
void | CopyState (int index, const State &s) |
|
void | AddToState (int index, const Vector3d &v) |
|
void | AddToState (int index, double val) |
|
double | GetState (int index) const |
|
Vector3d | GetStateVector (int index) const |
|
void | SetState (int index, double val) |
|
void | SetState (int index, const Vector3d &v) |
|
There are some assumptions made in various algorithms about some of the data stored for a shell element. In general, you should not try to modify a shell element directly, but most non-modifying member functions that return information about the element should be safe to call. Note that a shell element should only be created and removed by a ShellElementList and never directly by the user.
The node ordering of a shell element is such that the normal vector follows the right-hand rule.