TexGen
|
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< XYZ > | GetNodeDisplacements (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< CMeshIntersectionData > | m_Intersections |
vector< CMesh > | m_IntersectionMeshes |
double | m_Tolerance |
vector< vector< XYZ > > | m_NodeDisplacements |
vector< CMesh > | m_TempYarnMeshes |
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.
CAdjustMeshInterference::CAdjustMeshInterference | ( | void | ) |
Definition at line 31 of file AdjustMeshInterference.cpp.
|
virtual |
Definition at line 35 of file AdjustMeshInterference.cpp.
|
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().
|
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().
|
protected |
Final adjustment of interpolation nodes to even out mesh.
Definition at line 317 of file AdjustMeshInterference.cpp.
References m_Intersections.
|
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().
bool CAdjustMeshInterference::AdjustMesh | ( | CTextile & | Textile, |
vector< CMesh > & | YarnMeshes, | ||
double | Tolerance | ||
) |
Top level function to adjust nodes on all yarns.
Textile | The textile being adjusted |
YarnMeshes | Array of meshes generated for each yarn, to be adjusted |
Tolerance | Mesh 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().
void CAdjustMeshInterference::AdjustSectionMeshes | ( | CTextile & | Textile, |
vector< CMesh > & | YarnMeshes | ||
) |
Adjust yarns to interpolate between section meshes and change these to reflect intersection adjustments.
Definition at line 327 of file AdjustMeshInterference.cpp.
References TexGen::CYarnSectionInterpPosition::AddSection(), TexGen::CYarn::AssignSection(), TexGen::DotProduct(), TexGen::YARN_POSITION_INFORMATION::dSectionPosition, FindMeshPolygonSection(), TexGen::CTextile::GetDomain(), TexGen::CTextile::GetNumYarns(), TexGen::CYarn::GetSectionLengths(), TexGen::CYarn::GetSlaveNodes(), TexGen::CDomain::GetTranslations(), TexGen::CTextile::GetYarn(), TexGen::YARN_POSITION_INFORMATION::GetYarnPosition(), TexGen::YARN_POSITION_INFORMATION::iSection, m_TempYarnMeshes, TexGen::CMesh::POLYGON, TexGen::YARN_POSITION_INFORMATION::SectionLengths, TexGen::CYarn::SURFACE, TexGen::XY::x, and TexGen::XY::y.
Referenced by AdjustTextileMesh(), and TexGen::CSimulationAbaqus::CreateAbaqusInputFile().
void CAdjustMeshInterference::AdjustTextileMesh | ( | CTextile & | Textile, |
double | Tolerance = 0.0000001 |
||
) |
Adjust mesh interference for whole textile by adjusting nodes.
Textile | The textile being adjusted |
Tolerance | Mesh 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.
|
protected |
Calls Textile.DetectInterference and sets up MeshIntersectionData base on intersection depths.
Definition at line 117 of file AdjustMeshInterference.cpp.
References TexGen::CTextile::DetectInterference(), TexGen::CMesh::GetNode(), TexGen::CYarn::GetRepeats(), TexGen::CTextile::GetYarn(), m_Intersections, m_Tolerance, TexGen::CMeshIntersectionData::SetBoundaryPairIndex(), TexGen::CMeshIntersectionData::SetDepth(), TexGen::CMeshIntersectionData::SetIndex(), TexGen::CMeshIntersectionData::SetPoint(), TexGen::CMeshIntersectionData::SetStartPoint(), TexGen::CMeshIntersectionData::SetYarn(), TGERROR, TGLOG, and TOL.
Referenced by AdjustMesh().
|
protected |
Definition at line 510 of file AdjustMeshInterference.cpp.
References TexGen::GetLength().
Referenced by FindMeshPolygonSection().
|
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().
|
inline |
Definition at line 111 of file AdjustMeshInterference.h.
|
protected |
Definition at line 301 of file AdjustMeshInterference.cpp.
References m_Intersections, and m_NodeDisplacements.
|
protected |
Definition at line 141 of file AdjustMeshInterference.h.
Referenced by AddIntersectElementsToMesh(), AdjustInitialIntersections(), AdjustIntersections(), and AdjustMesh().
|
protected |
Definition at line 140 of file AdjustMeshInterference.h.
Referenced by AdjustInitialIntersections(), AdjustInterpolationNodes(), AdjustIntersections(), CheckInitialIntersections(), and SetNodeDisplacements().
|
protected |
Definition at line 143 of file AdjustMeshInterference.h.
Referenced by SetNodeDisplacements().
|
protected |
Definition at line 144 of file AdjustMeshInterference.h.
Referenced by AdjustMesh(), and AdjustSectionMeshes().
|
protected |
Definition at line 142 of file AdjustMeshInterference.h.
Referenced by AdjustIntersections(), AdjustMesh(), and CheckInitialIntersections().