TexGen
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TexGen::CAdjustMeshInterference Class Reference

Class used to adjust small interferences in the fibre volume mesh. More...

#include <AdjustMeshInterference.h>

Public Member Functions

 CAdjustMeshInterference (void)
 
virtual ~CAdjustMeshInterference (void)
 
void AdjustTextileMesh (CTextile &Textile, double Tolerance=0.0000001)
 Adjust mesh interference for whole textile by adjusting nodes. More...
 
bool AdjustMesh (CTextile &Textile, vector< CMesh > &YarnMeshes, double Tolerance)
 Top level function to adjust nodes on all yarns. More...
 
vector< XYZGetNodeDisplacements (int i)
 
void AdjustSectionMeshes (CTextile &Textile, vector< CMesh > &YarnMeshes)
 Adjust yarns to interpolate between section meshes and change these to reflect intersection adjustments. More...
 

Protected Member Functions

bool CheckInitialIntersections (CTextile &Textile, vector< CMesh > &YarnMeshes)
 Calls Textile.DetectInterference and sets up MeshIntersectionData base on intersection depths. More...
 
bool AdjustInitialIntersections (vector< CMesh > &YarnMeshes)
 Takes the individual yarn meshes and corrects intersections based on Textile.DetectInterference() More...
 
void AddIntersectElementsToMesh (const vector< ELEMENT_INDICES > &Elements, int iYarn, CMesh &YarnMesh)
 Creates mesh for each yarn containing elements with intersection nodes. More...
 
bool AdjustIntersections (vector< CMesh > &YarnMeshes)
 Iteratively refines intersections until within tolerance. More...
 
void SetNodeDisplacements (int iNumYarns, vector< CMesh > &YarnMeshes)
 
void AdjustInterpolationNodes (vector< CMesh > &YarnMeshes)
 Final adjustment of interpolation nodes to even out mesh. More...
 
int FindMeshPolygonSection (vector< XYZ > &SlaveNodePoints, CMesh &TempMesh, vector< int > &PolygonIndices, vector< XYZ > &Translations, int &OffsetIndex, int &iTrans)
 Find the newly created polygon sections in the volume mesh. More...
 
int CompareSections (vector< vector< XYZ > > &TranslatedSections, vector< XYZ > &PolygonPoints, int &iTrans)
 

Protected Attributes

vector< CMeshIntersectionDatam_Intersections
 
vector< CMeshm_IntersectionMeshes
 
double m_Tolerance
 
vector< vector< XYZ > > m_NodeDisplacements
 
vector< CMeshm_TempYarnMeshes
 

Detailed Description

Class used to adjust small interferences in the fibre volume mesh.

Takes the individual yarn meshes and corrects intersections based on Textile.DetectInterference()

Definition at line 91 of file AdjustMeshInterference.h.

Constructor & Destructor Documentation

◆ CAdjustMeshInterference()

CAdjustMeshInterference::CAdjustMeshInterference ( void  )

Definition at line 31 of file AdjustMeshInterference.cpp.

◆ ~CAdjustMeshInterference()

CAdjustMeshInterference::~CAdjustMeshInterference ( void  )
virtual

Definition at line 35 of file AdjustMeshInterference.cpp.

Member Function Documentation

◆ AddIntersectElementsToMesh()

void CAdjustMeshInterference::AddIntersectElementsToMesh ( const vector< ELEMENT_INDICES > &  Elements,
int  iYarn,
CMesh YarnMesh 
)
protected

Creates mesh for each yarn containing elements with intersection nodes.

Definition at line 237 of file AdjustMeshInterference.cpp.

References TexGen::CMesh::GetNode(), TexGen::CMesh::GetNumNodes(), and m_IntersectionMeshes.

Referenced by AdjustInitialIntersections().

◆ AdjustInitialIntersections()

bool CAdjustMeshInterference::AdjustInitialIntersections ( vector< CMesh > &  YarnMeshes)
protected

Takes the individual yarn meshes and corrects intersections based on Textile.DetectInterference()

Definition at line 176 of file AdjustMeshInterference.cpp.

References AddIntersectElementsToMesh(), TexGen::CMesh::HEX, m_IntersectionMeshes, m_Intersections, TexGen::CMesh::POLYGON, TexGen::CMesh::QUAD, TexGen::stringify(), TGLOG, and TexGen::CMesh::WEDGE.

Referenced by AdjustMesh().

◆ AdjustInterpolationNodes()

void CAdjustMeshInterference::AdjustInterpolationNodes ( vector< CMesh > &  YarnMeshes)
protected

Final adjustment of interpolation nodes to even out mesh.

Definition at line 317 of file AdjustMeshInterference.cpp.

References m_Intersections.

◆ AdjustIntersections()

bool CAdjustMeshInterference::AdjustIntersections ( vector< CMesh > &  YarnMeshes)
protected

Iteratively refines intersections until within tolerance.

Definition at line 253 of file AdjustMeshInterference.cpp.

References TexGen::BoundingBoxIntersect(), TexGen::GetLength(), m_IntersectionMeshes, m_Intersections, m_Tolerance, and TGLOG.

Referenced by AdjustMesh().

◆ AdjustMesh()

bool CAdjustMeshInterference::AdjustMesh ( CTextile Textile,
vector< CMesh > &  YarnMeshes,
double  Tolerance 
)

Top level function to adjust nodes on all yarns.

Parameters
TextileThe textile being adjusted
YarnMeshesArray of meshes generated for each yarn, to be adjusted
ToleranceMesh will be adjusted until intersections are within this tolerance

Definition at line 66 of file AdjustMeshInterference.cpp.

References AdjustInitialIntersections(), AdjustIntersections(), CheckInitialIntersections(), TexGen::CTextile::GetNumYarns(), m_IntersectionMeshes, m_TempYarnMeshes, m_Tolerance, TexGen::stringify(), TGERROR, and TGLOG.

Referenced by AdjustTextileMesh(), and TexGen::CSimulationAbaqus::CreateAbaqusInputFile().

◆ AdjustSectionMeshes()

void CAdjustMeshInterference::AdjustSectionMeshes ( CTextile Textile,
vector< CMesh > &  YarnMeshes 
)

◆ AdjustTextileMesh()

void CAdjustMeshInterference::AdjustTextileMesh ( CTextile Textile,
double  Tolerance = 0.0000001 
)

Adjust mesh interference for whole textile by adjusting nodes.

Parameters
TextileThe textile being adjusted
ToleranceMesh will be adjusted until intersections are within this tolerance

Definition at line 39 of file AdjustMeshInterference.cpp.

References TexGen::CTextile::AddVolumeToMesh(), AdjustMesh(), AdjustSectionMeshes(), TexGen::CTextile::GetDomain(), TexGen::CTextile::GetNumYarns(), TGERROR, and TGLOG.

◆ CheckInitialIntersections()

bool CAdjustMeshInterference::CheckInitialIntersections ( CTextile Textile,
vector< CMesh > &  YarnMeshes 
)
protected

◆ CompareSections()

int CAdjustMeshInterference::CompareSections ( vector< vector< XYZ > > &  TranslatedSections,
vector< XYZ > &  PolygonPoints,
int &  iTrans 
)
protected

Definition at line 510 of file AdjustMeshInterference.cpp.

References TexGen::GetLength().

Referenced by FindMeshPolygonSection().

◆ FindMeshPolygonSection()

int CAdjustMeshInterference::FindMeshPolygonSection ( vector< XYZ > &  SlaveNodePoints,
CMesh TempMesh,
vector< int > &  PolygonIndices,
vector< XYZ > &  Translations,
int &  OffsetIndex,
int &  iTrans 
)
protected

Find the newly created polygon sections in the volume mesh.

Definition at line 456 of file AdjustMeshInterference.cpp.

References CompareSections(), and TexGen::CMesh::GetNode().

Referenced by AdjustSectionMeshes().

◆ GetNodeDisplacements()

vector< XYZ > TexGen::CAdjustMeshInterference::GetNodeDisplacements ( int  i)
inline

Definition at line 111 of file AdjustMeshInterference.h.

◆ SetNodeDisplacements()

void CAdjustMeshInterference::SetNodeDisplacements ( int  iNumYarns,
vector< CMesh > &  YarnMeshes 
)
protected

Definition at line 301 of file AdjustMeshInterference.cpp.

References m_Intersections, and m_NodeDisplacements.

Member Data Documentation

◆ m_IntersectionMeshes

vector<CMesh> TexGen::CAdjustMeshInterference::m_IntersectionMeshes
protected

◆ m_Intersections

vector<CMeshIntersectionData> TexGen::CAdjustMeshInterference::m_Intersections
protected

◆ m_NodeDisplacements

vector< vector<XYZ> > TexGen::CAdjustMeshInterference::m_NodeDisplacements
protected

Definition at line 143 of file AdjustMeshInterference.h.

Referenced by SetNodeDisplacements().

◆ m_TempYarnMeshes

vector<CMesh> TexGen::CAdjustMeshInterference::m_TempYarnMeshes
protected

Definition at line 144 of file AdjustMeshInterference.h.

Referenced by AdjustMesh(), and AdjustSectionMeshes().

◆ m_Tolerance

double TexGen::CAdjustMeshInterference::m_Tolerance
protected

The documentation for this class was generated from the following files: