diff --git a/Applications/DataExplorer/DataView/ElementTreeModel.cpp b/Applications/DataExplorer/DataView/ElementTreeModel.cpp index 95bfb4922ce78f3ab68e60eb8d915821ec45716d..19792c9b2ee2f90c662363ab399c7dc51935feb2 100644 --- a/Applications/DataExplorer/DataView/ElementTreeModel.cpp +++ b/Applications/DataExplorer/DataView/ElementTreeModel.cpp @@ -79,7 +79,7 @@ void ElementTreeModel::setElement(vtkUnstructuredGridAlgorithm const*const grid, elemItem->appendChild(nodeListItem); //const std::vector<MeshLib::Node*> nodes_vec = grid->getNodes(); - size_t nElemNodes = elem->getNNodes(); + size_t nElemNodes = elem->getNBaseNodes(); for (size_t i = 0; i < nElemNodes; i++) { const MeshLib::Node* node = elem->getNode(i); diff --git a/Applications/DataExplorer/VtkVis/VtkMeshSource.cpp b/Applications/DataExplorer/VtkVis/VtkMeshSource.cpp index beb8d3b6d82162205db9b6d85040d668505aa968..5f747a9a877eae97825d45035890595c59e5b4c3 100644 --- a/Applications/DataExplorer/VtkVis/VtkMeshSource.cpp +++ b/Applications/DataExplorer/VtkVis/VtkMeshSource.cpp @@ -88,7 +88,7 @@ void VtkMeshSource::PrintSelf( ostream& os, vtkIndent indent ) for (std::vector<MeshLib::Element*>::const_iterator it = elems.begin(); it != elems.end(); ++it) { os << indent << "Element " << i << ": "; - for (unsigned t = 0; t < (*it)->getNNodes(); ++t) + for (unsigned t = 0; t < (*it)->getNBaseNodes(); ++t) os << (*it)->getNode(t)->getID() << " "; os << "\n"; } @@ -140,7 +140,7 @@ int VtkMeshSource::RequestData( vtkInformation* request, materialIDs->InsertValue(i, elem->getValue()); vtkIdList* point_ids = vtkIdList::New(); - const unsigned nElemNodes (elem->getNNodes()); + const unsigned nElemNodes (elem->getNBaseNodes()); point_ids->SetNumberOfIds(nElemNodes); for (unsigned j = 0; j < nElemNodes; ++j) point_ids->SetId(j, elem->getNode(j)->getID()); diff --git a/Applications/Utils/MeshEdit/DataExplorer5NodeReordering.cpp b/Applications/Utils/MeshEdit/DataExplorer5NodeReordering.cpp index cbae071c4565b12d4d3e482ddf4b7def42cd0226..0d135670ac279ecb6070393cb8100c01285e3eba 100644 --- a/Applications/Utils/MeshEdit/DataExplorer5NodeReordering.cpp +++ b/Applications/Utils/MeshEdit/DataExplorer5NodeReordering.cpp @@ -32,7 +32,7 @@ void reorderNodes(std::vector<MeshLib::Element*> &elements) std::size_t nElements (elements.size()); for (std::size_t i=0; i<nElements; ++i) { - const unsigned nElemNodes (elements[i]->getNNodes()); + const unsigned nElemNodes (elements[i]->getNBaseNodes()); std::vector<MeshLib::Node*> nodes(elements[i]->getNodes(), elements[i]->getNodes() + nElemNodes); switch (elements[i]->getGeomType()) diff --git a/FileIO/FEFLOWInterface.cpp b/FileIO/FEFLOWInterface.cpp index 2e9dd0cf6500aaca0320236b39ad5802438606a3..bbb90a1b788cd4656da3a0ca9cf6d7ac948c3b2b 100644 --- a/FileIO/FEFLOWInterface.cpp +++ b/FileIO/FEFLOWInterface.cpp @@ -483,7 +483,7 @@ void FEFLOWInterface::setMaterialID(const FEM_CLASS &fem_class, const FEM_DIM &f for (auto* e : vec_elements) { unsigned e_min_nodeID = std::numeric_limits<unsigned>::max(); - for (size_t i=0; i<e->getNNodes(); i++) + for (size_t i=0; i<e->getNBaseNodes(); i++) e_min_nodeID = std::min(e_min_nodeID, e->getNodeIndex(i)); size_t layer_id = e_min_nodeID / no_nodes_per_layer; e->setValue(layer_id); diff --git a/FileIO/Legacy/MeshIO.cpp b/FileIO/Legacy/MeshIO.cpp index 6d25d1ee27f4c9dd019df5f0be53144170c4b3c8..d7a5276d31e5fc7ba60d1a0483c3ffea6ed2e86c 100644 --- a/FileIO/Legacy/MeshIO.cpp +++ b/FileIO/Legacy/MeshIO.cpp @@ -269,7 +269,7 @@ void MeshIO::writeElements(std::vector<MeshLib::Element*> const& ele_vec, out << ele_vector_size << "\n"; for (size_t i(0); i < ele_vector_size; ++i) { out << i << " " << ele_vec[i]->getValue() << " " << this->ElemType2StringOutput(ele_vec[i]->getGeomType()) << " "; - unsigned nElemNodes (ele_vec[i]->getNNodes()); + unsigned nElemNodes (ele_vec[i]->getNBaseNodes()); for(size_t j = 0; j < nElemNodes; ++j) out << ele_vec[i]->getNode(j)->getID() << " "; out << "\n"; diff --git a/FileIO/SHPInterface.cpp b/FileIO/SHPInterface.cpp index 04e6e73abb4c4fa4a941e337c47a19b80610ec7f..198e3e8e202acea4d6a0247aa8ddf626ece3536d 100644 --- a/FileIO/SHPInterface.cpp +++ b/FileIO/SHPInterface.cpp @@ -242,7 +242,7 @@ bool SHPInterface::write2dMeshToSHP(const std::string &file_name, const MeshLib: DBFWriteIntegerAttribute(hDBF, polygon_id, elem_id_field, i); DBFWriteIntegerAttribute(hDBF, polygon_id, mat_field, e->getValue()); - unsigned nNodes (e->getNNodes()); + unsigned nNodes (e->getNBaseNodes()); padfX = new double[nNodes+1]; padfY = new double[nNodes+1]; padfZ = new double[nNodes+1]; diff --git a/FileIO/XmlIO/Boost/BoostVtuInterface.cpp b/FileIO/XmlIO/Boost/BoostVtuInterface.cpp index 8fb074a154bf463fea3d9117b0d32ceb623d9566..0c52a9d5aa46b0e7e47b75a6b1e09aa8be5aa4f2 100644 --- a/FileIO/XmlIO/Boost/BoostVtuInterface.cpp +++ b/FileIO/XmlIO/Boost/BoostVtuInterface.cpp @@ -506,7 +506,7 @@ void BoostVtuInterface::buildPropertyTree() for (unsigned i = 0; i < nElems; i++) { MeshLib::Element* element (elements[i]); - const unsigned nElemNodes (element->getNNodes()); + const unsigned nElemNodes (element->getNBaseNodes()); oss << data_array_indent; for (unsigned j = 0; j < nElemNodes; j++) oss << element->getNode(j)->getID() << " "; diff --git a/MeshGeoToolsLib/BoundaryElementsAlongPolyline.cpp b/MeshGeoToolsLib/BoundaryElementsAlongPolyline.cpp index 0ff2347d6f9772c46573ef829fb33f5cd71d3692..133ccf6c2213831f95f698074ed5bd70bca23573 100644 --- a/MeshGeoToolsLib/BoundaryElementsAlongPolyline.cpp +++ b/MeshGeoToolsLib/BoundaryElementsAlongPolyline.cpp @@ -73,14 +73,14 @@ BoundaryElementsAlongPolyline::~BoundaryElementsAlongPolyline() bool BoundaryElementsAlongPolyline::includesAllEdgeNodeIDs(const std::vector<std::size_t> &vec_node_ids, const MeshLib::Element &edge, std::vector<std::size_t> &edge_node_distances) const { unsigned j=0; - for (; j<edge.getNNodes(); j++) { + for (; j<edge.getNBaseNodes(); j++) { auto itr = std::find(vec_node_ids.begin(), vec_node_ids.end(), edge.getNodeIndex(j)); if (itr != vec_node_ids.end()) edge_node_distances.push_back(std::distance(vec_node_ids.begin(), itr)); else break; } - return (j==edge.getNNodes()); + return (j==edge.getNBaseNodes()); } MeshLib::Element* BoundaryElementsAlongPolyline::modifyEdgeNodeOrdering(const MeshLib::Element &edge, const GeoLib::Polyline &ply, const std::vector<std::size_t> &edge_node_distances_along_ply, const std::vector<std::size_t> &node_ids_on_poly) const @@ -90,8 +90,8 @@ MeshLib::Element* BoundaryElementsAlongPolyline::modifyEdgeNodeOrdering(const Me // Otherwise, create a new element with reversed local node index if (edge_node_distances_along_ply.front() > edge_node_distances_along_ply.back() || (ply.isClosed() && edge_node_distances_along_ply.back() == node_ids_on_poly.size()-1)) { - MeshLib::Node** new_nodes = new MeshLib::Node*[edge.getNNodes()]; - std::reverse_copy(edge.getNodes(), edge.getNodes()+edge.getNNodes(), new_nodes); + MeshLib::Node** new_nodes = new MeshLib::Node*[edge.getNBaseNodes()]; + std::reverse_copy(edge.getNodes(), edge.getNodes()+edge.getNBaseNodes(), new_nodes); new_edge = new MeshLib::Line(new_nodes); } return new_edge; diff --git a/MeshGeoToolsLib/BoundaryElementsOnSurface.cpp b/MeshGeoToolsLib/BoundaryElementsOnSurface.cpp index e6ddc9241f50636def41845e9ce0868abc7b681a..14682b63b0b04df5d865731721d5bfca71121e21 100644 --- a/MeshGeoToolsLib/BoundaryElementsOnSurface.cpp +++ b/MeshGeoToolsLib/BoundaryElementsOnSurface.cpp @@ -37,14 +37,14 @@ BoundaryElementsOnSurface::BoundaryElementsOnSurface(MeshLib::Mesh const& mesh, auto* face = e->getFace(i); // check size_t cnt_match = 0; - for (size_t j=0; j<face->getNNodes(); j++) { + for (size_t j=0; j<face->getNBaseNodes(); j++) { if (std::find(node_ids_on_sfc.begin(), node_ids_on_sfc.end(), face->getNodeIndex(j)) != node_ids_on_sfc.end()) cnt_match++; else break; } // update the list - if (cnt_match==face->getNNodes()) + if (cnt_match==face->getNBaseNodes()) _boundary_elements.push_back(const_cast<MeshLib::Element*>(face)); else delete face; diff --git a/MeshLib/ElementStatus.cpp b/MeshLib/ElementStatus.cpp index ea57800622883464b8bcabeeb8e2bf453113e2d2..b21b7b90a84155641c5dca4ae2f1e14126eed19c 100644 --- a/MeshLib/ElementStatus.cpp +++ b/MeshLib/ElementStatus.cpp @@ -99,7 +99,7 @@ void ElementStatus::setElementStatus(std::size_t i, bool status) { const int change = (status) ? 1 : -1; _element_status[i] = status; - const unsigned nElemNodes (_mesh->getElement(i)->getNNodes()); + const unsigned nElemNodes (_mesh->getElement(i)->getNBaseNodes()); MeshLib::Node const*const*const nodes = _mesh->getElement(i)->getNodes(); for (unsigned i=0; i<nElemNodes; ++i) { diff --git a/MeshLib/Elements/Element.cpp b/MeshLib/Elements/Element.cpp index e4e99e0268a7fb89c8fc52bf9552072eb770eb1f..3d766a4884d02fe6ffd47cb5aa9389035b6591bd 100644 --- a/MeshLib/Elements/Element.cpp +++ b/MeshLib/Elements/Element.cpp @@ -53,8 +53,8 @@ boost::optional<unsigned> Element::addNeighbor(Element* e) return boost::optional<unsigned>(); Node* face_nodes[3]; - const unsigned nNodes (this->getNNodes()); - const unsigned eNodes (e->getNNodes()); + const unsigned nNodes (this->getNBaseNodes()); + const unsigned eNodes (e->getNBaseNodes()); const Node* const* e_nodes = e->getNodes(); unsigned count(0); const unsigned dim (this->getDimension()); @@ -76,7 +76,7 @@ boost::optional<unsigned> Element::addNeighbor(Element* e) MeshLib::Node Element::getCenterOfGravity() const { - const unsigned nNodes (this->getNNodes()); + const unsigned nNodes (this->getNBaseNodes()); MeshLib::Node center(0,0,0); for (unsigned i=0; i<nNodes; ++i) { @@ -126,7 +126,7 @@ const Element* Element::getNeighbor(unsigned i) const unsigned Element::getNodeIDinElement(const MeshLib::Node* node) const { - const unsigned nNodes (this->getNNodes()); + const unsigned nNodes (this->getNBaseNodes()); for (unsigned i(0); i<nNodes; i++) if (node == _nodes[i]) return i; @@ -135,7 +135,7 @@ unsigned Element::getNodeIDinElement(const MeshLib::Node* node) const const Node* Element::getNode(unsigned i) const { - if (i < getNNodes()) + if (i < getNBaseNodes()) return _nodes[i]; ERR("Error in MeshLib::Element::getNode() - Index %d in %s", i, MeshElemType2String(getGeomType()).c_str()); return nullptr; @@ -143,13 +143,13 @@ const Node* Element::getNode(unsigned i) const void Element::setNode(unsigned idx, Node* node) { - if (idx < getNNodes()) + if (idx < getNBaseNodes()) _nodes[idx] = node; } unsigned Element::getNodeIndex(unsigned i) const { - if (i<getNNodes()) + if (i<getNBaseNodes()) return _nodes[i]->getID(); ERR("Error in MeshLib::Element::getNodeIndex() - Index does not exist."); return std::numeric_limits<unsigned>::max(); diff --git a/MeshLib/Elements/Element.h b/MeshLib/Elements/Element.h index 23435d802d59eb384ef047829c3d04afb81c4357..9d2d6f08d2d411af610dc3b91d50f0acc379ab2b 100644 --- a/MeshLib/Elements/Element.h +++ b/MeshLib/Elements/Element.h @@ -60,7 +60,7 @@ public: * Get node with local index i where i should be at most the number * of nodes of the element * @param i local index of node, at most the number of nodes of the - * element that you can obtain with Element::getNNodes() + * element that you can obtain with Element::getNBaseNodes() * @return a pointer to the appropriate (and constant, i.e. not * modifiable by the user) instance of class Node or a NULL pointer * @sa Element::getNodeIndex() @@ -105,16 +105,12 @@ public: virtual unsigned getNNeighbors() const = 0; /** - * Returns the number of nodes. In dependency of the parameter - * the number of nodes for the geometric element is returned or - * the total number of nodes associated with this element - * is returned. The numbers can be different for instance if the - * element is used for higher order elements in finite element - * method. - * @param all (default = false) - * @return the number of nodes with respect to the parameter. + * Returns the number of linear nodes. */ - virtual unsigned getNNodes(bool all = false) const = 0; + virtual unsigned getNBaseNodes() const = 0; + + /// Returns the number of all nodes including both linear and nonlinear nodes + virtual unsigned getNNodes() const = 0; /// Returns the position of the given node in the node array of this element. virtual unsigned getNodeIDinElement(const MeshLib::Node* node) const; @@ -123,7 +119,7 @@ public: * Get the global index for the Node with local index i. * The index i should be at most the number of nodes of the element. * @param i local index of Node, at most the number of nodes of the - * element that you can obtain with Element::getNNodes() + * element that you can obtain with Element::getNBaseNodes() * @return the global index or std::numeric_limits<unsigned>::max() * @sa Element::getNode() */ diff --git a/MeshLib/Elements/TemplateHex.h b/MeshLib/Elements/TemplateHex.h index 6566be8670dc02842d388f774e4647f1b9031523..99f83ea5709304afb2c3670f07d8fc87546b0b57 100644 --- a/MeshLib/Elements/TemplateHex.h +++ b/MeshLib/Elements/TemplateHex.h @@ -83,10 +83,16 @@ public: /// Get the number of neighbors for this element. unsigned getNNeighbors() const { return 6; }; - /// Get the number of nodes for this element. - virtual unsigned getNNodes(bool all = false) const + /// Get the number of linear nodes for this element. + virtual unsigned getNBaseNodes() const { - return all ? n_all_nodes : n_base_nodes; + return n_base_nodes; + } + + /// Get the number of all nodes for this element. + virtual unsigned getNNodes() const + { + return n_all_nodes; } /** diff --git a/MeshLib/Elements/TemplateLine.h b/MeshLib/Elements/TemplateLine.h index 11f275e523f10137c86ab62f94bb3c3c94cce6cb..dda39005df81076f794128577b463afc4607ac3d 100644 --- a/MeshLib/Elements/TemplateLine.h +++ b/MeshLib/Elements/TemplateLine.h @@ -89,10 +89,16 @@ public: /// Get the number of neighbors for this element. unsigned getNNeighbors() const { return 2; } - /// Get the number of nodes for this element. - virtual unsigned getNNodes(bool all = false) const + /// Get the number of linear nodes for this element. + virtual unsigned getNBaseNodes() const { - return all ? n_all_nodes : n_base_nodes; + return n_base_nodes; + } + + /// Get the number of all nodes for this element. + virtual unsigned getNNodes() const + { + return n_all_nodes; } /** diff --git a/MeshLib/Elements/TemplatePrism.h b/MeshLib/Elements/TemplatePrism.h index 28147429f9cfd89626956b5e68fe7cc41df1679a..d6e78f7c619e82aa2b42ae36435fce9b4ad29e0c 100644 --- a/MeshLib/Elements/TemplatePrism.h +++ b/MeshLib/Elements/TemplatePrism.h @@ -81,10 +81,16 @@ public: /// Get the number of neighbors for this element. unsigned getNNeighbors() const { return 5; }; - /// Get the number of nodes for this element. - virtual unsigned getNNodes(bool all = false) const + /// Get the number of linear nodes for this element. + virtual unsigned getNBaseNodes() const { - return all ? n_all_nodes : n_base_nodes; + return n_base_nodes; + } + + /// Get the number of all nodes for this element. + virtual unsigned getNNodes() const + { + return n_all_nodes; } /** diff --git a/MeshLib/Elements/TemplatePyramid.h b/MeshLib/Elements/TemplatePyramid.h index 648c0e7ea2fa2c8ee976c9c1f8f7f74a6ebc5409..2bd7d54092fd63542a48102dad238cfd23ed4bb0 100644 --- a/MeshLib/Elements/TemplatePyramid.h +++ b/MeshLib/Elements/TemplatePyramid.h @@ -79,10 +79,16 @@ public: /// Get the number of neighbors for this element. unsigned getNNeighbors() const { return 5; }; - /// Get the number of nodes for this element. - virtual unsigned getNNodes(bool all = false) const + /// Get the number of linear nodes for this element. + virtual unsigned getNBaseNodes() const { - return all ? n_all_nodes : n_base_nodes; + return n_base_nodes; + } + + /// Get the number of all nodes for this element. + virtual unsigned getNNodes() const + { + return n_all_nodes; } /** diff --git a/MeshLib/Elements/TemplateQuad.h b/MeshLib/Elements/TemplateQuad.h index a80230bd430f029f0ddf93fac95b445ced78f211..736bf6f0f0e212aca910f8bc417430f4e9a3f915 100644 --- a/MeshLib/Elements/TemplateQuad.h +++ b/MeshLib/Elements/TemplateQuad.h @@ -68,10 +68,16 @@ public: /// Get the number of neighbors for this element. unsigned getNNeighbors() const { return 4; }; - /// Get the number of nodes for this element. - virtual unsigned getNNodes(bool all = false) const + /// Get the number of linear nodes for this element. + virtual unsigned getNBaseNodes() const { - return all ? n_all_nodes : n_base_nodes; + return n_base_nodes; + } + + /// Get the number of all nodes for this element. + virtual unsigned getNNodes() const + { + return n_all_nodes; } /** diff --git a/MeshLib/Elements/TemplateTet.h b/MeshLib/Elements/TemplateTet.h index 29bffdde3dc3f6c77a91ecfe794eef05ca841800..f4398fd146d7b577995ac9f130924418db597721 100644 --- a/MeshLib/Elements/TemplateTet.h +++ b/MeshLib/Elements/TemplateTet.h @@ -78,10 +78,16 @@ public: /// Get the number of neighbors for this element. unsigned getNNeighbors() const { return 4; }; - /// Get the number of nodes for this element. - virtual unsigned getNNodes(bool all = false) const + /// Get the number of linear nodes for this element. + virtual unsigned getNBaseNodes() const { - return all ? n_all_nodes : n_base_nodes; + return n_base_nodes; + } + + /// Get the number of all nodes for this element. + virtual unsigned getNNodes() const + { + return n_all_nodes; } /** diff --git a/MeshLib/Elements/TemplateTri.h b/MeshLib/Elements/TemplateTri.h index 4ef0afa29212ef1b3ac78e812c5f72972d48dbcb..0f07e99be158bfb3629404c13161df41aa98971d 100644 --- a/MeshLib/Elements/TemplateTri.h +++ b/MeshLib/Elements/TemplateTri.h @@ -74,10 +74,16 @@ public: /// Get the number of neighbors for this element. unsigned getNNeighbors() const { return 3; }; - /// Get the number of nodes for this element. - virtual unsigned getNNodes(bool all = false) const + /// Get the number of linear nodes for this element. + virtual unsigned getNBaseNodes() const { - return all ? n_all_nodes : n_base_nodes; + return n_base_nodes; + } + + /// Get the number of all nodes for this element. + virtual unsigned getNNodes() const + { + return n_all_nodes; } /** diff --git a/MeshLib/Mesh.cpp b/MeshLib/Mesh.cpp index ac6cc90d1b67214dc97b0fde32a46cde497b0326..d9de8d2e8f5c502f34a2c150a941a9d10934e1bb 100644 --- a/MeshLib/Mesh.cpp +++ b/MeshLib/Mesh.cpp @@ -61,7 +61,7 @@ Mesh::Mesh(const Mesh &mesh) const size_t nElements (elements.size()); for (unsigned i=0; i<nElements; ++i) { - const size_t nElemNodes = elements[i]->getNNodes(); + const size_t nElemNodes = elements[i]->getNBaseNodes(); _elements[i] = elements[i]->clone(); for (unsigned j=0; j<nElemNodes; ++j) _elements[i]->_nodes[j] = _nodes[elements[i]->getNode(j)->getID()]; @@ -97,7 +97,7 @@ void Mesh::addElement(Element* elem) _elements.push_back(elem); // add element information to nodes - unsigned nNodes (elem->getNNodes()); + unsigned nNodes (elem->getNBaseNodes()); for (unsigned i=0; i<nNodes; ++i) elem->_nodes[i]->addElement(elem); } @@ -128,7 +128,7 @@ void Mesh::setElementsConnectedToNodes() { for (auto e = _elements.begin(); e != _elements.end(); ++e) { - const unsigned nNodes ((*e)->getNNodes()); + const unsigned nNodes ((*e)->getNBaseNodes()); for (unsigned j=0; j<nNodes; ++j) (*e)->_nodes[j]->addElement(*e); } @@ -165,7 +165,7 @@ void Mesh::setElementNeighbors() // create vector with all elements connected to current element (includes lots of doubles!) Element *const element = *it; - const size_t nNodes (element->getNNodes()); + const size_t nNodes (element->getNBaseNodes()); for (unsigned n(0); n<nNodes; ++n) { std::vector<Element*> const& conn_elems ((element->getNode(n)->getElements())); @@ -198,7 +198,7 @@ void Mesh::setNodesConnectedByEdges() for (unsigned j=0; j<nConnElems; ++j) { const unsigned idx (conn_elems[j]->getNodeIDinElement(node)); - const unsigned nElemNodes (conn_elems[j]->getNNodes()); + const unsigned nElemNodes (conn_elems[j]->getNBaseNodes()); for (unsigned k(0); k<nElemNodes; ++k) { bool is_in_vector (false); @@ -226,7 +226,7 @@ void Mesh::setNodesConnectedByElements() const size_t nConnElems (conn_elems.size()); for (unsigned j=0; j<nConnElems; ++j) { - const unsigned nElemNodes (conn_elems[j]->getNNodes()); + const unsigned nElemNodes (conn_elems[j]->getNBaseNodes()); for (unsigned k(0); k<nElemNodes; ++k) { bool is_in_vector (false); diff --git a/MeshLib/MeshEditing/DuplicateMeshComponents.cpp b/MeshLib/MeshEditing/DuplicateMeshComponents.cpp index ad0f3ba33380dc51d61b9790b2248015714cf4f6..adbccb65360165b61cffc8edfb6832704100cff0 100644 --- a/MeshLib/MeshEditing/DuplicateMeshComponents.cpp +++ b/MeshLib/MeshEditing/DuplicateMeshComponents.cpp @@ -71,8 +71,8 @@ MeshLib::Element* copyElement(MeshLib::Element const*const element, const std::v template <typename E> MeshLib::Element* copyElement(MeshLib::Element const*const element, const std::vector<MeshLib::Node*> &nodes) { - MeshLib::Node** new_nodes = new MeshLib::Node*[element->getNNodes()]; - for (unsigned i=0; i<element->getNNodes(); ++i) + MeshLib::Node** new_nodes = new MeshLib::Node*[element->getNBaseNodes()]; + for (unsigned i=0; i<element->getNBaseNodes(); ++i) new_nodes[i] = nodes[element->getNode(i)->getID()]; return new E(new_nodes, element->getValue()); } diff --git a/MeshLib/MeshEditing/ElementExtraction.cpp b/MeshLib/MeshEditing/ElementExtraction.cpp index 5b0d35dbf964346f318d300d8fc78d021280e795..a54db859d646ce8f56d53493e9dcbb59c2b8251e 100644 --- a/MeshLib/MeshEditing/ElementExtraction.cpp +++ b/MeshLib/MeshEditing/ElementExtraction.cpp @@ -118,7 +118,7 @@ std::size_t ElementExtraction::searchByBoundingBox(const MeshLib::Node &x1, cons const std::size_t n_elems(ele_vec.size()); for (std::size_t i = 0; i<n_elems; i++) { - std::size_t nElemNodes (ele_vec[i]->getNNodes()); + std::size_t nElemNodes (ele_vec[i]->getNBaseNodes()); for (std::size_t j=0; j<nElemNodes; ++j) if (!aabb.containsPoint(*ele_vec[i]->getNode(j))) { diff --git a/MeshLib/MeshEditing/Mesh2MeshPropertyInterpolation.cpp b/MeshLib/MeshEditing/Mesh2MeshPropertyInterpolation.cpp index 41ac0f37ad53ecacec98e7314f2fe077609e6c80..9a6e81c077589b37629f3db4a5a057558cdbf9c4 100644 --- a/MeshLib/MeshEditing/Mesh2MeshPropertyInterpolation.cpp +++ b/MeshLib/MeshEditing/Mesh2MeshPropertyInterpolation.cpp @@ -77,7 +77,7 @@ void Mesh2MeshPropertyInterpolation::interpolatePropertiesForMesh(Mesh *dest_mes const size_t n_dest_elements(dest_elements.size()); for (size_t k(0); k<n_dest_elements; k++) { // compute axis aligned bounding box around the current element - const GeoLib::AABB<MeshLib::Node> elem_aabb(dest_elements[k]->getNodes(), dest_elements[k]->getNodes()+dest_elements[k]->getNNodes()); + const GeoLib::AABB<MeshLib::Node> elem_aabb(dest_elements[k]->getNodes(), dest_elements[k]->getNodes()+dest_elements[k]->getNBaseNodes()); // request "interesting" nodes from grid std::vector<std::vector<MeshLib::Node*> const*> nodes; diff --git a/MeshLib/MeshEditing/MeshRevision.cpp b/MeshLib/MeshEditing/MeshRevision.cpp index 76ccbc40a88b9f5234aac50ffce337f926904512..a369db75b1f5e07b5f9d65801cd75f739fbcc5d2 100644 --- a/MeshLib/MeshEditing/MeshRevision.cpp +++ b/MeshLib/MeshEditing/MeshRevision.cpp @@ -71,7 +71,7 @@ MeshLib::Mesh* MeshRevision::simplifyMesh(const std::string &new_mesh_name, doub for (auto elem = elements.begin(); elem != elements.end(); ++elem) { unsigned n_unique_nodes(this->getNUniqueNodes(*elem)); - if (n_unique_nodes == (*elem)->getNNodes() && (*elem)->getDimension() >= min_elem_dim) + if (n_unique_nodes == (*elem)->getNBaseNodes() && (*elem)->getDimension() >= min_elem_dim) { ElementErrorCode e((*elem)->validate()); if (e[ElementErrorFlag::NonCoplanar]) @@ -87,7 +87,7 @@ MeshLib::Mesh* MeshRevision::simplifyMesh(const std::string &new_mesh_name, doub else new_elements.push_back(MeshLib::copyElement(*elem, new_nodes)); } - else if (n_unique_nodes < (*elem)->getNNodes() && n_unique_nodes>1) + else if (n_unique_nodes < (*elem)->getNBaseNodes() && n_unique_nodes>1) reduceElement(*elem, n_unique_nodes, new_nodes, new_elements, min_elem_dim); else ERR ("Something is wrong, more unique nodes than actual nodes"); @@ -204,7 +204,7 @@ std::vector<MeshLib::Node*> MeshRevision::constructNewNodesArray(const std::vect unsigned MeshRevision::getNUniqueNodes(MeshLib::Element const*const element) const { - unsigned nNodes(element->getNNodes()); + unsigned nNodes(element->getNBaseNodes()); unsigned count(nNodes); for (unsigned i = 0; i < nNodes - 1; ++i) @@ -623,7 +623,7 @@ MeshLib::Element* MeshRevision::constructLine(MeshLib::Element const*const eleme MeshLib::Node** line_nodes = new MeshLib::Node*[2]; line_nodes[0] = nodes[element->getNode(0)->getID()]; line_nodes[1] = nullptr; - for (unsigned i=1; i<element->getNNodes(); ++i) + for (unsigned i=1; i<element->getNBaseNodes(); ++i) { if (element->getNode(i)->getID() != element->getNode(0)->getID()) { @@ -644,12 +644,12 @@ MeshLib::Element* MeshRevision::constructTri(MeshLib::Element const*const elemen MeshLib::Node** tri_nodes = new MeshLib::Node*[3]; tri_nodes[0] = nodes[element->getNode(0)->getID()]; tri_nodes[2] = nullptr; - for (unsigned i = 1; i < element->getNNodes(); ++i) + for (unsigned i = 1; i < element->getNBaseNodes(); ++i) { if (element->getNode(i)->getID() != tri_nodes[0]->getID()) { tri_nodes[1] = nodes[element->getNode(i)->getID()]; - for (unsigned j = i + 1; j < element->getNNodes(); ++j) + for (unsigned j = i + 1; j < element->getNBaseNodes(); ++j) { if (element->getNode(j)->getID() != tri_nodes[1]->getID()) { @@ -669,7 +669,7 @@ MeshLib::Element* MeshRevision::constructFourNodeElement(MeshLib::Element const* MeshLib::Node** new_nodes = new MeshLib::Node*[4]; unsigned count(0); new_nodes[count++] = nodes[element->getNode(0)->getID()]; - for (unsigned i=1; i<element->getNNodes(); ++i) + for (unsigned i=1; i<element->getNBaseNodes(); ++i) { if (count>3) break; @@ -713,7 +713,7 @@ MeshLib::Element* MeshRevision::constructFourNodeElement(MeshLib::Element const* unsigned MeshRevision::findPyramidTopNode(const MeshLib::Element &element, const std::array<std::size_t,4> &base_node_ids) const { - const std::size_t nNodes (element.getNNodes()); + const std::size_t nNodes (element.getNBaseNodes()); for (std::size_t i=0; i<nNodes; ++i) { bool top_node=true; diff --git a/MeshLib/MeshGenerators/LayeredVolume.cpp b/MeshLib/MeshGenerators/LayeredVolume.cpp index 7fff70c2d803fc5ec8b020cf03b8ff25f858f5ae..c8f33de2fe84f5738d7fb436de12e47ff7042899 100644 --- a/MeshLib/MeshGenerators/LayeredVolume.cpp +++ b/MeshLib/MeshGenerators/LayeredVolume.cpp @@ -106,7 +106,7 @@ void LayeredVolume::addLayerBoundaries(const MeshLib::Mesh &layer, std::size_t n const std::vector<MeshLib::Element*> &layer_elements (layer.getElements()); for (MeshLib::Element* elem : layer_elements) { - const std::size_t nElemNodes (elem->getNNodes()); + const std::size_t nElemNodes (elem->getNBaseNodes()); for (unsigned i=0; i<nElemNodes; ++i) if (elem->getNeighbor(i) == nullptr) for (unsigned j=0; j<nLayerBoundaries; ++j) @@ -143,7 +143,7 @@ void LayeredVolume::removeCongruentElements(std::size_t nLayers, std::size_t nEl MeshLib::Element *low (_elements[lower_offset+j]); unsigned count(0); - const std::size_t nElemNodes (low->getNNodes()); + const std::size_t nElemNodes (low->getNBaseNodes()); for (std::size_t k=0; k<nElemNodes; ++k) if (high->getNodeIndex(k) == low->getNodeIndex(k)) { diff --git a/MeshLib/MeshGenerators/MeshLayerMapper.cpp b/MeshLib/MeshGenerators/MeshLayerMapper.cpp index 6ce15970ad2b1c1a9ce11e562d54d24e7fc2a6dd..b9cc47a4d60bc7ae83b456e562514c41b7bf99bf 100644 --- a/MeshLib/MeshGenerators/MeshLayerMapper.cpp +++ b/MeshLib/MeshGenerators/MeshLayerMapper.cpp @@ -88,7 +88,7 @@ MeshLib::Mesh* MeshLayerMapper::createStaticLayers(MeshLib::Mesh const& mesh, st if (sfc_elem->getDimension() < 2) // ignore line-elements continue; - const unsigned nElemNodes(sfc_elem->getNNodes()); + const unsigned nElemNodes(sfc_elem->getNBaseNodes()); MeshLib::Node** e_nodes = new MeshLib::Node*[2*nElemNodes]; for (unsigned j=0; j<nElemNodes; ++j) diff --git a/MeshLib/MeshQuality/ElementQualityMetric.cpp b/MeshLib/MeshQuality/ElementQualityMetric.cpp index e7ca69dfad47f7f14577993b350315c1566def99..5de1f9a98c165cc9fff3621dfcdefd5bc8bf85aa 100644 --- a/MeshLib/MeshQuality/ElementQualityMetric.cpp +++ b/MeshLib/MeshQuality/ElementQualityMetric.cpp @@ -42,7 +42,7 @@ void ElementQualityMetric::errorMsg (Element const& elem, size_t idx) const { ERR ("Error in MeshQualityChecker::check() - Calculated value of element is below double precision minimum."); ERR ("Points of %s-Element %d: ", MeshElemType2String(elem.getGeomType()).c_str(), idx); - for (size_t i(0); i < elem.getNNodes(); i++) + for (size_t i(0); i < elem.getNBaseNodes(); i++) { const double* coords = elem.getNode(i)->getCoords(); ERR ("\t Node %d: (%f, %f, %f)", i, coords[0], coords[1], coords[2]); diff --git a/MeshLib/MeshQuality/RadiusEdgeRatioMetric.cpp b/MeshLib/MeshQuality/RadiusEdgeRatioMetric.cpp index 60c44b34cfda081e07a3d936134ffa71bab4072d..f9fc2fcc19257ca04dfa64795f9b57dd5262e886 100644 --- a/MeshLib/MeshQuality/RadiusEdgeRatioMetric.cpp +++ b/MeshLib/MeshQuality/RadiusEdgeRatioMetric.cpp @@ -31,7 +31,7 @@ void RadiusEdgeRatioMetric::calculateQuality () for (size_t k(0); k < nElements; k++) { Element const& elem (*elements[k]); - std::size_t const n_nodes (elem.getNNodes()); + std::size_t const n_nodes (elem.getNBaseNodes()); std::vector<GeoLib::Point*> pnts(n_nodes); std::copy_n(elem.getNodes(), n_nodes, pnts.begin()); GeoLib::MinimalBoundingSphere const s(pnts); diff --git a/MeshLib/MeshSearcher.cpp b/MeshLib/MeshSearcher.cpp index 6ba37e373d1542aca081b7ec243360ef4b3975d9..7c8356f053a05f13320b48f11b38534953d4c09d 100644 --- a/MeshLib/MeshSearcher.cpp +++ b/MeshLib/MeshSearcher.cpp @@ -40,7 +40,7 @@ std::vector<std::size_t> getConnectedNodeIDs(const std::vector<MeshLib::Element* std::for_each(elements.begin(), elements.end(), [&](MeshLib::Element* e) { - for (unsigned i=0; i<e->getNNodes(); i++) + for (unsigned i=0; i<e->getNBaseNodes(); i++) connected_nodes.push_back(e->getNodeIndex(i)); }); std::sort(connected_nodes.begin(), connected_nodes.end()); diff --git a/MeshLib/MeshSurfaceExtraction.cpp b/MeshLib/MeshSurfaceExtraction.cpp index 14b5ed0c241185947231ab8875e6dbcc789ea663..c30c42416649797298cb010c48537deb55a1ed86 100644 --- a/MeshLib/MeshSurfaceExtraction.cpp +++ b/MeshLib/MeshSurfaceExtraction.cpp @@ -90,7 +90,7 @@ MeshLib::Mesh* MeshSurfaceExtraction::getMeshSurface(const MeshLib::Mesh &mesh, new_elements.reserve(sfc_elements.size()); for (auto elem = sfc_elements.cbegin(); elem != sfc_elements.cend(); ++elem) { - unsigned const n_elem_nodes ((*elem)->getNNodes()); + unsigned const n_elem_nodes ((*elem)->getNBaseNodes()); MeshLib::Node** new_nodes = new MeshLib::Node*[n_elem_nodes]; for (unsigned k(0); k<n_elem_nodes; k++) new_nodes[k] = sfc_nodes[node_id_map[(*elem)->getNode(k)->getID()]]; @@ -180,7 +180,7 @@ void MeshSurfaceExtraction::get2DSurfaceNodes(std::vector<MeshLib::Node*> &sfc_n for (std::size_t i=0; i<nNewElements; ++i) { const MeshLib::Element* elem (sfc_elements[i]); - for (unsigned j=0; j<elem->getNNodes(); ++j) + for (unsigned j=0; j<elem->getNBaseNodes(); ++j) { const MeshLib::Node* node (elem->getNode(j)); tmp_nodes[node->getID()] = node; diff --git a/Tests/MeshLib/TestBoundaryElementSearch.cpp b/Tests/MeshLib/TestBoundaryElementSearch.cpp index 6ace444697501d12f3ecc58541dd5d929c42d869..a91adc7ce2c8949299896f1ba53695c0474481f0 100644 --- a/Tests/MeshLib/TestBoundaryElementSearch.cpp +++ b/Tests/MeshLib/TestBoundaryElementSearch.cpp @@ -90,22 +90,22 @@ TEST_F(MeshLibBoundaryElementSearchInSimpleQuadMesh, PolylineSearch) for (unsigned i=0; i<n_eles_per_dir; i++) { // edge found on a bottom line auto* edge0 = found_edges_ply0[i]; - ASSERT_EQ(2u, edge0->getNNodes()); + ASSERT_EQ(2u, edge0->getNBaseNodes()); ASSERT_EQ(i, edge0->getNodeIndex(0)); ASSERT_EQ(i+1, edge0->getNodeIndex(1)); // edge found on a right line auto* edge1 = found_edges_ply0[i+n_eles_per_dir]; - ASSERT_EQ(2u, edge1->getNNodes()); + ASSERT_EQ(2u, edge1->getNBaseNodes()); ASSERT_EQ(n_nodes_per_dir*i+n_nodes_per_dir-1, edge1->getNodeIndex(0)); ASSERT_EQ(n_nodes_per_dir*(i+1)+n_nodes_per_dir-1, edge1->getNodeIndex(1)); // edge found on a top line auto* edge2 = found_edges_ply0[i+n_eles_per_dir*2]; - ASSERT_EQ(2u, edge2->getNNodes()); + ASSERT_EQ(2u, edge2->getNBaseNodes()); ASSERT_EQ(n_nodes_per_dir*n_nodes_per_dir-1-i, edge2->getNodeIndex(0)); ASSERT_EQ(n_nodes_per_dir*n_nodes_per_dir-1-(i+1), edge2->getNodeIndex(1)); // edge found on a left line auto* edge3 = found_edges_ply0[i+n_eles_per_dir*3]; - ASSERT_EQ(2u, edge3->getNNodes()); + ASSERT_EQ(2u, edge3->getNBaseNodes()); ASSERT_EQ(n_nodes_per_dir*(n_nodes_per_dir-1)-n_nodes_per_dir*i, edge3->getNodeIndex(0)); ASSERT_EQ(n_nodes_per_dir*(n_nodes_per_dir-1)-n_nodes_per_dir*(i+1), edge3->getNodeIndex(1)); } diff --git a/Tests/MeshLib/TestElementConstants.cpp b/Tests/MeshLib/TestElementConstants.cpp index d6f2ed55100ee07b8b9c45613da1dce382e6c912..e65562c4a6afbf54bcc67e2b08e271271b8440e2 100644 --- a/Tests/MeshLib/TestElementConstants.cpp +++ b/Tests/MeshLib/TestElementConstants.cpp @@ -26,8 +26,8 @@ TEST(MeshLib, Quad4ElementConstants) Quad quad(nodes); ASSERT_EQ(2u, quad.getDimension()); - ASSERT_EQ(4u, quad.getNNodes(true)); - ASSERT_EQ(4u, quad.getNNodes(false)); + ASSERT_EQ(4u, quad.getNNodes()); + ASSERT_EQ(4u, quad.getNBaseNodes()); } TEST(MeshLib, Quad8ElementConstants) @@ -50,8 +50,8 @@ TEST(MeshLib, Quad8ElementConstants) Quad8 quad8(nodes); ASSERT_EQ(2u, quad8.getDimension()); - ASSERT_EQ(8u, quad8.getNNodes(true)); - ASSERT_EQ(4u, quad8.getNNodes(false)); + ASSERT_EQ(8u, quad8.getNNodes()); + ASSERT_EQ(4u, quad8.getNBaseNodes()); } TEST(MeshLib, Quad9ElementConstants) @@ -75,7 +75,7 @@ TEST(MeshLib, Quad9ElementConstants) Quad9 quad9(nodes); ASSERT_EQ(2u, quad9.getDimension()); - ASSERT_EQ(9u, quad9.getNNodes(true)); - ASSERT_EQ(4u, quad9.getNNodes(false)); + ASSERT_EQ(9u, quad9.getNNodes()); + ASSERT_EQ(4u, quad9.getNBaseNodes()); } diff --git a/Tests/MeshLib/TestLineMesh.cpp b/Tests/MeshLib/TestLineMesh.cpp index 5ca9e29d0a1f17100c8f6455ea95f86b71e1242d..183004ccbbe719e607c5a3c3e4790e868f92d620 100644 --- a/Tests/MeshLib/TestLineMesh.cpp +++ b/Tests/MeshLib/TestLineMesh.cpp @@ -83,7 +83,7 @@ TEST_F(MeshLibLineMesh, ElementToNodeConnectivity) for (std::size_t i = 0; i < elements.size(); ++i) { // An element consists of two nodes n and n+1 - ASSERT_EQ(2u, elements[i]->getNNodes()); + ASSERT_EQ(2u, elements[i]->getNBaseNodes()); ASSERT_EQ(i, elements[i]->getNode(0)->getID()); ASSERT_EQ(i+1, elements[i]->getNode(1)->getID()); } diff --git a/Tests/MeshLib/TestQuadMesh.cpp b/Tests/MeshLib/TestQuadMesh.cpp index 20cfc94c82fca6d6946b6f3d18aa6a754e958397..89791312e1a790a67bc6515d7a2da1e3f9ad5654 100644 --- a/Tests/MeshLib/TestQuadMesh.cpp +++ b/Tests/MeshLib/TestQuadMesh.cpp @@ -253,7 +253,7 @@ TEST_F(MeshLibQuadMesh, ElementToNodeConnectivity) std::size_t const i, std::size_t const j) { - EXPECT_EQ(4u, e->getNNodes()); + EXPECT_EQ(4u, e->getNBaseNodes()); EXPECT_EQ(getNode(i, j), e->getNode(0)); EXPECT_EQ(getNode(i, j+1), e->getNode(1)); EXPECT_EQ(getNode(i+1, j+1), e->getNode(2)); diff --git a/Tests/NumLib/TestCoordinatesMapping.cpp b/Tests/NumLib/TestCoordinatesMapping.cpp index b206e347870f0572c516cfbaff80aa0f82279543..cc127c449f15034f031c97027f4661400262a954 100644 --- a/Tests/NumLib/TestCoordinatesMapping.cpp +++ b/Tests/NumLib/TestCoordinatesMapping.cpp @@ -77,7 +77,7 @@ public: vec_eles.push_back(clockwiseEle); vec_eles.push_back(zeroVolumeEle); for (auto e : vec_eles) - for (unsigned i=0; i<e->getNNodes(true); i++) + for (unsigned i=0; i<e->getNNodes(); i++) vec_nodes.push_back(e->getNode(i)); } diff --git a/Tests/NumLib/TestFe.cpp b/Tests/NumLib/TestFe.cpp index 23c387c1b3c712ddf94b248dd8077e10785904a8..aee03d1c5a499ec7d52b7f83bab9ffa501decf63 100644 --- a/Tests/NumLib/TestFe.cpp +++ b/Tests/NumLib/TestFe.cpp @@ -117,7 +117,7 @@ class NumLibFemIsoTest : public ::testing::Test, public T::T_FE // for destructor vec_eles.push_back(mesh_element); for (auto e : vec_eles) - for (unsigned i=0; i<e->getNNodes(true); i++) + for (unsigned i=0; i<e->getNNodes(); i++) vec_nodes.push_back(e->getNode(i)); }