OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Class representing Lobatto-quadrature integration rule. More...
#include <lobattoir.h>
Public Member Functions | |
LobattoIntegrationRule (int n, Element *e, int startIndx, int endIndx, bool dynamic) | |
Constructor. More... | |
LobattoIntegrationRule (int n, Element *e) | |
virtual | ~LobattoIntegrationRule () |
Destructor. More... | |
virtual const char * | giveClassName () const |
virtual IntegrationRuleType | giveIntegrationRuleType () const |
virtual IRResultType | initializeFrom (InputRecord *ir) |
virtual int | getRequiredNumberOfIntegrationPoints (integrationDomain dType, int approxOrder) |
Abstract service. More... | |
virtual int | SetUpPointsOnLine (int nPoints, MaterialMode mode) |
Sets up receiver's integration points on unit line integration domain. More... | |
virtual int | SetUpPointsOnSquare (int nPoints, MaterialMode mode) |
Sets up receiver's integration points on unit square integration domain. More... | |
virtual int | SetUpPointsOnCube (int nPoints, MaterialMode mode) |
Sets up receiver's integration points on unit cube integration domain. More... | |
virtual int | SetUpPointsOnTriangle (int nPoints, MaterialMode mode) |
Sets up receiver's integration points on triangular (area coords) integration domain. More... | |
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) | |
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 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... | |
std::string | errorInfo (const char *func) const |
Error printing helper. More... | |
int | SetUpPoint (MaterialMode mode) |
Trivial implementation, only creates a single point. 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 | 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... | |
Static Public Member Functions | |
static void | giveLineCoordsAndWeights (int nPoints, FloatArray &coords_xi, FloatArray &weights) |
Additional Inherited Members | |
Protected Attributes inherited from oofem::IntegrationRule | |
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... | |
Class representing Lobatto-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.
Definition at line 48 of file lobattoir.h.
oofem::LobattoIntegrationRule::LobattoIntegrationRule | ( | int | n, |
Element * | e, | ||
int | startIndx, | ||
int | endIndx, | ||
bool | dynamic | ||
) |
Constructor.
n | Number associated with receiver |
e | Reference to engineering model. |
startIndx | First component, for which rule applies. |
endIndx | Last component, for which rule applies. |
dynamic | Flag indicating that receiver can change. |
Definition at line 41 of file lobattoir.C.
oofem::LobattoIntegrationRule::LobattoIntegrationRule | ( | int | n, |
Element * | e | ||
) |
Definition at line 45 of file lobattoir.C.
|
virtual |
Destructor.
Definition at line 48 of file lobattoir.C.
|
virtual |
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 130 of file lobattoir.C.
References oofem::_Line, and OOFEM_ERROR.
|
inlinevirtual |
Reimplemented from oofem::IntegrationRule.
Definition at line 64 of file lobattoir.h.
|
inlinevirtual |
Reimplemented from oofem::IntegrationRule.
Definition at line 65 of file lobattoir.h.
References oofem::IRT_Lobatto.
|
static |
Definition at line 157 of file lobattoir.C.
References OOFEM_LOG_WARNING.
Referenced by SetUpPointsOnCube(), SetUpPointsOnLine(), and SetUpPointsOnSquare().
|
inlinevirtual |
Reimplemented from oofem::IntegrationRule.
Definition at line 66 of file lobattoir.h.
References oofem::IRRT_OK.
|
virtual |
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 93 of file lobattoir.C.
References oofem::_Cube, oofem::FloatArray::at(), oofem::cbrt(), oofem::IntegrationRule::gaussPoints, giveLineCoordsAndWeights(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), and oofem::IntegrationRule::intdomain.
|
virtual |
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 53 of file lobattoir.C.
References oofem::_Line, oofem::FloatArray::at(), oofem::IntegrationRule::gaussPoints, giveLineCoordsAndWeights(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), and oofem::IntegrationRule::intdomain.
|
virtual |
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 69 of file lobattoir.C.
References oofem::_Square, oofem::FloatArray::at(), oofem::IntegrationRule::gaussPoints, giveLineCoordsAndWeights(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), and oofem::IntegrationRule::intdomain.
|
virtual |
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.
Definition at line 121 of file lobattoir.C.
References OOFEM_ERROR.