OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
The base class for all spatial localizers. More...
#include <spatiallocalizer.h>
Public Types | |
typedef IntArray | elementContainerType |
Typedefs to introduce the container type for element numbers, returned by some services. More... | |
typedef std::list< int > | nodeContainerType |
Typedefs to introduce the container type for nodal numbers, returned by some services. More... | |
Public Member Functions | |
SpatialLocalizer (Domain *d) | |
Constructor. More... | |
virtual | ~SpatialLocalizer () |
Domain * | giveDomain () |
Returns the domain that localizer acts on. More... | |
virtual Element * | giveElementContainingPoint (const FloatArray &coords, const IntArray *regionList=NULL)=0 |
Returns the element, containing given point and belonging to one of the region in region list. More... | |
virtual Element * | giveElementContainingPoint (const FloatArray &coords, const Set &eset)=0 |
Returns the element, containing given point and belonging to one of the region in region list. More... | |
virtual Element * | giveElementClosestToPoint (FloatArray &lcoords, FloatArray &closest, const FloatArray &coords, int region=0)=0 |
Returns the element closest to a given point. More... | |
virtual GaussPoint * | giveClosestIP (const FloatArray &coords, int region, bool iCohesiveZoneGP=false)=0 |
Returns the integration point in associated domain, which is closest to given point. More... | |
virtual GaussPoint * | giveClosestIP (const FloatArray &coords, Set &elemSet, bool iCohesiveZoneGP=false)=0 |
Returns the integration point in associated domain, which is closest to given point. More... | |
virtual void | giveAllElementsWithIpWithinBox (elementContainerType &elemSet, const FloatArray &coords, const double radius)=0 |
Returns container (set) of all domain elements having integration point within given box. More... | |
virtual void | giveAllElementsWithIpWithinBox_EvenIfEmpty (elementContainerType &elemSet, const FloatArray &coords, const double radius)=0 |
Returns container (set) of all domain elements having integration point within given box, even if this set is empty. More... | |
virtual void | giveAllElementsWithNodesWithinBox (elementContainerType &elemSet, const FloatArray &coords, const double radius) |
Returns container (set) of all domain elements having node within given box. More... | |
virtual void | giveAllNodesWithinBox (nodeContainerType &nodeList, const FloatArray &coords, const double radius)=0 |
Returns container (list) of all domain nodes within given box. More... | |
virtual Node * | giveNodeClosestToPoint (const FloatArray &coords, double maxDist)=0 |
Returns the node closest to the given coordinate. More... | |
virtual int | init (bool force=false) |
Initialize receiver data structure if not done previously If force is set to true, the initialization is enforced (useful if domain geometry has changed) More... | |
virtual const char * | giveClassName () const =0 |
std::string | errorInfo (const char *func) const |
Error printing helper. More... | |
Protected Attributes | |
Domain * | domain |
Link to domain object. More... | |
The base class for all spatial localizers.
The basic task is to provide spatial information and localization for domain, to which receiver is associated. Typical services include searching the closes node to give position, searching of an element containing given point, etc. If special element algorithms required, these should be included using interface concept.
Definition at line 110 of file spatiallocalizer.h.
Typedefs to introduce the container type for element numbers, returned by some services.
Definition at line 118 of file spatiallocalizer.h.
typedef std :: list< int > oofem::SpatialLocalizer::nodeContainerType |
Typedefs to introduce the container type for nodal numbers, returned by some services.
Definition at line 120 of file spatiallocalizer.h.
|
inline |
Constructor.
Definition at line 123 of file spatiallocalizer.h.
|
inlinevirtual |
Definition at line 125 of file spatiallocalizer.h.
|
inline |
Error printing helper.
Definition at line 229 of file spatiallocalizer.h.
|
pure virtual |
Returns container (set) of all domain elements having integration point within given box.
elemSet | Answer containing the list of elements meeting the criteria. |
coords | Center of box of interest. |
radius | Radius of bounding sphere. |
Implemented in oofem::OctreeSpatialLocalizer, and oofem::DummySpatialLocalizer.
Referenced by oofem::PLPrincipalStrain::propagateInterface(), and oofem::PLHoopStressCirc::propagateInterface().
|
pure virtual |
Returns container (set) of all domain elements having integration point within given box, even if this set is empty.
elemSet | Answer containing the list of elements meeting the criteria. |
coords | Center of box of interest. |
radius | Radius of bounding sphere. |
Implemented in oofem::OctreeSpatialLocalizer.
Referenced by oofem::NonlocalMaterialExtensionInterface::buildNonlocalPointTable().
|
virtual |
Returns container (set) of all domain elements having node within given box.
elemSet | Answer containing the list of elements meeting the criteria. |
coords | Center of box of interest. |
radius | Radius of bounding sphere. |
Definition at line 101 of file spatiallocalizer.C.
References oofem::IntArray::at(), oofem::IntArray::clear(), oofem::ConnectivityTable::giveDofManConnectivityArray(), oofem::IntArray::giveSize(), and oofem::IntArray::insertSortedOnce().
Referenced by oofem::NonlocalMaterialExtensionInterface::buildNonlocalPointTable(), oofem::MaterialForceEvaluator::computeMaterialForce(), and oofem::GeometryBasedEI::updateNodeEnrMarker().
|
pure virtual |
Returns container (list) of all domain nodes within given box.
nodeList | Answer containing the list of nodes meeting the criteria. |
coords | Center of box of interest. |
radius | Radius of bounding sphere. |
Implemented in oofem::OctreeSpatialLocalizer, and oofem::DummySpatialLocalizer.
Referenced by oofem::Delamination::findInitiationFronts(), oofem::PLCZdamageRadius::propagateInterface(), oofem::PLnodeRadius::propagateInterface(), and oofem::GeometryBasedEI::updateLevelSets().
|
pure virtual |
Implemented in oofem::OctreeSpatialLocalizer, and oofem::DummySpatialLocalizer.
|
pure virtual |
Returns the integration point in associated domain, which is closest to given point.
Since IP holds the information about its element, the IP reference is containing all the information.
coords | Global problem coordinates of point of interest |
region | If value > 0 then only closet point from given region will be considered, if value < 0 all regions will be valid |
Implemented in oofem::OctreeSpatialLocalizer, and oofem::DummySpatialLocalizer.
Referenced by oofem::MMAClosestIPTransfer::__init(), oofem::MMALeastSquareProjection::__init(), oofem::PLPrincipalStrain::propagateInterface(), and oofem::PLHoopStressCirc::propagateInterface().
|
pure virtual |
Returns the integration point in associated domain, which is closest to given point.
Since IP holds the information about its element, the IP reference is containing all the information.
coords | Global problem coordinates of point of interest |
region | Only closet point from given region will be considered |
Implemented in oofem::OctreeSpatialLocalizer.
|
inline |
Returns the domain that localizer acts on.
Definition at line 128 of file spatiallocalizer.h.
Referenced by oofem::DummySpatialLocalizer::giveAllElementsWithIpWithinBox(), oofem::DummySpatialLocalizer::giveAllNodesWithinBox(), oofem::DummySpatialLocalizer::giveClosestIP(), oofem::DummySpatialLocalizer::giveElementClosestToPoint(), oofem::OctreeSpatialLocalizer::giveElementClosestToPointWithinOctant(), oofem::OctreeSpatialLocalizer::giveElementContainingPoint(), oofem::DummySpatialLocalizer::giveNodeClosestToPoint(), oofem::OctreeSpatialLocalizer::initElementDataStructure(), and oofem::OctreeSpatialLocalizer::initElementIPDataStructure().
|
pure virtual |
Returns the element closest to a given point.
[out] | lcoords | Local coordinates in element found. |
[out] | closest | Global coordinates for found point. |
coords | Global problem coordinates of point of interest. | |
region | Only elements within given region are considered, if 0 all regions are considered. |
Implemented in oofem::OctreeSpatialLocalizer, and oofem::DummySpatialLocalizer.
Referenced by oofem::PrimaryField::__evaluateAt(), oofem::MMAShapeFunctProjection::__mapVariable(), oofem::PrescribedGradientBCWeak::assembleGPContrib(), oofem::PrescribedGradientBCWeak::assembleTangentGPContributionNew(), oofem::PrescribedGradientBCWeak::computeIntForceGPContrib(), oofem::MaterialForceEvaluator::computeMaterialForce(), oofem::FreeWarping::computeResultAtCenterOfGravity(), oofem::EIPrimaryUnknownMapper::evaluateAt(), oofem::POIExportModule::exportPrimVarAs(), oofem::ParticleTopologyDescription::findDisplacement(), oofem::SolutionbasedShapeFunction::giveValueAtPoint(), oofem::LSPrimaryVariableMapper::mapPrimaryVariables(), oofem::HangingNode::postInitialize(), oofem::qcNode::postInitializeAsHangingNode(), oofem::PLMaterialForce::propagateInterface(), and oofem::PrescribedGradientBCWeak::removeSegOverHoles().
|
pure virtual |
Returns the element, containing given point and belonging to one of the region in region list.
coords | Global problem coordinates of point of interest. |
regionList | Only elements within given regions are considered, if NULL all regions are considered. |
Implemented in oofem::OctreeSpatialLocalizer, and oofem::DummySpatialLocalizer.
Referenced by oofem::PrimaryField::__evaluateAt(), oofem::MMAContainingElementProjection::__init(), oofem::MMALeastSquareProjection::__init(), oofem::SmoothedNodalInternalVariableField::evaluateAt(), oofem::DofManValueField::evaluateAt(), oofem::GeometryBasedEI::evaluateEnrFuncJumps(), oofem::LevelSetPCS::giveMaterialMixtureAt(), oofem::EnrichmentFront::MarkTipElementNodesAsFront(), oofem::NCPrincipalStrain::nucleateEnrichmentItems(), oofem::NCPrincipalStress::nucleateEnrichmentItems(), oofem::PLPrincipalStrain::propagateInterface(), oofem::PLHoopStressCirc::propagateInterface(), oofem::PLCrackPrescribedDir::propagateInterface(), oofem::REGISTER_EnrichmentFront(), and oofem::EnrichmentItem::tipIsTouchingEI().
|
pure virtual |
Returns the element, containing given point and belonging to one of the region in region list.
coords | Global problem coordinates of point of interest. |
element | set Only elements within given set are considered. |
Implemented in oofem::OctreeSpatialLocalizer.
|
pure virtual |
Returns the node closest to the given coordinate.
coords | Global coordinate. |
Implemented in oofem::OctreeSpatialLocalizer, and oofem::DummySpatialLocalizer.
Referenced by oofem::PrescribedGradientBCWeak::createTractionMesh(), oofem::PrescribedGradientBCPeriodic::findSlaveToMasterMap(), and oofem::TransportGradientPeriodic::findSlaveToMasterMap().
|
inlinevirtual |
Initialize receiver data structure if not done previously If force is set to true, the initialization is enforced (useful if domain geometry has changed)
Reimplemented in oofem::OctreeSpatialLocalizer, and oofem::DummySpatialLocalizer.
Definition at line 225 of file spatiallocalizer.h.
Referenced by oofem::Domain::commitTransactions(), oofem::SolutionbasedShapeFunction::computeBaseFunctionValueAt(), oofem::FreeWarping::computeResultAtCenterOfGravity(), oofem::HangingNode::postInitialize(), oofem::qcNode::postInitializeAsHangingNode(), and oofem::ParticleTopologyDescription::updateYourself().
|
protected |
Link to domain object.
Definition at line 114 of file spatiallocalizer.h.
Referenced by oofem::OctreeSpatialLocalizer::buildOctreeDataStructure(), oofem::OctreeSpatialLocalizer::giveClosestIP(), oofem::OctreeSpatialLocalizer::giveClosestIPWithinOctant(), oofem::DummySpatialLocalizer::giveElementClosestToPoint(), oofem::DummySpatialLocalizer::giveElementContainingPoint(), oofem::OctreeSpatialLocalizer::giveElementsWithIPWithinBox(), oofem::OctreeSpatialLocalizer::giveNodeClosestToPointWithinOctant(), oofem::OctreeSpatialLocalizer::giveNodesWithinBox(), oofem::DummySpatialLocalizer::init(), oofem::OctreeSpatialLocalizer::initElementDataStructure(), oofem::OctreeSpatialLocalizer::initElementIPDataStructure(), oofem::OctreeSpatialLocalizer::insertElementsUsingNodalConnectivitiesIntoOctree(), and oofem::OctreeSpatialLocalizer::insertNodeIntoOctree().