Go to the documentation of this file.
41DiscontinuousSegmentIntegrationRule :: DiscontinuousSegmentIntegrationRule(
int n,
Element *e,
const std :: vector< Line > &iSegments) :
46DiscontinuousSegmentIntegrationRule :: ~DiscontinuousSegmentIntegrationRule() {}
48int DiscontinuousSegmentIntegrationRule :: SetUpPointsOnLine(
int iNumPointsPerSeg, MaterialMode mode)
50 int numPointsTot = iNumPointsPerSeg *
mSegments.size();
60 double totalLength = 0.0;
62 totalLength += line.giveLength();
67 std :: vector< FloatArray >newGPCoord;
70 for (
size_t i = 0; i <
mSegments.size(); i++ ) {
71 for (
int j = 0; j < iNumPointsPerSeg; j++ ) {
75 gp =
new GaussPoint(
this, pointsPassed + 1, {coords_xi.
at(j + 1)}, weights.
at(j + 1), mode);
80 for (
int m = 1; m <= xS.
giveSize(); m++ ) {
86 global.
at(m) = 0.5 * ( ( 1.0 - coord.
at(1) ) *
mSegments [ i ].giveVertex(1).at(m) + ( 1.0 + coord.
at(1) ) *
mSegments [ i ].giveVertex(2).at(m) );
89 newGPCoord.push_back(global);
93 double xi = 2.0 * (
distance(global, xS) / totalLength - 0.5 );
std ::vector< Line > mSegments
Index giveSize() const
Returns the size of receiver.
GaussIntegrationRule(int n, Element *e, int startIndx, int endIndx, bool dynamic=false)
static void giveLineCoordsAndWeights(int nPoints, FloatArray &coords_xi, FloatArray &weights)
void setNaturalCoordinates(const FloatArray &c)
const FloatArray & giveNaturalCoordinates() const
Returns coordinate array of receiver.
void setSubPatchCoordinates(const FloatArray &c)
double giveWeight()
Returns integration weight of receiver.
void setGlobalCoordinates(const FloatArray &iCoord)
int giveNumberOfIntegrationPoints() const
std::vector< GaussPoint * > gaussPoints
Array containing integration points.
double distance(const FloatArray &x, const FloatArray &y)
This page is part of the
OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak
Bořek Patzák
Project e-mail:
oofem@fsv.cvut.cz
Generated at for OOFEM by
doxygen
1.15.0 written by Dimitri van Heesch,
© 1997-2011