101 if ( dist <= mindist || mindist < 0. ) {
140 if ( !stream.
write(isdyn) ) {
149 int numberOfIntegrationPoints = (int)this->
gaussPoints.size();
150 if ( !stream.
write(numberOfIntegrationPoints) ) {
165 if ( mode & CM_Definition ) {
168 if ( !stream.
write(dval) ) {
179 if ( !stream.
write(mmode) ) {
205 if ( !stream.
read(isdyn) ) {
216 if ( !stream.
read(size) ) {
236 if ( mode & CM_Definition ) {
239 if ( !stream.
read(w) ) {
254 if ( !stream.
read(_m) ) {
261 gp =
new GaussPoint(
this, i, std :: move(c), w, m);
299 if ( nPoints == 6 ) {
331 const std :: vector< FloatArray > &coords)
337 if ( coords.size() != 2 ) {
338 OOFEM_ERROR(
"Exactly 2 coordinates are required for 2D embedded lines!");
MaterialMode giveMaterialMode()
Returns corresponding material mode of receiver.
integrationDomain
Used by integrator class to supply integration points for proper domain to be integrated (Area...
int SetUpPoint(MaterialMode mode)
Trivial implementation, only creates a single point.
bool isDynamic
Flag indicating that rule is dynamic, ie, its gauss points (their number, coordinates, weights) can change during computation.
Element * elem
Element which integration rule is coupled to.
integrationDomain intdomain
Integration domain.
int firstLocalStrainIndx
firstLocalStrainIndx and lastLocalStrainIndx indexes describe range of components (strains for exampl...
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
contextIOResultType storeYourself(DataStream &stream) const
virtual int SetUpPointsOnWedge(int nPointsTri, int nPointsDepth, MaterialMode mode)
Sets up receiver's integration points on a wedge integration domain.
int setUpEmbeddedIntegrationPoints(integrationDomain intdomain, int nPoints, MaterialMode matMode, const std::vector< FloatArray > &coords)
Initializes the receiver.
void clear()
Clears the receiver, ie deallocates all integration points.
virtual int SetUpPointsOnTetrahedra(int, MaterialMode mode)
Sets up receiver's integration points on tetrahedra (volume coords) integration domain.
virtual int SetUpPointsOn3dDegShell(int nPointsXY, int nPointsZ, MaterialMode mode)
Sets up receiver's integration points on shell integration domain.
virtual contextIOResultType restoreIPContext(DataStream &stream, ContextMode mode, GaussPoint *gp)
Reads integration point state to output stream.
Abstract base class for all finite elements.
virtual int SetUpPointsOnSquare(int, MaterialMode mode)
Sets up receiver's integration points on unit square integration domain.
MaterialMode
Type representing material mode of integration point.
virtual int read(int *data, int count)=0
Reads count integer values into array pointed by data.
virtual int write(const int *data, int count)=0
Writes count integer values from array pointed by data.
IntegrationRule(int n, Element *e, int startIndx, int endIndx, bool dynamic)
Constructor.
virtual void updateYourself(TimeStep *tStep)
Updates internal state of receiver after finishing time step.
virtual double giveWeight()
Returns integration weight of receiver.
virtual int SetUpPointsOn2DEmbeddedLine(int nPoints, MaterialMode mode, const FloatArray &coord0, const FloatArray &coord1)
Sets up integration points on 2D embedded line inside 2D volume (the list of local coordinates should...
CrossSection * giveCrossSection()
Returns reference to cross section associated to related element of receiver.
contextIOResultType restoreYourself(DataStream &stream)
virtual int SetUpPointsOnCube(int, MaterialMode mode)
Sets up receiver's integration points on unit cube integration domain.
double distance_square(const FloatArray &iP1, const FloatArray &iP2, double &oXi, double &oXiUnbounded) const
virtual contextIOResultType saveIPContext(DataStream &stream, ContextMode mode, GaussPoint *gp)
Stores integration point state to output stream.
Class representing vector of real numbers.
GaussPoint * getIntegrationPoint(int n)
Access particular integration point of receiver.
GaussPoint * findIntegrationPointClosestTo(const FloatArray &lcoord)
Scans through the integration points and finds the one closest to the given (local) coordinate...
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Prints output of receiver to file.
int giveNumberOfIntegrationPoints() const
Returns number of integration points of receiver.
virtual int SetUpPointsOnLine(int, MaterialMode mode)
Sets up receiver's integration points on unit line integration domain.
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
virtual int SetUpPointsOnTriangle(int, MaterialMode mode)
Sets up receiver's integration points on triangular (area coords) integration domain.
int setUpIntegrationPoints(integrationDomain intdomain, int nPoints, MaterialMode matMode)
Initializes the receiver.
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Prints receiver's output to given stream.
virtual ~IntegrationRule()
Destructor.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj)
Restores receiver's context to stream.
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj)
Saves receiver's context to stream.
Class representing integration point in finite element program.
void updateYourself(TimeStep *tStep)
Updates receiver state.
Class representing solution step.
std::vector< GaussPoint * > gaussPoints
Array containing integration points.
const FloatArray & giveNaturalCoordinates()
Returns coordinate array of receiver.