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 2022-07-23 at 16:40:07 -0600