OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Abstract base class representing integration rule. More...
#include <integrationrule.h>
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... | |
GaussPoint * | getIntegrationPoint (int n) |
Access particular integration point of receiver. More... | |
GaussPoint * | findIntegrationPointClosestTo (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... | |
Element * | giveElement () |
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 IntArray * | giveKnotSpan () |
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... | |
Element * | elem |
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... | |
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:
Definition at line 94 of file integrationrule.h.
oofem::IntegrationRule::IntegrationRule | ( | int | n, |
Element * | e, | ||
int | startIndx, | ||
int | endIndx, | ||
bool | dynamic | ||
) |
Constructor.
n | Number associated with receiver. |
e | Reference to element. |
startIndx | First component, for which rule applies. |
endIndx | Last component, for which rule applies. |
dynamic | Flag 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.
n | Number associated with receiver. |
e | Reference to element. |
Definition at line 54 of file integrationrule.C.
References oofem::_UnknownIntegrationDomain, elem, firstLocalStrainIndx, intdomain, isDynamic, lastLocalStrainIndx, and number.
|
virtual |
|
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().
|
inline |
Definition at line 120 of file integrationrule.h.
|
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().
|
inline |
Returns last component index, for which receiver applies.
Definition at line 162 of file integrationrule.h.
GaussPoint * oofem::IntegrationRule::getIntegrationPoint | ( | int | n | ) |
Access particular integration point of receiver.
n | Integration 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().
|
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().
|
inline |
Returns starting component index, for which receiver applies.
Definition at line 157 of file integrationrule.h.
|
inlinevirtual |
Reimplemented in oofem::LayeredIntegrationRule, oofem::GaussIntegrationRule, oofem::PatchIntegrationRule, and oofem::LobattoIntegrationRule.
Definition at line 247 of file integrationrule.h.
|
inline |
Returns reference to element containing receiver.
Definition at line 203 of file integrationrule.h.
Referenced by oofem::TutorialMaterial::give3dMaterialStiffnessMatrix(), oofem::GaussPoint::giveElement(), oofem::TutorialMaterial::giveRealStressVector_3d(), and oofem::GaussIntegrationRule::SetUpPointsOn2DEmbeddedLine().
|
inline |
Returns the domain for the receiver.
Definition at line 207 of file integrationrule.h.
Referenced by oofem::LayeredCrossSection::giveIPValue(), oofem::LayeredCrossSection::giveMaterial(), oofem::LayeredCrossSection::giveRealStress_3d(), and oofem::LayeredCrossSection::giveStiffnessMatrix_3d().
|
inlinevirtual |
Reimplemented in oofem::GaussIntegrationRule, and oofem::LobattoIntegrationRule.
Definition at line 250 of file integrationrule.h.
References oofem::IRT_None.
|
inlinevirtual |
Returns receiver sub patch indices (if apply).
Reimplemented in oofem::IGAIntegrationElement.
Definition at line 245 of file integrationrule.h.
Referenced by oofem::PlaneStressStructuralElementEvaluator::computeBMatrixAt(), oofem::Space3dStructuralElementEvaluator::computeBMatrixAt(), oofem::PlaneStressStructuralElementEvaluator::computeNMatrixAt(), oofem::Space3dStructuralElementEvaluator::computeNMatrixAt(), oofem::PlaneStressStructuralElementEvaluator::computeVolumeAround(), oofem::Space3dStructuralElementEvaluator::computeVolumeAround(), and oofem::drawIGAPatchDeformedGeometry().
|
inline |
Returns receiver number.
Definition at line 205 of file integrationrule.h.
Referenced by oofem::LayeredCrossSection::giveIPValue(), and oofem::GaussPoint::printOutputAt().
|
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().
|
inlinevirtual |
Reimplemented in oofem::LayeredIntegrationRule, oofem::GaussIntegrationRule, and oofem::LobattoIntegrationRule.
Definition at line 251 of file integrationrule.h.
References oofem::IRRT_OK.
|
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().
|
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.
stream | Input stream. |
mode | Determines amount of info available in stream (state, definition, ...). |
obj | Should be a pointer to invoking element, ie., to which the receiver will belong to. |
ContextIOERR | If 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().
|
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.
stream | Output stream. |
mode | Determines amount of info required in stream (state, definition, ...). |
obj | Special parameter. |
ContextIOERR | If 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.
intdomain | Describes integration domain. |
nPoints | Required number of integration points of receiver. |
matMode | Material mode of receiver's integration points. |
coords |
Definition at line 330 of file integrationrule.C.
References oofem::_Embedded2dLine, intdomain, OOFEM_ERROR, and SetUpPointsOn2DEmbeddedLine().
int oofem::IntegrationRule::setUpIntegrationPoints | ( | integrationDomain | intdomain, |
int | nPoints, | ||
MaterialMode | matMode | ||
) |
Initializes the receiver.
Receiver integration points are created according to given parameters.
intdomain | Describes integration domain. |
nPoints | Required number of integration points of receiver. |
matMode | Material mode of receiver's integration points. |
Definition at line 276 of file integrationrule.C.
References oofem::_Cube, oofem::_Line, oofem::_Square, oofem::_Tetrahedra, oofem::_Triangle, oofem::_Wedge, intdomain, OOFEM_ERROR, SetUpPointsOnCube(), SetUpPointsOnLine(), SetUpPointsOnSquare(), SetUpPointsOnTetrahedra(), SetUpPointsOnTriangle(), and SetUpPointsOnWedge().
Referenced by oofem::TR1_2D_PFEM::computeEdgeBCSubVectorAt(), oofem::PFEMElement2d::computePrescribedRhsVector(), oofem::FEInterpolation::giveBoundaryEdgeIntegrationRule(), oofem::FEInterpolation::giveBoundaryIntegrationRule(), oofem::FEInterpolation::giveBoundarySurfaceIntegrationRule(), oofem::LayeredCrossSection::setupIntegrationPoints(), oofem::CrossSection::setupIntegrationPoints(), oofem::MITC4Shell::setupIRForMassMtrxIntegration(), and oofem::StructuralElement::setupIRForMassMtrxIntegration().
int oofem::IntegrationRule::setUpIntegrationPoints | ( | integrationDomain | intdomain, |
int | nPointsXY, | ||
int | nPointsZ, | ||
MaterialMode | matMode | ||
) |
Initializes the receiver.
Receiver integration points are created according to given parameters.
intdomain | Describes integration domain. |
nPointsXY | Required number of integration points of receiver in plane XY. |
nPointsZ | Required number of integration points of receiver in Z direction. |
matMode | Material mode of receiver's integration points. |
Definition at line 313 of file integrationrule.C.
References oofem::_3dDegShell, intdomain, OOFEM_ERROR, and SetUpPointsOn3dDegShell().
int oofem::IntegrationRule::SetUpPoint | ( | MaterialMode | mode | ) |
Trivial implementation, only creates a single point.
Definition at line 350 of file integrationrule.C.
References oofem::_Point, gaussPoints, and intdomain.
Referenced by oofem::ContactElement::ContactElement(), oofem::FEInterpolation1d::giveBoundaryIntegrationRule(), and oofem::Node2NodeContact::setupIntegrationPoints().
|
inlinevirtual |
Sets up integration points on 2D embedded line inside 2D volume (the list of local coordinates should be provided).
nPoints | Number of points along line. |
Reimplemented in oofem::GaussIntegrationRule.
Definition at line 327 of file integrationrule.h.
Referenced by setUpEmbeddedIntegrationPoints().
|
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.
nPointsXY | Number of integration points in the "xi-eta"-plane. |
nPointsZ | Number of integration points in the "zeta"-direction |
Reimplemented in oofem::GaussIntegrationRule.
Definition at line 286 of file integrationrule.h.
Referenced by setUpIntegrationPoints().
|
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.
nPointsXY | Number of integration points in the "xi-eta"-plane. |
nPointsZ | Number of integration points in the "zeta"-direction |
layerThickness | Array of thicknesses of individual layers |
Reimplemented in oofem::GaussIntegrationRule.
Definition at line 296 of file integrationrule.h.
Referenced by oofem::LayeredCrossSection::setupIntegrationPoints().
|
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.
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().
|
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.
nPoints1 | Number of integration points in the "xi"-direction. |
nPoints2 | Number of integration points in the "eta"-direction. |
nPointsDepth | Number of integration points in the "zeta"-direction |
layerThickness | Array of thicknesses of individual layers |
Reimplemented in oofem::GaussIntegrationRule.
Definition at line 314 of file integrationrule.h.
Referenced by oofem::LayeredCrossSection::setupIntegrationPoints().
|
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.
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().
|
inlinevirtual |
Sets up receiver's integration points on unit square integration domain.
Default implementation does not sets up any integration points and returns 0. Must be overloaded by derived classes.
Reimplemented in oofem::GaussIntegrationRule, and oofem::LobattoIntegrationRule.
Definition at line 277 of file integrationrule.h.
Referenced by oofem::Q27Space::GetSurfaceIntegrationRule(), oofem::QBrick1_ht::GetSurfaceIntegrationRule(), oofem::QSpace::GetSurfaceIntegrationRule(), oofem::Brick1_ht::GetSurfaceIntegrationRule(), oofem::QDKTPlate::GetSurfaceIntegrationRule(), oofem::Quad1PlateSubSoil::GetSurfaceIntegrationRule(), oofem::LSpace::GetSurfaceIntegrationRule(), oofem::MITC4Shell::GetSurfaceIntegrationRule(), oofem::FEI3dHexaTriQuad::giveBoundaryIntegrationRule(), oofem::FEI3dHexaLin::giveBoundaryIntegrationRule(), oofem::FEI3dWedgeQuad::giveBoundaryIntegrationRule(), oofem::FEI3dWedgeLin::giveBoundaryIntegrationRule(), oofem::FEI3dHexaQuad::giveBoundaryIntegrationRule(), oofem::FEI2dQuadBiQuad::giveIntegrationRule(), oofem::FEI2dQuadConst::giveIntegrationRule(), oofem::FEI2dQuadLin::giveIntegrationRule(), oofem::FEI2dQuadQuad::giveIntegrationRule(), and setUpIntegrationPoints().
|
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.
Reimplemented in oofem::GaussIntegrationRule.
Definition at line 321 of file integrationrule.h.
Referenced by oofem::FEI3dTetLin::giveIntegrationRule(), oofem::FEI3dTetQuad::giveIntegrationRule(), and setUpIntegrationPoints().
|
inlinevirtual |
Sets up receiver's integration points on triangular (area coords) integration domain.
Default implementation does not sets up any integration points and returns 0. Must be overloaded by derived classes.
Reimplemented in oofem::GaussIntegrationRule, oofem::LobattoIntegrationRule, and oofem::PatchIntegrationRule.
Definition at line 270 of file integrationrule.h.
Referenced by oofem::Shell7Base::computePressureForce(), oofem::Tetrah1_ht::GetSurfaceIntegrationRule(), oofem::TrPlaneStrRot3d::GetSurfaceIntegrationRule(), oofem::CCTPlate3d::GetSurfaceIntegrationRule(), oofem::DKTPlate3d::GetSurfaceIntegrationRule(), oofem::Tria1PlateSubSoil::GetSurfaceIntegrationRule(), oofem::LTRSpace::GetSurfaceIntegrationRule(), oofem::DKTPlate::GetSurfaceIntegrationRule(), oofem::FEI3dTetLin::giveBoundaryIntegrationRule(), oofem::FEI3dWedgeQuad::giveBoundaryIntegrationRule(), oofem::FEI3dWedgeLin::giveBoundaryIntegrationRule(), oofem::FEI3dTetQuad::giveBoundaryIntegrationRule(), oofem::FEI2dTrConst::giveIntegrationRule(), oofem::FEI2dTrQuad::giveIntegrationRule(), oofem::FEI2dTrLin::giveIntegrationRule(), oofem::FEI3dTrLin::giveIntegrationRule(), oofem::FEI3dTrQuad::giveIntegrationRule(), and setUpIntegrationPoints().
|
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.
nPointsTri | Number of points over the triangle cross-section. |
nPointsDepth | Number of points over the depth. |
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().
|
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.
nPointsTri | Number of points over the triangle cross-section. |
nPointsDepth | Number of points over the depth. |
layerThickness | Array of thicknesses of individual layers |
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().
|
protected |
Element which integration rule is coupled to.
Definition at line 100 of file integrationrule.h.
Referenced by IntegrationRule(), oofem::PatchIntegrationRule::SetUpPointsOnTriangle(), and oofem::PatchIntegrationRule::SetUpPointsOnWedge().
|
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().
|
protected |
Array containing integration points.
Definition at line 105 of file integrationrule.h.
Referenced by clear(), getIntegrationPoint(), restoreContext(), saveContext(), SetUpPoint(), 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(), and oofem::GaussIntegrationRule::SetUpPointsOnWedgeLayers().
|
protected |
Integration domain.
Definition at line 102 of file integrationrule.h.
Referenced by IntegrationRule(), setUpEmbeddedIntegrationPoints(), setUpIntegrationPoints(), SetUpPoint(), oofem::GaussIntegrationRule::SetUpPointsOn2DEmbeddedLine(), oofem::GaussIntegrationRule::SetUpPointsOn3dDegShell(), oofem::GaussIntegrationRule::SetUpPointsOn3dDegShellLayers(), oofem::LobattoIntegrationRule::SetUpPointsOnCube(), oofem::GaussIntegrationRule::SetUpPointsOnCube(), oofem::GaussIntegrationRule::SetUpPointsOnCubeLayers(), oofem::LobattoIntegrationRule::SetUpPointsOnLine(), oofem::GaussIntegrationRule::SetUpPointsOnLine(), oofem::LobattoIntegrationRule::SetUpPointsOnSquare(), oofem::GaussIntegrationRule::SetUpPointsOnSquare(), oofem::GaussIntegrationRule::SetUpPointsOnTetrahedra(), oofem::GaussIntegrationRule::SetUpPointsOnTriangle(), oofem::GaussIntegrationRule::SetUpPointsOnWedge(), and oofem::GaussIntegrationRule::SetUpPointsOnWedgeLayers().
|
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().
|
protected |
Definition at line 110 of file integrationrule.h.
Referenced by IntegrationRule(), restoreContext(), saveContext(), oofem::PatchIntegrationRule::SetUpPointsOnTriangle(), and oofem::PatchIntegrationRule::SetUpPointsOnWedge().
|
protected |