GridCell
Grid cell Property Labels.
void setBndryCndHandler()
This function sets the BndryCndHandler objects at solver setup \adaptation 22.04.2021,...
void sortBoundaryCells()
This function sorts the boundary cells according to the BC id.
void bc8030(MInt index)
This function applies the loads boundary condition.
MInt * m_noBndryCellsPerSegment
void createBoundaryCells()
Creates boundary cells according to the geometry information.
std::vector< MInt > m_bndryCndOffsets
void updateForceVector()
Execution of the force boundary conditions.
void setBndryCndHandlerMb(MInt *bcTypeList)
void initBndryCnds()
Initializes boundary cells.
void writeOutSTLBoundaries(MInt index, MString prefix)
Write out the boundary segments in stl-file format.
std::vector< FcGridBndryCell< nDim > > m_bndryCells
void writeOutModifiedBoundaries()
Write out the boundary segments in stl-file format.
void bc8011(MInt index)
This function applies the fixation boundary condition.
BndryCndHandler * bndryCndHandlerForce
BndryCndHandler * bndryCndHandlerSystemMatrix
std::vector< std::vector< MFloat > > createEdgesFromCutPoints(std::vector< std::vector< MFloat > > cutPointList)
Calculation of the surface edges.
List< MInt > * m_sortedBndryCells
void bc8031(MInt index)
This function applies the loads boundary condition.
MString m_bndryNormalMethod
Read from property file.
void bc8032(MInt index)
This function applies the loads boundary condition.
void bc8035(MInt index)
This function applies the loads boundary condition.
void bc8012(MInt index)
This function applies the fixation boundary condition.
FcBndryCnd(FcSolver< nDim > *solver)
void refineTriangle(MInt index)
Refines the triangles of a segment by deviding them in the middle.
std::vector< MInt > m_bndryCndSegIds
std::vector< std::vector< MFloat > > createTrianglesFromCutPoints(std::vector< std::vector< MFloat > > cutPointList, MFloat *triangleNormal)
Triangulation algorithm of the cut points.
void getStlNodeList(const MInt cellId, std::vector< MInt > &nodeList)
Returns a list of all elements cutting the target cell.
void findCellsRequireSubCellIntegration()
Set the subcell tree depth for cells requiring subcell integration.
std::vector< MInt > m_bndryCndIds
FcSolver< nDim > * m_solver
pointer to a member function data type
MInt * m_boundarySurfaces
void subCellIntegration(const MInt subCellLvl, MFloat *subCellParentCoord, const MInt childPos, const MInt pCellId, MFloat **Ke)
Execution of the subcell integration.
MInt * m_mapBndryCndIdSegId
void updateSystemMatrix()
Execution of the displacement boundary conditions.
void setBoundaryStlElements(std::vector< std::vector< MFloat > > cutPointList, MFloat *normal, MInt segId, MInt i)
Add cut faces to the collector of the boundary cell.
virtual void bc0(MInt index)
Boundary condition for free surfaces.
void updateTrianglePosition()
Moves a triangle depending on the simulated displacment inside a cell.
MInt * m_subCellLayerDepth
void bc8010(MInt index)
This function applies the fixation boundary condition.
void bc8020(MInt index)
This function applies a non-zero displacement boundary condition.
void calculateCutPoints()
Calculation of the cutpoints of each segment.
std::vector< MInt > m_mapBndryCndSegId2Index
MFloat solveIntegrationOnTriangle(std::vector< MFloat > trianglePoints, MFloat *triangleNormal)
Gauss quadrature on triangles.
List< MInt > * m_bndryCellIds
FcGridBndryCell< nDim > * bndryCells
void calcReactionForces()
Calculation of reaction forces.
void(FcBndryCnd::* BndryCndHandler)(MInt set)
void calcAvgFaceNormal(MInt index)
Calculation of the normal vector of the cut faces.
MBool pointInTriangle(MFloat *A, MFloat *B, MFloat *C, std::vector< MFloat > P)
Checks if a point is inside a triangle.
This class represents a structure solver using the Finite Cell Method.
Class that represents FC cell collector.
FcCell
FC cell Property Labels.
std::basic_string< char > MString
LB lattice descriptor for arrays depending on D.