FEMesh
Inherits from FECoreMesh
Public Functions
| Name | |
|---|---|
| FEMesh() | |
| FEMesh(FEMesh & m) | |
| virtual | ~FEMesh() | 
| virtual void | Create(int nodes, int elems, int faces =0, int edges =0) allocate space for mesh  | 
| void | ShallowCopy(FEMesh * pm) | 
| void | Clear() — C L E A N U P —  | 
| void | DeleteEdges() | 
| virtual int | Elements() const return number of elements  | 
| FEElement & | Element(int n) return element  | 
| virtual FEElement_ & | ElementRef(int n) return reference to element  | 
| virtual FEElement * | ElementPtr(int n =0) return pointer to element  | 
| int | FindFace(FEElement * pe, FEFace & f, FEFace & fe) | 
| void | FindNodesFromPart(int gid, vector< int > & node) | 
| std::vector< FENode > & | NodeArray() | 
| std::vector< FEFace > & | FaceArray() | 
| std::vector< FEElement > & | ElementArray() | 
| double | GetElementValue(int n) | 
| void | SetElementValue(int n, double v) | 
| void | UpdateValueRange() | 
| void | GetValueRange(double & vmin, double & vmax) | 
| vec3d | ProjectToSurface(vec3d r, vec3d t) | 
| vec3d | ProjectToFace(vec3d p, FEFace & f, double & r, double & s) | 
| vec3d | ProjectToEdge(vec3d e1, vec3d e2, vec3d p, double & r) | 
| bool | FindIntersection(FEFace & f, vec3d x, vec3d n, vec3d & q, double & g) | 
| void | Update() | 
| void | UpdateElementNeighbors() | 
| void | UpdateFaces() | 
| void | UpdateEdges() | 
| void | UpdateNodes() | 
| void | AutoSmooth(double w) | 
| void | UpdateNormals() | 
| void | PartitionSelection() | 
| void | RemoveIsolatedNodes() | 
| void | AddNode(FENode & n) | 
| FEMesh * | DetachSelectedMesh() | 
| void | DetachSelectedPart() | 
| FEMesh * | ExtractSelectedFaces() | 
| void | DeleteTaggedElements(int tag) | 
| void | DeleteTaggedFaces(int tag) | 
| void | DeleteTaggedEdges(int tag) | 
| void | FindDuplicateFaces(vector< int > & l) | 
| void | FindDuplicateEdges(vector< int > & l) | 
| void | DeleteSelectedElements() | 
| void | DeleteSelectedFaces() | 
| void | DeleteSelectedNodes() | 
| void | InvertTaggedElements(int ntag) | 
| void | InvertSelectedElements() | 
| double | ShellJacobian(FEElement & el) | 
| void | RemoveDuplicateElements() | 
| void | FixinvertedElements() | 
| void | FixReferenceSurface() | 
| void | InterpolateShellThickness(double ) | 
| void | RemoveNonManifoldElements() | 
| void | FixElementWinding() | 
| void | FixElementWinding2() | 
| void | TagAllElements(int ntag) | 
| int | DataFields() | 
| FEElementData * | AddDataField(const char * szname, double v =0.0) | 
| FEElementData & | GetDataField(int i) | 
| double | ShortestEdge() | 
| void | BuildNodeElementTable(vector< vector< int > > & NET) | 
| void | BuildNodeFaceTable(vector< vector< int > > & NFT) | 
| void | BuildNodeEdgeTable(vector< vector< int > > & NET) | 
| void | BuildEdgeTable(vector< pair< int, int > > & ET) | 
| void | BuildNodeNodeTable(vector< set< int > > & NNT) | 
| void | BuildSurfaceNodeNodeTable(vector< set< int > > & NNT) | 
| void | BuildElementEdgeTable(vector< vector< int > > & EET, vector< pair< int, int > > & ET) | 
| void | BuildFaceTable(vector< FEFace > & FT) | 
| void | BuildElementFaceTable(vector< vector< int > > & EFT, vector< FEFace > & FT) | 
| void | BuildFaceEdgeTable(vector< vector< int > > & FET, vector< pair< int, int > > & ET) | 
| void | BuildFaceFaceTable(vector< int > & FFT, vector< FEFace > & FT) | 
| void | BuildEdgeEdgeTable(vector< int > & EET, vector< pair< int, int > > & ET) | 
Protected Functions
| Name | |
|---|---|
| bool | IntersectTri(vec3d * y, vec3d x, vec3d n, vec3d & q, double & g) | 
| bool | IntersectQuad(vec3d * y, vec3d x, vec3d n, vec3d & q, double & g) | 
Protected Attributes
| Name | |
|---|---|
| std::vector< FEElement > | m_Elem  FE elements.  | 
| std::vector< double > | m_data  element values  | 
| double | m_min | 
| double | m_max  value range of element data  | 
| vector< FEElementData > | m_map | 
Additional inherited members
Public Functions inherited from FECoreMesh
| Name | |
|---|---|
| FECoreMesh() constructor  | 
|
| virtual | ~FECoreMesh() destructor  | 
| bool | IsType(int ntype) check the type of the mesh  | 
| int | Nodes() const | 
| int | Edges() const | 
| int | Faces() const | 
| FENode & | Node(int n) | 
| FEEdge & | Edge(int n) | 
| FEFace & | Face(int n) | 
| FENode * | NodePtr(int n =0) | 
| FEEdge * | EdgePtr(int n =0) | 
| FEFace * | FacePtr(int n =0) | 
Protected Attributes inherited from FECoreMesh
| Name | |
|---|---|
| std::vector< FENode > | m_Node  FE nodes.  | 
| std::vector< FEEdge > | m_Edge  FE edges.  | 
| std::vector< FEFace > | m_Face  FE faces.  | 
Public Functions Documentation
function FEMesh
FEMesh()
function FEMesh
FEMesh(
    FEMesh & m
)
function ~FEMesh
virtual ~FEMesh()
function Create
virtual void Create(
    int nodes,
    int elems,
    int faces =0,
    int edges =0
)
allocate space for mesh
Reimplements: FECoreMesh::Create
function ShallowCopy
void ShallowCopy(
    FEMesh * pm
)
function Clear
void Clear()
— C L E A N U P —
function DeleteEdges
inline void DeleteEdges()
function Elements
inline virtual int Elements() const
return number of elements
Reimplements: FECoreMesh::Elements
function Element
inline FEElement & Element(
    int n
)
return element
function ElementRef
inline virtual FEElement_ & ElementRef(
    int n
)
return reference to element
Reimplements: FECoreMesh::ElementRef
function ElementPtr
inline virtual FEElement * ElementPtr(
    int n =0
)
return pointer to element
Reimplements: FECoreMesh::ElementPtr
function FindFace
int FindFace(
    FEElement * pe,
    FEFace & f,
    FEFace & fe
)
function FindNodesFromPart
void FindNodesFromPart(
    int gid,
    vector< int > & node
)
function NodeArray
inline std::vector< FENode > & NodeArray()
Todo: Maybe I should delete these
Get the node array
function FaceArray
inline std::vector< FEFace > & FaceArray()
function ElementArray
inline std::vector< FEElement > & ElementArray()
function GetElementValue
inline double GetElementValue(
    int n
)
function SetElementValue
inline void SetElementValue(
    int n,
    double v
)
function UpdateValueRange
void UpdateValueRange()
function GetValueRange
void GetValueRange(
    double & vmin,
    double & vmax
)
function ProjectToSurface
vec3d ProjectToSurface(
    vec3d r,
    vec3d t
)
function ProjectToFace
vec3d ProjectToFace(
    vec3d p,
    FEFace & f,
    double & r,
    double & s
)
function ProjectToEdge
vec3d ProjectToEdge(
    vec3d e1,
    vec3d e2,
    vec3d p,
    double & r
)
function FindIntersection
bool FindIntersection(
    FEFace & f,
    vec3d x,
    vec3d n,
    vec3d & q,
    double & g
)
function Update
void Update()
function UpdateElementNeighbors
void UpdateElementNeighbors()
function UpdateFaces
void UpdateFaces()
function UpdateEdges
void UpdateEdges()
function UpdateNodes
void UpdateNodes()
function AutoSmooth
void AutoSmooth(
    double w
)
function UpdateNormals
void UpdateNormals()
function PartitionSelection
void PartitionSelection()
function RemoveIsolatedNodes
void RemoveIsolatedNodes()
function AddNode
inline void AddNode(
    FENode & n
)
function DetachSelectedMesh
FEMesh * DetachSelectedMesh()
function DetachSelectedPart
void DetachSelectedPart()
function ExtractSelectedFaces
FEMesh * ExtractSelectedFaces()
function DeleteTaggedElements
void DeleteTaggedElements(
    int tag
)
function DeleteTaggedFaces
void DeleteTaggedFaces(
    int tag
)
function DeleteTaggedEdges
void DeleteTaggedEdges(
    int tag
)
function FindDuplicateFaces
void FindDuplicateFaces(
    vector< int > & l
)
function FindDuplicateEdges
void FindDuplicateEdges(
    vector< int > & l
)
function DeleteSelectedElements
void DeleteSelectedElements()
function DeleteSelectedFaces
void DeleteSelectedFaces()
function DeleteSelectedNodes
void DeleteSelectedNodes()
function InvertTaggedElements
void InvertTaggedElements(
    int ntag
)
function InvertSelectedElements
void InvertSelectedElements()
function ShellJacobian
double ShellJacobian(
    FEElement & el
)
function RemoveDuplicateElements
void RemoveDuplicateElements()
function FixinvertedElements
void FixinvertedElements()
function FixReferenceSurface
void FixReferenceSurface()
function InterpolateShellThickness
void InterpolateShellThickness(
    double 
)
function RemoveNonManifoldElements
void RemoveNonManifoldElements()
function FixElementWinding
void FixElementWinding()
function FixElementWinding2
void FixElementWinding2()
function TagAllElements
void TagAllElements(
    int ntag
)
function DataFields
inline int DataFields()
function AddDataField
FEElementData * AddDataField(
    const char * szname,
    double v =0.0
)
function GetDataField
inline FEElementData & GetDataField(
    int i
)
function ShortestEdge
double ShortestEdge()
function BuildNodeElementTable
void BuildNodeElementTable(
    vector< vector< int > > & NET
)
function BuildNodeFaceTable
void BuildNodeFaceTable(
    vector< vector< int > > & NFT
)
function BuildNodeEdgeTable
void BuildNodeEdgeTable(
    vector< vector< int > > & NET
)
function BuildEdgeTable
void BuildEdgeTable(
    vector< pair< int, int > > & ET
)
function BuildNodeNodeTable
void BuildNodeNodeTable(
    vector< set< int > > & NNT
)
function BuildSurfaceNodeNodeTable
void BuildSurfaceNodeNodeTable(
    vector< set< int > > & NNT
)
function BuildElementEdgeTable
void BuildElementEdgeTable(
    vector< vector< int > > & EET,
    vector< pair< int, int > > & ET
)
function BuildFaceTable
void BuildFaceTable(
    vector< FEFace > & FT
)
function BuildElementFaceTable
void BuildElementFaceTable(
    vector< vector< int > > & EFT,
    vector< FEFace > & FT
)
function BuildFaceEdgeTable
void BuildFaceEdgeTable(
    vector< vector< int > > & FET,
    vector< pair< int, int > > & ET
)
function BuildFaceFaceTable
void BuildFaceFaceTable(
    vector< int > & FFT,
    vector< FEFace > & FT
)
function BuildEdgeEdgeTable
void BuildEdgeEdgeTable(
    vector< int > & EET,
    vector< pair< int, int > > & ET
)
Protected Functions Documentation
function IntersectTri
bool IntersectTri(
    vec3d * y,
    vec3d x,
    vec3d n,
    vec3d & q,
    double & g
)
function IntersectQuad
bool IntersectQuad(
    vec3d * y,
    vec3d x,
    vec3d n,
    vec3d & q,
    double & g
)
Protected Attributes Documentation
variable m_Elem
std::vector< FEElement > m_Elem;
FE elements.
variable m_data
std::vector< double > m_data;
element values
variable m_min
double m_min;
variable m_max
double m_max;
value range of element data
variable m_map
vector< FEElementData > m_map;
Updated on 2024-03-17 at 12:58:44 -0600