OGS
|
#include <Element.h>
Public Member Functions | |
std::optional< unsigned > | addNeighbor (Element *e) |
Tries to add an element e as neighbour to this element. If the elements really are neighbours, the element is added to the neighbour-list and the face id of the neighbour connected to this element is returned. Otherwise the maximum value of the value type is returned. | |
virtual double | getContent () const =0 |
Returns the length, area or volume of a 1D, 2D or 3D element. | |
virtual const Node * | getNode (unsigned idx) const =0 |
virtual Node * | getNode (unsigned idx)=0 |
virtual void | setNode (unsigned idx, Node *node)=0 |
virtual Node *const * | getNodes () const =0 |
Get array of element nodes. | |
constexpr std::span< Node *const > | nodes () const |
Span of element's nodes, their pointers actually. | |
virtual constexpr unsigned | getDimension () const =0 |
Get dimension of the mesh element. | |
virtual const Element * | getEdge (unsigned i) const =0 |
Returns the i-th edge of the element. | |
virtual const Element * | getFace (unsigned i) const =0 |
Returns the i-th face of the element. | |
virtual const Element * | getBoundary (unsigned i) const =0 |
std::size_t | getID () const |
Returns the ID of the element. | |
virtual unsigned | getNumberOfBoundaries () const =0 |
virtual unsigned | getNumberOfEdges () const =0 |
Get the number of edges for this element. | |
virtual unsigned | getNumberOfFaces () const =0 |
Get the number of faces for this element. | |
virtual const Element * | getNeighbor (unsigned i) const =0 |
Get the specified neighbor. | |
virtual unsigned | getNumberOfNeighbors () const =0 |
Get the number of neighbors for this element. | |
virtual unsigned | getNumberOfBaseNodes () const =0 |
virtual unsigned | getNumberOfNodes () const =0 |
virtual MeshElemType | getGeomType () const =0 |
virtual CellType | getCellType () const =0 |
virtual bool | isBoundaryElement () const |
virtual bool | isEdge (unsigned i, unsigned j) const =0 |
Returns true if these two indices form an edge and false otherwise. | |
virtual bool | isPntInElement (MathLib::Point3d const &pnt, double eps=std::numeric_limits< double >::epsilon()) const =0 |
virtual ElementErrorCode | validate () const =0 |
virtual | ~Element () |
Destructor. | |
virtual Element * | clone () const =0 |
virtual Element * | clone (Node **nodes, std::size_t id) const =0 |
virtual double | computeVolume ()=0 |
virtual unsigned | identifyFace (Node const *nodes[3]) const =0 |
Returns the ID of a face given an array of nodes. | |
virtual bool | testElementNodeOrder () const =0 |
virtual Node * | getEdgeNode (unsigned edge_id, unsigned node_id) const =0 |
Return a specific edge node. | |
Public Attributes | |
unsigned | space_dimension_ = 3u |
Dimension of the space, where the element exists. | |
Protected Member Functions | |
Element (std::size_t id) | |
void | setID (std::size_t id) |
Sets the element ID. | |
void | setNeighbor (Element *neighbor, unsigned const face_id) |
Protected Attributes | |
std::size_t | _id |
Element ** | _neighbors |
Friends | |
class | Mesh |
std::ostream & | operator<< (std::ostream &os, Element const &e) |
|
virtual |
|
explicitprotected |
Constructor for a generic mesh element without an array of mesh nodes.
id | element id |
Definition at line 25 of file Element.cpp.
std::optional< unsigned > MeshLib::Element::addNeighbor | ( | Element * | e | ) |
Tries to add an element e as neighbour to this element. If the elements really are neighbours, the element is added to the neighbour-list and the face id of the neighbour connected to this element is returned. Otherwise the maximum value of the value type is returned.
Definition at line 42 of file Element.cpp.
References _neighbors, MeshLib::areNeighbors(), getDimension(), getNode(), getNodes(), getNumberOfBaseNodes(), and identifyFace().
|
pure virtual |
Method clone is a pure virtual method in the abstract base class Element. It has to be implemented in the derived classes (for instance in class Hex).
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshLib::cloneElements().
Constructs a new object polymorphically. This is similar to clone, but accepts new nodes and id.
nodes
vector is equal to the derived element's total number of nodes. Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
|
pure virtual |
Computes the length / area / volumen of this element. This is automatically done at initialisation time but can be repeated by calling this function at any time.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
|
pure virtual |
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshToolsLib::createSurfaceElementsFromElement().
|
pure virtual |
Get the type of the element in context of the finite element method.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshLib::calculateNormalizedSurfaceNormal(), MeshToolsLib::computeElementVolumeNumerically(), MeshLib::copyElement(), createQuadraticElement(), MeshLib::getBulkElementPoint(), ApplicationUtils::getElementIntegerVariables(), and MeshToolsLib::getNumberOfElementIntegrationPoints().
|
pure virtual |
Returns the length, area or volume of a 1D, 2D or 3D element.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshToolsLib::SizeDifferenceMetric::calculateQuality(), MeshLib::hasZeroVolume(), and ElementTreeModel::setElement().
|
constexprpure virtual |
Get dimension of the mesh element.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshLib::CoordinateSystem::CoordinateSystem(), MeshLib::ElementCoordinatesMappingLocal::ElementCoordinatesMappingLocal(), ProcessLib::HeatTransportBHE::HeatTransportBHELocalAssemblerBHE< ShapeFunction, BHEType >::HeatTransportBHELocalAssemblerBHE(), ProcessLib::LIE::HydroMechanics::HydroMechanicsLocalAssemblerFracture< ShapeFunctionDisplacement, ShapeFunctionPressure, GlobalDim >::HydroMechanicsLocalAssemblerFracture(), ProcessLib::LiquidFlow::LiquidFlowLocalAssembler< ShapeFunction, GlobalDim >::LiquidFlowLocalAssembler(), ProcessLib::LIE::SmallDeformation::SmallDeformationLocalAssemblerFracture< ShapeFunction, DisplacementDim >::SmallDeformationLocalAssemblerFracture(), addNeighbor(), MeshToolsLib::ElementSizeMetric::calc2dOr3dQuality(), MeshLib::calculateNormalizedSurfaceNormal(), MeshToolsLib::SizeDifferenceMetric::calculateQuality(), NumLib::detail::computeMappingMatrices(), MeshToolsLib::createFlippedElement(), MeshToolsLib::MeshLayerMapper::createStaticLayers(), anonymous_namespace{MeshUtils.cpp}::extractOneDimensionalElements(), MeshToolsLib::extrudeElement(), ProcessLib::HeatTransportBHE::LocalDataInitializer< LocalAssemblerInterface, LocalAssemblerDataSoil, LocalAssemblerDataBHE, ConstructorArgs >::makeLocalAssemblerBuilder(), ProcessLib::LIE::HydroMechanics::LocalDataInitializer< LocalAssemblerInterface, LocalAssemblerDataMatrix, LocalAssemblerDataMatrixNearFracture, LocalAssemblerDataFracture, GlobalDim, ConstructorArgs >::makeLocalAssemblerBuilder(), ProcessLib::LIE::SmallDeformation::LocalDataInitializer< LocalAssemblerInterface, LocalAssemblerDataMatrix, LocalAssemblerDataMatrixNearFracture, LocalAssemblerDataFracture, GlobalDim, ConstructorArgs >::makeLocalAssemblerBuilder(), ProcessLib::LIE::SmallDeformation::LocalDataInitializer< LocalAssemblerInterface, LocalAssemblerDataMatrix, LocalAssemblerDataMatrixNearFracture, LocalAssemblerDataFracture, GlobalDim, ConstructorArgs >::operator()(), and MeshToolsLib::MeshRevision::simplifyMesh().
|
pure virtual |
Returns the i-th edge of the element.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshGeoToolsLib::computeElementSegmentIntersections(), and MeshLib::FaceRule::getFace().
|
pure virtual |
Return a specific edge node.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshLib::computeSqrEdgeLengthRange(), convertLinearToQuadratic(), MeshLib::LinearEdgeReturn::getEdge(), and MeshLib::QuadraticEdgeReturn::getEdge().
|
pure virtual |
Returns the i-th face of the element.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshToolsLib::anonymous_namespace{AngleSkewMetric.cpp}::checkHexahedron(), MeshToolsLib::anonymous_namespace{AngleSkewMetric.cpp}::checkPrism(), MeshToolsLib::anonymous_namespace{AngleSkewMetric.cpp}::checkTetrahedron(), anonymous_namespace{MeshRevision.cpp}::reduceHex(), MeshLib::CellRule::testElementNodeOrder(), MeshLib::HexRule::validate(), MeshLib::PrismRule::validate(), and MeshLib::PyramidRule::validate().
|
pure virtual |
Get the type of the mesh element in geometric context (as a MeshElemType-enum).
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >::NormalTractionBoundaryConditionLocalAssembler(), anonymous_namespace{convertMeshToGeo.cpp}::addElementToSurface(), MeshToolsLib::MeshLayerMapper::addLayerToMesh(), MeshToolsLib::createFlippedElement(), MeshToolsLib::MeshLayerMapper::createStaticLayers(), MeshToolsLib::extrudeElement(), MeshToolsLib::MeshSurfaceExtraction::getSurfaceAreaForNodes(), ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::getSurfaceNormal(), MeshToolsLib::Mesh2MeshPropertyInterpolation::interpolatePropertiesForMesh(), MeshLib::isPointInElementXY(), anonymous_namespace{MeshRevision.cpp}::reduceElement(), anonymous_namespace{MeshRevision.cpp}::reduceHex(), ElementTreeModel::setElement(), anonymous_namespace{MeshRevision.cpp}::subdivideElement(), and FileIO::TetGenInterface::writeElementToFacets().
|
inline |
Returns the ID of the element.
Definition at line 89 of file Element.h.
References _id.
Referenced by ProcessLib::ConstraintDirichletBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >::ConstraintDirichletBoundaryConditionLocalAssembler(), ProcessLib::HT::HTFEM< ShapeFunction, GlobalDim >::HTFEM(), ProcessLib::HydroMechanics::HydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::HydroMechanicsLocalAssembler(), ProcessLib::LIE::HydroMechanics::HydroMechanicsLocalAssemblerFracture< ShapeFunctionDisplacement, ShapeFunctionPressure, GlobalDim >::HydroMechanicsLocalAssemblerFracture(), ProcessLib::LIE::HydroMechanics::HydroMechanicsLocalAssemblerMatrix< ShapeFunctionDisplacement, ShapeFunctionPressure, GlobalDim >::HydroMechanicsLocalAssemblerMatrix(), ProcessLib::LiquidFlow::LiquidFlowLocalAssembler< ShapeFunction, GlobalDim >::LiquidFlowLocalAssembler(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::LocalAssemblerData(), ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::PhaseFieldLocalAssembler(), ProcessLib::LIE::SmallDeformation::SmallDeformationLocalAssemblerFracture< ShapeFunction, DisplacementDim >::SmallDeformationLocalAssemblerFracture(), ProcessLib::LIE::SmallDeformation::SmallDeformationLocalAssemblerMatrix< ShapeFunction, DisplacementDim >::SmallDeformationLocalAssemblerMatrix(), ProcessLib::LIE::SmallDeformation::SmallDeformationLocalAssemblerMatrixNearFracture< ShapeFunction, DisplacementDim >::SmallDeformationLocalAssemblerMatrixNearFracture(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalLocalAssembler< ShapeFunction, DisplacementDim >::SmallDeformationNonlocalLocalAssembler(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::ThermoHydroMechanicsLocalAssembler(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::ThermoMechanicalPhaseFieldLocalAssembler(), ProcessLib::ThermoMechanics::ThermoMechanicsLocalAssembler< ShapeFunction, DisplacementDim >::ThermoMechanicsLocalAssembler(), ProcessLib::ThermoRichardsFlow::ThermoRichardsFlowLocalAssembler< ShapeFunction, GlobalDim >::ThermoRichardsFlowLocalAssembler(), ProcessLib::WellboreSimulator::WellboreSimulatorFEM< ShapeFunction, GlobalDim >::WellboreSimulatorFEM(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assemble(), ProcessLib::HCNonAdvectiveFreeComponentFlowBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >::assemble(), ProcessLib::HeatConduction::LocalAssemblerData< ShapeFunction, GlobalDim >::assemble(), ProcessLib::HT::MonolithicHTFEM< ShapeFunction, GlobalDim >::assemble(), ProcessLib::NeumannBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >::assemble(), ProcessLib::RichardsFlow::LocalAssemblerData< ShapeFunction, GlobalDim >::assemble(), ProcessLib::RobinBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >::assemble(), ProcessLib::SteadyStateDiffusion::LocalAssemblerData< ShapeFunction, GlobalDim >::assemble(), ProcessLib::StokesFlow::LocalAssemblerData< ShapeFunctionLiquidVelocity, ShapeFunctionPressure, GlobalDim >::assemble(), ProcessLib::WellboreCompensateNeumannBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >::assemble(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleBlockMatrices(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleComponentTransportEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleHeatTransportEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleHydraulicEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleKCmCn(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleReactionEquationConcrete(), ProcessLib::HeatConduction::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleWithJacobian(), ProcessLib::LargeDeformation::LargeDeformationLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobian(), ProcessLib::SmallDeformation::SmallDeformationLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobian(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobian(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleWithJacobianComponentTransportEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleWithJacobianHydraulicEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::calculateIntPtDarcyVelocity(), NumLib::detail::checkJacobianDeterminant(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::computeSecondaryVariableConcrete(), ProcessLib::SmallDeformation::SmallDeformationLocalAssemblerInterface< DisplacementDim >::computeSecondaryVariableConcrete(), ProcessLib::WellboreSimulator::WellboreSimulatorFEM< ShapeFunction, GlobalDim >::computeSecondaryVariableConcrete(), convertLinearToQuadratic(), MeshToolsLib::createFlippedElement(), MeshGeoToolsLib::createSubSegmentsForElement(), MeshToolsLib::createSurfaceElementsFromElement(), MeshLib::findElementsWithinRadius(), ProcessLib::HeatTransportBHE::getBHEDataInMesh(), MeshLib::LinearEdgeReturn::getEdge(), MeshLib::QuadraticEdgeReturn::getEdge(), MeshLib::HexRule20::getFace(), MeshLib::HexRule8::getFace(), MeshLib::PrismRule15::getFace(), MeshLib::PrismRule6::getFace(), MeshLib::PyramidRule13::getFace(), MeshLib::PyramidRule5::getFace(), MeshLib::TetRule10::getFace(), MeshLib::TetRule4::getFace(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::getFlux(), ProcessLib::HT::HTFEM< ShapeFunction, GlobalDim >::getFlux(), ProcessLib::SteadyStateDiffusion::LocalAssemblerData< ShapeFunction, GlobalDim >::getFlux(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::getHeatEnergyCoefficient(), ProcessLib::HT::HTFEM< ShapeFunction, GlobalDim >::getHeatEnergyCoefficient(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtDarcyVelocity(), ProcessLib::HT::MonolithicHTFEM< ShapeFunction, GlobalDim >::getIntPtDarcyVelocity(), ProcessLib::RichardsFlow::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtDarcyVelocity(), ProcessLib::SteadyStateDiffusion::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtDarcyVelocity(), ProcessLib::HT::HTFEM< ShapeFunction, GlobalDim >::getIntPtDarcyVelocityLocal(), ProcessLib::HeatConduction::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtHeatFlux(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtMolarFlux(), ProcessLib::LargeDeformation::LargeDeformationLocalAssemblerInterface< DisplacementDim >::getMaterialID(), ProcessLib::RichardsMechanics::LocalAssemblerInterface< DisplacementDim >::getMaterialID(), ProcessLib::SmallDeformation::SmallDeformationLocalAssemblerInterface< DisplacementDim >::getMaterialID(), ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::getMaterialID(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::getMaterialID(), ProcessLib::ThermoRichardsMechanics::LocalAssemblerInterface< DisplacementDim, ConstitutiveTraits >::getMaterialID(), ParameterLib::MeshElementParameter< T >::getNodalValuesOnElement(), ParameterLib::Parameter< T >::getNodalValuesOnElement(), ParameterLib::RandomFieldMeshElementParameter< T >::getNodalValuesOnElement(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::getThermalConductivityDispersivity(), ProcessLib::HT::HTFEM< ShapeFunction, GlobalDim >::getThermalConductivityDispersivity(), anonymous_namespace{MeshUtils.cpp}::getUniqueMaterialIds(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::initializeChemicalSystemConcrete(), ProcessLib::HydroMechanics::HydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::initializeConcrete(), ProcessLib::LargeDeformation::LargeDeformationLocalAssembler< ShapeFunction, DisplacementDim >::initializeConcrete(), ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::initializeConcrete(), ProcessLib::RichardsMechanics::RichardsMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::initializeConcrete(), ProcessLib::SmallDeformation::SmallDeformationLocalAssembler< ShapeFunction, DisplacementDim >::initializeConcrete(), ProcessLib::TH2M::TH2MLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::initializeConcrete(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::initializeConcrete(), ProcessLib::ThermoMechanics::ThermoMechanicsLocalAssembler< ShapeFunction, DisplacementDim >::initializeConcrete(), ProcessLib::ThermoRichardsMechanics::ThermoRichardsMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunction, DisplacementDim, ConstitutiveTraits >::initializeConcrete(), ProcessLib::VolumetricSourceTermLocalAssembler< ShapeFunction, GlobalDim >::integrate(), ProcessLib::DeactivatedSubdomain::isDeactivated(), ProcessLib::HeatTransportBHE::LocalDataInitializer< LocalAssemblerInterface, LocalAssemblerDataSoil, LocalAssemblerDataBHE, ConstructorArgs >::makeLocalAssemblerBuilderBHE(), ProcessLib::LargeDeformation::LargeDeformationLocalAssembler< ShapeFunction, DisplacementDim >::postTimestepConcrete(), ProcessLib::SmallDeformation::SmallDeformationLocalAssembler< ShapeFunction, DisplacementDim >::postTimestepConcrete(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::postTimestepConcrete(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalLocalAssembler< ShapeFunction, DisplacementDim >::preAssemble(), MeshGeoToolsLib::resetMeshElementProperty(), MeshLib::ElementSearch::searchByNodeIDs(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::setChemicalSystemConcrete(), ElementTreeModel::setElement(), ProcessLib::LIE::setFractureProperty(), ProcessLib::LargeDeformation::LargeDeformationLocalAssemblerInterface< DisplacementDim >::setIPDataInitialConditions(), ProcessLib::RichardsMechanics::LocalAssemblerInterface< DisplacementDim >::setIPDataInitialConditions(), ProcessLib::SmallDeformation::SmallDeformationLocalAssemblerInterface< DisplacementDim >::setIPDataInitialConditions(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalLocalAssembler< ShapeFunction, DisplacementDim >::setIPDataInitialConditions(), ProcessLib::ThermoRichardsMechanics::LocalAssemblerInterface< DisplacementDim, ConstitutiveTraits >::setIPDataInitialConditions(), MeshToolsLib::trackSurface(), and FileIO::TetGenInterface::write3dElements().
|
pure virtual |
Get the specified neighbor.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshLib::areNeighbors(), MeshToolsLib::SizeDifferenceMetric::calculateQuality(), MeshToolsLib::createSurfaceElementsFromElement(), and MeshToolsLib::trackSurface().
|
pure virtual |
Get node with local index where the local index should be at most the number of nodes of the element.
idx | local index of node, at most the number of nodes of the element that you can obtain with Element::getNumberOfBaseNodes() |
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshLib::ElementCoordinatesMappingLocal::ElementCoordinatesMappingLocal(), ProcessLib::HeatTransportBHE::HeatTransportBHELocalAssemblerBHE< ShapeFunction, BHEType >::HeatTransportBHELocalAssemblerBHE(), ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >::NormalTractionBoundaryConditionLocalAssembler(), ProcessLib::WellboreSimulator::WellboreSimulatorFEM< ShapeFunction, GlobalDim >::WellboreSimulatorFEM(), MeshToolsLib::MeshGenerator::AddFaultToVoxelGrid::addFaultToVoxelGrid(), addNeighbor(), MeshLib::calculateNormalizedSurfaceNormal(), MeshToolsLib::anonymous_namespace{AngleSkewMetric.cpp}::checkQuad(), MeshToolsLib::anonymous_namespace{AngleSkewMetric.cpp}::checkTriangle(), anonymous_namespace{CollectAndInterpolateNodalDof.cpp}::collectDofsToMatrixSingleComponentForSomeNodes(), ProcessLib::LIE::computePhysicalCoordinates(), MeshLib::computeSqrNodeDistanceRange(), anonymous_namespace{MeshRevision.cpp}::constructFourNodeElement(), anonymous_namespace{MeshRevision.cpp}::constructLine(), anonymous_namespace{MeshRevision.cpp}::constructTri(), convertLinearToQuadratic(), MeshLib::copyElement(), MeshToolsLib::createFlippedElement(), FileIO::SHPInterface::createShapeObject(), MeshToolsLib::MeshLayerMapper::createStaticLayers(), MeshToolsLib::extrudeElement(), MeshLib::findElementsWithinRadius(), anonymous_namespace{MeshRevision.cpp}::findPyramidTopNode(), MeshLib::getCenterOfGravity(), ApplicationUtils::getElementIntegerVariables(), MeshToolsLib::ProjectPointOnMesh::getElevation(), MeshLib::HexRule20::getFace(), MeshLib::HexRule8::getFace(), MeshLib::PrismRule15::getFace(), MeshLib::PrismRule6::getFace(), MeshLib::PyramidRule13::getFace(), MeshLib::PyramidRule5::getFace(), MeshLib::TetRule10::getFace(), MeshLib::TetRule4::getFace(), MeshLib::FaceRule::getFirstSurfaceVector(), MeshLib::getNodeIDinElement(), MeshLib::getNodeIndex(), anonymous_namespace{MeshRevision.cpp}::getNumberOfUniqueNodes(), MeshLib::FaceRule::getSecondSurfaceVector(), ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::getSurfaceNormal(), MeshLib::isPointInElementXY(), MeshGeoToolsLib::mapPointOnSurfaceElement(), anonymous_namespace{MeshRevision.cpp}::reduceHex(), anonymous_namespace{MeshRevision.cpp}::reducePrism(), ElementTreeModel::setElement(), MeshGeoToolsLib::snapPointToElementNode(), MeshLib::MeshElementGrid::sortElementInGridCells(), and MeshLib::CellRule::testElementNodeOrder().
|
pure virtual |
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
|
pure virtual |
Get array of element nodes.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshLib::CoordinateSystem::CoordinateSystem(), addNeighbor(), MeshToolsLib::RadiusEdgeRatioMetric::calculateQuality(), MeshToolsLib::anonymous_namespace{ConvertToLinearMesh.cpp}::createLinearElement(), ParameterLib::MeshNodeParameter< T >::getNodalValuesOnElement(), ParameterLib::Parameter< T >::getNodalValuesOnElement(), ParameterLib::RasterParameter::getNodalValuesOnElement(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalLocalAssembler< ShapeFunction, DisplacementDim >::getSingleIntegrationPointCoordinates(), NumLib::TemplateIsoparametric< ShapeFunctionType_, ShapeMatrixTypes_ >::interpolateCoordinates(), MeshToolsLib::Mesh2MeshPropertyInterpolation::interpolatePropertiesForMesh(), NumLib::TemplateIsoparametric< ShapeFunctionType_, ShapeMatrixTypes_ >::interpolateZerothCoordinate(), FileIO::Gocad::GocadSGridReader::modifyElement(), nodes(), MeshGeoToolsLib::resetMeshElementProperty(), and MeshLib::QuadRule::validate().
|
pure virtual |
Returns the number of linear nodes.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by addNeighbor(), MeshToolsLib::RadiusEdgeRatioMetric::calculateQuality(), ProcessLib::BoundaryConditionAndSourceTerm::Python::collectDofsToMatrixOnBaseNodesSingleComponent(), MeshLib::computeSqrNodeDistanceRange(), anonymous_namespace{MeshRevision.cpp}::constructFourNodeElement(), anonymous_namespace{MeshRevision.cpp}::constructLine(), anonymous_namespace{MeshRevision.cpp}::constructTri(), convertLinearToQuadratic(), FileIO::SHPInterface::createShapeObject(), MeshToolsLib::MeshLayerMapper::createStaticLayers(), MeshToolsLib::extrudeElement(), anonymous_namespace{MeshRevision.cpp}::findPyramidTopNode(), MeshLib::getCenterOfGravity(), anonymous_namespace{MeshRevision.cpp}::getNumberOfUniqueNodes(), MeshLib::Mesh::hasNonlinearElement(), anonymous_namespace{BoundaryElementsAlongPolyline.cpp}::includesAllEdgeNodeIDs(), MeshToolsLib::Mesh2MeshPropertyInterpolation::interpolatePropertiesForMesh(), NumLib::interpolateToHigherOrderNodes(), MeshLib::isPointInElementXY(), ProcessLib::LIE::HydroMechanics::LocalDataInitializer< LocalAssemblerInterface, LocalAssemblerDataMatrix, LocalAssemblerDataMatrixNearFracture, LocalAssemblerDataFracture, GlobalDim, ConstructorArgs >::operator()(), LayeredVolume::removeCongruentElements(), ElementTreeModel::setElement(), FileIO::FEFLOWMeshInterface::setMaterialIDs(), and MeshToolsLib::MeshRevision::simplifyMesh().
|
pure virtual |
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshToolsLib::createSurfaceElementsFromElement().
|
pure virtual |
Get the number of edges for this element.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshGeoToolsLib::computeElementSegmentIntersections(), MeshLib::computeSqrEdgeLengthRange(), and convertLinearToQuadratic().
|
pure virtual |
Get the number of faces for this element.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshLib::CellRule::testElementNodeOrder().
|
pure virtual |
Get the number of neighbors for this element.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshLib::areNeighbors(), MeshToolsLib::SizeDifferenceMetric::calculateQuality(), isBoundaryElement(), and MeshToolsLib::trackSurface().
|
pure virtual |
Returns the number of all nodes including both linear and nonlinear nodes
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshLib::CoordinateSystem::CoordinateSystem(), MeshLib::ElementCoordinatesMappingLocal::ElementCoordinatesMappingLocal(), ProcessLib::LIE::PostProcessTool::PostProcessTool(), ProcessLib::BoundaryConditionAndSourceTerm::Python::collectDofsToMatrix(), ProcessLib::LIE::computePhysicalCoordinates(), MeshLib::computeSqrNodeDistanceRange(), MeshLib::copyElement(), MeshToolsLib::createFlippedElement(), MeshLib::findElementsWithinRadius(), ApplicationUtils::getElementIntegerVariables(), ParameterLib::ConstantParameter< T >::getNodalValuesOnElement(), ParameterLib::MeshElementParameter< T >::getNodalValuesOnElement(), ParameterLib::MeshNodeParameter< T >::getNodalValuesOnElement(), ParameterLib::Parameter< T >::getNodalValuesOnElement(), ParameterLib::RandomFieldMeshElementParameter< T >::getNodalValuesOnElement(), ParameterLib::RasterParameter::getNodalValuesOnElement(), MeshLib::getNodeIDinElement(), MeshLib::getNodeIndex(), MeshLib::Mesh::hasNonlinearElement(), NumLib::interpolateToHigherOrderNodes(), nodes(), ProcessLib::LIE::HydroMechanics::LocalDataInitializer< LocalAssemblerInterface, LocalAssemblerDataMatrix, LocalAssemblerDataMatrixNearFracture, LocalAssemblerDataFracture, GlobalDim, ConstructorArgs >::operator()(), ProcessLib::LIE::SmallDeformation::LocalDataInitializer< LocalAssemblerInterface, LocalAssemblerDataMatrix, LocalAssemblerDataMatrixNearFracture, LocalAssemblerDataFracture, GlobalDim, ConstructorArgs >::operator()(), MeshLib::VtkMappedMeshSource::RequestData(), MeshGeoToolsLib::resetMeshElementProperty(), MeshGeoToolsLib::snapPointToElementNode(), and MeshLib::MeshElementGrid::sortElementInGridCells().
|
pure virtual |
Returns the ID of a face given an array of nodes.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by addNeighbor().
|
virtual |
Returns true if the element is located at a boundary (i.e. has at least one face without neighbour)
Definition at line 81 of file Element.cpp.
References _neighbors, and getNumberOfNeighbors().
|
pure virtual |
Returns true if these two indices form an edge and false otherwise.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by anonymous_namespace{MeshRevision.cpp}::reduceHex().
|
pure virtual |
Checks if a point is inside the element.
pnt | a 3D MathLib::Point3d object |
eps | tolerance for numerical algorithm used or computing the property |
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
|
inlineconstexpr |
Span of element's nodes, their pointers actually.
Definition at line 72 of file Element.h.
References getNodes(), and getNumberOfNodes().
Referenced by MeshLib::TemplateElement< ELEMENT_RULE >::TemplateElement(), MeshLib::TemplateElement< ELEMENT_RULE >::clone(), ApplicationUtils::computePartitionIDPerElement(), anonymous_namespace{MeshRevision.cpp}::constructLine(), MeshLib::TemplateElement< ELEMENT_RULE >::identifyFace(), anonymous_namespace{MeshRevision.cpp}::reduceHex(), anonymous_namespace{MeshRevision.cpp}::reducePrism(), anonymous_namespace{MeshRevision.cpp}::subdivideHex(), anonymous_namespace{MeshRevision.cpp}::subdividePrism(), anonymous_namespace{MeshRevision.cpp}::subdividePyramid(), and anonymous_namespace{MeshRevision.cpp}::subdivideQuad().
|
inlineprotected |
|
protected |
Sets the neighbor over the face with face_id
to the given neighbor
.
Definition at line 32 of file Element.cpp.
References _neighbors.
Referenced by MeshLib::Mesh::setElementNeighbors().
|
pure virtual |
(Re)Sets the node of the element.
idx | the index of the pointer to a node within the element |
node | a pointer to a node |
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by ProcessLib::LIE::PostProcessTool::PostProcessTool(), and LayeredVolume::removeCongruentElements().
|
pure virtual |
Checks if the node order of an element is correct by testing surface normals.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by MeshLib::HexRule::validate(), MeshLib::PrismRule::validate(), MeshLib::PyramidRule::validate(), MeshLib::QuadRule::validate(), MeshLib::TetRule::validate(), and MeshLib::TriRule::validate().
|
pure virtual |
Tests if the element is geometrically valid.
Implemented in MeshLib::TemplateElement< ELEMENT_RULE >.
Referenced by anonymous_namespace{MeshRevision.cpp}::constructFourNodeElement(), MeshToolsLib::MeshRevision::simplifyMesh(), and MeshLib::HexRule::validate().
|
friend |
Definition at line 88 of file Element.cpp.
|
protected |
|
protected |
Definition at line 202 of file Element.h.
Referenced by MeshLib::TemplateElement< ELEMENT_RULE >::TemplateElement(), MeshLib::TemplateElement< ELEMENT_RULE >::TemplateElement(), MeshLib::TemplateElement< ELEMENT_RULE >::TemplateElement(), ~Element(), addNeighbor(), MeshLib::TemplateElement< ELEMENT_RULE >::getNeighbor(), isBoundaryElement(), and setNeighbor().
unsigned MeshLib::Element::space_dimension_ = 3u |
Dimension of the space, where the element exists.
Definition at line 190 of file Element.h.
Referenced by MeshLib::ElementCoordinatesMappingLocal::ElementCoordinatesMappingLocal(), MeshLib::TemplateElement< ELEMENT_RULE >::TemplateElement(), MeshLib::TemplateElement< ELEMENT_RULE >::TemplateElement(), and MeshLib::TemplateElement< ELEMENT_RULE >::TemplateElement().