30 class CTextile3DWeave;
47 bool CreateAbaqusInputFile(
CTextile &Textile,
string Filename,
bool bRegenerateMesh,
int iElementType = 0,
bool bAdjustMesh =
false,
double Tolerance = 0.0000001 );
64 void SetYarnSurfaceInteraction(
string AbaqusCommands);
71 void SetPlateSurfaceInteraction(
string AbaqusCommands);
73 void SetStaticStepParameters(
double dInitTimeInc = 0,
double dTimePeriod = 0,
double dMinTimeInc = 0,
double dMaxTimeInc = 0);
144 void CreateMaterials(ostream &Output,
string Filename);
148 void CreateContact(ostream &Output,
string Name1,
string Name2,
string InteractionName);
161 void CreateSet(ostream &Output,
SET_TYPE Type,
string Name, vector<int> &Indices,
bool bUnSorted =
false);
169 void CreateSet(ostream &Output,
string Name,
const vector<pair<int, int> > &NodePairs);
177 void CreateSurfaces(ostream &Output, map<
string, vector<ELEMENT_FACE> > &SurfaceDefinitions);
179 void CreateSurfaceDefinitions(
int iNumYarns,
const vector<XYZ> &Repeats, map<
string, vector<ELEMENT_FACE> > &SurfaceDefinitions);
187 void CreateContacts(ostream &Output,
const CTextile &Textile);
190 void CreateContacts(ostream &Output,
const CTextileWeave &Weave);
193 void OutputContacts( ostream &Output, set<pair<int, int> > &Contacts );
199 void CreateCompressionPlates(ostream &Output);
202 void CreatePeriodicBoundaries(ostream &Output,
const CDomain &Domain);
205 void CreateStep(ostream &Output);
208 void CreateBoundary(ostream &Output,
CLinearTransformation Deformation,
const vector<int> &YarnCenterNodes,
const vector<XYZ> &Repeats);
223 void GetYarnSurfaces(
int iYarn,
const vector<XYZ> &Repeats, vector<ELEMENT_FACE> &UpperFaces, vector<ELEMENT_FACE> &LowerFaces );
231 void GetYarnSurface(
int iYarn,
const vector<XYZ> &Repeats, vector<ELEMENT_FACE> &Faces );
239 ELEMENT_FACE FindFaceIndex(
int iYarn,
const vector<int> &SurfIndices);
247 set<int>
GetCommonIndices(
const vector<int> &SurfIndices,
const vector<int> &VolIndices);
250 int GetCenterNode(
const CMesh &Mesh);
253 void BuildIndexOffsets();
263 int GetGlobalNodeIndex(
int iYarn,
int iIndex);
266 double GetSectionArea( vector<int> &Section,
CMesh &Mesh );
269 double GetSectionVolumeFraction(
double Area,
CTextile &Textile,
int Yarn );
272 void CreateMidPointVolumeFractions( vector<SECTION_VF_DATA> &VFData, vector<SECTION_VF_DATA> &VFMidData );
275 void GetElementVolumeFractions( vector<POINT_INFO> &ElementsInfo, vector<SECTION_VF_DATA> &MidVFData );
278 void GetSectionVolumeFractions(
CTextile &Textile, vector<SECTION_VF_DATA> &VolFractionData,
int iYarn );
int GetFaceIndex(CMesh::ELEMENT_TYPE ElemType, const set< int > &NodeIndices)
set< int > GetCommonIndices(const vector< int > &SurfIndices, const vector< int > &VolIndices)
Abstract base class representing the domain in which a textile cell may lie.
Defines the nodes and elements of a surface or volume mesh.
ELEMENT_TYPE
Each element type is represented by a unique integer value.
Object container to help handle memory management issues.
Represents a surface interaction as a string of ABAQUS keywords.
CKeywordInteraction(string AbaqusCommands)
string GetAbaqusCommands()
CSurfaceInteraction * Copy() const
void SetAbaqusCommands(string AbaqusCommands)
Abstract base class to represent a surface interaction.
virtual CSurfaceInteraction * Copy() const =0
virtual string GetAbaqusCommands()=0
Class used to generate an abaqus input deck for textile mechanics simulations.
double m_dInitialPlateGap
map< YarnNumber, int > m_NodeIndexOffsets
CTextileMaterials m_Materials
void SetIncludePlates(bool bInclude)
double GetInitialPlateGap()
string m_StaticStepParameters
CObjectContainer< CSurfaceInteraction > m_PlateInteraction
CObjectContainer< CSurfaceInteraction > m_YarnInteraction
void SetWholeSurfaces(bool bWholeSurface)
void SetInitialPlateGap(double dPlateGap)
map< YarnNumber, map< CMesh::ELEMENT_TYPE, int > > m_ElementIndexOffsets
vector< CMesh > m_YarnMeshes
Represents a textile cell containing yarns.
Represents a 3D woven textile.
Represents a textile cell containing yarns.
Represents a woven textile.
Namespace containing a series of customised math operations not found in the standard c++ library.
CMesh::ELEMENT_TYPE ElementType
vector< ELEMENT_INDICES > Elements
CMesh::ELEMENT_TYPE ElementType
Struct for representing points in 3D space.