44IntegrationRule :: IntegrationRule(
int n,
Element *e,
int startIndx,
int endIndx,
bool dynamic)
54IntegrationRule :: IntegrationRule(
int n,
Element *e)
64IntegrationRule :: ~IntegrationRule()
71IntegrationRule :: clear()
82IntegrationRule :: getIntegrationPoint(
int i)
95IntegrationRule :: findIntegrationPointClosestTo(
const FloatArray &lcoord)
101 if ( dist <= mindist || mindist < 0. ) {
111IntegrationRule :: printOutputAt(FILE *file,
TimeStep *tStep)
114 for (
auto &gp: *
this ) {
115 gp->printOutputAt(file, tStep);
123 for (
auto &gp: *
this ) {
124 gp->updateYourself(tStep);
135 if ( !stream.
write(isdyn) ) {
144 int numberOfIntegrationPoints = (int)this->
gaussPoints.size();
145 if ( !stream.
write(numberOfIntegrationPoints) ) {
159 for (
auto &gp: *
this ) {
162 double dval = gp->giveWeight();
163 if ( !stream.
write(dval) ) {
167 if ( ( iores = gp->giveNaturalCoordinates().storeYourself(stream) ) !=
CIO_OK ) {
173 int mmode = gp->giveMaterialMode();
174 if ( !stream.
write(mmode) ) {
180 gp->giveCrossSection()->saveIPContext(stream, mode, gp);
191 if ( !stream.
read(isdyn) ) {
202 if ( !stream.
read(size) ) {
221 for (
auto &gp: *
this ) {
225 if ( !stream.
read(w) ) {
240 if ( !stream.
read(_m) ) {
244 m = ( MaterialMode ) _m;
247 gp =
new GaussPoint(
this, i, std :: move(c), w, m);
252 gp->giveCrossSection()->restoreIPContext(stream, mode, gp);
259 MaterialMode matMode)
281 if ( nPoints == 6 ) {
296 MaterialMode matMode)
311IntegrationRule :: setUpEmbeddedIntegrationPoints(
integrationDomain mode,
int nPoints, MaterialMode matMode,
312 const std :: vector< FloatArray > &coords)
318 if ( coords.size() != 2 ) {
319 OOFEM_ERROR(
"Exactly 2 coordinates are required for 2D embedded lines!");
330int IntegrationRule :: SetUpPoint(MaterialMode mode)
virtual int read(int *data, std::size_t count)=0
Reads count integer values into array pointed by data.
virtual int write(const int *data, std::size_t count)=0
Writes count integer values from array pointed by data.
contextIOResultType restoreYourself(DataStream &stream)
const FloatArray & giveNaturalCoordinates() const
Returns coordinate array of receiver.
virtual int SetUpPointsOnLine(int, MaterialMode mode)
virtual int SetUpPointsOn3dDegShell(int nPointsXY, int nPointsZ, MaterialMode mode)
Element * elem
Element which integration rule is coupled to.
int giveNumberOfIntegrationPoints() const
std::vector< GaussPoint * > gaussPoints
Array containing integration points.
integrationDomain intdomain
Integration domain.
virtual int SetUpPointsOnWedge(int nPointsTri, int nPointsDepth, MaterialMode mode)
virtual int SetUpPointsOnSquare(int, MaterialMode mode)
virtual int SetUpPointsOnCube(int, MaterialMode mode)
virtual int SetUpPointsOnTriangle(int, MaterialMode mode)
virtual int SetUpPointsOn2DEmbeddedLine(int nPoints, MaterialMode mode, const FloatArray &coord0, const FloatArray &coord1)
virtual int SetUpPointsOnTetrahedra(int, MaterialMode mode)
@ _UnknownIntegrationDomain
double distance_square(const FloatArray &x, const FloatArray &y)
@ CIO_IOERR
General IO error.