36 #include "../sm/Materials/InterfaceMaterials/structuralinterfacematerialstatus.h" 49 mpEnrichesDofsWithIdArray = {
68 OOFEM_ERROR(
"The material status is not of an allowed type.")
75 double tangDist = 0.0, arcPos = 0.0;
102 const double tol = 1.0e-12;
110 if ( polygonLine1 != NULL && polygonLine2 != NULL ) {
114 double tangDist, arcPos;
117 if ( arcPos < -tol || arcPos > ( 1.0 + tol ) ) {
118 printf(
"arcPos: %e\n", arcPos);
119 OOFEM_ERROR(
"arcPos is outside the allowed range [0,1].")
122 oArcPositions.push_back(arcPos);
129 const double tol = 1.0e-12;
134 if ( polygonLine1 != NULL ) {
136 double tangDist, arcPos;
139 if ( arcPos < -tol || arcPos > ( 1.0 + tol ) ) {
140 printf(
"arcPos: %e\n", arcPos);
141 OOFEM_ERROR(
"arcPos is outside the allowed range [0,1].")
144 oArcPositions.push_back(arcPos);
153 if ( polygonLine != NULL ) {
std::unique_ptr< BasicGeometry > mpBasicGeometry
void outputXFEM(EnrichmentItem &iEI, TimeStep *tStep)
XFEM output.
virtual void callGnuplotExportModule(GnuplotExportModule &iExpMod, TimeStep *tStep)
virtual int giveDofPoolSize() const
EnrichmentItem with hybrid geometry description in the following sense: We have a BasicGeometry to de...
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
void computeCrackIntersectionPoints(Crack &iCrack, std::vector< FloatArray > &oIntersectionPoints, std::vector< double > &oArcPositions)
void AppendCohesiveZoneGaussPoint(GaussPoint *ipGP)
int giveNumberOfEnrDofs() const
REGISTER_EnrichmentItem(HybridEI)
double computeLength() const
virtual void computeTangentialSignDist(double &oDist, const FloatArray &iPoint, double &oMinDistArcPos) const
This class implements a structural interface material status information.
void computeArcPoints(const std::vector< FloatArray > &iIntersectionPoints, std::vector< double > &oArcPositions)
const FloatArray & giveGlobalCoordinates()
const IntArray * giveEnrichesDofsWithIdArray() const
Class representing vector of real numbers.
This class manages the xfem part.
IRResultType
Type defining the return values of InputRecord reading operations.
std::vector< GaussPoint * > mCohesiveZoneGaussPoints
Array of pointers to the Gauss points related to the cohesive zone.
IntegrationPointStatus * giveMaterialStatus()
Returns reference to associated material status (NULL if not defined).
BasicGeometry * giveGeometry()
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
virtual void computeIntersectionPoints(Element *element, std::vector< FloatArray > &oIntersectionPoints)
Gives intersection points between this Geometry and Element.
std::vector< double > mCohesiveZoneArcPositions
the oofem namespace is to define a context or scope in which all oofem names are defined.
(Under development) The Gnuplot export module enables OOFEM to export some data in a format that can ...
Class representing integration point in finite element program.
Class representing solution step.