diff --git a/MeshLib/ElementStatus.cpp b/MeshLib/ElementStatus.cpp index 47c67671f396e4fa1c80c74307fe4c87ad5dd0f4..a825faf7d57a6872e2038eea39623a8c7c1bcc7c 100644 --- a/MeshLib/ElementStatus.cpp +++ b/MeshLib/ElementStatus.cpp @@ -34,14 +34,19 @@ ElementStatus::ElementStatus(Mesh const* const mesh, std::vector<unsigned> const& vec_inactive_matIDs) : ElementStatus(mesh, !vec_inactive_matIDs.empty()) { - const std::size_t nElems (_mesh->getNElements()); - for (auto material_id : vec_inactive_matIDs) { - for (auto e : _mesh->getElements()) - if (e->getValue() == material_id) - this->setElementStatus(e->getID(), false); + auto materialIds = mesh->getProperties().getPropertyVector<int>("MaterialIDs"); + if (materialIds) { + for (auto material_id : vec_inactive_matIDs) { + for (auto e : _mesh->getElements()) { + if ((*materialIds)[e->getID()] == material_id) { + setElementStatus(e->getID(), false); + } + } + } } - _vec_active_eles.reserve(this->getNActiveElements()); + _vec_active_eles.reserve(getNActiveElements()); + const std::size_t nElems (_mesh->getNElements()); for (std::size_t i=0; i<nElems; ++i) if (_element_status[i]) _vec_active_eles.push_back(const_cast<MeshLib::Element*>(_mesh->getElement(i)));