Skip to content

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