diff --git a/Applications/FileIO/GMSInterface.cpp b/Applications/FileIO/GMSInterface.cpp index 107b60261475248d83a7e40cdf3fbde391a700a9..994ef3d96f7248ecbcf00def154eea86ddb8b8cc 100644 --- a/Applications/FileIO/GMSInterface.cpp +++ b/Applications/FileIO/GMSInterface.cpp @@ -339,7 +339,8 @@ MeshLib::Mesh* GMSInterface::readMesh(const std::string& filename) ERR("Ignoring Material IDs information (does not match number of " "elements)."); } - return new MeshLib::Mesh(mesh_name, nodes, elements, properties); + return new MeshLib::Mesh(mesh_name, nodes, elements, + true /* compute_element_neighbors */, properties); } } // namespace FileIO diff --git a/Applications/FileIO/Gmsh/GmshReader.cpp b/Applications/FileIO/Gmsh/GmshReader.cpp index ff170768138d9cf62f87069b779118e3d22f3b9b..c7b19ad51ea7d1e69499becda31a656f3e373dd8 100644 --- a/Applications/FileIO/Gmsh/GmshReader.cpp +++ b/Applications/FileIO/Gmsh/GmshReader.cpp @@ -373,7 +373,8 @@ MeshLib::Mesh* readGMSHMesh(std::string const& fname) } MeshLib::Mesh* mesh(new MeshLib::Mesh( - BaseLib::extractBaseNameWithoutExtension(fname), nodes, elements)); + BaseLib::extractBaseNameWithoutExtension(fname), nodes, elements, + true /* compute_element_neighbors */)); auto* const material_ids = mesh->getProperties().createNewPropertyVector<int>( diff --git a/Applications/FileIO/GocadIO/GocadAsciiReader.cpp b/Applications/FileIO/GocadIO/GocadAsciiReader.cpp index 74224ea7ee753402a93ca6687cc2e7fea6d5ab9d..0abfbf366dfda13223e9cf69c13366acdb7dcbf2 100644 --- a/Applications/FileIO/GocadIO/GocadAsciiReader.cpp +++ b/Applications/FileIO/GocadIO/GocadAsciiReader.cpp @@ -569,7 +569,9 @@ MeshLib::Mesh* createMesh(std::ifstream& in, DataType type, std::for_each(nodes.begin(), nodes.end(), [](MeshLib::Node* n) { (*n)[2] *= -1; }); } - return new MeshLib::Mesh(mesh_name, nodes, elems, mesh_prop); + return new MeshLib::Mesh(mesh_name, nodes, elems, + true /* compute_element_neighbors */, + mesh_prop); } ERR("Error parsing {:s} {:s}.", dataType2ShortString(type), mesh_name); BaseLib::cleanupVectorElements(nodes, elems); diff --git a/Applications/FileIO/GocadIO/GocadSGridReader.cpp b/Applications/FileIO/GocadIO/GocadSGridReader.cpp index 37ae2259b859b8a23dbae199ace6a4c9cfeea04d..6c43372f071c4104967b883801ce690e8b5cb806 100644 --- a/Applications/FileIO/GocadIO/GocadSGridReader.cpp +++ b/Applications/FileIO/GocadIO/GocadSGridReader.cpp @@ -186,7 +186,8 @@ std::unique_ptr<MeshLib::Mesh> GocadSGridReader::getMesh() const DBUG("Creating mesh from Gocad SGrid."); std::unique_ptr<MeshLib::Mesh> mesh(new MeshLib::Mesh( - BaseLib::extractBaseNameWithoutExtension(_fname), nodes, elements)); + BaseLib::extractBaseNameWithoutExtension(_fname), nodes, elements, + true /* compute_element_neighbors */)); addGocadPropertiesToMesh(*mesh); DBUG("Mesh created."); @@ -785,8 +786,9 @@ std::unique_ptr<MeshLib::Mesh> GocadSGridReader::getFaceSetMesh( } std::string const mesh_name("FaceSet-" + std::to_string(face_set_number)); - return std::make_unique<MeshLib::Mesh>(mesh_name, face_set_nodes, - face_set_elements); + return std::make_unique<MeshLib::Mesh>( + mesh_name, face_set_nodes, face_set_elements, + true /* compute_element_neighbors */); } void GocadSGridReader::addFaceSetQuad( diff --git a/Applications/FileIO/TetGenInterface.cpp b/Applications/FileIO/TetGenInterface.cpp index f7e423563bdcb13dd1c28f61ba0498c9a71bc7cc..ea9b7c7f41915419e45fb89b7901c82bbc6ee1a5 100644 --- a/Applications/FileIO/TetGenInterface.cpp +++ b/Applications/FileIO/TetGenInterface.cpp @@ -269,7 +269,8 @@ MeshLib::Mesh* TetGenInterface::readTetGenMesh(std::string const& nodes_fname, const std::string mesh_name( BaseLib::extractBaseNameWithoutExtension(nodes_fname)); - return new MeshLib::Mesh(mesh_name, nodes, elements, properties); + return new MeshLib::Mesh(mesh_name, nodes, elements, + true /* compute_element_neighbors */, properties); } bool TetGenInterface::readNodesFromStream(std::ifstream& ins, diff --git a/Applications/Utils/MeshEdit/PVTU2VTU/PVTU2VTU.cpp b/Applications/Utils/MeshEdit/PVTU2VTU/PVTU2VTU.cpp index 1c78d061a34a5b001759b146df2fdab99c3749e2..19e801c02dadab25f59075d814a6da0920094ec1 100644 --- a/Applications/Utils/MeshEdit/PVTU2VTU/PVTU2VTU.cpp +++ b/Applications/Utils/MeshEdit/PVTU2VTU/PVTU2VTU.cpp @@ -372,7 +372,8 @@ int main(int argc, char* argv[]) // The Node pointers of 'merged_nodes' and Element pointers of // 'regular_elements' are shared with 'meshes', the partitioned meshes. MeshLib::Mesh merged_mesh = - MeshLib::Mesh("pvtu_merged_mesh", merged_nodes, regular_elements); + MeshLib::Mesh("pvtu_merged_mesh", merged_nodes, regular_elements, + true /* compute_element_neighbors */); auto const& properties = meshes[0]->getProperties(); diff --git a/Applications/Utils/MeshEdit/ReorderMesh.cpp b/Applications/Utils/MeshEdit/ReorderMesh.cpp index 871f7db3e3be6cdc83e94dd8752651afa0e72c1e..220571ce22a940bd520706af5f09d3698836c9ff 100644 --- a/Applications/Utils/MeshEdit/ReorderMesh.cpp +++ b/Applications/Utils/MeshEdit/ReorderMesh.cpp @@ -207,6 +207,7 @@ int main(int argc, char* argv[]) // is implemented are copied MeshLib::Mesh reordered_mesh{ "reordered_mesh", reordered_nodes, reordered_elements, + false /* compute_element_neighbors */, original_properties.excludeCopyProperties(exclude_property_vectors)}; auto& properties = reordered_mesh.getProperties(); diff --git a/Applications/Utils/MeshGeoTools/IntegrateBoreholesIntoMesh.cpp b/Applications/Utils/MeshGeoTools/IntegrateBoreholesIntoMesh.cpp index 440b29a617ac7a66a3dfe185929f149c5b47eae0..6f0f5b701cd13be145048b1ac4f9b3b3e8b1ecd1 100644 --- a/Applications/Utils/MeshGeoTools/IntegrateBoreholesIntoMesh.cpp +++ b/Applications/Utils/MeshGeoTools/IntegrateBoreholesIntoMesh.cpp @@ -252,7 +252,8 @@ int main(int argc, char* argv[]) } } - MeshLib::Mesh const result("result", new_nodes, new_elems, props); + MeshLib::Mesh const result("result", new_nodes, new_elems, + true /* compute_element_neighbors */, props); MeshLib::IO::VtuInterface vtu(&result); vtu.writeToFile(output_name); #ifdef USE_PETSC diff --git a/MeshGeoToolsLib/AppendLinesAlongPolyline.cpp b/MeshGeoToolsLib/AppendLinesAlongPolyline.cpp index 6bcbf4a692064c814e7bc256f3b469219db5125e..5c834ac4ba6d5999368eb5cb5699e4a0842d70ea 100644 --- a/MeshGeoToolsLib/AppendLinesAlongPolyline.cpp +++ b/MeshGeoToolsLib/AppendLinesAlongPolyline.cpp @@ -74,7 +74,8 @@ std::unique_ptr<MeshLib::Mesh> appendLinesAlongPolylines( // generate a mesh const std::string name = mesh.getName() + "_with_lines"; auto new_mesh = - std::make_unique<MeshLib::Mesh>(name, vec_new_nodes, vec_new_eles); + std::make_unique<MeshLib::Mesh>(name, vec_new_nodes, vec_new_eles, + true /* compute_element_neighbors */); auto new_material_ids = new_mesh->getProperties().createNewPropertyVector<int>( "MaterialIDs", MeshLib::MeshItemType::Cell); diff --git a/MeshLib/IO/Legacy/MeshIO.cpp b/MeshLib/IO/Legacy/MeshIO.cpp index 6c845f031d2989bba95d8b8387702d7d51fa238c..faf2e8b7f3d380a960e1e9fdd424e9358af65d14 100644 --- a/MeshLib/IO/Legacy/MeshIO.cpp +++ b/MeshLib/IO/Legacy/MeshIO.cpp @@ -367,7 +367,7 @@ MeshLib::Mesh* MeshIO::loadMeshFromFile(const std::string& file_name) MeshLib::Mesh* mesh(new MeshLib::Mesh( BaseLib::extractBaseNameWithoutExtension(file_name), nodes, - elements)); + elements, true /* compute_element_neighbors */)); auto* const material_ids = mesh->getProperties().createNewPropertyVector<int>( diff --git a/MeshLib/IO/VtkIO/VtkMeshConverter.cpp b/MeshLib/IO/VtkIO/VtkMeshConverter.cpp index 85217e0c71e27f5cb00d8fdb428a0049c85ca7f5..00a05a7d952b8591e803b87dbd42d519d960aa5b 100644 --- a/MeshLib/IO/VtkIO/VtkMeshConverter.cpp +++ b/MeshLib/IO/VtkIO/VtkMeshConverter.cpp @@ -229,7 +229,8 @@ MeshLib::Mesh* VtkMeshConverter::convertUnstructuredGrid( elements[i] = elem; } - MeshLib::Mesh* mesh = new MeshLib::Mesh(mesh_name, nodes, elements); + MeshLib::Mesh* mesh = new MeshLib::Mesh( + mesh_name, nodes, elements, true /* compute_element_neighbors */); convertScalarArrays(*grid, *mesh); return mesh; diff --git a/MeshLib/NodePartitionedMesh.cpp b/MeshLib/NodePartitionedMesh.cpp index c76341caf83be15c821a2be4a6afcfa9e25342c7..faecde4abcafbc68083b5a47c206d73fe89dc923 100644 --- a/MeshLib/NodePartitionedMesh.cpp +++ b/MeshLib/NodePartitionedMesh.cpp @@ -41,7 +41,8 @@ NodePartitionedMesh::NodePartitionedMesh( const std::size_t n_regular_nodes, std::vector<std::size_t>&& n_regular_base_nodes_at_rank, std::vector<std::size_t>&& n_regular_high_order_nodes_at_rank) - : Mesh(name, nodes, elements, properties), + : Mesh(name, nodes, elements, true /* compute_element_neighbors */, + properties), _global_node_ids(glb_node_ids), _n_global_base_nodes(n_global_base_nodes), _n_global_nodes(n_global_nodes), diff --git a/MeshLib/Utils/createMeshFromElementSelection.cpp b/MeshLib/Utils/createMeshFromElementSelection.cpp index 635b377c5399a582d46424ac9763b4afe226ad5f..8b1f453374c69bbb54edd2de849b94eed6c345da 100644 --- a/MeshLib/Utils/createMeshFromElementSelection.cpp +++ b/MeshLib/Utils/createMeshFromElementSelection.cpp @@ -76,7 +76,8 @@ std::unique_ptr<MeshLib::Mesh> createMeshFromElementSelection( nodes_map | ranges::views::keys | ranges::to<std::vector>; auto mesh = std::make_unique<MeshLib::Mesh>( - std::move(mesh_name), std::move(element_nodes), std::move(elements)); + std::move(mesh_name), std::move(element_nodes), std::move(elements), + true /* compute_element_neighbors */); assert(mesh != nullptr); addPropertyToMesh(*mesh, getBulkIDString(MeshLib::MeshItemType::Cell), diff --git a/MeshToolsLib/MeshEditing/AddLayerToMesh.cpp b/MeshToolsLib/MeshEditing/AddLayerToMesh.cpp index f4db3bcf22ed5df9aeb31f61b87d3b718ceaadb9..4c661e58b9fccff7256afcdf2297391081bc1696 100644 --- a/MeshToolsLib/MeshEditing/AddLayerToMesh.cpp +++ b/MeshToolsLib/MeshEditing/AddLayerToMesh.cpp @@ -164,7 +164,8 @@ MeshLib::Mesh* addLayerToMesh(MeshLib::Mesh const& mesh, double thickness, subsfc_nodes, *sfc_elements[k], *node_id_pv, subsfc_sfc_id_map)); } - auto new_mesh = new MeshLib::Mesh(name, subsfc_nodes, subsfc_elements); + auto new_mesh = new MeshLib::Mesh(name, subsfc_nodes, subsfc_elements, + true /* compute_element_neighbors */); if (!mesh.getProperties().existsPropertyVector<int>("MaterialIDs")) { diff --git a/MeshToolsLib/MeshEditing/ConvertToLinearMesh.cpp b/MeshToolsLib/MeshEditing/ConvertToLinearMesh.cpp index 716416114b9119c7ae299ddfcbaf81d0a77bd123..e56c59cf42c5a09a58e498398bde998569f4f0a6 100644 --- a/MeshToolsLib/MeshEditing/ConvertToLinearMesh.cpp +++ b/MeshToolsLib/MeshEditing/ConvertToLinearMesh.cpp @@ -115,6 +115,7 @@ std::unique_ptr<MeshLib::Mesh> convertToLinearMesh( auto new_mesh = std::make_unique<MeshLib::Mesh>( new_mesh_name, new_mesh_nodes, vec_new_eles, + true /* compute_element_neighbors */, mesh.getProperties().excludeCopyProperties( std::vector<MeshLib::MeshItemType>(1, MeshLib::MeshItemType::Node))); diff --git a/MeshToolsLib/MeshEditing/FlipElements.cpp b/MeshToolsLib/MeshEditing/FlipElements.cpp index 207d5ad80abfdcdccd48021f7eb38ddabe4ea977..e0baa2397d7b3dd98bddb7c118ea6e281996904d 100644 --- a/MeshToolsLib/MeshEditing/FlipElements.cpp +++ b/MeshToolsLib/MeshEditing/FlipElements.cpp @@ -73,8 +73,9 @@ std::unique_ptr<MeshLib::Mesh> createFlippedMesh(MeshLib::Mesh const& mesh) createFlippedElement(*elems[i], new_nodes).release()); } - return std::make_unique<MeshLib::Mesh>("FlippedElementMesh", new_nodes, - new_elems, mesh.getProperties()); + return std::make_unique<MeshLib::Mesh>( + "FlippedElementMesh", new_nodes, new_elems, + true /* compute_element_neighbors */, mesh.getProperties()); } } // namespace MeshToolsLib diff --git a/MeshToolsLib/MeshEditing/MeshRevision.cpp b/MeshToolsLib/MeshEditing/MeshRevision.cpp index b4b1f22a65722b2df0887fb0e2344e623d79e254..377d4ecd819324f820b5c279b393a190bf6d6824 100644 --- a/MeshToolsLib/MeshEditing/MeshRevision.cpp +++ b/MeshToolsLib/MeshEditing/MeshRevision.cpp @@ -1083,6 +1083,7 @@ MeshLib::Mesh* MeshRevision::simplifyMesh(const std::string& new_mesh_name, if (!new_elements.empty()) { return new MeshLib::Mesh(new_mesh_name, new_nodes, new_elements, + true /* compute_element_neighbors */, new_properties); } diff --git a/MeshToolsLib/MeshEditing/RemoveMeshComponents.cpp b/MeshToolsLib/MeshEditing/RemoveMeshComponents.cpp index ad7a8eeda58fb6abc27ee1c6a98216c27f9a5185..77f00d940b5d38fbc3da1b0932caea18f9c5ef59 100644 --- a/MeshToolsLib/MeshEditing/RemoveMeshComponents.cpp +++ b/MeshToolsLib/MeshEditing/RemoveMeshComponents.cpp @@ -88,6 +88,7 @@ MeshLib::Mesh* removeElements( { MeshLib::Mesh* new_mesh = new MeshLib::Mesh(new_mesh_name, new_nodes, new_elems, + true /* compute_element_neighbors */, mesh.getProperties().excludeCopyProperties( removed_element_ids, removed_node_ids)); return new_mesh; @@ -167,6 +168,7 @@ MeshLib::Mesh* removeNodes(const MeshLib::Mesh& mesh, { MeshLib::Mesh* new_mesh = new MeshLib::Mesh(new_mesh_name, new_nodes, new_elems, + true /* compute_element_neighbors */, mesh.getProperties().excludeCopyProperties( removed_element_ids, del_nodes_idx)); return new_mesh; diff --git a/MeshToolsLib/MeshGenerators/LayeredMeshGenerator.cpp b/MeshToolsLib/MeshGenerators/LayeredMeshGenerator.cpp index 3d2b4cef945bc841d6eaf46f407f5a4c170c37ad..7378e5dcf94c4b2e2c3ebd1181a43c1eeca88f35 100644 --- a/MeshToolsLib/MeshGenerators/LayeredMeshGenerator.cpp +++ b/MeshToolsLib/MeshGenerators/LayeredMeshGenerator.cpp @@ -89,7 +89,11 @@ std::unique_ptr<MeshLib::Mesh> LayeredMeshGenerator::getMesh( } std::unique_ptr<MeshLib::Mesh> result( - new MeshLib::Mesh(mesh_name, _nodes, _elements, properties)); + new MeshLib::Mesh(mesh_name, + _nodes, + _elements, + true /* compute_element_neighbors */, + properties)); MeshLib::NodeSearch ns(*result); if (ns.searchUnused() > 0) { diff --git a/MeshToolsLib/MeshGenerators/MeshGenerator.cpp b/MeshToolsLib/MeshGenerators/MeshGenerator.cpp index 4a7ce8649bb7a28070ddcf3e9ebdb79e62d437fd..14cc336d385aff700a0c3d05925c91414ac12258 100644 --- a/MeshToolsLib/MeshGenerators/MeshGenerator.cpp +++ b/MeshToolsLib/MeshGenerators/MeshGenerator.cpp @@ -193,7 +193,8 @@ MeshLib::Mesh* MeshGenerator::generateLineMesh(const BaseLib::ISubdivision& div, elements.push_back(new MeshLib::Line({nodes[i], nodes[i + 1]})); } - return new MeshLib::Mesh(mesh_name, nodes, elements); + return new MeshLib::Mesh(mesh_name, nodes, elements, + true /* compute_element_neighbors */); } MeshLib::Mesh* MeshGenerator::generateRegularQuadMesh( @@ -275,7 +276,8 @@ MeshLib::Mesh* MeshGenerator::generateRegularQuadMesh( } } - return new MeshLib::Mesh(mesh_name, nodes, elements); + return new MeshLib::Mesh(mesh_name, nodes, elements, + true /* compute_element_neighbors */); } MeshLib::Mesh* MeshGenerator::generateRegularHexMesh( @@ -382,7 +384,8 @@ MeshLib::Mesh* MeshGenerator::generateRegularHexMesh( } } - return new MeshLib::Mesh(mesh_name, nodes, elements); + return new MeshLib::Mesh(mesh_name, nodes, elements, + true /* compute_element_neighbors */); } MeshLib::Mesh* MeshGenerator::generateRegularPyramidMesh( @@ -479,7 +482,8 @@ MeshLib::Mesh* MeshGenerator::generateRegularPyramidMesh( } } } - return new MeshLib::Mesh(mesh_name, nodes, elements); + return new MeshLib::Mesh(mesh_name, nodes, elements, + true /* compute_element_neighbors */); } MeshLib::Mesh* MeshGenerator::generateRegularTriMesh( @@ -564,7 +568,8 @@ MeshLib::Mesh* MeshGenerator::generateRegularTriMesh( } } - return new MeshLib::Mesh(mesh_name, nodes, elements); + return new MeshLib::Mesh(mesh_name, nodes, elements, + true /* compute_element_neighbors */); } MeshLib::Mesh* MeshGenerator::generateRegularPrismMesh( @@ -735,7 +740,8 @@ MeshLib::Mesh* MeshGenerator::generateRegularTetMesh( } } - return new MeshLib::Mesh(mesh_name, nodes, elements); + return new MeshLib::Mesh(mesh_name, nodes, elements, + true /* compute_element_neighbors */); } MeshLib::Mesh* MeshGenerator::createSurfaceMesh( @@ -775,7 +781,8 @@ MeshLib::Mesh* MeshGenerator::createSurfaceMesh( } } - return new MeshLib::Mesh(mesh_name, nodes, sfc_eles); + return new MeshLib::Mesh(mesh_name, nodes, sfc_eles, + true /* compute_element_neighbors */); } } // namespace MeshToolsLib diff --git a/MeshToolsLib/MeshGenerators/MeshLayerMapper.cpp b/MeshToolsLib/MeshGenerators/MeshLayerMapper.cpp index cbd2df31f6d63633166ebfa144d6e9b85ee2165c..f7884402681f0fbc7cb249a889f30c3bb8e83c2f 100644 --- a/MeshToolsLib/MeshGenerators/MeshLayerMapper.cpp +++ b/MeshToolsLib/MeshGenerators/MeshLayerMapper.cpp @@ -140,7 +140,8 @@ MeshLib::Mesh* MeshLayerMapper::createStaticLayers( materials->push_back(mat_id); } } - return new MeshLib::Mesh(mesh_name, new_nodes, new_elems, properties); + return new MeshLib::Mesh(mesh_name, new_nodes, new_elems, + true /* compute_element_neighbors */, properties); } bool MeshLayerMapper::createRasterLayers( diff --git a/MeshToolsLib/MeshGenerators/QuadraticMeshGenerator.cpp b/MeshToolsLib/MeshGenerators/QuadraticMeshGenerator.cpp index 8e6db00809f62f6c39dc099e59838b37b451bebc..cc7161c7d7189f06be555796aa2610d6beabcc8d 100644 --- a/MeshToolsLib/MeshGenerators/QuadraticMeshGenerator.cpp +++ b/MeshToolsLib/MeshGenerators/QuadraticMeshGenerator.cpp @@ -245,6 +245,7 @@ std::unique_ptr<MeshLib::Mesh> createQuadraticOrderMesh( return std::make_unique<MeshLib::Mesh>( linear_mesh.getName(), quadratic_mesh_nodes, quadratic_elements, + true /* compute_element_neighbors */, linear_mesh.getProperties().excludeCopyProperties( std::vector<MeshLib::MeshItemType>(1, MeshLib::MeshItemType::Node))); diff --git a/MeshToolsLib/MeshSurfaceExtraction.cpp b/MeshToolsLib/MeshSurfaceExtraction.cpp index d463dd471ce7dd917254fa5149c7e57fc6d1fb7f..c606cc2d54f13a8fe715631dd7f215c6bf7d3a37 100644 --- a/MeshToolsLib/MeshSurfaceExtraction.cpp +++ b/MeshToolsLib/MeshSurfaceExtraction.cpp @@ -281,8 +281,9 @@ MeshLib::Mesh* MeshSurfaceExtraction::getMeshSurface( std::vector<std::size_t> const id_map(sfc_node_ids.begin(), sfc_node_ids.end()); - MeshLib::Mesh* result(new MeshLib::Mesh(subsfc_mesh.getName() + "-Surface", - sfc_nodes, new_elements)); + MeshLib::Mesh* result( + new MeshLib::Mesh(subsfc_mesh.getName() + "-Surface", sfc_nodes, + new_elements, true /* compute_element_neighbors */)); addBulkIDPropertiesToMesh(*result, subsfc_node_id_prop_name, id_map, subsfc_element_id_prop_name, element_ids_map, @@ -504,8 +505,9 @@ std::unique_ptr<MeshLib::Mesh> getBoundaryElementsAsMesh( std::vector<std::size_t> const nodes_to_bulk_nodes_id_map( boundary_node_ids.begin(), boundary_node_ids.end()); - std::unique_ptr<MeshLib::Mesh> boundary_mesh(new MeshLib::Mesh( - bulk_mesh.getName() + "-boundary", boundary_nodes, new_elements)); + std::unique_ptr<MeshLib::Mesh> boundary_mesh( + new MeshLib::Mesh(bulk_mesh.getName() + "-boundary", boundary_nodes, + new_elements, true /* compute_element_neighbors */)); addBulkIDPropertiesToMesh( *boundary_mesh, subsfc_node_id_prop_name, nodes_to_bulk_nodes_id_map, diff --git a/MeshToolsLib/convertMeshToGeo.cpp b/MeshToolsLib/convertMeshToGeo.cpp index 13f0297b0870c5d68ffb06abddc702cf72412bda..08b096dc082922d1fc91df6b80d1244d17e6def6 100644 --- a/MeshToolsLib/convertMeshToGeo.cpp +++ b/MeshToolsLib/convertMeshToGeo.cpp @@ -170,7 +170,8 @@ MeshLib::Mesh* convertSurfaceToMesh(const GeoLib::Surface& sfc, nodes.push_back(tri_nodes[j]); } } - MeshLib::Mesh mesh_with_duplicated_nodes(mesh_name, nodes, elements); + MeshLib::Mesh mesh_with_duplicated_nodes( + mesh_name, nodes, elements, true /* compute_element_neighbors */); // remove duplicated nodes MeshToolsLib::MeshRevision rev(mesh_with_duplicated_nodes); diff --git a/Tests/MeshLib/TestIs2DMeshOnRotatedVerticalPlane.cpp b/Tests/MeshLib/TestIs2DMeshOnRotatedVerticalPlane.cpp index c0682903951954331cc132cc1055a403cdc1cdc8..6b7a9ba867add4dd5a4932c059adfe93bac7e2c9 100644 --- a/Tests/MeshLib/TestIs2DMeshOnRotatedVerticalPlane.cpp +++ b/Tests/MeshLib/TestIs2DMeshOnRotatedVerticalPlane.cpp @@ -35,8 +35,8 @@ void testAsNoVerticalPlaneMesh( element_nodes.end()); std::vector<std::unique_ptr<MeshLib::Mesh>> meshes; - meshes.push_back( - std::make_unique<MeshLib::Mesh>("a_mesh", nodes, elements)); + meshes.push_back(std::make_unique<MeshLib::Mesh>( + "a_mesh", nodes, elements, true /* compute_element_neighbors */)); MeshLib::setMeshSpaceDimension(meshes); ASSERT_EQ(expected_space_dimension, elements[0]->space_dimension_); @@ -60,8 +60,8 @@ void testAsVerticalPlaneMesh(const unsigned expected_space_dimension, element_nodes.end()); std::vector<std::unique_ptr<MeshLib::Mesh>> meshes; - meshes.push_back( - std::make_unique<MeshLib::Mesh>("a_mesh", nodes, elements)); + meshes.push_back(std::make_unique<MeshLib::Mesh>( + "a_mesh", nodes, elements, true /* compute_element_neighbors */)); MeshLib::setMeshSpaceDimension(meshes); diff --git a/Tests/MeshLib/TestMeshValidation.cpp b/Tests/MeshLib/TestMeshValidation.cpp index 852f5eaf0b251dcb339279725a5092d578c91216..c233016e6cf865a773099bd3db57b5c4a91f22c1 100644 --- a/Tests/MeshLib/TestMeshValidation.cpp +++ b/Tests/MeshLib/TestMeshValidation.cpp @@ -39,7 +39,8 @@ void detectHoles(MeshLib::Mesh const& mesh, delete elems[pos]; elems.erase(elems.begin() + pos); } - MeshLib::Mesh mesh2("mesh2", nodes, elems); + MeshLib::Mesh mesh2( + "mesh2", nodes, elems, true /* compute_element_neighbors */); ASSERT_EQ(expected_n_holes, MeshToolsLib::MeshValidation::detectHoles(mesh2)); }; diff --git a/Tests/MeshLib/TestTriLineMesh.cpp b/Tests/MeshLib/TestTriLineMesh.cpp index ba522c76ee1ea03acfe7a07699ce690f81a1df1b..b954d0b28111ea43eaf07bd372fdaeb9b5a2661f 100644 --- a/Tests/MeshLib/TestTriLineMesh.cpp +++ b/Tests/MeshLib/TestTriLineMesh.cpp @@ -42,7 +42,8 @@ public: l_nodes[1] = nodes[2]; elements.push_back(new MeshLib::Line(l_nodes)); - mesh = new MeshLib::Mesh("M", nodes, elements); + mesh = new MeshLib::Mesh("M", nodes, elements, + true /* compute_element_neighbors */); } ~MeshLibTriLineMesh() override