OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
#include <geometry.h>
Public Member Functions | |
PolygonLine () | |
virtual | ~PolygonLine () |
virtual BasicGeometry * | Clone () |
virtual void | computeNormalSignDist (double &oDist, const FloatArray &iPoint) const |
Functions for computing signed distance in normal and tangential direction. More... | |
virtual void | computeTangentialSignDist (double &oDist, const FloatArray &iPoint, double &oMinDistArcPos) const |
virtual void | computeLocalCoordinates (FloatArray &oLocCoord, const FloatArray &iPoint) const |
Computes arc length coordinate in the range [0,1]. More... | |
double | computeLength () const |
virtual void | giveSubPolygon (std::vector< FloatArray > &oPoints, const double &iXiStart, const double &iXiEnd) const |
virtual void | giveGlobalCoordinates (FloatArray &oGlobalCoord, const double &iArcPos) const |
void | giveNormal (FloatArray &oNormal, const double &iArcPosition) const |
virtual void | giveTangent (FloatArray &oTangent, const double &iArcPosition) const |
Computes tangential direction at given local coordinate (arcPos) More... | |
virtual IRResultType | initializeFrom (InputRecord *ir) |
Initializes the Geometry from the InputRecord. More... | |
virtual void | giveInputRecord (DynamicInputRecord &input) |
virtual const char * | giveClassName () const |
Gives class name. More... | |
virtual bool | intersects (Element *element) |
Checks whether an element is interacted, Element reference will be later replaced by Geometry. More... | |
virtual void | computeIntersectionPoints (Element *element, std::vector< FloatArray > &oIntersectionPoints) |
Gives intersection points between this Geometry and Element. More... | |
virtual void | computeIntersectionPoints (Line *l, std::vector< FloatArray > &oIntersectionPoints) |
void | computeIntersectionPoints (const PolygonLine &iPolygonLine, std::vector< FloatArray > &oIntersectionPoints) const |
void | computeIntersectionPoints (const FloatArray &iXStart, const FloatArray &iXEnd, std::vector< FloatArray > &oIntersectionPoints) const |
virtual int | computeNumberOfIntersectionPoints (Element *element) |
Gives number of intersection points of Geometry entity with an element, Element reference will be later replaced by Geometry. More... | |
virtual bool | isOutside (BasicGeometry *bg) |
virtual bool | isInside (Element *element) |
virtual bool | isInside (FloatArray &point) |
virtual void | printYourself () |
virtual void | printVTK (int iTStepIndex, int iLineIndex) |
virtual bool | giveTips (TipInfo &oStartTipInfo, TipInfo &oEndTipInfo) const |
Returns start and end tip of the geometry, if applicable. More... | |
virtual void | giveBoundingSphere (FloatArray &oCenter, double &oRadius) |
void | cropPolygon (const double &iArcPosStart, const double &iArcPosEnd) |
Keep only a part of the underlying geometry, characterized by iArcPosStart and iArcPosEnd. More... | |
Public Member Functions inherited from oofem::BasicGeometry | |
BasicGeometry () | |
Constructor. More... | |
BasicGeometry (const BasicGeometry &iBasicGeometry) | |
Copy constructor: should be implemented when a class deals with pointers. More... | |
virtual | ~BasicGeometry () |
Destructor. More... | |
virtual double | computeDistanceTo (const FloatArray *point) |
Computes normal signed distance between this object and a point. More... | |
const FloatArray & | giveVertex (int n) const |
void | setVertices (const std::vector< FloatArray > &iVertices) |
void | removeDuplicatePoints (const double &iTolSquare) |
void | insertVertexFront (const FloatArray &iP) |
void | insertVertexBack (const FloatArray &iP) |
void | clear () |
void | translate (const FloatArray &iTrans) |
std::string | errorInfo (const char *func) const |
int | giveNrVertices () const |
Returns number of Geometry vertices. More... | |
virtual contextIOResultType | saveContext (DataStream &stream, ContextMode mode, void *obj=NULL) |
Stores the state of receiver to output stream. More... | |
virtual contextIOResultType | restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL) |
Restores the state of receiver from output stream. More... | |
virtual void | draw (oofegGraphicContext &gc) |
Private Attributes | |
bool | mDebugVtk |
Additional Inherited Members | |
Static Public Member Functions inherited from oofem::BasicGeometry | |
static double | computeLineDistance (const FloatArray &iP1, const FloatArray &iP2, const FloatArray &iQ1, const FloatArray &iQ2) |
Computes the distance between two lines. More... | |
Protected Attributes inherited from oofem::BasicGeometry | |
std::vector< FloatArray > | mVertices |
List of geometry vertices. More... | |
Definition at line 293 of file geometry.h.
oofem::PolygonLine::PolygonLine | ( | ) |
Definition at line 853 of file geometry.C.
References mDebugVtk.
|
inlinevirtual |
Definition at line 298 of file geometry.h.
|
inlinevirtual |
Implements oofem::BasicGeometry.
Definition at line 300 of file geometry.h.
|
virtual |
Gives intersection points between this Geometry and Element.
Reimplemented from oofem::BasicGeometry.
Definition at line 1427 of file geometry.C.
References oofem::FloatArray::distance(), oofem::DofManager::giveCoordinates(), oofem::Element::giveDofManager(), oofem::Element::giveNumberOfBoundarySides(), and oofem::FloatArray::push_back().
Referenced by oofem::Crack::computeCrackIntersectionPoints(), computeIntersectionPoints(), and computeNumberOfIntersectionPoints().
|
virtual |
Definition at line 1527 of file geometry.C.
References oofem::FloatArray::at(), oofem::BasicGeometry::giveNrVertices(), and oofem::BasicGeometry::giveVertex().
void oofem::PolygonLine::computeIntersectionPoints | ( | const PolygonLine & | iPolygonLine, |
std::vector< FloatArray > & | oIntersectionPoints | ||
) | const |
Definition at line 1568 of file geometry.C.
References computeIntersectionPoints(), oofem::BasicGeometry::giveNrVertices(), and oofem::BasicGeometry::giveVertex().
void oofem::PolygonLine::computeIntersectionPoints | ( | const FloatArray & | iXStart, |
const FloatArray & | iXEnd, | ||
std::vector< FloatArray > & | oIntersectionPoints | ||
) | const |
Definition at line 1580 of file geometry.C.
References oofem::FloatArray::add(), oofem::FloatMatrix::beInverseOf(), oofem::FloatArray::beProductOf(), oofem::FloatArray::dotProduct(), oofem::FloatMatrix::giveDeterminant(), oofem::BasicGeometry::giveNrVertices(), and oofem::BasicGeometry::giveVertex().
double oofem::PolygonLine::computeLength | ( | ) | const |
Definition at line 1095 of file geometry.C.
References oofem::BasicGeometry::mVertices.
Referenced by oofem::Crack::computeLength(), computeTangentialSignDist(), giveGlobalCoordinates(), giveNormal(), giveSubPolygon(), and giveTangent().
|
virtual |
Computes arc length coordinate in the range [0,1].
Reimplemented from oofem::BasicGeometry.
Definition at line 1092 of file geometry.C.
|
virtual |
Functions for computing signed distance in normal and tangential direction.
Used by XFEM level set functions.
Implements oofem::BasicGeometry.
Definition at line 865 of file geometry.C.
References oofem::FloatArray::at(), oofem::FloatArray::beDifferenceOf(), oofem::FloatArray::computeSquaredNorm(), oofem::FloatArray::distance_square(), oofem::dot(), oofem::FloatArray::dotProduct(), oofem::BasicGeometry::giveNrVertices(), oofem::BasicGeometry::giveVertex(), max, oofem::FloatArray::normalize(), and oofem::sgn().
|
virtual |
Gives number of intersection points of Geometry entity with an element, Element reference will be later replaced by Geometry.
Reimplemented from oofem::BasicGeometry.
Definition at line 1638 of file geometry.C.
References computeIntersectionPoints().
|
virtual |
Implements oofem::BasicGeometry.
Definition at line 954 of file geometry.C.
References computeLength(), oofem::FloatArray::distance(), oofem::BasicGeometry::giveNrVertices(), oofem::BasicGeometry::giveVertex(), min, and oofem::FloatArray::resizeWithValues().
Referenced by oofem::Crack::computeArcPoints(), oofem::Crack::computeCrackIntersectionPoints(), and oofem::Line::computeTangentialSignDist().
void oofem::PolygonLine::cropPolygon | ( | const double & | iArcPosStart, |
const double & | iArcPosEnd | ||
) |
Keep only a part of the underlying geometry, characterized by iArcPosStart and iArcPosEnd.
Definition at line 1800 of file geometry.C.
References giveSubPolygon(), oofem::BasicGeometry::removeDuplicatePoints(), and oofem::BasicGeometry::setVertices().
Referenced by oofem::XfemStructureManager::splitCracks().
|
virtual |
Reimplemented from oofem::BasicGeometry.
Definition at line 1778 of file geometry.C.
References oofem::FloatArray::add(), oofem::FloatArray::distance(), oofem::BasicGeometry::giveNrVertices(), oofem::BasicGeometry::giveVertex(), max, and oofem::FloatArray::times().
|
inlinevirtual |
Gives class name.
Reimplemented from oofem::BasicGeometry.
Definition at line 316 of file geometry.h.
|
virtual |
Reimplemented from oofem::BasicGeometry.
Definition at line 1162 of file geometry.C.
References oofem::FloatArray::add(), oofem::FloatArray::beScaled(), computeLength(), and oofem::BasicGeometry::mVertices.
|
virtual |
Reimplemented from oofem::BasicGeometry.
Definition at line 1283 of file geometry.C.
References _IFT_PolygonLine_points, oofem::FloatArray::at(), oofem::Node::giveCoordinate(), oofem::Element::giveNode(), oofem::Element::giveNumberOfNodes(), oofem::max(), oofem::min(), oofem::BasicGeometry::mVertices, oofem::FloatArray::resize(), oofem::DynamicInputRecord::setField(), and oofem::DynamicInputRecord::setRecordKeywordField().
void oofem::PolygonLine::giveNormal | ( | FloatArray & | oNormal, |
const double & | iArcPosition | ||
) | const |
Definition at line 1193 of file geometry.C.
References computeLength(), oofem::BasicGeometry::mVertices, oofem::FloatArray::normalize(), OOFEM_ERROR, and oofem::FloatArray::resize().
Referenced by oofem::XfemStructureManager::splitCracks().
|
virtual |
Reimplemented from oofem::BasicGeometry.
Definition at line 1116 of file geometry.C.
References oofem::FloatArray::add(), oofem::FloatArray::beScaled(), computeLength(), and oofem::BasicGeometry::mVertices.
Referenced by cropPolygon().
|
virtual |
Computes tangential direction at given local coordinate (arcPos)
Reimplemented from oofem::BasicGeometry.
Definition at line 1228 of file geometry.C.
References computeLength(), oofem::BasicGeometry::mVertices, oofem::FloatArray::normalize(), and OOFEM_ERROR.
Referenced by oofem::XfemStructureManager::splitCracks().
Returns start and end tip of the geometry, if applicable.
Reimplemented from oofem::BasicGeometry.
Definition at line 1724 of file geometry.C.
References oofem::FloatArray::at(), oofem::FloatArray::beDifferenceOf(), oofem::BasicGeometry::giveNrVertices(), oofem::BasicGeometry::giveVertex(), oofem::TipInfo::mArcPos, oofem::TipInfo::mGlobalCoord, oofem::TipInfo::mNormalDir, oofem::TipInfo::mTangDir, oofem::TipInfo::mTipIndex, and oofem::FloatArray::normalize().
|
virtual |
Initializes the Geometry from the InputRecord.
Reimplemented from oofem::BasicGeometry.
Definition at line 1260 of file geometry.C.
References _IFT_PolygonLine_points, oofem::FloatArray::at(), oofem::FloatArray::giveSize(), IR_GIVE_FIELD, oofem::IRRT_OK, and oofem::BasicGeometry::mVertices.
|
virtual |
Checks whether an element is interacted, Element reference will be later replaced by Geometry.
Reimplemented from oofem::BasicGeometry.
Definition at line 1335 of file geometry.C.
References oofem::Node::giveCoordinate(), oofem::Element::giveGeometryType(), oofem::Element::giveNode(), oofem::BasicGeometry::giveNrVertices(), and oofem::BasicGeometry::giveVertex().
|
virtual |
Reimplemented from oofem::BasicGeometry.
Definition at line 1393 of file geometry.C.
|
virtual |
Reimplemented from oofem::BasicGeometry.
Definition at line 1399 of file geometry.C.
References oofem::max(), and oofem::min().
|
virtual |
Reimplemented from oofem::BasicGeometry.
Definition at line 1645 of file geometry.C.
|
virtual |
Reimplemented from oofem::BasicGeometry.
Definition at line 1661 of file geometry.C.
References oofem::FloatArray::at(), oofem::BasicGeometry::giveNrVertices(), and oofem::BasicGeometry::giveVertex().
Referenced by oofem::GeometryBasedEI::propagateFronts().
|
virtual |
Reimplemented from oofem::BasicGeometry.
Definition at line 1650 of file geometry.C.
References oofem::BasicGeometry::mVertices.
|
private |
Definition at line 295 of file geometry.h.
Referenced by PolygonLine().