|
OOFEM 3.0
|
#include <gaussintegrationrule.h>
Public Member Functions | |
| GaussIntegrationRule (int n, Element *e, int startIndx, int endIndx, bool dynamic=false) | |
| GaussIntegrationRule (int n, Element *e) | |
| virtual | ~GaussIntegrationRule () |
| Destructor. | |
| const char * | giveClassName () const override |
| IntegrationRuleType | giveIntegrationRuleType () const override |
| void | initializeFrom (InputRecord &ir) override |
| int | getRequiredNumberOfIntegrationPoints (integrationDomain dType, int approxOrder) override |
| int | SetUpPointsOnLine (int nPoints, MaterialMode mode) override |
| int | SetUpPointsOnTriangle (int nPoints, MaterialMode mode) override |
| int | SetUpPointsOnSquare (int nPoints, MaterialMode mode) override |
| int | SetUpPointsOn3dDegShell (int nPointsXY, int nPointsZ, MaterialMode mode) override |
| int | SetUpPointsOn3dDegShellLayers (int nPointsXY, int nPointsZ, MaterialMode mode, const FloatArray &layerThickness) override |
| int | SetUpPointsOnCubeLayers (int nPoints1, int nPoints2, int nPointsDepth, MaterialMode mode, const FloatArray &layerThickness) override |
| int | SetUpPointsOnCube (int nPoints, MaterialMode mode) override |
| int | SetUpPointsOnTetrahedra (int nPoints, MaterialMode mode) override |
| int | SetUpPointsOnWedge (int nPointsTri, int nPointsDepth, MaterialMode mode) override |
| int | SetUpPointsOnWedgeLayers (int nPointsTri, int nPointsDepth, MaterialMode mode, const FloatArray &layerThickness) override |
| int | SetUpPointsOn2DEmbeddedLine (int nPoints, MaterialMode mode, const FloatArray &coord0, const FloatArray &coord1) override |
| Public Member Functions inherited from oofem::IntegrationRule | |
| std::vector< GaussPoint * >::iterator | begin () |
| std::vector< GaussPoint * >::iterator | end () |
| IntegrationRule (int n, Element *e, int startIndx, int endIndx, bool dynamic) | |
| IntegrationRule (int n, Element *e) | |
| virtual | ~IntegrationRule () |
| Destructor. | |
| int | giveNumberOfIntegrationPoints () const |
| GaussPoint * | getIntegrationPoint (int n) |
| GaussPoint * | findIntegrationPointClosestTo (const FloatArray &lcoord) |
| int | getStartIndexOfLocalStrainWhereApply () |
| int | getEndIndexOfLocalStrainWhereApply () |
| int | setUpIntegrationPoints (integrationDomain intdomain, int nPoints, MaterialMode matMode) |
| int | setUpIntegrationPoints (integrationDomain intdomain, int nPointsXY, int nPointsZ, MaterialMode matMode) |
| int | setUpEmbeddedIntegrationPoints (integrationDomain intdomain, int nPoints, MaterialMode matMode, const std ::vector< FloatArray > &coords) |
| virtual void | printOutputAt (FILE *file, TimeStep *tStep) |
| void | updateYourself (TimeStep *tStep) |
| Element * | giveElement () |
| void | setElement (Element *e) |
| int | giveNumber () |
| integrationDomain | giveIntegrationDomain () const |
| virtual void | saveContext (DataStream &stream, ContextMode mode) |
| virtual void | restoreContext (DataStream &stream, ContextMode mode) |
| void | clear () |
| virtual const IntArray * | giveKnotSpan () |
| Returns receiver sub patch indices (if apply). | |
| std::string | errorInfo (const char *func) const |
| Error printing helper. | |
| int | SetUpPoint (MaterialMode mode) |
Static Public Member Functions | |
| static void | giveTetCoordsAndWeights (int nPoints, FloatArray &coords_xi1, FloatArray &coords_xi2, FloatArray &coords_xi3, FloatArray &weights) |
| static void | giveTriCoordsAndWeights (int nPoints, FloatArray &coords_xi1, FloatArray &coords_xi2, FloatArray &weights) |
| static void | giveLineCoordsAndWeights (int nPoints, FloatArray &coords_xi, FloatArray &weights) |
Additional Inherited Members | |
| Protected Attributes inherited from oofem::IntegrationRule | |
| int | number |
| Number. | |
| Element * | elem |
| Element which integration rule is coupled to. | |
| integrationDomain | intdomain |
| Integration domain. | |
| std::vector< GaussPoint * > | gaussPoints |
| Array containing integration points. | |
| int | firstLocalStrainIndx |
| int | lastLocalStrainIndx |
| bool | isDynamic |
Class representing Gaussian-quadrature integration rule. 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. The positions and weights are determined by the minimum required of points to integrate a polynomial exactly (while the points are strictly within the domain)
Tasks:
Definition at line 59 of file gaussintegrationrule.h.
| oofem::GaussIntegrationRule::GaussIntegrationRule | ( | int | n, |
| Element * | e, | ||
| int | startIndx, | ||
| int | endIndx, | ||
| bool | dynamic = false ) |
Constructor.
| n | Number associated with receiver. |
| e | Element associated with receiver. |
| 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 gaussintegrationrule.C.
References oofem::IntegrationRule::IntegrationRule().
Referenced by oofem::DiscontinuousSegmentIntegrationRule::DiscontinuousSegmentIntegrationRule(), oofem::IGAIntegrationElement::IGAIntegrationElement(), and oofem::PatchIntegrationRule::PatchIntegrationRule().
| oofem::GaussIntegrationRule::GaussIntegrationRule | ( | int | n, |
| Element * | e ) |
Definition at line 48 of file gaussintegrationrule.C.
References oofem::IntegrationRule::IntegrationRule().
|
virtual |
Destructor.
Definition at line 51 of file gaussintegrationrule.C.
|
overridevirtual |
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 from oofem::IntegrationRule.
Definition at line 339 of file gaussintegrationrule.C.
References oofem::_Cube, oofem::_Line, oofem::_Square, oofem::_Tetrahedra, oofem::_Triangle, oofem::_Wedge, oofem::max(), and OOFEM_ERROR.
Referenced by oofem::MPMSymbolicTerm::giveElementIntegrationRule(), and oofem::MPMSymbolicTerm::initializeCell().
|
inlineoverridevirtual |
Reimplemented from oofem::IntegrationRule.
Reimplemented in oofem::PatchIntegrationRule.
Definition at line 75 of file gaussintegrationrule.h.
|
inlineoverridevirtual |
Reimplemented from oofem::IntegrationRule.
Definition at line 76 of file gaussintegrationrule.h.
References oofem::IRT_Gauss.
|
static |
Definition at line 1436 of file gaussintegrationrule.C.
References OOFEM_SERROR, oofem::Vec1(), oofem::Vec2(), oofem::Vec3(), oofem::Vec4(), oofem::Vec5(), oofem::Vec6(), oofem::Vec7(), oofem::Vec8(), and oofem::VecX().
Referenced by oofem::LayeredCrossSection::giveSlaveGaussPoint(), SetUpPointsOn2DEmbeddedLine(), SetUpPointsOn3dDegShell(), SetUpPointsOn3dDegShellLayers(), SetUpPointsOnCube(), SetUpPointsOnCubeLayers(), oofem::DiscontinuousSegmentIntegrationRule::SetUpPointsOnLine(), SetUpPointsOnLine(), SetUpPointsOnSquare(), SetUpPointsOnWedge(), oofem::LayeredIntegrationRule::SetUpPointsOnWedge(), oofem::PatchIntegrationRule::SetUpPointsOnWedge(), and SetUpPointsOnWedgeLayers().
|
static |
Definition at line 492 of file gaussintegrationrule.C.
References OOFEM_SERROR, and oofem::FloatArray::resize().
Referenced by SetUpPointsOnTetrahedra().
|
static |
Definition at line 1018 of file gaussintegrationrule.C.
References OOFEM_SERROR, oofem::Vec1(), oofem::Vec3(), oofem::Vec4(), oofem::Vec6(), oofem::Vec7(), and oofem::VecX().
Referenced by SetUpPointsOnTriangle(), oofem::PatchIntegrationRule::SetUpPointsOnTriangle(), SetUpPointsOnWedge(), oofem::LayeredIntegrationRule::SetUpPointsOnWedge(), oofem::PatchIntegrationRule::SetUpPointsOnWedge(), and SetUpPointsOnWedgeLayers().
|
inlineoverridevirtual |
Reimplemented from oofem::IntegrationRule.
Definition at line 77 of file gaussintegrationrule.h.
|
overridevirtual |
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 from oofem::IntegrationRule.
Definition at line 72 of file gaussintegrationrule.C.
References oofem::_Embedded2dLine, oofem::FloatArray::at(), oofem::IntegrationRule::gaussPoints, oofem::IntegrationRule::giveElement(), giveLineCoordsAndWeights(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), oofem::IntegrationRule::intdomain, oofem::Vec1(), and oofem::Vec2().
|
overridevirtual |
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 from oofem::IntegrationRule.
Definition at line 125 of file gaussintegrationrule.C.
References oofem::_3dDegShell, oofem::FloatArray::at(), oofem::IntegrationRule::gaussPoints, giveLineCoordsAndWeights(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), oofem::IntegrationRule::intdomain, and oofem::Vec3().
|
overridevirtual |
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 from oofem::IntegrationRule.
Definition at line 153 of file gaussintegrationrule.C.
References oofem::_3dDegShell, oofem::FloatArray::at(), oofem::IntegrationRule::gaussPoints, giveLineCoordsAndWeights(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), oofem::FloatArray::giveSize(), oofem::IntegrationRule::intdomain, oofem::FloatArray::sum(), and oofem::Vec3().
|
overridevirtual |
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 from oofem::IntegrationRule.
Definition at line 190 of file gaussintegrationrule.C.
References oofem::_Cube, oofem::FloatArray::at(), oofem::cbrt(), oofem::IntegrationRule::gaussPoints, giveLineCoordsAndWeights(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), oofem::IntegrationRule::intdomain, and oofem::Vec3().
|
overridevirtual |
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 from oofem::IntegrationRule.
Definition at line 217 of file gaussintegrationrule.C.
References oofem::_Cube, oofem::FloatArray::at(), oofem::IntegrationRule::gaussPoints, giveLineCoordsAndWeights(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), oofem::FloatArray::giveSize(), oofem::IntegrationRule::intdomain, oofem::FloatArray::sum(), and oofem::Vec3().
|
overridevirtual |
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 from oofem::IntegrationRule.
Definition at line 56 of file gaussintegrationrule.C.
References oofem::_Line, oofem::FloatArray::at(), oofem::IntegrationRule::gaussPoints, giveLineCoordsAndWeights(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), oofem::IntegrationRule::intdomain, and oofem::Vec1().
Referenced by oofem::TransportElement::computeBCSubMtrxAt(), oofem::TrPlanestressRotAllman::computeBoundaryEdgeLoadVector(), oofem::Tr1BubbleStokes::computeBoundarySurfaceLoadVector(), oofem::Tr21Stokes::computeBoundarySurfaceLoadVector(), oofem::Tr1Darcy::computeEdgeBCSubVectorAt(), oofem::TransportElement::computeEdgeBCSubVectorAt(), oofem::Shell7BaseXFEM::computeEnrTractionForce(), and oofem::Shell7Base::computeTractionForce().
|
overridevirtual |
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 from oofem::IntegrationRule.
Definition at line 102 of file gaussintegrationrule.C.
References oofem::_Square, oofem::FloatArray::at(), oofem::IntegrationRule::gaussPoints, giveLineCoordsAndWeights(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), oofem::IntegrationRule::intdomain, and oofem::Vec2().
|
overridevirtual |
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 from oofem::IntegrationRule.
Definition at line 269 of file gaussintegrationrule.C.
References oofem::_Tetrahedra, oofem::FloatArray::at(), oofem::IntegrationRule::gaussPoints, oofem::IntegrationRule::giveNumberOfIntegrationPoints(), giveTetCoordsAndWeights(), oofem::IntegrationRule::intdomain, and oofem::Vec3().
|
overridevirtual |
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 from oofem::IntegrationRule.
Reimplemented in oofem::PatchIntegrationRule.
Definition at line 253 of file gaussintegrationrule.C.
References oofem::_Triangle, oofem::FloatArray::at(), oofem::IntegrationRule::gaussPoints, oofem::IntegrationRule::giveNumberOfIntegrationPoints(), giveTriCoordsAndWeights(), oofem::IntegrationRule::intdomain, and oofem::Vec2().
Referenced by oofem::TrPlaneStrRot::computeBmatrixAt(), oofem::CCTPlate3d::computeBodyLoadVectorAt(), oofem::CCTPlate::computeBodyLoadVectorAt(), oofem::DKTPlate3d::computeBodyLoadVectorAt(), oofem::DKTPlate::computeBodyLoadVectorAt(), oofem::TR_SHELL11::computeBodyLoadVectorAt(), oofem::TrPlanestressRotAllman3d::computeBodyLoadVectorAt(), oofem::TrPlaneStrRot3d::computeBodyLoadVectorAt(), oofem::Hexa21Stokes::computeBoundarySurfaceLoadVector(), oofem::Tet1BubbleStokes::computeBoundarySurfaceLoadVector(), oofem::Tet21Stokes::computeBoundarySurfaceLoadVector(), and oofem::DKTPlate::computeVertexBendingMoments().
|
overridevirtual |
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 from oofem::IntegrationRule.
Reimplemented in oofem::PatchIntegrationRule.
Definition at line 286 of file gaussintegrationrule.C.
References oofem::_Wedge, oofem::FloatArray::at(), oofem::IntegrationRule::gaussPoints, giveLineCoordsAndWeights(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), giveTriCoordsAndWeights(), oofem::IntegrationRule::intdomain, and oofem::Vec3().
Referenced by oofem::Shell7Base::computeConvectiveMassForce(), oofem::Shell7Base::computeMassMatrix(), and oofem::Shell7Base::computePressureTangentMatrix().
|
overridevirtual |
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 from oofem::IntegrationRule.
Definition at line 307 of file gaussintegrationrule.C.
References oofem::_Wedge, oofem::FloatArray::at(), oofem::IntegrationRule::gaussPoints, giveLineCoordsAndWeights(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), oofem::FloatArray::giveSize(), giveTriCoordsAndWeights(), oofem::IntegrationRule::intdomain, oofem::FloatArray::sum(), and oofem::Vec3().