OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::IntegrationRule Class Reference

Abstract base class representing integration rule. More...

#include <integrationrule.h>

+ Inheritance diagram for oofem::IntegrationRule:
+ Collaboration diagram for oofem::IntegrationRule:

Public Member Functions

std::vector< GaussPoint * >::iterator begin ()
 
std::vector< GaussPoint * >::iterator end ()
 
 IntegrationRule (int n, Element *e, int startIndx, int endIndx, bool dynamic)
 Constructor. More...
 
 IntegrationRule (int n, Element *e)
 Constructor. More...
 
virtual ~IntegrationRule ()
 Destructor. More...
 
int giveNumberOfIntegrationPoints () const
 Returns number of integration points of receiver. More...
 
GaussPointgetIntegrationPoint (int n)
 Access particular integration point of receiver. More...
 
GaussPointfindIntegrationPointClosestTo (const FloatArray &lcoord)
 Scans through the integration points and finds the one closest to the given (local) coordinate. More...
 
int getStartIndexOfLocalStrainWhereApply ()
 Returns starting component index, for which receiver applies. More...
 
int getEndIndexOfLocalStrainWhereApply ()
 Returns last component index, for which receiver applies. More...
 
int setUpIntegrationPoints (integrationDomain intdomain, int nPoints, MaterialMode matMode)
 Initializes the receiver. More...
 
int setUpIntegrationPoints (integrationDomain intdomain, int nPointsXY, int nPointsZ, MaterialMode matMode)
 Initializes the receiver. More...
 
int setUpEmbeddedIntegrationPoints (integrationDomain intdomain, int nPoints, MaterialMode matMode, const std::vector< FloatArray > &coords)
 Initializes the receiver. More...
 
virtual void printOutputAt (FILE *file, TimeStep *tStep)
 Prints receiver's output to given stream. More...
 
void updateYourself (TimeStep *tStep)
 Updates receiver state. More...
 
ElementgiveElement ()
 Returns reference to element containing receiver. More...
 
int giveNumber ()
 Returns receiver number. More...
 
integrationDomain giveIntegrationDomain () const
 Returns the domain for the receiver. More...
 
virtual int getRequiredNumberOfIntegrationPoints (integrationDomain dType, int approxOrder)
 Abstract service. More...
 
virtual contextIOResultType saveContext (DataStream &stream, ContextMode mode, void *obj)
 Saves receiver's context to stream. More...
 
virtual contextIOResultType restoreContext (DataStream &stream, ContextMode mode, void *obj)
 Restores receiver's context to stream. More...
 
void clear ()
 Clears the receiver, ie deallocates all integration points. More...
 
virtual const IntArraygiveKnotSpan ()
 Returns receiver sub patch indices (if apply). More...
 
virtual const char * giveClassName () const
 
std::string errorInfo (const char *func) const
 Error printing helper. More...
 
virtual IntegrationRuleType giveIntegrationRuleType () const
 
virtual IRResultType initializeFrom (InputRecord *ir)
 
int SetUpPoint (MaterialMode mode)
 Trivial implementation, only creates a single point. More...
 
virtual int SetUpPointsOnLine (int, MaterialMode mode)
 Sets up receiver's integration points on unit line integration domain. More...
 
virtual int SetUpPointsOnTriangle (int, MaterialMode mode)
 Sets up receiver's integration points on triangular (area coords) integration domain. More...
 
virtual int SetUpPointsOnSquare (int, MaterialMode mode)
 Sets up receiver's integration points on unit square integration domain. More...
 
virtual int SetUpPointsOn3dDegShell (int nPointsXY, int nPointsZ, MaterialMode mode)
 Sets up receiver's integration points on shell integration domain. More...
 
virtual int SetUpPointsOn3dDegShellLayers (int nPointsXY, int nPointsZ, MaterialMode mode, const FloatArray &layerThickness)
 Sets up receiver's integration points on shell integration domain wih layers. More...
 
virtual int SetUpPointsOnCube (int, MaterialMode mode)
 Sets up receiver's integration points on unit cube integration domain. More...
 
virtual int SetUpPointsOnCubeLayers (int nPoints1, int nPoints2, int nPointsDepth, MaterialMode mode, const FloatArray &layerThickness)
 Sets up receiver's integration points on unit cube integration domain divided into layers in the zeta-direction. More...
 
virtual int SetUpPointsOnTetrahedra (int, MaterialMode mode)
 Sets up receiver's integration points on tetrahedra (volume coords) integration domain. More...
 
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 be provided). More...
 
virtual int SetUpPointsOnWedge (int nPointsTri, int nPointsDepth, MaterialMode mode)
 Sets up receiver's integration points on a wedge integration domain. More...
 
virtual int SetUpPointsOnWedgeLayers (int nPointsTri, int nPointsDepth, MaterialMode mode, const FloatArray &layerThickness)
 Sets up receiver's integration points on a wedge integration domain divided into layers in the zeta-direction. More...
 

Protected Attributes

int number
 Number. More...
 
Elementelem
 Element which integration rule is coupled to. More...
 
integrationDomain intdomain
 Integration domain. More...
 
std::vector< GaussPoint * > gaussPoints
 Array containing integration points. More...
 
int firstLocalStrainIndx
 firstLocalStrainIndx and lastLocalStrainIndx indexes describe range of components (strains for example) for which receiver integration points apply. More...
 
int lastLocalStrainIndx
 
bool isDynamic
 Flag indicating that rule is dynamic, ie, its gauss points (their number, coordinates, weights) can change during computation. More...
 

Detailed Description

Abstract base class representing integration rule.

The integration rule is a collection of integration points used to numerically integrate some formula. The number of integration points and their coordinates and integration weights depends on integration rule type (rule for integration in 1d, 2d, 3d) and required accuracy. General services for initialization are declared. Services for integration point retrieval are provided.

In general, finite elements can have multiple integration rules, for different tasks or when some components are integrated using reduced or selective integration. Therefore, first and last index variables are introduced to characterize components for which given integration rule applies.

The integration rule is a rather passive object. It does not perform numerical integration - it just provide way how to set up correct integration points and weights.

Because integration points contain related history parameters (using material status), the unique copy of integration rule must exist on each element. The integration rule is exclusively possessed by particular finite element.

Tasks:

  • instanciating yourself
  • returning number of integration points used
  • returning requested integration point - method getIntegrationPoint
  • returning interval of components (i.e.of local strain vector), where apply
  • returning array of gauss points, according to specific integration rule (Gauss rule, Newton-Cotes rule, ...). integration points and corresponding weights are stored in Gauss point class.
  • printing yourself
  • updating yourself
  • initializing for new time step
  • saving & restoring context

Definition at line 94 of file integrationrule.h.

Constructor & Destructor Documentation

oofem::IntegrationRule::IntegrationRule ( int  n,
Element e,
int  startIndx,
int  endIndx,
bool  dynamic 
)

Constructor.

Parameters
nNumber associated with receiver.
eReference to element.
startIndxFirst component, for which rule applies.
endIndxLast component, for which rule applies.
dynamicFlag indicating that receiver can change.

Definition at line 44 of file integrationrule.C.

References oofem::_UnknownIntegrationDomain, elem, firstLocalStrainIndx, intdomain, isDynamic, lastLocalStrainIndx, and number.

oofem::IntegrationRule::IntegrationRule ( int  n,
Element e 
)

Constructor.

Parameters
nNumber associated with receiver.
eReference to element.

Definition at line 54 of file integrationrule.C.

References oofem::_UnknownIntegrationDomain, elem, firstLocalStrainIndx, intdomain, isDynamic, lastLocalStrainIndx, and number.

oofem::IntegrationRule::~IntegrationRule ( )
virtual

Destructor.

Definition at line 64 of file integrationrule.C.

References clear().

Member Function Documentation

std::vector< GaussPoint *>:: iterator oofem::IntegrationRule::begin ( )
inline

Definition at line 119 of file integrationrule.h.

void oofem::IntegrationRule::clear ( )

Clears the receiver, ie deallocates all integration points.

Definition at line 71 of file integrationrule.C.

References gaussPoints.

Referenced by restoreContext(), and ~IntegrationRule().

std::vector< GaussPoint *>:: iterator oofem::IntegrationRule::end ( )
inline

Definition at line 120 of file integrationrule.h.

std :: string oofem::IntegrationRule::errorInfo ( const char *  func) const
inline

Error printing helper.

Definition at line 249 of file integrationrule.h.

GaussPoint * oofem::IntegrationRule::findIntegrationPointClosestTo ( const FloatArray lcoord)

Scans through the integration points and finds the one closest to the given (local) coordinate.

Definition at line 95 of file integrationrule.C.

References oofem::FloatArray::distance_square(), and oofem::GaussPoint::giveNaturalCoordinates().

int oofem::IntegrationRule::getEndIndexOfLocalStrainWhereApply ( )
inline

Returns last component index, for which receiver applies.

Returns
Last local strain index.

Definition at line 162 of file integrationrule.h.

GaussPoint * oofem::IntegrationRule::getIntegrationPoint ( int  n)

Access particular integration point of receiver.

Parameters
nIntegration point number (should be in range 0,.., giveNumberOfIntegrationPoints()-1).

Definition at line 82 of file integrationrule.C.

References gaussPoints, giveNumberOfIntegrationPoints(), and OOFEM_ERROR.

Referenced by oofem::ElementErrorCheckingRule::check(), oofem::TrPlaneStrRot::computeBmatrixAt(), oofem::CCTPlate::computeBodyLoadVectorAt(), oofem::TrPlaneStrRot3d::computeBodyLoadVectorAt(), oofem::TrPlanestressRotAllman3d::computeBodyLoadVectorAt(), oofem::DKTPlate3d::computeBodyLoadVectorAt(), oofem::CCTPlate3d::computeBodyLoadVectorAt(), oofem::DKTPlate::computeBodyLoadVectorAt(), oofem::Node2NodeContact::computeContactForces(), oofem::Node2NodeContactL::computeContactForces(), oofem::Node2NodeContactL::computeContactTangent(), oofem::Shell7BaseXFEM::computeEnrTractionForce(), oofem::TransportGradientNeumann::computeEta(), oofem::Tr_Warp::computeFirstMomentOfArea(), oofem::Shell7Base::computeInterLaminarStressesAt(), oofem::LIBeam3dNL2::computeStiffnessMatrix(), oofem::LIBeam3dNL::computeStiffnessMatrix(), oofem::LIBeam3dNL::computeTempCurv(), oofem::LIBeam3dNL2::computeTempCurv(), oofem::DKTPlate::computeVertexBendingMoments(), oofem::TransportGradientDirichlet::computeXi(), oofem::ContactElement::ContactElement(), oofem::LTRSpace::drawScalar(), oofem::IntElPoint::drawScalar(), oofem::Lattice2d::giveCrackFlag(), oofem::Lattice2d::giveCrackWidth(), oofem::Lattice2d::giveDeltaDissipation(), oofem::Lattice2d::giveDissipation(), oofem::LIBeam3dNL2::giveInternalForcesVector(), oofem::LIBeam3dNL::giveInternalForcesVector(), oofem::Lattice2d_mt::giveMass(), oofem::Lattice2d::giveNormalStress(), oofem::Lattice2d::giveOldCrackWidth(), oofem::Lattice2d::giveOldNormalStress(), oofem::Lattice2d_mt::giveOldPressure(), oofem::Lattice2d_mt::givePressure(), oofem::Lattice2d::hasBeenUpdated(), oofem::NCPrincipalStrain::nucleateEnrichmentItems(), oofem::NCPrincipalStress::nucleateEnrichmentItems(), oofem::GnuplotExportModule::outputInterfaceEl(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem1D(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem2D(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem3D(), oofem::ErrorCheckingExportModule::writeCheck(), oofem::Tr_Warp::ZZNodalRecoveryMI_computeNNMatrix(), and oofem::Tr_Warp::ZZNodalRecoveryMI_computeNValProduct().

virtual int oofem::IntegrationRule::getRequiredNumberOfIntegrationPoints ( integrationDomain  dType,
int  approxOrder 
)
inlinevirtual

Abstract service.

Returns required number of integration points to exactly integrate polynomial of order approxOrder on given domain. When approxOrder is too large and is not supported by implementation method returns -1. Must be overloaded by derived classes.

Reimplemented in oofem::GaussIntegrationRule, and oofem::LobattoIntegrationRule.

Definition at line 215 of file integrationrule.h.

Referenced by oofem::Q27Space::GetSurfaceIntegrationRule(), oofem::QBrick1_ht::GetSurfaceIntegrationRule(), oofem::Tetrah1_ht::GetSurfaceIntegrationRule(), oofem::QSpace::GetSurfaceIntegrationRule(), oofem::TrPlaneStrRot3d::GetSurfaceIntegrationRule(), oofem::Brick1_ht::GetSurfaceIntegrationRule(), oofem::CCTPlate3d::GetSurfaceIntegrationRule(), oofem::QDKTPlate::GetSurfaceIntegrationRule(), oofem::DKTPlate3d::GetSurfaceIntegrationRule(), oofem::LTRSpace::GetSurfaceIntegrationRule(), oofem::Quad1PlateSubSoil::GetSurfaceIntegrationRule(), oofem::Tria1PlateSubSoil::GetSurfaceIntegrationRule(), oofem::LSpace::GetSurfaceIntegrationRule(), oofem::DKTPlate::GetSurfaceIntegrationRule(), oofem::MITC4Shell::GetSurfaceIntegrationRule(), oofem::FEInterpolation3d::giveBoundaryEdgeIntegrationRule(), oofem::FEInterpolation::giveBoundaryEdgeIntegrationRule(), oofem::FEI3dHexaTriQuad::giveBoundaryIntegrationRule(), oofem::FEI3dHexaLin::giveBoundaryIntegrationRule(), oofem::FEI3dTetLin::giveBoundaryIntegrationRule(), oofem::FEI3dWedgeQuad::giveBoundaryIntegrationRule(), oofem::FEI3dWedgeLin::giveBoundaryIntegrationRule(), oofem::FEI3dTetQuad::giveBoundaryIntegrationRule(), oofem::FEI3dHexaQuad::giveBoundaryIntegrationRule(), oofem::FEInterpolation::giveBoundaryIntegrationRule(), oofem::FEInterpolation::giveBoundarySurfaceIntegrationRule(), oofem::FEI2dQuadBiQuad::giveIntegrationRule(), oofem::FEI3dHexaTriQuad::giveIntegrationRule(), oofem::FEI2dQuadConst::giveIntegrationRule(), oofem::FEI2dTrConst::giveIntegrationRule(), oofem::FEI2dQuadLin::giveIntegrationRule(), oofem::FEI2dTrQuad::giveIntegrationRule(), oofem::FEI2dTrLin::giveIntegrationRule(), oofem::FEI3dLineLin::giveIntegrationRule(), oofem::FEI3dHexaLin::giveIntegrationRule(), oofem::FEI2dLineQuad::giveIntegrationRule(), oofem::FEI2dLineLin::giveIntegrationRule(), oofem::FEI3dTetLin::giveIntegrationRule(), oofem::FEI2dQuadQuad::giveIntegrationRule(), oofem::FEInterpolation1d::giveIntegrationRule(), oofem::FEI3dTrLin::giveIntegrationRule(), oofem::FEI3dTetQuad::giveIntegrationRule(), oofem::FEI3dTrQuad::giveIntegrationRule(), oofem::FEI3dHexaQuad::giveIntegrationRule(), oofem::FEInterpolation::giveIntegrationRule(), and oofem::StructuralElement::giveNumberOfIPForMassMtrxIntegration().

int oofem::IntegrationRule::getStartIndexOfLocalStrainWhereApply ( )
inline

Returns starting component index, for which receiver applies.

Returns
First local strain index.

Definition at line 157 of file integrationrule.h.

virtual const char* oofem::IntegrationRule::giveClassName ( ) const
inlinevirtual
Element* oofem::IntegrationRule::giveElement ( )
inline
integrationDomain oofem::IntegrationRule::giveIntegrationDomain ( ) const
inline
virtual IntegrationRuleType oofem::IntegrationRule::giveIntegrationRuleType ( ) const
inlinevirtual

Reimplemented in oofem::GaussIntegrationRule, and oofem::LobattoIntegrationRule.

Definition at line 250 of file integrationrule.h.

References oofem::IRT_None.

int oofem::IntegrationRule::giveNumber ( )
inline

Returns receiver number.

Definition at line 205 of file integrationrule.h.

Referenced by oofem::LayeredCrossSection::giveIPValue(), and oofem::GaussPoint::printOutputAt().

int oofem::IntegrationRule::giveNumberOfIntegrationPoints ( ) const
inline

Returns number of integration points of receiver.

Definition at line 143 of file integrationrule.h.

Referenced by oofem::MMALeastSquareProjection::__init(), oofem::Shell7BaseXFEM::computeEnrTractionForce(), oofem::MatlabExportModule::doOutputIntegrationPointFields(), getIntegrationPoint(), oofem::LayeredCrossSection::giveCharMaterialStiffnessMatrix(), oofem::LayeredCrossSection::giveIPValue(), oofem::LayeredCrossSection::giveRealStress_3d(), oofem::LayeredCrossSection::giveStiffnessMatrix_3d(), oofem::NonlocalMaterialExtensionInterface::manipulateWeight(), oofem::NCPrincipalStrain::nucleateEnrichmentItems(), oofem::NCPrincipalStress::nucleateEnrichmentItems(), oofem::GnuplotExportModule::outputInterfaceEl(), oofem::GaussIntegrationRule::SetUpPointsOn2DEmbeddedLine(), oofem::GaussIntegrationRule::SetUpPointsOn3dDegShell(), oofem::GaussIntegrationRule::SetUpPointsOn3dDegShellLayers(), oofem::LobattoIntegrationRule::SetUpPointsOnCube(), oofem::GaussIntegrationRule::SetUpPointsOnCube(), oofem::GaussIntegrationRule::SetUpPointsOnCubeLayers(), oofem::DiscontinuousSegmentIntegrationRule::SetUpPointsOnLine(), oofem::LobattoIntegrationRule::SetUpPointsOnLine(), oofem::GaussIntegrationRule::SetUpPointsOnLine(), oofem::LobattoIntegrationRule::SetUpPointsOnSquare(), oofem::GaussIntegrationRule::SetUpPointsOnSquare(), oofem::GaussIntegrationRule::SetUpPointsOnTetrahedra(), oofem::PatchIntegrationRule::SetUpPointsOnTriangle(), oofem::GaussIntegrationRule::SetUpPointsOnTriangle(), oofem::PatchIntegrationRule::SetUpPointsOnWedge(), oofem::GaussIntegrationRule::SetUpPointsOnWedge(), oofem::LayeredIntegrationRule::SetUpPointsOnWedge(), oofem::GaussIntegrationRule::SetUpPointsOnWedgeLayers(), oofem::Quad1PlaneStrain::SPRNodalRecoveryMI_giveNumberOfIP(), oofem::L4Axisymm::SPRNodalRecoveryMI_giveNumberOfIP(), oofem::PlaneStress2d::SPRNodalRecoveryMI_giveNumberOfIP(), oofem::LSpace::SPRNodalRecoveryMI_giveNumberOfIP(), oofem::Axisymm3d::SPRNodalRecoveryMI_giveNumberOfIP(), oofem::LTRSpace::SPRNodalRecoveryMI_giveNumberOfIP(), oofem::MITC4Shell::SPRNodalRecoveryMI_giveNumberOfIP(), oofem::ErrorCheckingExportModule::writeCheck(), oofem::Tr_Warp::ZZNodalRecoveryMI_computeNNMatrix(), and oofem::Tr_Warp::ZZNodalRecoveryMI_computeNValProduct().

virtual IRResultType oofem::IntegrationRule::initializeFrom ( InputRecord ir)
inlinevirtual
void oofem::IntegrationRule::printOutputAt ( FILE *  file,
TimeStep tStep 
)
virtual

Prints receiver's output to given stream.

Invokes printOutputAt service on all receiver's integration points.

Definition at line 111 of file integrationrule.C.

References oofem::GaussPoint::printOutputAt().

contextIOResultType oofem::IntegrationRule::restoreContext ( DataStream stream,
ContextMode  mode,
void *  obj 
)
virtual

Restores receiver's context to stream.

Calls restoreContext service for all receiver's integration points. Note: does not call the FEMComponent::restoreContext service, in order not to write class id info for each integration rule.

Parameters
streamInput stream.
modeDetermines amount of info available in stream (state, definition, ...).
objShould be a pointer to invoking element, ie., to which the receiver will belong to.
Exceptions
ContextIOERRIf error encountered.

Reimplemented in oofem::PatchIntegrationRule.

Definition at line 194 of file integrationrule.C.

References oofem::CIO_IOERR, oofem::CIO_OK, clear(), CM_Definition, firstLocalStrainIndx, gaussPoints, oofem::GaussPoint::giveCrossSection(), isDynamic, lastLocalStrainIndx, oofem::DataStream::read(), oofem::CrossSection::restoreIPContext(), oofem::FloatArray::restoreYourself(), and THROW_CIOERR.

Referenced by oofem::PatchIntegrationRule::restoreContext().

contextIOResultType oofem::IntegrationRule::saveContext ( DataStream stream,
ContextMode  mode,
void *  obj 
)
virtual

Saves receiver's context to stream.

Calls saveContext service for all receiver's integration points. Note: does not call the FEMComponent::saveContext service, in order not to write class id info for each integration rule.

Parameters
streamOutput stream.
modeDetermines amount of info required in stream (state, definition, ...).
objSpecial parameter.
Exceptions
ContextIOERRIf error encountered.

Reimplemented in oofem::PatchIntegrationRule.

Definition at line 130 of file integrationrule.C.

References oofem::CIO_IOERR, oofem::CIO_OK, CM_Definition, firstLocalStrainIndx, gaussPoints, oofem::GaussPoint::giveCrossSection(), oofem::GaussPoint::giveMaterialMode(), oofem::GaussPoint::giveNaturalCoordinates(), oofem::GaussPoint::giveWeight(), isDynamic, lastLocalStrainIndx, oofem::CrossSection::saveIPContext(), oofem::FloatArray::storeYourself(), THROW_CIOERR, and oofem::DataStream::write().

Referenced by oofem::PatchIntegrationRule::saveContext().

int oofem::IntegrationRule::setUpEmbeddedIntegrationPoints ( integrationDomain  intdomain,
int  nPoints,
MaterialMode  matMode,
const std::vector< FloatArray > &  coords 
)

Initializes the receiver.

Receiver integration points are created according to given parameters.

Parameters
intdomainDescribes integration domain.
nPointsRequired number of integration points of receiver.
matModeMaterial mode of receiver's integration points.
coords
Returns
Number of points.

Definition at line 330 of file integrationrule.C.

References oofem::_Embedded2dLine, intdomain, OOFEM_ERROR, and SetUpPointsOn2DEmbeddedLine().

int oofem::IntegrationRule::setUpIntegrationPoints ( integrationDomain  intdomain,
int  nPointsXY,
int  nPointsZ,
MaterialMode  matMode 
)

Initializes the receiver.

Receiver integration points are created according to given parameters.

Parameters
intdomainDescribes integration domain.
nPointsXYRequired number of integration points of receiver in plane XY.
nPointsZRequired number of integration points of receiver in Z direction.
matModeMaterial mode of receiver's integration points.
Returns
Number of points.

Definition at line 313 of file integrationrule.C.

References oofem::_3dDegShell, intdomain, OOFEM_ERROR, and SetUpPointsOn3dDegShell().

int oofem::IntegrationRule::SetUpPoint ( MaterialMode  mode)
virtual int oofem::IntegrationRule::SetUpPointsOn2DEmbeddedLine ( int  nPoints,
MaterialMode  mode,
const FloatArray coord0,
const FloatArray coord1 
)
inlinevirtual

Sets up integration points on 2D embedded line inside 2D volume (the list of local coordinates should be provided).

Parameters
nPointsNumber of points along line.

Reimplemented in oofem::GaussIntegrationRule.

Definition at line 327 of file integrationrule.h.

Referenced by setUpEmbeddedIntegrationPoints().

virtual int oofem::IntegrationRule::SetUpPointsOn3dDegShell ( int  nPointsXY,
int  nPointsZ,
MaterialMode  mode 
)
inlinevirtual

Sets up receiver's integration points on shell integration domain.

Default implementation does not sets up any integration points and returns 0. Must be overloaded by derived classes.

Parameters
nPointsXYNumber of integration points in the "xi-eta"-plane.
nPointsZNumber of integration points in the "zeta"-direction
Returns
Number of integration points.

Reimplemented in oofem::GaussIntegrationRule.

Definition at line 286 of file integrationrule.h.

Referenced by setUpIntegrationPoints().

virtual int oofem::IntegrationRule::SetUpPointsOn3dDegShellLayers ( int  nPointsXY,
int  nPointsZ,
MaterialMode  mode,
const FloatArray layerThickness 
)
inlinevirtual

Sets up receiver's integration points on shell integration domain wih layers.

Default implementation does not sets up any integration points and returns 0. Must be overloaded by derived classes.

Parameters
nPointsXYNumber of integration points in the "xi-eta"-plane.
nPointsZNumber of integration points in the "zeta"-direction
layerThicknessArray of thicknesses of individual layers
Returns
Number of integration points.

Reimplemented in oofem::GaussIntegrationRule.

Definition at line 296 of file integrationrule.h.

Referenced by oofem::LayeredCrossSection::setupIntegrationPoints().

virtual int oofem::IntegrationRule::SetUpPointsOnCube ( int  ,
MaterialMode  mode 
)
inlinevirtual

Sets up receiver's integration points on unit cube integration domain.

Default implementation does not sets up any integration points and returns 0. Must be overloaded by derived classes.

Returns
Number of integration points.

Reimplemented in oofem::GaussIntegrationRule, and oofem::LobattoIntegrationRule.

Definition at line 303 of file integrationrule.h.

Referenced by oofem::FEI3dHexaTriQuad::giveIntegrationRule(), oofem::FEI3dHexaLin::giveIntegrationRule(), oofem::FEI3dHexaQuad::giveIntegrationRule(), and setUpIntegrationPoints().

virtual int oofem::IntegrationRule::SetUpPointsOnCubeLayers ( int  nPoints1,
int  nPoints2,
int  nPointsDepth,
MaterialMode  mode,
const FloatArray layerThickness 
)
inlinevirtual

Sets up receiver's integration points on unit cube integration domain divided into layers in the zeta-direction.

Default implementation does not sets up any integration points and returns 0. Must be overloaded by derived classes.

Parameters
nPoints1Number of integration points in the "xi"-direction.
nPoints2Number of integration points in the "eta"-direction.
nPointsDepthNumber of integration points in the "zeta"-direction
layerThicknessArray of thicknesses of individual layers
Returns
Number of integration points.

Reimplemented in oofem::GaussIntegrationRule.

Definition at line 314 of file integrationrule.h.

Referenced by oofem::LayeredCrossSection::setupIntegrationPoints().

virtual int oofem::IntegrationRule::SetUpPointsOnLine ( int  ,
MaterialMode  mode 
)
inlinevirtual

Sets up receiver's integration points on unit line integration domain.

Default implementation does not sets up any integration points and returns 0. Must be overloaded by derived classes.

Returns
Number of integration points.

Reimplemented in oofem::GaussIntegrationRule, oofem::LobattoIntegrationRule, and oofem::DiscontinuousSegmentIntegrationRule.

Definition at line 263 of file integrationrule.h.

Referenced by oofem::FEInterpolation3d::giveBoundaryEdgeIntegrationRule(), oofem::FEI3dLineLin::giveIntegrationRule(), oofem::FEI2dLineQuad::giveIntegrationRule(), oofem::FEI2dLineLin::giveIntegrationRule(), oofem::FEInterpolation1d::giveIntegrationRule(), oofem::FEInterpolation::giveIntegrationRule(), and setUpIntegrationPoints().

virtual int oofem::IntegrationRule::SetUpPointsOnTetrahedra ( int  ,
MaterialMode  mode 
)
inlinevirtual

Sets up receiver's integration points on tetrahedra (volume coords) integration domain.

Default implementation does not sets up any integration points and returns 0. Must be overloaded by derived classes.

Returns
Number of integration points.

Reimplemented in oofem::GaussIntegrationRule.

Definition at line 321 of file integrationrule.h.

Referenced by oofem::FEI3dTetLin::giveIntegrationRule(), oofem::FEI3dTetQuad::giveIntegrationRule(), and setUpIntegrationPoints().

virtual int oofem::IntegrationRule::SetUpPointsOnWedge ( int  nPointsTri,
int  nPointsDepth,
MaterialMode  mode 
)
inlinevirtual

Sets up receiver's integration points on a wedge integration domain.

Default implementation does not sets up any integration points and returns 0. Must be overloaded by derived classes.

Parameters
nPointsTriNumber of points over the triangle cross-section.
nPointsDepthNumber of points over the depth.
Returns
Number of integration points.

Reimplemented in oofem::LayeredIntegrationRule, oofem::GaussIntegrationRule, and oofem::PatchIntegrationRule.

Definition at line 338 of file integrationrule.h.

Referenced by oofem::FEI3dWedgeQuad::giveIntegrationRule(), oofem::FEI3dWedgeLin::giveIntegrationRule(), and setUpIntegrationPoints().

virtual int oofem::IntegrationRule::SetUpPointsOnWedgeLayers ( int  nPointsTri,
int  nPointsDepth,
MaterialMode  mode,
const FloatArray layerThickness 
)
inlinevirtual

Sets up receiver's integration points on a wedge integration domain divided into layers in the zeta-direction.

Default implementation does not sets up any integration points and returns 0. Must be overloaded by derived classes.

Parameters
nPointsTriNumber of points over the triangle cross-section.
nPointsDepthNumber of points over the depth.
layerThicknessArray of thicknesses of individual layers
Returns
Number of integration points.

Reimplemented in oofem::GaussIntegrationRule.

Definition at line 348 of file integrationrule.h.

Referenced by oofem::LayeredCrossSection::setupIntegrationPoints().

void oofem::IntegrationRule::updateYourself ( TimeStep tStep)

Updates receiver state.

Calls updateYourself service of all receiver's integration points.

Definition at line 120 of file integrationrule.C.

References oofem::GaussPoint::updateYourself().

Member Data Documentation

Element* oofem::IntegrationRule::elem
protected
int oofem::IntegrationRule::firstLocalStrainIndx
protected

firstLocalStrainIndx and lastLocalStrainIndx indexes describe range of components (strains for example) for which receiver integration points apply.

Definition at line 110 of file integrationrule.h.

Referenced by IntegrationRule(), restoreContext(), saveContext(), oofem::PatchIntegrationRule::SetUpPointsOnTriangle(), and oofem::PatchIntegrationRule::SetUpPointsOnWedge().

bool oofem::IntegrationRule::isDynamic
protected

Flag indicating that rule is dynamic, ie, its gauss points (their number, coordinates, weights) can change during computation.

Then some more data should be stored/restored from context file to reflect such dynamic feature.

Definition at line 116 of file integrationrule.h.

Referenced by IntegrationRule(), restoreContext(), and saveContext().

int oofem::IntegrationRule::lastLocalStrainIndx
protected
int oofem::IntegrationRule::number
protected

Number.

Definition at line 98 of file integrationrule.h.

Referenced by IntegrationRule().


The documentation for this class was generated from the following files:

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:36 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011