IntegrationRule Class Reference

Abstract base class representing integration rule. More...

#include <integrationrule.h>

Inheritance diagram for IntegrationRule:

Inheritance graph
[legend]
Collaboration diagram for IntegrationRule:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 IntegrationRule (int n, Element *e, int startIndx, int endIndx, bool dynamic)
 Constructor.
 IntegrationRule (int n, Element *e)
virtual ~IntegrationRule ()
 Destructor.
int getNumberOfIntegrationPoints ()
 Returns number of integration points of receiver.
GaussPointgetIntegrationPoint (int n)
 Access particular integration point of receiver.
int getStartIndexOfLocalStrainWhereApply ()
 Returns starting component index, for which receiver applies.
int getEndIndexOfLocalStrainWhereApply ()
 Returns last component index, for which receiver applies.
int setUpIntegrationPoints (integrationDomain mode, int nPoints, MaterialMode matMode)
 Initializes the receiver.
int setUpEmbeddedIntegrationPoints (integrationDomain mode, int nPoints, MaterialMode matMode, const FloatArray **coords)
 Initializes the receiver.
virtual void printOutputAt (FILE *file, TimeStep *stepN)
 Prints receiver's output to given stream.
void updateYourself (TimeStep *tStep)
 Updates receiver state.
void initForNewStep ()
 Initializes receiver.
ElementgiveElement ()
 Returns reference to element containing receiver.
GeometrygiveGeometry (GaussPoint *gp)
 Returns reference to geometry asscoiated with GaussPoint.
FEInterpolationgiveInterpolation (GaussPoint *gp)
 Returns reference to interpolation asscoiated with GaussPoint.
int giveNumber ()
 Returns the receiver number.
virtual int getRequiredNumberOfIntegrationPoints (integrationDomain dType, int approxOrder)
 Abstract service.
virtual contextIOResultType saveContext (DataStream *stream, ContextMode mode, void *obj)
 Saves receiver's context to stream.
virtual contextIOResultType restoreContext (DataStream *stream, ContextMode mode, void *obj)
 Restores receiver's context to stream.
void clear ()
 Clears the receiver, ie dealocates all integration points.
virtual classType giveClassID () const
 Returns classType id of receiver.
virtual const char * giveClassName () const
 Returns class name of the receiver.
virtual IRResultType initializeFrom (InputRecord *ir)

Protected Member Functions

virtual int SetUpPointsOnLine (int, MaterialMode, GaussPoint ***)
 Sets up receiver's integration points on unit line integration domain.
virtual int SetUpPointsOnTriagle (int, MaterialMode, GaussPoint ***)
 Sets up receiver's integration points on triangular (area coords) integration domain.
virtual int SetUpPointsOnSquare (int, MaterialMode, GaussPoint ***)
 Sets up receiver's integration points on unit square integration domain.
virtual int SetUpPointsOnCube (int, MaterialMode, GaussPoint ***)
 Sets up receiver's integration points on unit cube integration domain.
virtual int SetUpPointsOnTetrahedra (int, MaterialMode, GaussPoint ***)
 Sets up receiver's integration points on tetrahedra (volume coords) integration domain.
virtual int SetUpPointsOn2DEmbeddedLine (int nPoints, MaterialMode mode, GaussPoint ***, const FloatArray **coords)
 Sets up integration points on 2D embedded line inside 2D volume (the list of local coordinates should be provided).

Protected Attributes

int number
 number
Elementelem
GaussPoint ** gaussPointArray
 Array containing integration points.
int numberOfIntegrationPoints
 Number of integration point of receiver.
int firstLocalStrainIndx
 firstLocalStrainIndx and lastLocalStrainIndx indexes describe range of components (strains for example) for which receiver integration points apply.
int lastLocalStrainIndx
bool isDynamic
 flag indicating that rule is dynamic, ie, its gauss points (their number, coordinates, weights) can change during computation.


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 acurracy. General services for inicialization are declared. Services for integration point retrieval are provided.

In general, finite elements can have multiple integration rules, for diferrent 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 matarial status), the unique copy of integration rule must exist on each element. The integration rule is exclusively possessed by particular finite element.

Definition at line 77 of file integrationrule.h.


Constructor & Destructor Documentation

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

Constructor.

Parameters:
n number associated with receiver
domain reference to domain.
startIndx first component, for which rule applies
endIndx last component, for which rule applies
dynamic flag indicating that receiver can change

Definition at line 49 of file integrationrule.C.

References elem, firstLocalStrainIndx, gaussPointArray, isDynamic, lastLocalStrainIndx, number, and numberOfIntegrationPoints.

IntegrationRule::IntegrationRule ( int  n,
Element e 
)

IntegrationRule::~IntegrationRule (  )  [virtual]

Destructor.

Definition at line 71 of file integrationrule.C.

References clear().


Member Function Documentation

int IntegrationRule::getNumberOfIntegrationPoints (  )  [inline]

Returns number of integration points of receiver.

Definition at line 148 of file integrationrule.h.

References numberOfIntegrationPoints.

Referenced by MMALeastSquareProjection::__init(), MMAContainingElementProjection::__init(), Element::adaptiveFinish(), Element::adaptiveMap(), StructuralElement::adaptiveUpdate(), StructuralElement::addNonlocalStiffnessContributions(), NonlocalMaterialExtensionInterface::buildNonlocalPointTable(), TR1_2D_SUPG_AXI::computeAccelerationTerm_MB(), TR1_2D_SUPG2_AXI::computeAccelerationTerm_MB(), TR1_2D_SUPG2::computeAccelerationTerm_MB(), SUPGElement2::computeAccelerationTerm_MB(), TR1_2D_SUPG_AXI::computeAccelerationTerm_MC(), TR1_2D_SUPG2_AXI::computeAccelerationTerm_MC(), SUPGElement2::computeAccelerationTerm_MC(), TR1_2D_SUPG_AXI::computeAdvectionDerivativeTerm_MB(), TR1_2D_SUPG2_AXI::computeAdvectionDerivativeTerm_MB(), TR1_2D_SUPG2::computeAdvectionDerivativeTerm_MB(), SUPGElement2::computeAdvectionDerivativeTerm_MB(), TR1_2D_SUPG_AXI::computeAdvectionDerivativeTerm_MC(), TR1_2D_SUPG2_AXI::computeAdvectionDerivativeTerm_MC(), SUPGElement2::computeAdvectionDerivativeTerm_MC(), TR1_2D_SUPG_AXI::computeAdvectionTerm_MB(), TR1_2D_SUPG2_AXI::computeAdvectionTerm_MB(), TR1_2D_SUPG2::computeAdvectionTerm_MB(), SUPGElement2::computeAdvectionTerm_MB(), TR1_2D_SUPG_AXI::computeAdvectionTerm_MC(), TR1_2D_SUPG2_AXI::computeAdvectionTerm_MC(), SUPGElement2::computeAdvectionTerm_MC(), TR1_2D_SUPG_AXI::computeBCRhsTerm_MB(), TR1_2D_SUPG2_AXI::computeBCRhsTerm_MB(), TR1_2D_SUPG2::computeBCRhsTerm_MB(), SUPGElement2::computeBCRhsTerm_MB(), TR1_2D_SUPG_AXI::computeBCRhsTerm_MC(), TR1_2D_SUPG2_AXI::computeBCRhsTerm_MC(), SUPGElement2::computeBCRhsTerm_MC(), TransportElement::computeBCSubMtrxAt(), StructuralElement::computeBodyLoadVectorAt(), TransportElement::computeCapacitySubMatrix(), TransportElement::computeConductivitySubMatrix(), StructuralElement::computeConsistentMassMatrix(), TR1_2D_SUPG_AXI::computeDiffusionDerivativeTerm_MB(), TR1_2D_SUPG2_AXI::computeDiffusionDerivativeTerm_MB(), TR1_2D_SUPG2::computeDiffusionDerivativeTerm_MB(), SUPGElement2::computeDiffusionDerivativeTerm_MB(), TR1_2D_SUPG_AXI::computeDiffusionDerivativeTerm_MC(), TR1_2D_SUPG2_AXI::computeDiffusionDerivativeTerm_MC(), TR1_2D_SUPG_AXI::computeDiffusionTerm_MB(), TR1_2D_SUPG2_AXI::computeDiffusionTerm_MB(), TR1_2D_SUPG2::computeDiffusionTerm_MB(), SUPGElement2::computeDiffusionTerm_MB(), TR1_2D_SUPG_AXI::computeDiffusionTerm_MC(), TR1_2D_SUPG2_AXI::computeDiffusionTerm_MC(), TransportElement::computeEdgeBCSubVectorAt(), StructuralElement::computeEdgeLoadVectorAt(), LIBeam2dNL::computeInitialStressMatrix(), TransportElement::computeInternalSourceRhsSubVectorAt(), TransportElement::computeIntSourceLHSSubMatrix(), TR1_2D_SUPG_AXI::computeLinearAdvectionTerm_MC(), TR1_2D_SUPG2_AXI::computeLinearAdvectionTerm_MC(), SUPGElement2::computeLinearAdvectionTerm_MC(), TR1_2D_SUPG_AXI::computeLSICStabilizationTerm_MB(), TR1_2D_SUPG2_AXI::computeLSICStabilizationTerm_MB(), TR1_2D_SUPG2::computeLSICStabilizationTerm_MB(), SUPGElement2::computeLSICStabilizationTerm_MB(), SPRNodalRecoveryModel::computePatch(), StructuralElement::computePrescribedStrainLocalLoadVectorAt(), TR1_2D_SUPG_AXI::computePressureTerm_MB(), TR1_2D_SUPG2_AXI::computePressureTerm_MB(), SUPGElement2::computePressureTerm_MB(), TR1_2D_SUPG_AXI::computePressureTerm_MC(), TR1_2D_SUPG2_AXI::computePressureTerm_MC(), TR1_2D_SUPG2::computePressureTerm_MC(), SUPGElement2::computePressureTerm_MC(), StructuralElement::computeStiffnessMatrix(), NLStructuralElement::computeStiffnessMatrix(), StructuralElement::computeStiffnessMatrix_withIRulesAsSubcells(), NLStructuralElement::computeStiffnessMatrix_withIRulesAsSubcells(), TransportElement::computeSurfaceBCSubVectorAt(), StructuralElement::computeSurfaceLoadVectorAt(), Quad1PlaneStrain::DirectErrorIndicatorRCI_giveCharacteristicSize(), QTrPlaneStress2d::DirectErrorIndicatorRCI_giveCharacteristicSize(), PlaneStress2d::DirectErrorIndicatorRCI_giveCharacteristicSize(), HOMExportModule::doOutput(), HuertaRemeshingCriteria::estimateMeshDensities(), Element::estimatePackSize(), DummySpatialLocalizer::giveAllElementsWithIpWithinBox(), LSpace::giveCharacteristicLenght(), OctreeSpatialLocalizer::giveClosestIP(), DummySpatialLocalizer::giveClosestIP(), OctreeSpatialLocalizer::giveClosestIPWithinOctant(), ScalarErrorIndicator::giveElementError(), OctreeSpatialLocalizer::giveElementsWithIPWithinBox(), StructuralElement::giveInternalForcesVector(), NLStructuralElement::giveInternalForcesVector(), StructuralElement::giveNonlocalLocationArray(), MicroMaterial::giveRealStressVector(), LSpace::HuertaRemeshingCriteriaI_giveCharacteristicSize(), OctreeSpatialLocalizer::initElementIPDataStructure(), Element::ipEvaluator(), PY1_3D_SUPG::LS_PCS_computeF(), PY1_3D_SUPG::LS_PCS_computeVolume(), LSpace::NodalAveragingRecoveryMI_computeNodalValue(), Element::packUnknowns(), Element::predictRelativeComputationalCost(), NonlocalMaterialExtensionInterface::rebuildNonlocalPointTable(), HuertaErrorEstimator::solveRefinedElementProblem(), Quad1PlaneStrain::SPRNodalRecoveryMI_giveNumberOfIP(), PlaneStress2d::SPRNodalRecoveryMI_giveNumberOfIP(), LTRSpace::SPRNodalRecoveryMI_giveNumberOfIP(), LSpace::SPRNodalRecoveryMI_giveNumberOfIP(), L4Axisymm::SPRNodalRecoveryMI_giveNumberOfIP(), Axisymm3d::SPRNodalRecoveryMI_giveNumberOfIP(), Element::unpackAndUpdateUnknowns(), StructuralElement::updateBeforeNonlocalAverage(), TR1_2D_SUPG2_AXI::updateIntegrationRules(), TR1_2D_SUPG2::updateIntegrationRules(), TransportElement::updateInternalState(), SUPGElement2::updateInternalState(), SUPGElement::updateInternalState(), StructuralElement::updateInternalState(), CBSElement::updateInternalState(), TR1_2D_SUPG2_AXI::updateStabilizationCoeffs(), TR1_2D_SUPG2::updateStabilizationCoeffs(), SUPGElement2::updateStabilizationCoeffs(), ZZErrorEstimatorInterface::ZZErrorEstimatorI_computeElementContributions(), ZZNodalRecoveryModelInterface::ZZNodalRecoveryMI_computeNNMatrix(), and ZZNodalRecoveryModelInterface::ZZNodalRecoveryMI_computeNValProduct().

GaussPoint * IntegrationRule::getIntegrationPoint ( int  n  ) 

Access particular integration point of receiver.

Parameters:
n integration point number (should be in range 0,.., getNumberOfIntegrationPoints()-1).

Definition at line 98 of file integrationrule.C.

References gaussPointArray, numberOfIntegrationPoints, and OOFEM_ERROR2.

Referenced by MMALeastSquareProjection::__init(), MMAContainingElementProjection::__init(), Element::adaptiveMap(), StructuralElement::adaptiveUpdate(), StructuralElement::addNonlocalStiffnessContributions(), NonlocalMaterialExtensionInterface::buildNonlocalPointTable(), TR1_2D_SUPG_AXI::computeAccelerationTerm_MB(), TR1_2D_SUPG2_AXI::computeAccelerationTerm_MB(), TR1_2D_SUPG2::computeAccelerationTerm_MB(), SUPGElement2::computeAccelerationTerm_MB(), TR1_2D_SUPG_AXI::computeAccelerationTerm_MC(), TR1_2D_SUPG2_AXI::computeAccelerationTerm_MC(), SUPGElement2::computeAccelerationTerm_MC(), TR1_2D_SUPG_AXI::computeAdvectionDerivativeTerm_MB(), TR1_2D_SUPG2_AXI::computeAdvectionDerivativeTerm_MB(), TR1_2D_SUPG2::computeAdvectionDerivativeTerm_MB(), SUPGElement2::computeAdvectionDerivativeTerm_MB(), TR1_2D_SUPG_AXI::computeAdvectionDerivativeTerm_MC(), TR1_2D_SUPG2_AXI::computeAdvectionDerivativeTerm_MC(), SUPGElement2::computeAdvectionDerivativeTerm_MC(), TR1_2D_SUPG_AXI::computeAdvectionTerm_MB(), TR1_2D_SUPG2_AXI::computeAdvectionTerm_MB(), TR1_2D_SUPG2::computeAdvectionTerm_MB(), SUPGElement2::computeAdvectionTerm_MB(), TR1_2D_SUPG_AXI::computeAdvectionTerm_MC(), TR1_2D_SUPG2_AXI::computeAdvectionTerm_MC(), SUPGElement2::computeAdvectionTerm_MC(), TR1_2D_SUPG_AXI::computeBCRhsTerm_MB(), TR1_2D_SUPG2_AXI::computeBCRhsTerm_MB(), TR1_2D_SUPG2::computeBCRhsTerm_MB(), SUPGElement2::computeBCRhsTerm_MB(), TR1_2D_SUPG_AXI::computeBCRhsTerm_MC(), TR1_2D_SUPG2_AXI::computeBCRhsTerm_MC(), SUPGElement2::computeBCRhsTerm_MC(), TransportElement::computeBCSubMtrxAt(), TrPlaneStrRot::computeBmatrixAt(), StructuralElement::computeBodyLoadVectorAt(), RerShell::computeBodyLoadVectorAt(), CCTPlate::computeBodyLoadVectorAt(), TransportElement::computeCapacitySubMatrix(), TransportElement::computeConductivitySubMatrix(), StructuralElement::computeConsistentMassMatrix(), Beam3d::computeConsistentMassMatrix(), Beam2d::computeConsistentMassMatrix(), TR1_2D_SUPG_AXI::computeDiffusionDerivativeTerm_MB(), TR1_2D_SUPG2_AXI::computeDiffusionDerivativeTerm_MB(), TR1_2D_SUPG2::computeDiffusionDerivativeTerm_MB(), SUPGElement2::computeDiffusionDerivativeTerm_MB(), TR1_2D_SUPG_AXI::computeDiffusionDerivativeTerm_MC(), TR1_2D_SUPG2_AXI::computeDiffusionDerivativeTerm_MC(), TR1_2D_SUPG_AXI::computeDiffusionTerm_MB(), TR1_2D_SUPG2_AXI::computeDiffusionTerm_MB(), TR1_2D_SUPG2::computeDiffusionTerm_MB(), SUPGElement2::computeDiffusionTerm_MB(), TR1_2D_SUPG_AXI::computeDiffusionTerm_MC(), TR1_2D_SUPG2_AXI::computeDiffusionTerm_MC(), TR1_2D_CBS::computeDiffusionTermsI(), TransportElement::computeEdgeBCSubVectorAt(), StructuralElement::computeEdgeLoadVectorAt(), LIBeam2dNL::computeInitialStressMatrix(), TransportElement::computeInternalSourceRhsSubVectorAt(), TransportElement::computeIntSourceLHSSubMatrix(), TR1_2D_SUPG_AXI::computeLinearAdvectionTerm_MC(), TR1_2D_SUPG2_AXI::computeLinearAdvectionTerm_MC(), SUPGElement2::computeLinearAdvectionTerm_MC(), TR1_2D_SUPG_AXI::computeLSICStabilizationTerm_MB(), TR1_2D_SUPG2_AXI::computeLSICStabilizationTerm_MB(), TR1_2D_SUPG2::computeLSICStabilizationTerm_MB(), SUPGElement2::computeLSICStabilizationTerm_MB(), Truss3d::computeLumpedMassMatrix(), Truss2d::computeLumpedMassMatrix(), Truss1d::computeLumpedMassMatrix(), RerShell::computeLumpedMassMatrix(), LTRSpace::computeLumpedMassMatrix(), LIBeam3dNL2::computeLumpedMassMatrix(), LIBeam3dNL::computeLumpedMassMatrix(), LIBeam3d2::computeLumpedMassMatrix(), LIBeam3d::computeLumpedMassMatrix(), LIBeam2dNL::computeLumpedMassMatrix(), LIBeam2d::computeLumpedMassMatrix(), CCTPlate::computeLumpedMassMatrix(), SPRNodalRecoveryModel::computePatch(), StructuralElement::computePrescribedStrainLocalLoadVectorAt(), TR1_2D_CBS::computePrescribedTractionPressure(), TR1_2D_SUPG_AXI::computePressureTerm_MB(), TR1_2D_SUPG2_AXI::computePressureTerm_MB(), SUPGElement2::computePressureTerm_MB(), TR1_2D_SUPG_AXI::computePressureTerm_MC(), TR1_2D_SUPG2_AXI::computePressureTerm_MC(), TR1_2D_SUPG2::computePressureTerm_MC(), SUPGElement2::computePressureTerm_MC(), StructuralElement::computeStiffnessMatrix(), NLStructuralElement::computeStiffnessMatrix(), LIBeam3dNL2::computeStiffnessMatrix(), LIBeam3dNL::computeStiffnessMatrix(), StructuralElement::computeStiffnessMatrix_withIRulesAsSubcells(), NLStructuralElement::computeStiffnessMatrix_withIRulesAsSubcells(), TrPlaneStrRot::computeStrainVector(), Q4Axisymm::computeStrainVector(), L4Axisymm::computeStrainVector(), Axisymm3d::computeStrainVector(), TransportElement::computeSurfaceBCSubVectorAt(), StructuralElement::computeSurfaceLoadVectorAt(), LIBeam3dNL2::computeTempCurv(), LIBeam3dNL::computeTempCurv(), Quad1PlaneStrain::DirectErrorIndicatorRCI_giveCharacteristicSize(), QTrPlaneStress2d::DirectErrorIndicatorRCI_giveCharacteristicSize(), PlaneStress2d::DirectErrorIndicatorRCI_giveCharacteristicSize(), HOMExportModule::doOutput(), HuertaRemeshingCriteria::estimateMeshDensities(), Element::estimatePackSize(), DummySpatialLocalizer::giveAllElementsWithIpWithinBox(), LSpace::giveCharacteristicLenght(), OctreeSpatialLocalizer::giveClosestIP(), DummySpatialLocalizer::giveClosestIP(), OctreeSpatialLocalizer::giveClosestIPWithinOctant(), ScalarErrorIndicator::giveElementError(), OctreeSpatialLocalizer::giveElementsWithIPWithinBox(), StructuralElement::giveInternalForcesVector(), NLStructuralElement::giveInternalForcesVector(), LIBeam3dNL2::giveInternalForcesVector(), LIBeam3dNL::giveInternalForcesVector(), StructuralElement::giveNonlocalLocationArray(), MicroMaterial::giveRealStressVector(), LSpace::HuertaRemeshingCriteriaI_giveCharacteristicSize(), OctreeSpatialLocalizer::initElementIPDataStructure(), Element::ipEvaluator(), PY1_3D_SUPG::LS_PCS_computedN(), PY1_3D_SUPG::LS_PCS_computeF(), PY1_3D_SUPG::LS_PCS_computeVolume(), Truss1d::NodalAveragingRecoveryMI_computeNodalValue(), TrPlaneStress2d::NodalAveragingRecoveryMI_computeNodalValue(), TrPlaneStrain::NodalAveragingRecoveryMI_computeNodalValue(), TR1_2D_SUPG2_AXI::NodalAveragingRecoveryMI_computeNodalValue(), TR1_2D_SUPG2::NodalAveragingRecoveryMI_computeNodalValue(), TR1_2D_SUPG::NodalAveragingRecoveryMI_computeNodalValue(), TR1_2D_CBS::NodalAveragingRecoveryMI_computeNodalValue(), LTRSpace::NodalAveragingRecoveryMI_computeNodalValue(), LSpace::NodalAveragingRecoveryMI_computeNodalValue(), CCTPlate::NodalAveragingRecoveryMI_computeNodalValue(), Axisymm3d::NodalAveragingRecoveryMI_computeNodalValue(), Element::packUnknowns(), Element::predictRelativeComputationalCost(), TR1_2D_SUPG2_AXI::printOutputAt(), TR1_2D_SUPG2::printOutputAt(), RerShell::printOutputAt(), NonlocalMaterialExtensionInterface::rebuildNonlocalPointTable(), HuertaErrorEstimatorInterface::setupRefinedElementProblem1D(), HuertaErrorEstimatorInterface::setupRefinedElementProblem2D(), HuertaErrorEstimatorInterface::setupRefinedElementProblem3D(), HuertaErrorEstimator::solveRefinedElementProblem(), QTrPlaneStress2d::SPRNodalRecoveryMI_giveDofManRecordSize(), Element::unpackAndUpdateUnknowns(), StructuralElement::updateBeforeNonlocalAverage(), TR1_2D_SUPG2_AXI::updateIntegrationRules(), TR1_2D_SUPG2::updateIntegrationRules(), TransportElement::updateInternalState(), SUPGElement2::updateInternalState(), SUPGElement::updateInternalState(), StructuralElement::updateInternalState(), CBSElement::updateInternalState(), TR1_2D_SUPG_AXI::updateStabilizationCoeffs(), TR1_2D_SUPG2_AXI::updateStabilizationCoeffs(), TR1_2D_SUPG2::updateStabilizationCoeffs(), TR1_2D_SUPG::updateStabilizationCoeffs(), SUPGElement2::updateStabilizationCoeffs(), XfemElementInterface::XfemElementInterface_updateIntegrationRule(), ZZErrorEstimatorInterface::ZZErrorEstimatorI_computeElementContributions(), ZZNodalRecoveryModelInterface::ZZNodalRecoveryMI_computeNNMatrix(), ZZNodalRecoveryModelInterface::ZZNodalRecoveryMI_computeNValProduct(), Truss1d::ZZNodalRecoveryMI_giveDofManRecordSize(), TrPlaneStress2d::ZZNodalRecoveryMI_giveDofManRecordSize(), TrPlaneStrain::ZZNodalRecoveryMI_giveDofManRecordSize(), TR1_2D_SUPG2_AXI::ZZNodalRecoveryMI_giveDofManRecordSize(), TR1_2D_SUPG2::ZZNodalRecoveryMI_giveDofManRecordSize(), TR1_2D_SUPG::ZZNodalRecoveryMI_giveDofManRecordSize(), TR1_2D_CBS::ZZNodalRecoveryMI_giveDofManRecordSize(), Quad1PlaneStrain::ZZNodalRecoveryMI_giveDofManRecordSize(), QPlaneStress2d::ZZNodalRecoveryMI_giveDofManRecordSize(), PlaneStress2d::ZZNodalRecoveryMI_giveDofManRecordSize(), LTRSpace::ZZNodalRecoveryMI_giveDofManRecordSize(), LSpace::ZZNodalRecoveryMI_giveDofManRecordSize(), L4Axisymm::ZZNodalRecoveryMI_giveDofManRecordSize(), and Axisymm3d::ZZNodalRecoveryMI_giveDofManRecordSize().

int IntegrationRule::getStartIndexOfLocalStrainWhereApply (  )  [inline]

Returns starting component index, for which receiver applies.

Definition at line 157 of file integrationrule.h.

References firstLocalStrainIndx.

Referenced by StructuralElement::computeStiffnessMatrix(), and NLStructuralElement::computeStiffnessMatrix().

int IntegrationRule::getEndIndexOfLocalStrainWhereApply (  )  [inline]

Returns last component index, for which receiver applies.

Definition at line 161 of file integrationrule.h.

References lastLocalStrainIndx.

Referenced by StructuralElement::computeStiffnessMatrix(), and NLStructuralElement::computeStiffnessMatrix().

int IntegrationRule::setUpIntegrationPoints ( integrationDomain  mode,
int  nPoints,
MaterialMode  matMode 
)

Initializes the receiver.

Receiver integration points are created acording to given parameters.

Parameters:
mode describes integration domain
nPoints required number of integration points of receiver
matMode material mode of receiver's integration points
Returns:
nPoints

Definition at line 319 of file integrationrule.C.

References _Cube, _Line, _Square, _Tetrahedra, _Triangle, gaussPointArray, numberOfIntegrationPoints, OOFEM_ERROR, SetUpPointsOnCube(), SetUpPointsOnLine(), SetUpPointsOnSquare(), SetUpPointsOnTetrahedra(), and SetUpPointsOnTriagle().

Referenced by TransportElement::computeBCSubMtrxAt(), TrPlaneStrRot::computeBmatrixAt(), StructuralElement::computeConsistentMassMatrix(), TransportElement::computeEdgeBCSubVectorAt(), StructuralElement::computeEdgeLoadVectorAt(), Truss3d::computeGaussPoints(), Truss2d::computeGaussPoints(), Truss1d::computeGaussPoints(), TrPlaneStress2d::computeGaussPoints(), TrPlaneStrRot::computeGaussPoints(), TrPlaneStrain::computeGaussPoints(), Tr1_ht::computeGaussPoints(), TR1_2D_SUPG_AXI::computeGaussPoints(), TR1_2D_SUPG::computeGaussPoints(), TR1_2D_CBS::computeGaussPoints(), Tetrah1_ht::computeGaussPoints(), RerShell::computeGaussPoints(), Quad1PlaneStrain::computeGaussPoints(), Quad1_ht::computeGaussPoints(), QTrPlaneStress2d::computeGaussPoints(), QSpace::computeGaussPoints(), QPlaneStress2d::computeGaussPoints(), Q4Axisymm::computeGaussPoints(), PY1_3D_SUPG::computeGaussPoints(), PlaneStress2d::computeGaussPoints(), LTRSpace::computeGaussPoints(), LSpace::computeGaussPoints(), LIBeam3dNL2::computeGaussPoints(), LIBeam3dNL::computeGaussPoints(), LIBeam3d2::computeGaussPoints(), LIBeam3d::computeGaussPoints(), LIBeam2dNL::computeGaussPoints(), LIBeam2d::computeGaussPoints(), L4Axisymm::computeGaussPoints(), InterfaceElem1d::computeGaussPoints(), InterfaceElement3dTrLin::computeGaussPoints(), InterfaceElem2dQuad::computeGaussPoints(), CCTPlate::computeGaussPoints(), Brick1_ht::computeGaussPoints(), Beam3d::computeGaussPoints(), Beam2d::computeGaussPoints(), Axisymm3d::computeGaussPoints(), Tetrah1_ht::GetSurfaceIntegrationRule(), QSpace::GetSurfaceIntegrationRule(), LTRSpace::GetSurfaceIntegrationRule(), LSpace::GetSurfaceIntegrationRule(), Brick1_ht::GetSurfaceIntegrationRule(), TR1_2D_SUPG2_AXI::updateIntegrationRules(), TR1_2D_SUPG2::updateIntegrationRules(), and XfemElementInterface::XfemElementInterface_updateIntegrationRule().

int IntegrationRule::setUpEmbeddedIntegrationPoints ( integrationDomain  mode,
int  nPoints,
MaterialMode  matMode,
const FloatArray **  coords 
)

Initializes the receiver.

Receiver integration points are created acording to given parameters.

Parameters:
mode describes integration domain
nPoints required number of integration points of receiver
matMode material mode of receiver's integration points
Returns:
nPoints

Definition at line 346 of file integrationrule.C.

References _Embedded2dLine, gaussPointArray, numberOfIntegrationPoints, OOFEM_ERROR, and SetUpPointsOn2DEmbeddedLine().

void IntegrationRule::printOutputAt ( FILE *  file,
TimeStep stepN 
) [virtual]

Prints receiver's output to given stream.

Invokes printOutputAt service on all receiver's integration points.

Definition at line 110 of file integrationrule.C.

References gaussPointArray, numberOfIntegrationPoints, and GaussPoint::printOutputAt().

Referenced by SUPGElement2::printOutputAt(), SUPGElement::printOutputAt(), Element::printOutputAt(), and CBSElement::printOutputAt().

void IntegrationRule::updateYourself ( TimeStep tStep  ) 

Updates receiver state.

Calls updateYourself service of all receiver's integration points.

Definition at line 121 of file integrationrule.C.

References gaussPointArray, numberOfIntegrationPoints, and GaussPoint::updateYourself().

Referenced by Element::updateYourself().

void IntegrationRule::initForNewStep (  ) 

Initializes receiver.

Calls initForNewStep service of all receiver's integration points.

Definition at line 133 of file integrationrule.C.

References gaussPointArray, GaussPoint::giveMaterial(), Material::initGpForNewStep(), and numberOfIntegrationPoints.

Referenced by Element::initForNewStep().

Element* IntegrationRule::giveElement (  )  [inline]

Returns reference to element containing receiver.

Definition at line 197 of file integrationrule.h.

References elem.

Referenced by GaussPoint::giveElement().

Geometry * IntegrationRule::giveGeometry ( GaussPoint gp  ) 

Returns reference to geometry asscoiated with GaussPoint.

Definition at line 93 of file integrationrule.C.

References elem, and Element::giveGeometry().

FEInterpolation * IntegrationRule::giveInterpolation ( GaussPoint gp  ) 

Returns reference to interpolation asscoiated with GaussPoint.

Definition at line 95 of file integrationrule.C.

References elem, and Element::giveInterpolation().

int IntegrationRule::giveNumber (  )  [inline]

Returns the receiver number.

Definition at line 203 of file integrationrule.h.

References number.

Referenced by GaussPoint::printOutputAt().

virtual int IntegrationRule::getRequiredNumberOfIntegrationPoints ( integrationDomain  dType,
int  approxOrder 
) [inline, virtual]

Abstract service.

` Returns requred 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 GaussIntegrationRule, and LobattoIntegrationRule.

Definition at line 211 of file integrationrule.h.

Referenced by Tetrah1_ht::GetSurfaceIntegrationRule(), LTRSpace::GetSurfaceIntegrationRule(), LSpace::GetSurfaceIntegrationRule(), and Brick1_ht::GetSurfaceIntegrationRule().

contextIOResultType 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.

Exceptions:
throws an ContextIOERR exception if error encountered.

Definition at line 150 of file integrationrule.C.

References CIO_IOERR, CIO_OK, CM_Definition, firstLocalStrainIndx, gaussPointArray, GaussPoint::giveCoordinates(), GaussPoint::giveCrossSection(), GaussPoint::giveMaterialMode(), GaussPoint::giveWeight(), isDynamic, lastLocalStrainIndx, numberOfIntegrationPoints, OOFEM_ERROR, CrossSection::saveContext(), FloatArray::storeYourself(), THROW_CIOERR, and DataStream::write().

contextIOResultType 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:
obj should be a pointer to invoking element, ie., to which the receiver will belong to.
Exceptions:
throws an ContextIOERR exception if error encountered.

Definition at line 220 of file integrationrule.C.

References CIO_IOERR, CIO_OK, clear(), CM_Definition, firstLocalStrainIndx, gaussPointArray, FloatArray::GiveCopy(), GaussPoint::giveCrossSection(), isDynamic, lastLocalStrainIndx, numberOfIntegrationPoints, OOFEM_ERROR, DataStream::read(), CrossSection::restoreContext(), FloatArray::restoreYourself(), GaussPoint::setCoordinates(), GaussPoint::setMaterialMode(), GaussPoint::setWeight(), and THROW_CIOERR.

void IntegrationRule::clear (  ) 

Clears the receiver, ie dealocates all integration points.

Definition at line 78 of file integrationrule.C.

References gaussPointArray, and numberOfIntegrationPoints.

Referenced by restoreContext(), TR1_2D_SUPG2_AXI::updateIntegrationRules(), TR1_2D_SUPG2::updateIntegrationRules(), and ~IntegrationRule().

virtual classType IntegrationRule::giveClassID (  )  const [inline, virtual]

Returns classType id of receiver.

Reimplemented in GaussIntegrationRule, and LobattoIntegrationRule.

Definition at line 236 of file integrationrule.h.

References IntegrationRuleClass.

Referenced by Element::saveContext().

virtual const char* IntegrationRule::giveClassName (  )  const [inline, virtual]

Returns class name of the receiver.

Reimplemented in GaussIntegrationRule, and LobattoIntegrationRule.

Definition at line 238 of file integrationrule.h.

virtual IRResultType IntegrationRule::initializeFrom ( InputRecord ir  )  [inline, virtual]

Reimplemented in GaussIntegrationRule, and LobattoIntegrationRule.

Definition at line 239 of file integrationrule.h.

References IRRT_OK.

virtual int IntegrationRule::SetUpPointsOnLine ( int  ,
MaterialMode  ,
GaussPoint ***   
) [inline, protected, virtual]

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

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

Returns:
number of integration points.

Reimplemented in GaussIntegrationRule.

Definition at line 248 of file integrationrule.h.

Referenced by setUpIntegrationPoints().

virtual int IntegrationRule::SetUpPointsOnTriagle ( int  ,
MaterialMode  ,
GaussPoint ***   
) [inline, protected, virtual]

Sets up receiver's integration points on triangular (area coords) integration domain.

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

Returns:
number of integration points.

Reimplemented in GaussIntegrationRule, and PatchIntegrationRule.

Definition at line 255 of file integrationrule.h.

Referenced by setUpIntegrationPoints().

virtual int IntegrationRule::SetUpPointsOnSquare ( int  ,
MaterialMode  ,
GaussPoint ***   
) [inline, protected, virtual]

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

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

Returns:
number of integration points.

Reimplemented in GaussIntegrationRule.

Definition at line 262 of file integrationrule.h.

Referenced by setUpIntegrationPoints().

virtual int IntegrationRule::SetUpPointsOnCube ( int  ,
MaterialMode  ,
GaussPoint ***   
) [inline, protected, virtual]

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

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

Returns:
number of integration points.

Reimplemented in GaussIntegrationRule.

Definition at line 269 of file integrationrule.h.

Referenced by setUpIntegrationPoints().

virtual int IntegrationRule::SetUpPointsOnTetrahedra ( int  ,
MaterialMode  ,
GaussPoint ***   
) [inline, protected, virtual]

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

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

Returns:
number of integration points.

Reimplemented in GaussIntegrationRule.

Definition at line 276 of file integrationrule.h.

Referenced by setUpIntegrationPoints().

virtual int IntegrationRule::SetUpPointsOn2DEmbeddedLine ( int  nPoints,
MaterialMode  mode,
GaussPoint ***  ,
const FloatArray **  coords 
) [inline, protected, virtual]

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

Reimplemented in GaussIntegrationRule.

Definition at line 281 of file integrationrule.h.

Referenced by setUpEmbeddedIntegrationPoints().


Member Data Documentation

int IntegrationRule::number [protected]

number

Definition at line 113 of file integrationrule.h.

Referenced by giveNumber(), and IntegrationRule().

Definition at line 115 of file integrationrule.h.

Referenced by giveElement(), giveGeometry(), giveInterpolation(), and IntegrationRule().

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

Definition at line 125 of file integrationrule.h.

Referenced by getStartIndexOfLocalStrainWhereApply(), IntegrationRule(), restoreContext(), saveContext(), and PatchIntegrationRule::SetUpPointsOnTriagle().

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 129 of file integrationrule.h.

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


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

This page is part of the OOFEM documentation. Copyright (c) 2003 Borek Patzak
Project e-mail: info@oofem.org
Generated at Mon Aug 24 11:52:47 2009 for OOFEM by doxygen 1.5.5 written by Dimitri van Heesch, © 1997-2001