35 #include "../sm/Elements/Shells/tr2shell7xfem.h"    36 #include "../sm/Materials/structuralms.h"    37 #include "../sm/xfem/enrichmentitems/crack.h"    38 #include "../sm/xfem/enrichmentitems/shellcrack.h"    60 IntArray 
Tr2Shell7XFEM :: orderingDofTypes = {1, 2, 3, 8, 9, 10, 15, 16, 17, 22, 23, 24, 29, 30, 31, 36, 37, 38,
    61                         4, 5, 6, 11, 12, 13, 18, 19, 20, 25, 26, 27, 32, 33, 34, 39, 40, 41,
    62                         7, 14, 21, 28, 35, 42};
    63 IntArray 
Tr2Shell7XFEM :: orderingNodes = {1, 2, 3, 19, 20, 21, 37, 4, 5, 6, 22, 23, 24, 38, 7, 8, 9, 25, 26, 27, 39,
    64                        10, 11, 12, 28, 29, 30, 40, 13, 14, 15, 31, 32, 33, 41, 16, 17, 18,
    66 IntArray 
Tr2Shell7XFEM :: orderingEdgeNodes = {1, 2, 3, 10, 11, 12, 19, 4, 5, 6, 13, 14, 15, 20, 7, 8, 9, 16, 17, 18, 21};
    95     nodeLocalXiCoords = {1., 0., 0., .5, 0., .5};  
    96     nodeLocalEtaCoords = {0., 1., 0., .5, .5, 0.};
   121             for ( 
int j = 0; j < numberOfInterfaces; j++ ) {
   144     std :: vector< std :: vector< FloatArray > >pointPartitions;
   151     for ( 
int i = 0; i < numberOfLayers; i++ ) {
   159             for ( 
int eiIndex = 1; eiIndex <= numEI; eiIndex++ ) {
   161                 if ( dynamic_cast< ShellCrack*> (ei) ) {
   167                         double startXi, endXi;
   168                         bool intersection = 
false;
   169                         pointPartitions.resize(0);
   172                         if ( intersection ) {
   173                             for ( 
int j = 0; j < int( pointPartitions.size() ); j++ ) {
   180                             int nPointsTriSubTri = 3; 
   206         for ( 
int j = 0; j < numberOfInterfaces; j++ ) {
   234         answer = {1, 2, 3, 8, 9, 10, 22, 23, 24,  4, 5, 6, 11, 12, 13, 25, 26, 27,   7, 14, 28};
   236     } 
else if ( iEdge == 2 ) { 
   237         answer = {  8, 9, 10, 15, 16, 17, 29, 30, 31,   11, 12, 13, 18, 19, 20, 32, 33, 34,   14, 21, 35};
   239     } 
else if ( iEdge == 3 ) { 
   240         answer = {  15, 16, 17, 1, 2, 3, 36, 37, 38,   18, 19, 20, 4, 5, 6, 39, 40, 41,   21, 7, 42};
   251     for( 
int i = 1; i <= 42; i++){    
 double giveDeterminant() const 
Returns the trace (sum of diagonal components) of the receiver. 
 
virtual void XfemElementInterface_prepareNodesForDelaunay(std::vector< std::vector< FloatArray > > &oPointPartitions, double &oCrackStartXi, double &oCrackEndXi, int iEnrItemIndex, bool &oIntersection)
Returns an array of array of points. Each array of points defines the points of a subregion of the el...
 
virtual const IntArray & giveOrderingNodes() const 
 
double evaluateHeavisideXi(double xi, ShellCrack *ei)
 
Abstract class representing entity, which is included in the FE model using one (or more) global func...
 
double giveMidSurfaceZcoordFromBottom()
 
void beVectorProductOf(const FloatArray &v1, const FloatArray &v2)
Computes vector product (or cross product) of vectors given as parameters, , and stores the result in...
 
std::vector< std::vector< Triangle > > crackSubdivisions
 
double & at(int i)
Coefficient access function. 
 
LayeredCrossSection * layeredCS
 
virtual void computeGaussPoints()
Initializes the array of integration rules member variable. 
 
Tr2Shell7XFEM(int n, Domain *d)
 
void mapLayerGpCoordsToShellCoords(std::vector< std::unique_ptr< IntegrationRule > > &layerIntegrationRulesArray)
 
Class implementing an array of integers. 
 
int & at(int i)
Coefficient access function. 
 
XfemManager * giveXfemManager()
 
virtual void giveLocalNodeCoords(FloatArray &nodeLocalXiCoords, FloatArray &nodeLocalEtaCoords)
 
virtual const IntArray & giveOrderingEdgeNodes() const 
 
void beColumnOf(const FloatMatrix &mat, int col)
Reciever will be set to a given column in a matrix. 
 
Class representing a general abstraction for finite element interpolation class. 
 
int giveNumberOfEnrichmentItems() const 
 
double computeIntegralThick()
Returns the total thickness of all layers. 
 
void evalInitialCovarBaseVectorsAt(const FloatArray &lCoords, FloatMatrix &Gcov)
 
double giveNaturalCoordinate(int i) const 
Returns i-th natural element coordinate of receiver. 
 
bool updateIntegrationRuleMultiCrack()
 
static IntArray orderingNodes
 
double giveLayerThickness(int layer)
 
virtual double giveWeight()
Returns integration weight of receiver. 
 
Wrapper around element definition to provide FEICellGeometry interface. 
 
double giveLayerMidZ(int layer)
 
void resize(int n)
Checks size of receiver towards requested bounds. 
 
std::vector< std::unique_ptr< IntegrationRule > > czIntegrationRulesArray
 
virtual double computeArea()
Computes the area (zero for all but 2d geometries). 
 
virtual FEInterpolation * giveInterpolation() const 
 
Class representing vector of real numbers. 
 
Implementation of matrix containing floating point numbers. 
 
static IntArray orderingEdgeNodes
 
virtual double computeAreaAround(GaussPoint *gp, double xi)
 
static IntArray orderingDofTypes
 
static FEI3dTrQuad interpolation
 
double giveArea(const FEICellGeometry &cellgeo) const 
 
virtual const IntArray & giveOrderingDofTypes() const 
 
double computeNorm() const 
Computes the norm (or length) of the vector. 
 
bool isElementEnriched(const Element *elem)
 
virtual double computeVolumeAroundLayer(GaussPoint *mastergp, int layer)
 
IntArray numSubDivisionsArray
 
EnrichmentItem * giveEnrichmentItem(int n)
 
std::vector< std::unique_ptr< IntegrationRule > > integrationRulesArray
List of integration rules of receiver (each integration rule contains associated integration points a...
 
virtual void XfemElementInterface_partitionElement(std::vector< Triangle > &oTriangles, const std::vector< FloatArray > &iPoints)
Partitions the element into patches by a triangulation. 
 
Domain * giveDomain() const 
 
int giveNumIntegrationPointsInLayer()
 
the oofem namespace is to define a context or scope in which all oofem names are defined. 
 
Class representing integration point in finite element program. 
 
int numberOfDofMans
Number of dofmanagers. 
 
virtual void giveEdgeDofMapping(IntArray &answer, int iEdge) const 
Assembles edge dof mapping mask, which provides mapping between edge local DOFs and "global" element ...
 
PatchIntegrationRule provides integration over a triangle patch. 
 
const FloatArray & giveNaturalCoordinates()
Returns coordinate array of receiver. 
 
Class representing Gaussian-quadrature integration rule. 
 
virtual void giveSurfaceDofMapping(IntArray &answer, int iSurf) const 
Assembles surface dof mapping mask, which provides mapping between surface local DOFs and "global" el...