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