diff --git a/Applications/Utils/FileConverter/CMakeLists.txt b/Applications/Utils/FileConverter/CMakeLists.txt index a18a9718c2cc7942bc0d371d1a9b772ca0bb132f..9962ff02f5a386f0af3f370c96ee5cce6c1c3ad4 100644 --- a/Applications/Utils/FileConverter/CMakeLists.txt +++ b/Applications/Utils/FileConverter/CMakeLists.txt @@ -28,7 +28,8 @@ endif() foreach(TOOL ${TOOLS}) add_executable(${TOOL} ${TOOL}.cpp) - target_link_libraries(${TOOL} ApplicationsFileIO GitInfoLib MeshLib tclap) + target_link_libraries(${TOOL} ApplicationsFileIO GitInfoLib MeshLib + MeshGeoToolsLib tclap) endforeach() set_target_properties(${TOOLS} PROPERTIES FOLDER Utilities) install(TARGETS ${TOOLS} RUNTIME DESTINATION bin COMPONENT Utilities) diff --git a/Applications/Utils/FileConverter/FEFLOW2OGS.cpp b/Applications/Utils/FileConverter/FEFLOW2OGS.cpp index 52d216c4d8179b90dde7c7b36aa8a064a1b5ba4a..f060e7087fb0e882d51f0ee38d7e3e9be0ed4575 100644 --- a/Applications/Utils/FileConverter/FEFLOW2OGS.cpp +++ b/Applications/Utils/FileConverter/FEFLOW2OGS.cpp @@ -80,7 +80,7 @@ int main (int argc, char* argv[]) } #ifndef WIN32 unsigned long mem_with_mesh (mem_watch.getVirtMemUsage()); - INFO("Mem for mesh: {:i} MB", + INFO("Mem for mesh: {} MiB", (mem_with_mesh - mem_without_mesh) / (1024 * 1024)); #endif INFO("Time for reading: {:f} seconds.", run_time.elapsed()); diff --git a/Applications/Utils/FileConverter/GMSH2OGS.cpp b/Applications/Utils/FileConverter/GMSH2OGS.cpp index 17fe9c7dfe4cdfb51831fea0f4f2a963cb842dc4..eea94851845e30fa67068ac7da9a9ca8da97a1d0 100644 --- a/Applications/Utils/FileConverter/GMSH2OGS.cpp +++ b/Applications/Utils/FileConverter/GMSH2OGS.cpp @@ -29,13 +29,108 @@ #include "Applications/FileIO/Gmsh/GmshReader.h" #include "GeoLib/AABB.h" +#include "MeshGeoToolsLib/IdentifySubdomainMesh.h" +#include "MeshGeoToolsLib/MeshNodeSearcher.h" #include "MeshLib/IO/writeMeshToFile.h" #include "MeshLib/Mesh.h" +#include "MeshLib/MeshEditing/DuplicateMeshComponents.h" #include "MeshLib/MeshEditing/RemoveMeshComponents.h" #include "MeshLib/MeshInformation.h" #include "MeshLib/MeshQuality/MeshValidation.h" #include "MeshLib/MeshSearch/ElementSearch.h" +static std::unique_ptr<MeshLib::Mesh> createMeshFromElements( + MeshLib::Mesh const& mesh, + std::vector<MeshLib::Element*> const& selected_elements, + std::string mesh_name) +{ + // Create boundary mesh. + auto nodes = copyNodeVector(mesh.getNodes()); + auto elements = copyElementVector(selected_elements, nodes); + + // Cleanup unused nodes + removeMarkedNodes(markUnusedNodes(elements, nodes), nodes); + + return std::make_unique<MeshLib::Mesh>(std::move(mesh_name), nodes, + elements); +} + +static std::vector<std::unique_ptr<MeshLib::Mesh>> extractBoundaryMeshes( + MeshLib::Mesh const& mesh, std::vector<std::size_t> selected_element_ids) +{ + // Bulk mesh node searcher usef for boundary mesh identification. + auto const& mesh_node_searcher = + MeshGeoToolsLib::MeshNodeSearcher::getMeshNodeSearcher( + mesh, + std::make_unique<MeshGeoToolsLib::SearchLength>( + 0)); // Exact match of nodes. + + auto const material_ids = materialIDs(mesh); + if (material_ids == nullptr) + { + OGS_FATAL( + "GMSH2OGS: Expected material ids to be present in the mesh to " + "extract boundary meshes."); + } + + std::vector<std::unique_ptr<MeshLib::Mesh>> boundary_meshes; + + auto const& elements = mesh.getElements(); + + while (!selected_element_ids.empty()) + { + // Partition in two blocks, with elements for the material id at + // the end, s.t. one can erase them easily. + int const material_id = (*material_ids)[selected_element_ids.back()]; + auto split = std::partition( + begin(selected_element_ids), end(selected_element_ids), + [&material_id, &material_ids](int const id) { + return (*material_ids)[id] != material_id; + }); + + // Add elements with same material id to the mesh. + std::vector<MeshLib::Element*> single_material_elements; + single_material_elements.reserve( + std::distance(split, end(selected_element_ids))); + std::transform(split, end(selected_element_ids), + std::back_inserter(single_material_elements), + [&](int const id) { return elements[id]; }); + + // Remove already extracted elements. + selected_element_ids.erase(split, end(selected_element_ids)); + + // Create boundary mesh and identify the nodes/elements. + boundary_meshes.push_back(createMeshFromElements( + mesh, single_material_elements, std::to_string(material_id))); + } + return boundary_meshes; +} + +static void identifyAndWriteBoundaryMeshes( + MeshLib::Mesh const& mesh, + std::string const& file_name, + std::vector<std::unique_ptr<MeshLib::Mesh>>& boundary_meshes) +{ + // Bulk mesh node searcher usef for boundary mesh identification. + auto const& mesh_node_searcher = + MeshGeoToolsLib::MeshNodeSearcher::getMeshNodeSearcher( + mesh, + std::make_unique<MeshGeoToolsLib::SearchLength>( + 0)); // Exact match of nodes. + + for (auto& boundary_mesh : boundary_meshes) + { + identifySubdomainMesh(*boundary_mesh, mesh, mesh_node_searcher); + + // Save the boundary mesh. + auto boundary_mesh_file_name = BaseLib::dropFileExtension(file_name) + + '_' + boundary_mesh->getName() + + BaseLib::getFileExtension(file_name); + + MeshLib::IO::writeMeshToFile(*boundary_mesh, boundary_mesh_file_name); + } +} + int main (int argc, char* argv[]) { TCLAP::CmdLine cmd( @@ -70,6 +165,10 @@ int main (int argc, char* argv[]) TCLAP::SwitchArg valid_arg("v", "validation", "validate the mesh"); cmd.add(valid_arg); + TCLAP::SwitchArg create_boundary_meshes_arg( + "b", "boundaries", "if set, boundary meshes will be generated"); + cmd.add(create_boundary_meshes_arg); + TCLAP::SwitchArg exclude_lines_arg("e", "exclude-lines", "if set, lines will not be written to the ogs mesh"); cmd.add(exclude_lines_arg); @@ -92,7 +191,7 @@ int main (int argc, char* argv[]) return -1; } #ifndef WIN32 - INFO("Mem for mesh: {:i} MB", + INFO("Mem for mesh: {} MiB", (mem_watch.getVirtMemUsage() - mem_without_mesh) / (1024 * 1024)); #endif @@ -100,18 +199,45 @@ int main (int argc, char* argv[]) INFO("Read {:d} nodes and {:d} elements.", mesh->getNumberOfNodes(), mesh->getNumberOfElements()); - // *** remove line elements on request - if (exclude_lines_arg.getValue()) { + // Optionally remove line elements or create boundary meshes. + if (exclude_lines_arg.getValue() || create_boundary_meshes_arg.getValue()) + { auto ex = MeshLib::ElementSearch(*mesh); ex.searchByElementType(MeshLib::MeshElemType::LINE); - auto m = MeshLib::removeElements(*mesh, ex.getSearchedElementIDs(), mesh->getName()+"-withoutLines"); - if (m != nullptr) { - INFO("Removed {:d} lines.", - mesh->getNumberOfElements() - m->getNumberOfElements()); - std::swap(m, mesh); - delete m; - } else { - INFO("Mesh does not contain any lines."); + auto const& selected_element_ids = ex.getSearchedElementIDs(); + + // First we extract the boundary meshes, then optionally remove the line + // elements, and only then run the node/element identification and write + // the meshes. + + std::vector<std::unique_ptr<MeshLib::Mesh>> boundary_meshes; + if (create_boundary_meshes_arg.getValue()) + { + boundary_meshes = + extractBoundaryMeshes(*mesh, selected_element_ids); + } + + if (exclude_lines_arg.getValue()) + { + auto m = MeshLib::removeElements(*mesh, selected_element_ids, + mesh->getName() + "-withoutLines"); + if (m != nullptr) + { + INFO("Removed {:d} lines.", + mesh->getNumberOfElements() - m->getNumberOfElements()); + std::swap(m, mesh); + delete m; + } + else + { + INFO("Mesh does not contain any lines."); + } + } + + if (create_boundary_meshes_arg.getValue()) + { + identifyAndWriteBoundaryMeshes(*mesh, ogs_mesh_arg.getValue(), + boundary_meshes); } } // *** print meshinformation diff --git a/Applications/Utils/GMSH2OGS_ExtractBoundary.smk b/Applications/Utils/GMSH2OGS_ExtractBoundary.smk new file mode 100644 index 0000000000000000000000000000000000000000..08c084083dd2b84755035e631f8f135e45d3aa79 --- /dev/null +++ b/Applications/Utils/GMSH2OGS_ExtractBoundary.smk @@ -0,0 +1,84 @@ +# Usage, e.g.: +# snakemake -s GMSH2OGS_ExtractBoundary.smk -j 1 --configfile $HOME/code/ogs6/build/buildinfo.yaml +# +# buildinfo.yaml contains variables such as Data_BINARY_DIR + +import os +os.environ["PATH"] += os.pathsep + os.pathsep.join([config['BIN_DIR']]) +workdir: f"{config['Data_BINARY_DIR']}/MeshLib" + +#import ipdb +#ipdb.set_trace() + +VTKDIFF = f"file://{config['SOURCE_DIR']}/scripts/snakemake/vtkdiff" +SOURCE_DIR = f"{config['Data_SOURCE_DIR']}/MeshLib" + +MESH_NAME = "A2" +BULK_MESH = f"{MESH_NAME}.vtu" +GMSH_MESH = f"{MESH_NAME}-gmsh.msh" +INNER_BOUNDARIES = "[12]" +OUTER_BOUNDARIES = "[034567]" + +ALL_REFERENCE_FILES = glob_wildcards(f"{SOURCE_DIR}/{{file, {MESH_NAME}.*}}.vtu").file + +rule all: + input: + expand("{file}.vtkdiff.out", file=ALL_REFERENCE_FILES) + +rule gmsh2ogs: + input: + f"{SOURCE_DIR}/{GMSH_MESH}" + output: + expand("{file}.vtu", file=ALL_REFERENCE_FILES) + shell: + "GMSH2OGS -i {input} -o {BULK_MESH} -e -b -v" + +rule vtkdiff_geometry_bulk: + input: + a = f"{SOURCE_DIR}/{BULK_MESH}", + b = BULK_MESH + output: + f"{MESH_NAME}.vtkdiff.out" + params: + check_mesh = True, + fields = [["MaterialIDs", 0, 0]] + wrapper: + VTKDIFF + +rule vtkdiff_geometry_boundary: + input: + a = f"{SOURCE_DIR}/{MESH_NAME}_{{x}}.vtu", + b = f"{MESH_NAME}_{{x}}.vtu" + output: + f"{MESH_NAME}_{{x}}.vtkdiff.out-bulk_node_ids" + params: + check_mesh = True, + fields = [["bulk_node_ids", 0, 0]] + wrapper: + VTKDIFF + +rule vtkdiff_geometry_inner: + input: + f"{MESH_NAME}_{{x}}.vtkdiff.out-bulk_node_ids", + a = f"{SOURCE_DIR}/{MESH_NAME}_{{x}}.vtu", + b = f"{MESH_NAME}_{{x}}.vtu" + output: + f"{MESH_NAME}_{{x, {INNER_BOUNDARIES}}}.vtkdiff.out" + params: + check_mesh = True, + fields = [["number_bulk_elements", 0, 0]] + wrapper: + VTKDIFF + +rule vtkdiff_geometry_outer: + input: + f"{MESH_NAME}_{{x}}.vtkdiff.out-bulk_node_ids", + a = f"{SOURCE_DIR}/{MESH_NAME}_{{x}}.vtu", + b = f"{MESH_NAME}_{{x}}.vtu" + output: + f"{MESH_NAME}_{{x, {OUTER_BOUNDARIES}}}.vtkdiff.out" + params: + check_mesh = True, + fields = [["bulk_element_ids", 0, 0]] + wrapper: + VTKDIFF diff --git a/Applications/Utils/MeshEdit/checkMesh.cpp b/Applications/Utils/MeshEdit/checkMesh.cpp index c556ba6efdbbce91e12b9dd779095d60ea67217a..6b7bc4c5be855cbd18c97cdc3e98487a3555b976 100644 --- a/Applications/Utils/MeshEdit/checkMesh.cpp +++ b/Applications/Utils/MeshEdit/checkMesh.cpp @@ -64,7 +64,7 @@ int main(int argc, char* argv[]) const unsigned long mem_with_mesh(mem_watch.getVirtMemUsage()); if (mem_with_mesh > 0) { - INFO("Memory size: {:i} MB", + INFO("Memory size: {} MiB", (mem_with_mesh - mem_without_mesh) / (1024 * 1024)); (void)mem_with_mesh; } diff --git a/Applications/Utils/Tests.cmake b/Applications/Utils/Tests.cmake index a1ac37c19da430f3a2922a6909c03def3687d3b3..cb08f5a929c00381be6b689935adb1548cf9100a 100644 --- a/Applications/Utils/Tests.cmake +++ b/Applications/Utils/Tests.cmake @@ -481,6 +481,17 @@ if(TARGET VerticalSliceFromLayers AND GMSH) REQUIREMENTS NOT OGS_USE_MPI DIFF_DATA AmmerSlice.vtu AmmerSlice.vtu 1e-16 ) + +endif() + + +if(TARGET GMSH2OGS AND SNAKEMAKE AND NOT OGS_USE_MPI) + add_test(NAME snakemake_GMSH2OGS_ExtractBoundary + COMMAND ${SNAKEMAKE} --cores all + --configfile ${PROJECT_BINARY_DIR}/buildinfo.yaml + -s ${CMAKE_CURRENT_SOURCE_DIR}/GMSH2OGS_ExtractBoundary.smk + ) + add_dependencies(ctest GMSH2OGS) endif() foreach(criterion ElementSize EdgeRatio EquiAngleSkew RadiusEdgeRatio SizeDifference) diff --git a/GeoLib/Grid.h b/GeoLib/Grid.h index 5a56cbab60e746947ba9a696eb701c132f33704d..7131733b3453159b86b663ca953a438f52c30135 100644 --- a/GeoLib/Grid.h +++ b/GeoLib/Grid.h @@ -606,7 +606,8 @@ Grid<POINT>::getPointsInEpsilonEnvironment(P const& pnt, double eps) const std::vector<std::size_t> pnts; for (auto vec : vec_pnts) { for (auto const p : *vec) { - if (MathLib::sqrDist(*p, pnt) < sqr_eps) { + if (MathLib::sqrDist(*p, pnt) <= sqr_eps) + { pnts.push_back(p->getID()); } } diff --git a/MeshLib/MeshEditing/RemoveMeshComponents.cpp b/MeshLib/MeshEditing/RemoveMeshComponents.cpp index 205eca01693b1378326a2bc939103b30a45a98f3..e05da29001a7b6980cdef92e71d90603cdd00648 100644 --- a/MeshLib/MeshEditing/RemoveMeshComponents.cpp +++ b/MeshLib/MeshEditing/RemoveMeshComponents.cpp @@ -97,6 +97,37 @@ MeshLib::Mesh* removeElements( return nullptr; } +std::vector<bool> markUnusedNodes(std::vector<Element*> const& elements, + std::vector<Node*> const& nodes) +{ + std::vector<bool> unused_nodes(nodes.size(), true); + for (auto e : elements) + { + for (unsigned i = 0; i < e->getNumberOfNodes(); i++) + { + unused_nodes[e->getNodeIndex(i)] = false; + } + } + + return unused_nodes; +} + +void removeMarkedNodes(std::vector<bool> const& nodes_to_delete, + std::vector<Node*>& nodes) +{ + assert(nodes_to_delete.size() == nodes.size()); + + for (std::size_t i = 0; i < nodes.size(); i++) + { + if (nodes_to_delete[i]) + { + delete nodes[i]; + nodes[i] = nullptr; + } + } + nodes.erase(remove(begin(nodes), end(nodes), nullptr), end(nodes)); +} + MeshLib::Mesh* removeNodes(const MeshLib::Mesh& mesh, const std::vector<std::size_t>& del_nodes_idx, const std::string& new_mesh_name) @@ -125,27 +156,11 @@ MeshLib::Mesh* removeNodes(const MeshLib::Mesh& mesh, new_elems.end()); // check unused nodes due to element deletion - std::vector<bool> node_delete_flag(new_nodes.size(), true); - for (auto e : new_elems) - { - for (unsigned i = 0; i < e->getNumberOfNodes(); i++) - { - node_delete_flag[e->getNodeIndex(i)] = false; - } - } + std::vector<bool> const node_delete_flag = + markUnusedNodes(new_elems, new_nodes); // delete unused nodes - for (std::size_t i = 0; i < new_nodes.size(); i++) - { - if (!node_delete_flag[i]) - { - continue; - } - delete new_nodes[i]; - new_nodes[i] = nullptr; - } - new_nodes.erase(std::remove(new_nodes.begin(), new_nodes.end(), nullptr), - new_nodes.end()); + removeMarkedNodes(node_delete_flag, new_nodes); if (!new_elems.empty()) { diff --git a/MeshLib/MeshEditing/RemoveMeshComponents.h b/MeshLib/MeshEditing/RemoveMeshComponents.h index d847b616bd2db18c0fc37037bb8a9c2e80691feb..0120a06f5ac455715c16c7404eafa9a05ac6f335 100644 --- a/MeshLib/MeshEditing/RemoveMeshComponents.h +++ b/MeshLib/MeshEditing/RemoveMeshComponents.h @@ -17,6 +17,7 @@ namespace MeshLib { class Mesh; class Element; +class Node; /** * Removes mesh elements and returns a new mesh object. The original mesh is kept unchanged. @@ -42,4 +43,11 @@ MeshLib::Mesh* removeNodes(const MeshLib::Mesh& mesh, const std::vector<std::size_t>& del_nodes_idx, const std::string& new_mesh_name); +/// Marks nodes not used by any of the elements. +std::vector<bool> markUnusedNodes(std::vector<Element*> const& elements, + std::vector<Node*> const& nodes); + +/// Deallocates and removes nodes marked true. +void removeMarkedNodes(std::vector<bool> const& nodes_to_delete, + std::vector<Node*>& nodes); } // end namespace MeshLib diff --git a/Tests/Data/MeshLib/A2-gmsh.msh b/Tests/Data/MeshLib/A2-gmsh.msh new file mode 100644 index 0000000000000000000000000000000000000000..53d853946b2f54924c17839dbeb6d678998a1222 --- /dev/null +++ b/Tests/Data/MeshLib/A2-gmsh.msh @@ -0,0 +1,1304 @@ +$MeshFormat +2.2 0 8 +$EndMeshFormat +$Nodes +590 +1 0 0 0 +2 2.5 0 0 +3 2.5 0.25 0 +4 0 0.25 0 +5 0 10 0 +6 10 10 0 +7 10 0 0 +8 0.05 0 0 +9 0.1 0 0 +10 0.15 0 0 +11 0.2 0 0 +12 0.25 0 0 +13 0.3 0 0 +14 0.35 0 0 +15 0.4 0 0 +16 0.45 0 0 +17 0.5 0 0 +18 0.55 0 0 +19 0.6 0 0 +20 0.65 0 0 +21 0.7000000000000001 0 0 +22 0.75 0 0 +23 0.8 0 0 +24 0.8500000000000001 0 0 +25 0.8999999999999999 0 0 +26 0.95 0 0 +27 1 0 0 +28 1.05 0 0 +29 1.1 0 0 +30 1.15 0 0 +31 1.2 0 0 +32 1.25 0 0 +33 1.3 0 0 +34 1.35 0 0 +35 1.4 0 0 +36 1.45 0 0 +37 1.5 0 0 +38 1.55 0 0 +39 1.6 0 0 +40 1.65 0 0 +41 1.7 0 0 +42 1.75 0 0 +43 1.8 0 0 +44 1.85 0 0 +45 1.9 0 0 +46 1.95 0 0 +47 2 0 0 +48 2.05 0 0 +49 2.1 0 0 +50 2.15 0 0 +51 2.2 0 0 +52 2.25 0 0 +53 2.3 0 0 +54 2.35 0 0 +55 2.4 0 0 +56 2.45 0 0 +57 2.5 0.05800295818433949 0 +58 2.5 0.1189060642357002 0 +59 2.5 0.1828543255659949 0 +60 2.45 0.25 0 +61 2.4 0.25 0 +62 2.35 0.25 0 +63 2.3 0.25 0 +64 2.25 0.25 0 +65 2.2 0.25 0 +66 2.15 0.25 0 +67 2.1 0.25 0 +68 2.05 0.25 0 +69 2 0.25 0 +70 1.95 0.25 0 +71 1.9 0.25 0 +72 1.85 0.25 0 +73 1.8 0.25 0 +74 1.75 0.25 0 +75 1.7 0.25 0 +76 1.65 0.25 0 +77 1.6 0.25 0 +78 1.55 0.25 0 +79 1.5 0.25 0 +80 1.45 0.25 0 +81 1.4 0.25 0 +82 1.35 0.25 0 +83 1.3 0.25 0 +84 1.25 0.25 0 +85 1.2 0.25 0 +86 1.15 0.25 0 +87 1.1 0.25 0 +88 1.05 0.25 0 +89 1 0.25 0 +90 0.95 0.25 0 +91 0.8999999999999999 0.25 0 +92 0.8499999999999999 0.25 0 +93 0.7999999999999998 0.25 0 +94 0.7499999999999998 0.25 0 +95 0.7000000000000002 0.25 0 +96 0.6499999999999999 0.25 0 +97 0.6000000000000001 0.25 0 +98 0.5499999999999998 0.25 0 +99 0.5 0.25 0 +100 0.4499999999999997 0.25 0 +101 0.3999999999999999 0.25 0 +102 0.3500000000000001 0.25 0 +103 0.2999999999999998 0.25 0 +104 0.25 0.25 0 +105 0.1999999999999997 0.25 0 +106 0.1499999999999999 0.25 0 +107 0.1000000000000001 0.25 0 +108 0.04999999999999982 0.25 0 +109 0 0.1828543256308953 0 +110 0 0.1189060642769071 0 +111 0 0.05800295820396181 0 +112 0 0.4147072983233302 0 +113 0 0.612356045613069 0 +114 0 0.8495345369192415 0 +115 0 1.134148732636366 0 +116 0 1.475685769593435 0 +117 0 1.885530212759547 0 +118 0 2.377343541026778 0 +119 0 2.967519529652304 0 +120 0 3.675730723913233 0 +121 0 4.525584160178939 0 +122 0 5.545408276386288 0 +123 0 6.769197213929409 0 +124 0 8.237743936165987 0 +125 1 10 0 +126 2 10 0 +127 3 10 0 +128 4 10 0 +129 5 10 0 +130 6 10 0 +131 7 10 0 +132 8 10 0 +133 9 10 0 +134 10 9 0 +135 10 8 0 +136 10 7 0 +137 10 6 0 +138 10 5 0 +139 10 4 0 +140 10 3 0 +141 10 2 0 +142 10 1 0 +143 8.59209396732621 0 0 +144 7.41883893370553 0 0 +145 6.441126406570012 0 0 +146 5.626365972822897 0 0 +147 4.947398946770734 0 0 +148 4.381593094863723 0 0 +149 3.91008821242169 0 0 +150 3.517167473587046 0 0 +151 3.189733530418392 0 0 +152 2.916871908939219 0 0 +153 2.689487227360997 0 0 +154 0.05000000000000027 0.05952319747475801 0 +155 0.05000000000000027 0.1208617541935149 0 +156 0.05000000000000027 0.184601723191194 0 +157 0.1000000000000001 0.05999326228627437 0 +158 0.1000000000000001 0.1215673091904404 0 +159 0.1000000000000001 0.1851498391848954 0 +160 0.1499999999999999 0.06013979833517745 0 +161 0.1499999999999999 0.1217931573098038 0 +162 0.1499999999999999 0.1853240155470713 0 +163 0.1999999999999997 0.06018400954904249 0 +164 0.1999999999999997 0.12186210673648 0 +165 0.1999999999999997 0.1853776257412493 0 +166 0.2500000000000001 0.06019695944680871 0 +167 0.2500000000000001 0.121882487133454 0 +168 0.25 0.1853936164545744 0 +169 0.3 0.06020066294578061 0 +170 0.3 0.1218883605379059 0 +171 0.3 0.1853982619960108 0 +172 0.35 0.06020170165388306 0 +173 0.35 0.1218900185997755 0 +174 0.35 0.1853995824729397 0 +175 0.3999999999999999 0.06020198829952339 0 +176 0.3999999999999998 0.1218904787113883 0 +177 0.3999999999999998 0.1853999510546292 0 +178 0.4499999999999998 0.0602020663294919 0 +179 0.4499999999999997 0.1218906045593604 0 +180 0.4499999999999997 0.1854000523736842 0 +181 0.5 0.060202087323474 0 +182 0.5 0.121890638558389 0 +183 0.5 0.1854000798644821 0 +184 0.55 0.06020209291484294 0 +185 0.55 0.1218906476459757 0 +186 0.55 0.1854000872401712 0 +187 0.6 0.06020209439070354 0 +188 0.6 0.1218906500522748 0 +189 0.6 0.1854000891996526 0 +190 0.6500000000000002 0.06020209477704881 0 +191 0.6500000000000001 0.1218906506839763 0 +192 0.65 0.1854000897155866 0 +193 0.7000000000000002 0.06020209487729732 0 +194 0.7000000000000002 0.1218906508483282 0 +195 0.7 0.1854000898501989 0 +196 0.75 0.06020209490295803 0 +197 0.75 0.1218906508905227 0 +198 0.75 0.1854000898848714 0 +199 0.7999999999999998 0.06020209490929736 0 +200 0.7999999999999998 0.1218906509010001 0 +201 0.7999999999999998 0.1854000898935328 0 +202 0.8499999999999999 0.06020209491066036 0 +203 0.8499999999999998 0.1218906509032915 0 +204 0.8499999999999998 0.1854000898954664 0 +205 0.8999999999999999 0.06020209491074831 0 +206 0.8999999999999999 0.1218906509034815 0 +207 0.8999999999999999 0.1854000898956695 0 +208 0.95 0.06020209491051108 0 +209 0.95 0.1218906509031347 0 +210 0.95 0.1854000898954297 0 +211 1 0.06020209491019128 0 +212 1 0.1218906509026513 0 +213 1 0.1854000898950772 0 +214 1.05 0.0602020949098506 0 +215 1.05 0.1218906509021334 0 +216 1.05 0.185400089894696 0 +217 1.1 0.06020209490950461 0 +218 1.1 0.1218906509016067 0 +219 1.1 0.1854000898943076 0 +220 1.15 0.06020209490915734 0 +221 1.15 0.1218906509010778 0 +222 1.15 0.1854000898939173 0 +223 1.2 0.06020209490880975 0 +224 1.2 0.1218906509005484 0 +225 1.2 0.1854000898935266 0 +226 1.25 0.06020209490846207 0 +227 1.25 0.1218906509000189 0 +228 1.25 0.1854000898931358 0 +229 1.3 0.06020209490811436 0 +230 1.3 0.1218906508994893 0 +231 1.3 0.185400089892745 0 +232 1.35 0.06020209490776662 0 +233 1.35 0.1218906508989597 0 +234 1.35 0.1854000898923541 0 +235 1.4 0.0602020949074189 0 +236 1.4 0.1218906508984301 0 +237 1.4 0.1854000898919633 0 +238 1.45 0.06020209490707119 0 +239 1.45 0.1218906508979004 0 +240 1.45 0.1854000898915724 0 +241 1.5 0.06020209490672347 0 +242 1.5 0.1218906508973708 0 +243 1.5 0.1854000898911816 0 +244 1.55 0.06020209490637575 0 +245 1.55 0.1218906508968412 0 +246 1.55 0.1854000898907907 0 +247 1.6 0.06020209490602804 0 +248 1.6 0.1218906508963116 0 +249 1.6 0.1854000898903999 0 +250 1.65 0.06020209490568033 0 +251 1.65 0.121890650895782 0 +252 1.65 0.185400089890009 0 +253 1.7 0.06020209490533258 0 +254 1.7 0.1218906508952524 0 +255 1.7 0.1854000898896182 0 +256 1.75 0.06020209490498488 0 +257 1.75 0.1218906508947228 0 +258 1.75 0.1854000898892273 0 +259 1.8 0.06020209490463717 0 +260 1.8 0.1218906508941932 0 +261 1.8 0.1854000898888365 0 +262 1.85 0.06020209490428946 0 +263 1.85 0.1218906508936636 0 +264 1.85 0.1854000898884456 0 +265 1.9 0.06020209490394175 0 +266 1.9 0.121890650893134 0 +267 1.9 0.1854000898880548 0 +268 1.95 0.06020209490359402 0 +269 1.95 0.1218906508926044 0 +270 1.95 0.185400089887664 0 +271 2 0.06020209490324631 0 +272 2 0.1218906508920748 0 +273 2 0.1854000898872731 0 +274 2.05 0.06020209490289857 0 +275 2.05 0.1218906508915452 0 +276 2.05 0.1854000898868823 0 +277 2.1 0.06020209490255088 0 +278 2.1 0.1218906508910156 0 +279 2.1 0.1854000898864914 0 +280 2.15 0.06020209490220316 0 +281 2.15 0.121890650890486 0 +282 2.15 0.1854000898861005 0 +283 2.2 0.06020209490185542 0 +284 2.2 0.1218906508899563 0 +285 2.2 0.1854000898857097 0 +286 2.25 0.0602020949015077 0 +287 2.25 0.1218906508894267 0 +288 2.25 0.1854000898853189 0 +289 2.3 0.06020209490115998 0 +290 2.3 0.1218906508888971 0 +291 2.3 0.185400089884928 0 +292 2.35 0.06020209490081227 0 +293 2.35 0.1218906508883675 0 +294 2.35 0.1854000898845372 0 +295 2.4 0.06016039266827991 0 +296 2.4 0.1218209728074802 0 +297 2.4 0.1853411620290955 0 +298 2.45 0.05977156577884642 0 +299 2.45 0.1212223715567882 0 +300 2.45 0.1848617870434666 0 +301 2.308537207123567 0.3249241562708889 0 +302 1.799829158111323 0.286296248198731 0 +303 1.341532264680221 0.3077232282534954 0 +304 0.9913642807890568 0.3169154085379811 0 +305 3.793549497606816 0.3876899208551077 0 +306 9.036073022808216 5.080662538553153 0 +307 0.8268831020449525 4.500583776984388 0 +308 0.4709549528907369 2.326159854668029 0 +309 0.7097718259786632 0.31976123214476 0 +310 5.593875393404922 0.910633479528701 0 +311 4.023755065918182 8.967009832437338 0 +312 0.4497184820672961 0.2919587502265344 0 +313 0.2878389995988915 1.231192292774601 0 +314 7.012952304058087 9.011848772641327 0 +315 2.014633200579177 0.299330630162836 0 +316 3.044422015622092 0.2246367541561893 0 +317 2.447451955567757 0.2911738013023131 0 +318 1.50177598652454 0.3079876961925931 0 +319 1.147577343588169 0.3000465001881745 0 +320 0.2491561214561049 0.330461146797747 0 +321 0.1593763705373039 0.5885730639236577 0 +322 1.260290060397258 6.84766787951692 0 +323 9.010549220881245 3.158671565442098 0 +324 9.010245872232867 8.010495404700015 0 +325 7.554008908598341 1.333331531472782 0 +326 0.7959369713849469 0.3207370987750151 0 +327 8.930235422648568 2.173269495495303 0 +328 2.546399475349028 0.1864445641525201 0 +329 3.268945817222698 0.2507982036598406 0 +330 0.4467923590379632 1.446100881965741 0 +331 0.5760602469243281 2.889572069824807 0 +332 9.018784122015017 7.024571669195923 0 +333 3.007176140598545 8.876183506654261 0 +334 6.016593021933231 9.010926227817924 0 +335 9.004535236101605 9.004245279792679 0 +336 4.273068050266695 0.4959667815093045 0 +337 8.794699305828194 1.119730857314437 0 +338 1.708488943779014 0.3160689117268056 0 +339 0.1129507370805669 0.2942307892793457 0 +340 1.594496041385899 0.2892251479953618 0 +341 1.225845379335104 0.309702191692435 0 +342 2.577168252290363 0.07838655095906599 0 +343 0.9184108357453376 0.2962011188869207 0 +344 0.6064749102460159 0.2934401184911826 0 +345 0.35284830912956 0.293183654416163 0 +346 0.4905555776516373 0.3105147215931581 0 +347 1.786621559181736 8.649783515591553 0 +348 0.9570169075853165 9.074422103875186 0 +349 1.124444988306674 2.689377062460979 0 +350 4.138475356330643 1.013643497578399 0 +351 2.526049587498431 0.3703075158613132 0 +352 3.136424326598363 0.4215023684649655 0 +353 0.4617225045109556 0.3783713068170202 0 +354 7.031950014889063 8.033168407856905 0 +355 4.05338028827704 7.955668044562312 0 +356 2.889675633510893 0.210261684192564 0 +357 0.1412086936944466 0.461579416250399 0 +358 0.2264432462962604 1.011401195176513 0 +359 0.7083191920901815 3.616672570163107 0 +360 6.520186216517025 0.9776978812132251 0 +361 0.4229835072111499 1.969491502660734 0 +362 0.1789980711324342 0.3274302838817382 0 +363 0.9741368577739351 5.53512037841881 0 +364 4.858189665028572 0.6154886557936772 0 +365 8.064020967423282 3.368686986977557 0 +366 9.035184203901247 4.124521981751185 0 +367 9.028840796739452 6.049203253434958 0 +368 8.022251587958031 8.024641741346247 0 +369 5.020319018341784 8.99811659624498 0 +370 8.009727301339161 9.009771539574249 0 +371 3.460519505184243 0.2897434421822531 0 +372 3.096388800704319 7.845653851539337 0 +373 2.215781528238679 7.541678650610176 0 +374 1.757637962850579 0.3084535449613384 0 +375 1.634752032872404 0.323243949064417 0 +376 2.570458093771687 0.1379037320124601 0 +377 0.6476237364605861 0.3078593482549277 0 +378 1.030391563000088 7.874601674048268 0 +379 0.5632702346001537 0.3293465781009157 0 +380 0.4023501786747374 0.3190333817476629 0 +381 0.3130890813122296 0.3126120015989802 0 +382 7.953468805894034 2.453971663966305 0 +383 2.557777019450618 0.2511805917340597 0 +384 1.871808121998078 5.361718052919992 0 +385 0.4711969263947182 0.9967593106783177 0 +386 0.7031775822985402 0.3972475425980591 0 +387 1.80658774266186 0.3626481387659419 0 +388 0.934625782861441 2.165885007428605 0 +389 8.063141408211084 6.101426796777243 0 +390 4.065469330511035 6.951576992174338 0 +391 5.87083941841626 1.690739978361662 0 +392 6.038836172770774 8.030349876069291 0 +393 7.128240583350099 2.87716147962785 0 +394 2.877051465030251 0.4345711482887049 0 +395 2.485502979472523 6.91606104767936 0 +396 1.727615538367195 0.3850771011937697 0 +397 2.40991514556795 0.4118689763281198 0 +398 0.7660548176401649 1.690987710002471 0 +399 0.6328192271516162 0.375586706341239 0 +400 6.52472746124315 1.778510670224627 0 +401 3.553606843347096 0.8048968348681758 0 +402 1.51620152180427 3.396337868828806 0 +403 8.091112937407676 4.261616407041093 0 +404 0.2879406844735959 0.538786830009701 0 +405 0.2595639516643748 0.427094416301534 0 +406 7.061504353022244 7.07333510509471 0 +407 5.04321860476292 8.003639921610601 0 +408 8.041234564104503 7.055064146479186 0 +409 2.686711603469529 0.4002253702822225 0 +410 4.72299361725621 1.164814449748551 0 +411 1.567939709827157 0.3582542272064453 0 +412 0.344118761251746 0.3839281384552873 0 +413 0.3944907739769796 0.7827699241700854 0 +414 2.681023159093903 0.2037722671910887 0 +415 0.0818807563780819 0.3337575860278648 0 +416 0.5310925571172174 0.4225320946887248 0 +417 3.377784730102875 0.4894976796245825 0 +418 1.126551014102446 1.630301265778369 0 +419 4.055201853156762 1.586229775231176 0 +420 0.7096981487868712 1.067813237343879 0 +421 1.806624616428136 2.869936941583299 0 +422 7.167765593648834 3.566486399380613 0 +423 7.102457217632759 6.140464755681505 0 +424 6.076188243376323 7.066106700228992 0 +425 2.643056183715599 0.5889687640517005 0 +426 3.135299275526251 0.793154464233929 0 +427 1.66309913882801 4.403227178202967 0 +428 0.6076122025064379 0.4631106566575101 0 +429 0.4078445125698922 0.480697147275678 0 +430 8.084628657720799 5.172345792922427 0 +431 5.074117776747832 7.010922521700328 0 +432 0.9480328630999164 1.272902112989586 0 +433 5.164698807064426 1.293489544481829 0 +434 6.043166147797842 2.328554058824908 0 +435 1.838152529097934 0.2998977695764431 0 +436 2.182590452270275 6.289308817541 0 +437 2.849397062722823 0.7007161629427525 0 +438 1.656308677347384 0.4070235742128396 0 +439 3.14200384662688 6.926168855209211 0 +440 7.059952699757345 2.030045766062287 0 +441 2.380913773543481 0.3195025985455731 0 +442 2.5349861730563 0.5084836151534873 0 +443 1.55567748139961 0.3004572440231605 0 +444 0.316017295354011 0.6332441747542186 0 +445 2.49881674955805 0.7877531787479199 0 +446 1.582344591309566 0.4302391409156971 0 +447 5.160857392493697 6.041844467456935 0 +448 1.214176349237337 1.376953264041475 0 +449 1.894151587936419 0.3781503129307104 0 +450 2.993810484084452 6.038613539981209 0 +451 7.147431448595622 5.240752697206267 0 +452 6.142379882471315 6.129164370868316 0 +453 1.628850306566107 2.468692629165708 0 +454 0.689695741482625 0.4847914017864312 0 +455 2.32212105433746 3.523545442029494 0 +456 2.711129266372265 5.152259628597429 0 +457 6.325583910137567 3.670943628538199 0 +458 4.663488800093422 1.742337553583614 0 +459 5.402760168271907 2.390390676538248 0 +460 1.896735804791595 0.3087804253397017 0 +461 0.4984825271911619 0.4939347709782274 0 +462 1.102353224716748 1.019171277255012 0 +463 3.088530432703437 1.195667166811709 0 +464 3.520461933637745 1.383208811668248 0 +465 2.765968253091696 1.00939193170257 0 +466 0.7046594773097992 0.7680764547523671 0 +467 0.4108833916168422 0.6283961769895008 0 +468 6.230429888467953 2.973261090750722 0 +469 6.508661854124707 2.285937527645856 0 +470 7.176738540808277 4.377413346986753 0 +471 5.266017129264554 1.759643841423706 0 +472 2.309387498673436 0.4198652411467974 0 +473 1.503614267069135 0.3721888408202734 0 +474 2.36107775397265 1.08029835121317 0 +475 1.304646489714501 1.108663162994885 0 +476 4.665592802807988 2.529570218042103 0 +477 1.811159226614279 0.4323992102605265 0 +478 0.9601421911657839 0.8721232442851701 0 +479 2.258630815642155 2.879671217488446 0 +480 1.505752309529037 0.4472377394843834 0 +481 2.967131188143123 1.627315205895532 0 +482 0.7906215476937755 0.549023976119031 0 +483 1.438541740738148 0.3745766254539342 0 +484 2.145764739949056 0.2904571939079386 0 +485 6.301408062096926 4.426336859461077 0 +486 3.462633178681911 4.896085655123719 0 +487 5.569246876797105 3.662018607693136 0 +488 2.216291502174564 0.399883095753073 0 +489 2.3019021816023 0.5529352726095595 0 +490 1.423704598806051 1.891937911948893 0 +491 5.05464507764009 3.051475808518598 0 +492 2.461245853041634 4.298990023867945 0 +493 4.034218167997886 5.779570964771175 0 +494 0.7747044603480218 0.4204161638824395 0 +495 3.397529336005251 1.895404730391788 0 +496 2.43792569935697 0.5497235204781852 0 +497 0.5385146598359967 0.7891589466129041 0 +498 1.972937737418109 0.3736038160852964 0 +499 0.5497578753933903 0.5915387858249384 0 +500 1.958717470743774 0.3077466019918562 0 +501 6.227252970586648 5.244514781142702 0 +502 0.2195707955520181 0.7696207498522751 0 +503 5.538942051929125 3.018827273840337 0 +504 2.616701760021293 1.343887087521518 0 +505 1.598809357992801 0.5135769825723653 0 +506 4.275312943903542 3.211711626625003 0 +507 1.425736205183819 0.4511630390315764 0 +508 2.143087737406234 1.283810396848097 0 +509 2.149159509995995 0.5127082638702527 0 +510 5.481659405162611 4.364706681461836 0 +511 2.137358706534808 2.321144975616018 0 +512 2.041968747650416 0.352318593900212 0 +513 0.8509397489650832 0.4623805320177992 0 +514 3.175924662131616 4.165564405411584 0 +515 2.739062513591538 2.151527328194014 0 +516 4.5055441780522 4.909348710340764 0 +517 1.51649777214567 1.435136074233714 0 +518 1.392458790915374 0.3077164130272916 0 +519 2.18222310341716 0.3049937015106874 0 +520 2.05189446032123 0.2883632719739255 0 +521 3.922067477290305 2.189522452259941 0 +522 0.6888093023948096 0.5986381603431052 0 +523 2.989698887502199 3.486126044848552 0 +524 1.445747315362211 0.3098536541319064 0 +525 1.754672777500883 0.4559895775724225 0 +526 1.678701795488433 0.485632172058847 0 +527 2.239666339755455 0.3196209386959445 0 +528 2.273091095156358 0.7267377061800282 0 +529 1.883419932919732 0.481568990613547 0 +530 2.09795713564451 0.3208399037097527 0 +531 0.8849068136562259 0.6682796795844581 0 +532 5.327294517944892 5.144877548207607 0 +533 1.199318594890236 0.8757421931317886 0 +534 0.3621716298459692 0.9277120027024477 0 +535 4.90464635749118 3.51383009807504 0 +536 1.96175379799699 1.816844466697789 0 +537 1.537346643686356 1.141883719120792 0 +538 1.789385033900524 0.5363414243929494 0 +539 2.118953341142605 0.6747420005642528 0 +540 2.000515129695303 0.4544589766017753 0 +541 3.554733544277367 2.796479575466034 0 +542 2.013244461122316 1.027292148892607 0 +543 2.145603153108195 0.3625300740666466 0 +544 1.337824602789375 0.3527039385596753 0 +545 1.844884093059795 1.412113141755991 0 +546 3.471448633790383 3.410513752264301 0 +547 2.856667299100531 2.846771321301945 0 +548 1.134207392685371 0.7246935115714006 0 +549 3.964486733608207 4.631391577596332 0 +550 0.8872297081907332 0.3703981507340517 0 +551 2.353655118227262 1.635463888505969 0 +552 1.510741510177155 0.5338410594331355 0 +553 1.697186494096667 0.5485522649592101 0 +554 1.378215874040464 0.3661921329830573 0 +555 1.022524770712001 0.6413901003189943 0 +556 3.909945434310803 3.927070801875897 0 +557 4.727740765398438 4.179950871400183 0 +558 2.083884321171215 0.4148860289195415 0 +559 0.750969272263676 0.4850088960292522 0 +560 1.379179831119194 0.8770769313241074 0 +561 3.239000758997736 2.264443527879926 0 +562 1.414380912148186 0.5465336701942256 0 +563 1.165433772697214 0.5569562579748668 0 +564 1.543102077100259 0.9663809235398171 0 +565 1.632019087340665 0.6283760066207007 0 +566 1.350574396298367 0.4343742300964548 0 +567 0.9426618656227532 0.5075548356622104 0 +568 1.955897019277296 0.6267307839269849 0 +569 1.781772540335072 1.113315856194092 0 +570 1.050618049168958 0.53853469832511 0 +571 2.183560997949951 0.9000432718711044 0 +572 2.038534065147774 0.5245857971514925 0 +573 1.287144934248554 0.3112834012293995 0 +574 1.771275423439667 0.6577716155110149 0 +575 1.294547840375835 0.5367283162693459 0 +576 1.285190640516578 0.3883916644168952 0 +577 0.9751245853368147 0.4014763693652794 0 +578 1.950674333910117 0.8281059653900229 0 +579 1.518858596712247 0.6069325482334396 0 +580 1.086192260204537 0.4122417134103946 0 +581 1.53508525811245 0.7479972068805907 0 +582 1.312490314492672 0.6942434003302234 0 +583 2.084350024894321 0.7969773123523449 0 +584 1.439085305363673 0.6524041998359493 0 +585 1.182238803101347 0.4515547433213412 0 +586 1.249220508163075 0.457368594589636 0 +587 1.204487826636976 0.3748478772101738 0 +588 1.712573051729251 0.8606766677092521 0 +589 1.064569350600248 0.3181020006829831 0 +590 1.149794209225703 0.3612510180365724 0 +$EndNodes +$Elements +705 +1 15 2 0 1 1 +2 15 2 0 2 2 +3 15 2 0 3 3 +4 15 2 0 4 4 +5 15 2 0 5 5 +6 15 2 0 6 6 +7 15 2 0 7 7 +8 1 2 0 1 1 8 +9 1 2 0 1 8 9 +10 1 2 0 1 9 10 +11 1 2 0 1 10 11 +12 1 2 0 1 11 12 +13 1 2 0 1 12 13 +14 1 2 0 1 13 14 +15 1 2 0 1 14 15 +16 1 2 0 1 15 16 +17 1 2 0 1 16 17 +18 1 2 0 1 17 18 +19 1 2 0 1 18 19 +20 1 2 0 1 19 20 +21 1 2 0 1 20 21 +22 1 2 0 1 21 22 +23 1 2 0 1 22 23 +24 1 2 0 1 23 24 +25 1 2 0 1 24 25 +26 1 2 0 1 25 26 +27 1 2 0 1 26 27 +28 1 2 0 1 27 28 +29 1 2 0 1 28 29 +30 1 2 0 1 29 30 +31 1 2 0 1 30 31 +32 1 2 0 1 31 32 +33 1 2 0 1 32 33 +34 1 2 0 1 33 34 +35 1 2 0 1 34 35 +36 1 2 0 1 35 36 +37 1 2 0 1 36 37 +38 1 2 0 1 37 38 +39 1 2 0 1 38 39 +40 1 2 0 1 39 40 +41 1 2 0 1 40 41 +42 1 2 0 1 41 42 +43 1 2 0 1 42 43 +44 1 2 0 1 43 44 +45 1 2 0 1 44 45 +46 1 2 0 1 45 46 +47 1 2 0 1 46 47 +48 1 2 0 1 47 48 +49 1 2 0 1 48 49 +50 1 2 0 1 49 50 +51 1 2 0 1 50 51 +52 1 2 0 1 51 52 +53 1 2 0 1 52 53 +54 1 2 0 1 53 54 +55 1 2 0 1 54 55 +56 1 2 0 1 55 56 +57 1 2 0 1 56 2 +58 1 2 0 2 2 57 +59 1 2 0 2 57 58 +60 1 2 0 2 58 59 +61 1 2 0 2 59 3 +62 1 2 0 3 3 60 +63 1 2 0 3 60 61 +64 1 2 0 3 61 62 +65 1 2 0 3 62 63 +66 1 2 0 3 63 64 +67 1 2 0 3 64 65 +68 1 2 0 3 65 66 +69 1 2 0 3 66 67 +70 1 2 0 3 67 68 +71 1 2 0 3 68 69 +72 1 2 0 3 69 70 +73 1 2 0 3 70 71 +74 1 2 0 3 71 72 +75 1 2 0 3 72 73 +76 1 2 0 3 73 74 +77 1 2 0 3 74 75 +78 1 2 0 3 75 76 +79 1 2 0 3 76 77 +80 1 2 0 3 77 78 +81 1 2 0 3 78 79 +82 1 2 0 3 79 80 +83 1 2 0 3 80 81 +84 1 2 0 3 81 82 +85 1 2 0 3 82 83 +86 1 2 0 3 83 84 +87 1 2 0 3 84 85 +88 1 2 0 3 85 86 +89 1 2 0 3 86 87 +90 1 2 0 3 87 88 +91 1 2 0 3 88 89 +92 1 2 0 3 89 90 +93 1 2 0 3 90 91 +94 1 2 0 3 91 92 +95 1 2 0 3 92 93 +96 1 2 0 3 93 94 +97 1 2 0 3 94 95 +98 1 2 0 3 95 96 +99 1 2 0 3 96 97 +100 1 2 0 3 97 98 +101 1 2 0 3 98 99 +102 1 2 0 3 99 100 +103 1 2 0 3 100 101 +104 1 2 0 3 101 102 +105 1 2 0 3 102 103 +106 1 2 0 3 103 104 +107 1 2 0 3 104 105 +108 1 2 0 3 105 106 +109 1 2 0 3 106 107 +110 1 2 0 3 107 108 +111 1 2 0 3 108 4 +112 1 2 0 4 4 109 +113 1 2 0 4 109 110 +114 1 2 0 4 110 111 +115 1 2 0 4 111 1 +116 1 2 0 5 4 112 +117 1 2 0 5 112 113 +118 1 2 0 5 113 114 +119 1 2 0 5 114 115 +120 1 2 0 5 115 116 +121 1 2 0 5 116 117 +122 1 2 0 5 117 118 +123 1 2 0 5 118 119 +124 1 2 0 5 119 120 +125 1 2 0 5 120 121 +126 1 2 0 5 121 122 +127 1 2 0 5 122 123 +128 1 2 0 5 123 124 +129 1 2 0 5 124 5 +130 1 2 0 6 5 125 +131 1 2 0 6 125 126 +132 1 2 0 6 126 127 +133 1 2 0 6 127 128 +134 1 2 0 6 128 129 +135 1 2 0 6 129 130 +136 1 2 0 6 130 131 +137 1 2 0 6 131 132 +138 1 2 0 6 132 133 +139 1 2 0 6 133 6 +140 1 2 0 7 6 134 +141 1 2 0 7 134 135 +142 1 2 0 7 135 136 +143 1 2 0 7 136 137 +144 1 2 0 7 137 138 +145 1 2 0 7 138 139 +146 1 2 0 7 139 140 +147 1 2 0 7 140 141 +148 1 2 0 7 141 142 +149 1 2 0 7 142 7 +150 1 2 0 8 7 143 +151 1 2 0 8 143 144 +152 1 2 0 8 144 145 +153 1 2 0 8 145 146 +154 1 2 0 8 146 147 +155 1 2 0 8 147 148 +156 1 2 0 8 148 149 +157 1 2 0 8 149 150 +158 1 2 0 8 150 151 +159 1 2 0 8 151 152 +160 1 2 0 8 152 153 +161 1 2 0 8 153 2 +162 2 2 0 2 319 85 86 +163 2 2 0 2 86 87 319 +164 2 2 0 2 343 90 91 +165 2 2 0 2 91 92 343 +166 2 2 0 2 93 94 326 +167 2 2 0 2 326 92 93 +168 2 2 0 2 107 108 339 +169 2 2 0 2 339 106 107 +170 2 2 0 2 317 3 60 +171 2 2 0 2 60 61 317 +172 3 2 0 1 1 8 154 111 +173 3 2 0 1 111 154 155 110 +174 3 2 0 1 110 155 156 109 +175 3 2 0 1 109 156 108 4 +176 3 2 0 1 8 9 157 154 +177 3 2 0 1 154 157 158 155 +178 3 2 0 1 155 158 159 156 +179 3 2 0 1 156 159 107 108 +180 3 2 0 1 9 10 160 157 +181 3 2 0 1 157 160 161 158 +182 3 2 0 1 158 161 162 159 +183 3 2 0 1 159 162 106 107 +184 3 2 0 1 10 11 163 160 +185 3 2 0 1 160 163 164 161 +186 3 2 0 1 161 164 165 162 +187 3 2 0 1 162 165 105 106 +188 3 2 0 1 11 12 166 163 +189 3 2 0 1 163 166 167 164 +190 3 2 0 1 164 167 168 165 +191 3 2 0 1 165 168 104 105 +192 3 2 0 1 12 13 169 166 +193 3 2 0 1 166 169 170 167 +194 3 2 0 1 167 170 171 168 +195 3 2 0 1 168 171 103 104 +196 3 2 0 1 13 14 172 169 +197 3 2 0 1 169 172 173 170 +198 3 2 0 1 170 173 174 171 +199 3 2 0 1 171 174 102 103 +200 3 2 0 1 14 15 175 172 +201 3 2 0 1 172 175 176 173 +202 3 2 0 1 173 176 177 174 +203 3 2 0 1 174 177 101 102 +204 3 2 0 1 15 16 178 175 +205 3 2 0 1 175 178 179 176 +206 3 2 0 1 176 179 180 177 +207 3 2 0 1 177 180 100 101 +208 3 2 0 1 16 17 181 178 +209 3 2 0 1 178 181 182 179 +210 3 2 0 1 179 182 183 180 +211 3 2 0 1 180 183 99 100 +212 3 2 0 1 17 18 184 181 +213 3 2 0 1 181 184 185 182 +214 3 2 0 1 182 185 186 183 +215 3 2 0 1 183 186 98 99 +216 3 2 0 1 18 19 187 184 +217 3 2 0 1 184 187 188 185 +218 3 2 0 1 185 188 189 186 +219 3 2 0 1 186 189 97 98 +220 3 2 0 1 19 20 190 187 +221 3 2 0 1 187 190 191 188 +222 3 2 0 1 188 191 192 189 +223 3 2 0 1 189 192 96 97 +224 3 2 0 1 20 21 193 190 +225 3 2 0 1 190 193 194 191 +226 3 2 0 1 191 194 195 192 +227 3 2 0 1 192 195 95 96 +228 3 2 0 1 21 22 196 193 +229 3 2 0 1 193 196 197 194 +230 3 2 0 1 194 197 198 195 +231 3 2 0 1 195 198 94 95 +232 3 2 0 1 22 23 199 196 +233 3 2 0 1 196 199 200 197 +234 3 2 0 1 197 200 201 198 +235 3 2 0 1 198 201 93 94 +236 3 2 0 1 23 24 202 199 +237 3 2 0 1 199 202 203 200 +238 3 2 0 1 200 203 204 201 +239 3 2 0 1 201 204 92 93 +240 3 2 0 1 24 25 205 202 +241 3 2 0 1 202 205 206 203 +242 3 2 0 1 203 206 207 204 +243 3 2 0 1 204 207 91 92 +244 3 2 0 1 25 26 208 205 +245 3 2 0 1 205 208 209 206 +246 3 2 0 1 206 209 210 207 +247 3 2 0 1 207 210 90 91 +248 3 2 0 1 26 27 211 208 +249 3 2 0 1 208 211 212 209 +250 3 2 0 1 209 212 213 210 +251 3 2 0 1 210 213 89 90 +252 3 2 0 1 27 28 214 211 +253 3 2 0 1 211 214 215 212 +254 3 2 0 1 212 215 216 213 +255 3 2 0 1 213 216 88 89 +256 3 2 0 1 28 29 217 214 +257 3 2 0 1 214 217 218 215 +258 3 2 0 1 215 218 219 216 +259 3 2 0 1 216 219 87 88 +260 3 2 0 1 29 30 220 217 +261 3 2 0 1 217 220 221 218 +262 3 2 0 1 218 221 222 219 +263 3 2 0 1 219 222 86 87 +264 3 2 0 1 30 31 223 220 +265 3 2 0 1 220 223 224 221 +266 3 2 0 1 221 224 225 222 +267 3 2 0 1 222 225 85 86 +268 3 2 0 1 31 32 226 223 +269 3 2 0 1 223 226 227 224 +270 3 2 0 1 224 227 228 225 +271 3 2 0 1 225 228 84 85 +272 3 2 0 1 32 33 229 226 +273 3 2 0 1 226 229 230 227 +274 3 2 0 1 227 230 231 228 +275 3 2 0 1 228 231 83 84 +276 3 2 0 1 33 34 232 229 +277 3 2 0 1 229 232 233 230 +278 3 2 0 1 230 233 234 231 +279 3 2 0 1 231 234 82 83 +280 3 2 0 1 34 35 235 232 +281 3 2 0 1 232 235 236 233 +282 3 2 0 1 233 236 237 234 +283 3 2 0 1 234 237 81 82 +284 3 2 0 1 35 36 238 235 +285 3 2 0 1 235 238 239 236 +286 3 2 0 1 236 239 240 237 +287 3 2 0 1 237 240 80 81 +288 3 2 0 1 36 37 241 238 +289 3 2 0 1 238 241 242 239 +290 3 2 0 1 239 242 243 240 +291 3 2 0 1 240 243 79 80 +292 3 2 0 1 37 38 244 241 +293 3 2 0 1 241 244 245 242 +294 3 2 0 1 242 245 246 243 +295 3 2 0 1 243 246 78 79 +296 3 2 0 1 38 39 247 244 +297 3 2 0 1 244 247 248 245 +298 3 2 0 1 245 248 249 246 +299 3 2 0 1 246 249 77 78 +300 3 2 0 1 39 40 250 247 +301 3 2 0 1 247 250 251 248 +302 3 2 0 1 248 251 252 249 +303 3 2 0 1 249 252 76 77 +304 3 2 0 1 40 41 253 250 +305 3 2 0 1 250 253 254 251 +306 3 2 0 1 251 254 255 252 +307 3 2 0 1 252 255 75 76 +308 3 2 0 1 41 42 256 253 +309 3 2 0 1 253 256 257 254 +310 3 2 0 1 254 257 258 255 +311 3 2 0 1 255 258 74 75 +312 3 2 0 1 42 43 259 256 +313 3 2 0 1 256 259 260 257 +314 3 2 0 1 257 260 261 258 +315 3 2 0 1 258 261 73 74 +316 3 2 0 1 43 44 262 259 +317 3 2 0 1 259 262 263 260 +318 3 2 0 1 260 263 264 261 +319 3 2 0 1 261 264 72 73 +320 3 2 0 1 44 45 265 262 +321 3 2 0 1 262 265 266 263 +322 3 2 0 1 263 266 267 264 +323 3 2 0 1 264 267 71 72 +324 3 2 0 1 45 46 268 265 +325 3 2 0 1 265 268 269 266 +326 3 2 0 1 266 269 270 267 +327 3 2 0 1 267 270 70 71 +328 3 2 0 1 46 47 271 268 +329 3 2 0 1 268 271 272 269 +330 3 2 0 1 269 272 273 270 +331 3 2 0 1 270 273 69 70 +332 3 2 0 1 47 48 274 271 +333 3 2 0 1 271 274 275 272 +334 3 2 0 1 272 275 276 273 +335 3 2 0 1 273 276 68 69 +336 3 2 0 1 48 49 277 274 +337 3 2 0 1 274 277 278 275 +338 3 2 0 1 275 278 279 276 +339 3 2 0 1 276 279 67 68 +340 3 2 0 1 49 50 280 277 +341 3 2 0 1 277 280 281 278 +342 3 2 0 1 278 281 282 279 +343 3 2 0 1 279 282 66 67 +344 3 2 0 1 50 51 283 280 +345 3 2 0 1 280 283 284 281 +346 3 2 0 1 281 284 285 282 +347 3 2 0 1 282 285 65 66 +348 3 2 0 1 51 52 286 283 +349 3 2 0 1 283 286 287 284 +350 3 2 0 1 284 287 288 285 +351 3 2 0 1 285 288 64 65 +352 3 2 0 1 52 53 289 286 +353 3 2 0 1 286 289 290 287 +354 3 2 0 1 287 290 291 288 +355 3 2 0 1 288 291 63 64 +356 3 2 0 1 53 54 292 289 +357 3 2 0 1 289 292 293 290 +358 3 2 0 1 290 293 294 291 +359 3 2 0 1 291 294 62 63 +360 3 2 0 1 54 55 295 292 +361 3 2 0 1 292 295 296 293 +362 3 2 0 1 293 296 297 294 +363 3 2 0 1 294 297 61 62 +364 3 2 0 1 55 56 298 295 +365 3 2 0 1 295 298 299 296 +366 3 2 0 1 296 299 300 297 +367 3 2 0 1 297 300 60 61 +368 3 2 0 1 56 2 57 298 +369 3 2 0 1 298 57 58 299 +370 3 2 0 1 299 58 59 300 +371 3 2 0 1 300 59 3 60 +372 3 2 0 2 482 522 466 531 +373 3 2 0 2 88 589 319 87 +374 3 2 0 2 108 4 415 339 +375 3 2 0 2 529 538 574 568 +376 3 2 0 2 398 388 490 418 +377 3 2 0 2 547 523 546 541 +378 3 2 0 2 475 462 432 448 +379 3 2 0 2 448 432 398 418 +380 3 2 0 2 417 401 305 371 +381 3 2 0 2 404 444 467 429 +382 3 2 0 2 398 330 117 361 +383 3 2 0 2 4 112 357 415 +384 3 2 0 2 506 541 546 556 +385 3 2 0 2 517 448 418 490 +386 3 2 0 2 360 400 440 325 +387 3 2 0 2 582 560 581 584 +388 3 2 0 2 405 404 429 412 +389 3 2 0 2 564 560 475 537 +390 3 2 0 2 379 416 428 399 +391 3 2 0 2 321 357 112 113 +392 3 2 0 2 569 537 517 545 +393 3 2 0 2 414 356 152 153 +394 3 2 0 2 359 402 349 331 +395 3 2 0 2 558 509 488 543 +396 3 2 0 2 548 533 560 582 +397 3 2 0 2 321 404 405 357 +398 3 2 0 2 580 590 319 589 +399 3 2 0 2 497 385 420 466 +400 3 2 0 2 356 316 151 152 +401 3 2 0 2 570 563 585 580 +402 3 2 0 2 490 388 349 453 +403 3 2 0 2 475 448 517 537 +404 3 2 0 2 337 143 144 325 +405 3 2 0 2 402 455 479 421 +406 3 2 0 2 151 316 352 329 +407 3 2 0 2 502 114 115 358 +408 3 2 0 2 365 403 366 323 +409 3 2 0 2 358 115 116 313 +410 3 2 0 2 531 466 420 478 +411 3 2 0 2 325 144 145 360 +412 3 2 0 2 313 116 117 330 +413 3 2 0 2 322 363 122 123 +414 3 2 0 2 398 361 308 388 +415 3 2 0 2 331 308 118 119 +416 3 2 0 2 534 358 313 385 +417 3 2 0 2 308 361 117 118 +418 3 2 0 2 359 331 119 120 +419 3 2 0 2 548 555 531 478 +420 3 2 0 2 529 568 572 540 +421 3 2 0 2 521 541 506 476 +422 3 2 0 2 331 349 388 308 +423 3 2 0 2 363 307 121 122 +424 3 2 0 2 532 516 493 447 +425 3 2 0 2 386 399 428 454 +426 3 2 0 2 531 555 570 567 +427 3 2 0 2 420 385 313 330 +428 3 2 0 2 487 535 557 510 +429 3 2 0 2 545 536 551 508 +430 3 2 0 2 310 146 147 364 +431 3 2 0 2 504 551 515 481 +432 3 2 0 2 457 487 510 485 +433 3 2 0 2 322 436 384 363 +434 3 2 0 2 143 337 142 7 +435 3 2 0 2 382 365 323 327 +436 3 2 0 2 503 491 535 487 +437 3 2 0 2 301 472 397 441 +438 3 2 0 2 526 553 538 525 +439 3 2 0 2 372 373 347 333 +440 3 2 0 2 402 359 307 427 +441 3 2 0 2 511 479 547 515 +442 3 2 0 2 123 124 378 322 +443 3 2 0 2 571 542 508 474 +444 3 2 0 2 515 551 536 511 +445 3 2 0 2 402 427 492 455 +446 3 2 0 2 402 421 453 349 +447 3 2 0 2 508 542 569 545 +448 3 2 0 2 408 332 367 389 +449 3 2 0 2 429 467 499 461 +450 3 2 0 2 365 422 470 403 +451 3 2 0 2 565 581 588 574 +452 3 2 0 2 401 464 419 350 +453 3 2 0 2 422 457 485 470 +454 3 2 0 2 453 421 479 511 +455 3 2 0 2 400 360 310 391 +456 3 2 0 2 567 577 550 513 +457 3 2 0 2 509 572 568 539 +458 3 2 0 2 420 330 398 432 +459 3 2 0 2 326 494 513 550 +460 3 2 0 2 478 420 432 462 +461 3 2 0 2 578 542 571 583 +462 3 2 0 2 322 378 347 373 +463 3 2 0 2 576 544 303 573 +464 3 2 0 2 389 423 406 408 +465 3 2 0 2 434 391 471 459 +466 3 2 0 2 325 440 393 382 +467 3 2 0 2 150 371 305 149 +468 3 2 0 2 554 544 576 566 +469 3 2 0 2 407 392 424 431 +470 3 2 0 2 462 475 560 533 +471 3 2 0 2 498 540 558 512 +472 3 2 0 2 368 354 314 370 +473 3 2 0 2 327 323 140 141 +474 3 2 0 2 560 564 588 581 +475 3 2 0 2 490 536 545 517 +476 3 2 0 2 457 468 503 487 +477 3 2 0 2 323 366 139 140 +478 3 2 0 2 514 523 455 492 +479 3 2 0 2 430 389 367 306 +480 3 2 0 2 356 394 352 316 +481 3 2 0 2 431 390 355 407 +482 3 2 0 2 337 327 141 142 +483 3 2 0 2 366 306 138 139 +484 3 2 0 2 363 384 427 307 +485 3 2 0 2 407 369 334 392 +486 3 2 0 2 422 365 382 393 +487 3 2 0 2 366 403 430 306 +488 3 2 0 2 120 121 307 359 +489 3 2 0 2 499 428 416 461 +490 3 2 0 2 507 566 575 562 +491 3 2 0 2 306 367 137 138 +492 3 2 0 2 354 368 408 406 +493 3 2 0 2 570 555 548 563 +494 3 2 0 2 468 457 422 393 +495 3 2 0 2 414 153 342 376 +496 3 2 0 2 324 332 408 368 +497 3 2 0 2 439 372 355 390 +498 3 2 0 2 333 127 128 311 +499 3 2 0 2 369 311 128 129 +500 3 2 0 2 455 523 547 479 +501 3 2 0 2 430 451 423 389 +502 3 2 0 2 406 424 392 354 +503 3 2 0 2 367 332 136 137 +504 3 2 0 2 314 354 392 334 +505 3 2 0 2 334 369 129 130 +506 3 2 0 2 149 305 336 148 +507 3 2 0 2 456 450 493 486 +508 3 2 0 2 314 334 130 131 +509 3 2 0 2 368 370 335 324 +510 3 2 0 2 372 333 311 355 +511 3 2 0 2 436 322 373 395 +512 3 2 0 2 370 314 131 132 +513 3 2 0 2 486 514 492 456 +514 3 2 0 2 335 370 132 133 +515 3 2 0 2 369 407 355 311 +516 3 2 0 2 335 134 135 324 +517 3 2 0 2 332 324 135 136 +518 3 2 0 2 580 585 587 590 +519 3 2 0 2 577 567 570 580 +520 3 2 0 2 403 470 451 430 +521 3 2 0 2 511 536 490 453 +522 3 2 0 2 335 133 6 134 +523 3 2 0 2 503 459 476 491 +524 3 2 0 2 575 563 548 582 +525 3 2 0 2 427 384 456 492 +526 3 2 0 2 459 503 468 434 +527 3 2 0 2 556 514 486 549 +528 3 2 0 2 310 433 471 391 +529 3 2 0 2 452 423 451 501 +530 3 2 0 2 424 406 423 452 +531 3 2 0 2 528 571 474 445 +532 3 2 0 2 573 341 587 576 +533 3 2 0 2 146 310 360 145 +534 3 2 0 2 393 469 434 468 +535 3 2 0 2 542 578 588 569 +536 3 2 0 2 431 447 493 390 +537 3 2 0 2 391 434 469 400 +538 3 2 0 2 535 491 476 506 +539 3 2 0 2 527 519 543 488 +540 3 2 0 2 541 521 495 561 +541 3 2 0 2 70 500 315 69 +542 3 2 0 2 315 512 530 520 +543 3 2 0 2 385 497 413 534 +544 3 2 0 2 513 494 559 482 +545 3 2 0 2 493 516 549 486 +546 3 2 0 2 350 419 458 410 +547 3 2 0 2 464 495 521 419 +548 3 2 0 2 523 514 556 546 +549 3 2 0 2 451 470 485 501 +550 3 2 0 2 458 476 459 471 +551 3 2 0 2 390 493 450 439 +552 3 2 0 2 568 574 588 578 +553 3 2 0 2 395 373 372 439 +554 3 2 0 2 148 336 364 147 +555 3 2 0 2 401 350 336 305 +556 3 2 0 2 318 473 411 443 +557 3 2 0 2 310 364 410 433 +558 3 2 0 2 471 433 410 458 +559 3 2 0 2 353 429 461 416 +560 3 2 0 2 518 303 544 554 +561 3 2 0 2 463 426 437 465 +562 3 2 0 2 71 460 500 70 +563 3 2 0 2 576 587 585 586 +564 3 2 0 2 127 333 347 126 +565 3 2 0 2 476 458 419 521 +566 3 2 0 2 561 495 481 515 +567 3 2 0 2 557 535 506 556 +568 3 2 0 2 518 554 483 524 +569 3 2 0 2 540 572 509 558 +570 3 2 0 2 489 509 539 528 +571 3 2 0 2 483 554 566 507 +572 3 2 0 2 524 483 473 318 +573 3 2 0 2 473 483 507 480 +574 3 2 0 2 437 394 409 425 +575 3 2 0 2 562 575 582 584 +576 3 2 0 2 426 352 394 437 +577 3 2 0 2 350 410 364 336 +578 3 2 0 2 540 498 449 529 +579 3 2 0 2 538 553 565 574 +580 3 2 0 2 532 501 485 510 +581 3 2 0 2 499 497 466 522 +582 3 2 0 2 464 401 426 463 +583 3 2 0 2 575 566 576 586 +584 3 2 0 2 393 440 400 469 +585 3 2 0 2 551 504 474 508 +586 3 2 0 2 436 395 439 450 +587 3 2 0 2 480 552 505 446 +588 3 2 0 2 480 446 411 473 +589 3 2 0 2 379 346 353 416 +590 3 2 0 2 516 532 510 557 +591 3 2 0 2 358 534 413 502 +592 3 2 0 2 450 456 384 436 +593 3 2 0 2 552 579 565 505 +594 3 2 0 2 151 329 371 150 +595 3 2 0 2 460 71 72 435 +596 3 2 0 2 374 302 73 74 +597 3 2 0 2 445 496 489 528 +598 3 2 0 2 375 338 75 76 +599 3 2 0 2 374 74 75 338 +600 3 2 0 2 375 411 446 438 +601 3 2 0 2 443 340 77 78 +602 3 2 0 2 375 76 77 340 +603 3 2 0 2 524 80 81 518 +604 3 2 0 2 460 435 387 449 +605 3 2 0 2 524 318 79 80 +606 3 2 0 2 443 411 375 340 +607 3 2 0 2 573 303 82 83 +608 3 2 0 2 562 552 480 507 +609 3 2 0 2 525 538 529 477 +610 3 2 0 2 584 579 552 562 +611 3 2 0 2 63 64 527 301 +612 3 2 0 2 315 500 498 512 +613 3 2 0 2 522 482 559 454 +614 3 2 0 2 500 460 449 498 +615 3 2 0 2 527 488 472 301 +616 3 2 0 2 509 489 472 488 +617 3 2 0 2 396 525 477 387 +618 3 2 0 2 589 88 89 304 +619 3 2 0 2 575 586 585 563 +620 3 2 0 2 377 309 95 96 +621 3 2 0 2 481 463 465 504 +622 3 2 0 2 495 464 463 481 +623 3 2 0 2 377 96 97 344 +624 3 2 0 2 379 344 97 98 +625 3 2 0 2 379 98 99 346 +626 3 2 0 2 428 499 522 454 +627 3 2 0 2 380 312 100 101 +628 3 2 0 2 541 561 515 547 +629 3 2 0 2 504 465 445 474 +630 3 2 0 2 530 67 68 520 +631 3 2 0 2 438 446 505 526 +632 3 2 0 2 435 302 374 387 +633 3 2 0 2 438 396 338 375 +634 3 2 0 2 512 558 543 530 +635 3 2 0 2 126 347 348 125 +636 3 2 0 2 465 437 425 445 +637 3 2 0 2 529 449 387 477 +638 3 2 0 2 537 569 588 564 +639 3 2 0 2 380 101 102 345 +640 3 2 0 2 381 345 102 103 +641 3 2 0 2 105 106 339 362 +642 3 2 0 2 371 329 352 417 +643 3 2 0 2 583 571 528 539 +644 3 2 0 2 441 397 351 317 +645 3 2 0 2 496 442 351 397 +646 3 2 0 2 530 484 66 67 +647 3 2 0 2 376 328 383 414 +648 3 2 0 2 499 467 413 497 +649 3 2 0 2 496 397 472 489 +650 3 2 0 2 399 386 309 377 +651 3 2 0 2 362 320 104 105 +652 3 2 0 2 381 103 104 320 +653 3 2 0 2 58 59 328 376 +654 3 2 0 2 530 543 519 484 +655 3 2 0 2 78 79 318 443 +656 3 2 0 2 73 302 435 72 +657 3 2 0 2 65 519 527 64 +658 3 2 0 2 526 525 396 438 +659 3 2 0 2 377 344 379 399 +660 3 2 0 2 83 84 341 573 +661 3 2 0 2 445 425 442 496 +662 3 2 0 2 82 303 518 81 +663 3 2 0 2 352 426 401 417 +664 3 2 0 2 346 312 380 353 +665 3 2 0 2 386 454 559 494 +666 3 2 0 2 513 482 531 567 +667 3 2 0 2 404 321 502 444 +668 3 2 0 2 124 348 347 378 +669 3 2 0 2 526 505 565 553 +670 3 2 0 2 69 315 520 68 +671 3 2 0 2 380 345 381 412 +672 3 2 0 2 578 583 539 568 +673 3 2 0 2 62 63 301 441 +674 3 2 0 2 357 362 339 415 +675 3 2 0 2 57 58 376 342 +676 3 2 0 2 425 409 351 442 +677 3 2 0 2 99 100 312 346 +678 3 2 0 2 467 444 502 413 +679 3 2 0 2 429 353 380 412 +680 3 2 0 2 59 3 383 328 +681 3 2 0 2 516 557 556 549 +682 3 2 0 2 66 484 519 65 +683 3 2 0 2 317 351 383 3 +684 3 2 0 2 584 581 565 579 +685 3 2 0 2 57 342 153 2 +686 3 2 0 2 125 348 124 5 +687 3 2 0 2 62 441 317 61 +688 3 2 0 2 84 85 319 341 +689 3 2 0 2 89 90 343 304 +690 3 2 0 2 95 309 326 94 +691 3 2 0 2 113 114 502 321 +692 3 2 0 2 550 577 304 343 +693 3 2 0 2 494 326 309 386 +694 3 2 0 2 590 587 341 319 +695 3 2 0 2 327 337 325 382 +696 3 2 0 2 92 326 550 343 +697 3 2 0 2 394 356 414 409 +698 3 2 0 2 320 362 357 405 +699 3 2 0 2 338 396 387 374 +700 3 2 0 2 320 405 412 381 +701 3 2 0 2 351 409 414 383 +702 3 2 0 2 424 452 447 431 +703 3 2 0 2 501 532 447 452 +704 3 2 0 2 462 533 548 478 +705 3 2 0 2 304 577 580 589 +$EndElements diff --git a/Tests/Data/MeshLib/A2.vtu b/Tests/Data/MeshLib/A2.vtu new file mode 100644 index 0000000000000000000000000000000000000000..11d0a87ed43a06f895eca19067db9bb876cceb25 --- /dev/null +++ b/Tests/Data/MeshLib/A2.vtu @@ -0,0 +1,23 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64"> + <UnstructuredGrid> + <Piece NumberOfPoints="590" NumberOfCells="544" > + <PointData> + </PointData> + <CellData> + <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0" RangeMax="1" offset="0" /> + </CellData> + <Points> + <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0" RangeMax="14.142135624" offset="2912" /> + </Points> + <Cells> + <DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="21804" /> + <DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="44920" /> + <DataArray type="UInt8" Name="types" format="appended" RangeMin="" RangeMax="" offset="50736" /> + </Cells> + </Piece> + </UnstructuredGrid> + <AppendedData encoding="base64"> + _gAgAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAUDcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAANA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAANA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAACRAAAAAAAAAAAAAAAAAAAAkQAAAAAAAACRAAAAAAAAAAAAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAAACamZmZmZmpPwAAAAAAAAAAAAAAAAAAAACamZmZmZm5PwAAAAAAAAAAAAAAAAAAAAAzMzMzMzPDPwAAAAAAAAAAAAAAAAAAAACamZmZmZnJPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADQPwAAAAAAAAAAAAAAAAAAAAAzMzMzMzPTPwAAAAAAAAAAAAAAAAAAAABmZmZmZmbWPwAAAAAAAAAAAAAAAAAAAACamZmZmZnZPwAAAAAAAAAAAAAAAAAAAADNzMzMzMzcPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAAAACamZmZmZnhPwAAAAAAAAAAAAAAAAAAAAAzMzMzMzPjPwAAAAAAAAAAAAAAAAAAAADNzMzMzMzkPwAAAAAAAAAAAAAAAAAAAABnZmZmZmbmPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADoPwAAAAAAAAAAAAAAAAAAAACamZmZmZnpPwAAAAAAAAAAAAAAAAAAAAA0MzMzMzPrPwAAAAAAAAAAAAAAAAAAAADMzMzMzMzsPwAAAAAAAAAAAAAAAAAAAABmZmZmZmbuPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAADNzMzMzMzwPwAAAAAAAAAAAAAAAAAAAACamZmZmZnxPwAAAAAAAAAAAAAAAAAAAABmZmZmZmbyPwAAAAAAAAAAAAAAAAAAAAAzMzMzMzPzPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0PwAAAAAAAAAAAAAAAAAAAADNzMzMzMz0PwAAAAAAAAAAAAAAAAAAAACamZmZmZn1PwAAAAAAAAAAAAAAAAAAAABmZmZmZmb2PwAAAAAAAAAAAAAAAAAAAAAzMzMzMzP3PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4PwAAAAAAAAAAAAAAAAAAAADNzMzMzMz4PwAAAAAAAAAAAAAAAAAAAACamZmZmZn5PwAAAAAAAAAAAAAAAAAAAABmZmZmZmb6PwAAAAAAAAAAAAAAAAAAAAAzMzMzMzP7PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8PwAAAAAAAAAAAAAAAAAAAADNzMzMzMz8PwAAAAAAAAAAAAAAAAAAAACamZmZmZn9PwAAAAAAAAAAAAAAAAAAAABmZmZmZmb+PwAAAAAAAAAAAAAAAAAAAAAzMzMzMzP/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAABmZmZmZmYAQAAAAAAAAAAAAAAAAAAAAADNzMzMzMwAQAAAAAAAAAAAAAAAAAAAAAAzMzMzMzMBQAAAAAAAAAAAAAAAAAAAAACamZmZmZkBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAABmZmZmZmYCQAAAAAAAAAAAAAAAAAAAAADNzMzMzMwCQAAAAAAAAAAAAAAAAAAAAAAzMzMzMzMDQAAAAAAAAAAAAAAAAAAAAACamZmZmZkDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQDks8lCQsq0/AAAAAAAAAAAAAAAAAAAEQHs7MLmgcL4/AAAAAAAAAAAAAAAAAAAEQJB5HkLFZ8c/AAAAAAAAAACamZmZmZkDQAAAAAAAANA/AAAAAAAAAAAzMzMzMzMDQAAAAAAAANA/AAAAAAAAAADNzMzMzMwCQAAAAAAAANA/AAAAAAAAAABmZmZmZmYCQAAAAAAAANA/AAAAAAAAAAAAAAAAAAACQAAAAAAAANA/AAAAAAAAAACamZmZmZkBQAAAAAAAANA/AAAAAAAAAAAzMzMzMzMBQAAAAAAAANA/AAAAAAAAAADNzMzMzMwAQAAAAAAAANA/AAAAAAAAAABmZmZmZmYAQAAAAAAAANA/AAAAAAAAAAAAAAAAAAAAQAAAAAAAANA/AAAAAAAAAAAzMzMzMzP/PwAAAAAAANA/AAAAAAAAAABmZmZmZmb+PwAAAAAAANA/AAAAAAAAAACamZmZmZn9PwAAAAAAANA/AAAAAAAAAADNzMzMzMz8PwAAAAAAANA/AAAAAAAAAAAAAAAAAAD8PwAAAAAAANA/AAAAAAAAAAAzMzMzMzP7PwAAAAAAANA/AAAAAAAAAABmZmZmZmb6PwAAAAAAANA/AAAAAAAAAACamZmZmZn5PwAAAAAAANA/AAAAAAAAAADNzMzMzMz4PwAAAAAAANA/AAAAAAAAAAAAAAAAAAD4PwAAAAAAANA/AAAAAAAAAAAzMzMzMzP3PwAAAAAAANA/AAAAAAAAAABmZmZmZmb2PwAAAAAAANA/AAAAAAAAAACamZmZmZn1PwAAAAAAANA/AAAAAAAAAADNzMzMzMz0PwAAAAAAANA/AAAAAAAAAAAAAAAAAAD0PwAAAAAAANA/AAAAAAAAAAAzMzMzMzPzPwAAAAAAANA/AAAAAAAAAABmZmZmZmbyPwAAAAAAANA/AAAAAAAAAACamZmZmZnxPwAAAAAAANA/AAAAAAAAAADNzMzMzMzwPwAAAAAAANA/AAAAAAAAAAAAAAAAAADwPwAAAAAAANA/AAAAAAAAAABmZmZmZmbuPwAAAAAAANA/AAAAAAAAAADMzMzMzMzsPwAAAAAAANA/AAAAAAAAAAAyMzMzMzPrPwAAAAAAANA/AAAAAAAAAACYmZmZmZnpPwAAAAAAANA/AAAAAAAAAAD+///////nPwAAAAAAANA/AAAAAAAAAABoZmZmZmbmPwAAAAAAANA/AAAAAAAAAADMzMzMzMzkPwAAAAAAANA/AAAAAAAAAAA0MzMz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AAAAAPkAAAAAAAAA/AAAAAAAAAD9AAAAAAAAAPoAAAAAAAAA+gAAAAAAAAD9AAAAAAAAAP4AAAAAAAAA+wAAAAAAAAD7AAAAAAAAAP4AAAAAAAAASgAAAAAAAABLAAAAAAAAACgAAAAAAAAAKQAAAAAAAAD/AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAD/AAAAAAAAAAABAAAAAAAA/QAAAAAAAAD9AAAAAAAAAAABAAAAAAAAAQEAAAAAAAD+AAAAAAAAAP4AAAAAAAAAAQEAAAAAAABJAAAAAAAAAEoAAAAAAAAAKQAAAAAAAAAqAAAAAAAAAAIBAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAIBAAAAAAAAAwEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAwEAAAAAAAAEAQAAAAAAAAEBAAAAAAAAAQEAAAAAAAAEAQAAAAAAAEgAAAAAAAAASQAAAAAAAAAqAAAAAAAAACsAAAAAAAAABQEAAAAAAAACAQAAAAAAAAIBAAAAAAAABQEAAAAAAAAGAQAAAAAAAAMBAAAAAAAAAwEAAAAAAAAGAQAAAAAAAAcBAAAAAAAABAEAAAAAAAAEAQAAAAAAAAcBAAAAAAAARwAAAAAAAABIAAAAAAAAACsAAAAAAAAALAAAAAAAAAAIAQAAAAAAAAUBAAAAAAAABQEAAAAAAAAIAQAAAAAAAAkBAAAAAAAABgEAAAAAAAAGAQAAAAAAAAkBAAAAAAAACgEAAAAAAAAHAQAAAAAAAAcBAAAAAAAACgEAAAAAAABGAAAAAAAAAEcAAAAAAAAALAAAAAAAAAAtAAAAAAAAAAsBAAAAAAAACAEAAAAAAAAIAQAAAAAAAAsBAAAAAAAADAEAAAAAAAAJAQAAAAAAAAkBAAAAAAAADAEAAAAAAAANAQAAAAAAAAoBAAAAAAAACgEAAAAAAAANAQAAAAAAAEUAAAAAAAAARgAAAAAAAAAtAAAAAAAAAC4AAAAAAAAADgEAAAAAAAALAQAAAAAAAAsBAAAAAAAADgEAAAAAAAAPAQAAAAAAAAwBAAAAAAAADAEAAAAAAAAPAQAAAAAAABABAAAAAAAADQEAAAAAAAANAQAAAAAAABABAAAAAAAARAAAAAAAAABFAAAAAAAAAC4AAAAAAAAALwAAAAAAAAARAQAAAAAAAA4BAAAAAAAA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/gYAAAAAAAACBwAAAAAAAAYHAAAAAAAACgcAAAAAAAAOBwAAAAAAABIHAAAAAAAAFgcAAAAAAAAaBwAAAAAAAB4HAAAAAAAAIgcAAAAAAAAmBwAAAAAAACoHAAAAAAAALgcAAAAAAAAyBwAAAAAAADYHAAAAAAAAOgcAAAAAAAA+BwAAAAAAAEIHAAAAAAAARgcAAAAAAABKBwAAAAAAAE4HAAAAAAAAUgcAAAAAAABWBwAAAAAAAFoHAAAAAAAAXgcAAAAAAABiBwAAAAAAAGYHAAAAAAAAagcAAAAAAABuBwAAAAAAAHIHAAAAAAAAdgcAAAAAAAB6BwAAAAAAAH4HAAAAAAAAggcAAAAAAACGBwAAAAAAAIoHAAAAAAAAjgcAAAAAAACSBwAAAAAAAJYHAAAAAAAAmgcAAAAAAACeBwAAAAAAAKIHAAAAAAAApgcAAAAAAACqBwAAAAAAAK4HAAAAAAAAsgcAAAAAAAC2BwAAAAAAALoHAAAAAAAAvgcAAAAAAADCBwAAAAAAAMYHAAAAAAAAygcAAAAAAADOBwAAAAAAANIHAAAAAAAA1gcAAAAAAADaBwAAAAAAAN4HAAAAAAAA4gcAAAAAAADmBwAAAAAAAOoHAAAAAAAA7gcAAAAAAADyBwAAAAAAAPYHAAAAAAAA+gcAAAAAAAD+BwAAAAAAAAIIAAAAAAAABggAAAAAAAAKCAAAAAAAAA4IAAAAAAAAEggAAAAAAAAWCAAAAAAAABoIAAAAAAAAHggAAAAAAAAiCAAAAAAAACYIAAAAAAAAKggAAAAAAAAuCAAAAAAAADIIAAAAAAAANggAAAAAAAA6CAAAAAAAAD4IAAAAAAAAQggAAAAAAABGCAAAAAAAAEoIAAAAAAAATggAAAAAAABSCAAAAAAAAFYIAAAAAAAAWggAAAAAAABeCAAAAAAAAGIIAAAAAAAAZggAAAAAAABqCAAAAAAAAG4IAAAAAAAAcggAAAAAAAB2CAAAAAAAAA==IAIAAAAAAAAFBQUFBQUFBQUFCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ + </AppendedData> +</VTKFile> diff --git a/Tests/Data/MeshLib/A2_0.vtu b/Tests/Data/MeshLib/A2_0.vtu new file mode 100644 index 0000000000000000000000000000000000000000..244bb1e6c1fb34b743d4023ca72b853d70bfc791 --- /dev/null +++ b/Tests/Data/MeshLib/A2_0.vtu @@ -0,0 +1,24 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64"> + <UnstructuredGrid> + <Piece NumberOfPoints="51" NumberOfCells="50" > + <PointData> + <DataArray type="UInt64" Name="bulk_node_ids" format="appended" RangeMin="0" RangeMax="55" offset="0" /> + </PointData> + <CellData> + <DataArray type="UInt64" Name="bulk_element_ids" format="appended" RangeMin="10" RangeMax="206" offset="556" /> + </CellData> + <Points> + <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0" RangeMax="2.5" offset="1100" /> + </Points> + <Cells> + <DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="2744" /> + <DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="3824" /> + <DataArray type="UInt8" Name="types" format="appended" RangeMin="" RangeMax="" offset="4368" /> + </Cells> + </Piece> + </UnstructuredGrid> + <AppendedData encoding="base64"> + _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kAEAAAAAAAACAAAAAAAAAAQAAAAAAAAABgAAAAAAAAAIAAAAAAAAAAoAAAAAAAAADAAAAAAAAAAOAAAAAAAAABAAAAAAAAAAEgAAAAAAAAAUAAAAAAAAABYAAAAAAAAAGAAAAAAAAAAaAAAAAAAAABwAAAAAAAAAHgAAAAAAAAAgAAAAAAAAACIAAAAAAAAAJAAAAAAAAAAmAAAAAAAAACgAAAAAAAAAKgAAAAAAAAAsAAAAAAAAAC4AAAAAAAAAMAAAAAAAAAAyAAAAAAAAADQAAAAAAAAANgAAAAAAAAA4AAAAAAAAADoAAAAAAAAAPAAAAAAAAAA+AAAAAAAAAEAAAAAAAAAAQgAAAAAAAABEAAAAAAAAAEYAAAAAAAAASAAAAAAAAABKAAAAAAAAAEwAAAAAAAAATgAAAAAAAABQAAAAAAAAAFIAAAAAAAAAVAAAAAAAAABWAAAAAAAAAFgAAAAAAAAAWgAAAAAAAABcAAAAAAAAAF4AAAAAAAAAYAAAAAAAAABiAAAAAAAAAGQAAAAAAAAAMgAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw== + </AppendedData> +</VTKFile> diff --git a/Tests/Data/MeshLib/A2_1.vtu b/Tests/Data/MeshLib/A2_1.vtu new file mode 100644 index 0000000000000000000000000000000000000000..b4679bbd731a97997898172a2affe5d72d3dc75c --- /dev/null +++ b/Tests/Data/MeshLib/A2_1.vtu @@ -0,0 +1,27 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64"> + <UnstructuredGrid> + <FieldData> + <DataArray type="UInt64" Name="bulk_element_ids" NumberOfTuples="8" format="appended" RangeMin="206" RangeMax="523" offset="0" /> + </FieldData> + <Piece NumberOfPoints="5" NumberOfCells="4" > + <PointData> + <DataArray type="UInt64" Name="bulk_node_ids" format="appended" RangeMin="1" RangeMax="58" offset="96" /> + </PointData> + <CellData> + <DataArray type="UInt64" Name="number_bulk_elements" format="appended" RangeMin="2" RangeMax="2" offset="160" /> + </CellData> + <Points> + <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="2.5" RangeMax="2.5124689053" offset="216" /> + </Points> + <Cells> + <DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="388" /> + <DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="484" /> + <DataArray type="UInt8" Name="types" format="appended" RangeMin="" RangeMax="" offset="540" /> + </Cells> + </Piece> + </UnstructuredGrid> + <AppendedData encoding="base64"> + _QAAAAAAAAADOAAAAAAAAAAsCAAAAAAAAzwAAAAAAAAABAgAAAAAAANAAAAAAAAAA6wEAAAAAAADRAAAAAAAAAAYCAAAAAAAAKAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAOAAAAAAAAAA5AAAAAAAAADoAAAAAAAAAIAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAA==eAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAANA/AAAAAAAAAAAAAAAAAAAEQDks8lCQsq0/AAAAAAAAAAAAAAAAAAAEQHs7MLmgcL4/AAAAAAAAAAAAAAAAAAAEQJB5HkLFZ8c/AAAAAAAAAAA=QAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAEAAAAAAAAAIAAAAAAAAAACAAAAAAAAAAQAAAAAAAAABgAAAAAAAAAIAAAAAAAAAA==BAAAAAAAAAADAwMD + </AppendedData> +</VTKFile> diff --git a/Tests/Data/MeshLib/A2_2.vtu b/Tests/Data/MeshLib/A2_2.vtu new file mode 100644 index 0000000000000000000000000000000000000000..cf4727b02211e2ea88a45e6fcde088dede2e8b00 --- /dev/null +++ b/Tests/Data/MeshLib/A2_2.vtu @@ -0,0 +1,27 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64"> + <UnstructuredGrid> + <FieldData> + <DataArray type="UInt64" Name="bulk_element_ids" NumberOfTuples="100" format="appended" RangeMin="0" RangeMax="528" offset="0" /> + </FieldData> + <Piece NumberOfPoints="51" NumberOfCells="50" > + <PointData> + <DataArray type="UInt64" Name="bulk_node_ids" format="appended" RangeMin="2" RangeMax="107" offset="1080" /> + </PointData> + <CellData> + <DataArray type="UInt64" Name="number_bulk_elements" format="appended" RangeMin="2" RangeMax="2" offset="1636" /> + </CellData> + <Points> + <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0.25" RangeMax="2.5124689053" offset="2180" /> + </Points> + <Cells> + <DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="3824" /> + <DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="4904" /> + <DataArray type="UInt8" Name="types" format="appended" RangeMin="" RangeMax="" offset="5448" /> + </Cells> + </Piece> + </UnstructuredGrid> + <AppendedData encoding="base64"> + _IAMAAAAAAAAIAAAAAAAAANEAAAAAAAAACQAAAAAAAADNAAAAAAAAAMkAAAAAAAAADQIAAAAAAADFAAAAAAAAAP8BAAAAAAAAwQAAAAAAAADBAQAAAAAAAL0AAAAAAAAA7wEAAAAAAAC5AAAAAAAAAAgCAAAAAAAAtQAAAAAAAADkAQAAAAAAALEAAAAAAAAA1AEAAAAAAACtAAAAAAAAAPwBAAAAAAAAqQAAAAAAAAB7AQAAAAAAAKUAAAAAAAAAkAEAAAAAAAChAAAAAAAAALEBAAAAAAAAnQAAAAAAAADuAQAAAAAAAJkAAAAAAAAAsgEAAAAAAACVAAAAAAAAALUBAAAAAAAAkQAAAAAAAAC0AQAAAAAAAI0AAAAAAAAAuAEAAAAAAACJAAAAAAAAALcBAAAAAAAAhQAAAAAAAADtAQAAAAAAAIEAAAAAAAAAuwEAAAAAAAB9AAAAAAAAALkBAAAAAAAAeQAAAAAAAAD0AQAAAAAAAHUAAAAAAAAAvQEAAAAAAABxAAAAAAAAAPIBAAAAAAAAbQAAAAAAAAAOAgAAAAAAAAAAAAAAAAAAaQAAAAAAAAABAAAAAAAAAGUAAAAAAAAAYQAAAAAAAADTAAAAAAAAAF0AAAAAAAAAyAEAAAAAAABZAAAAAAAAAA8CAAAAAAAAAgAAAAAAAABVAAAAAAAAAAMAAAAAAAAAUQAAAAAAAAAFAAAAAAAAAE0AAAAAAAAABAAAAAAAAABJAAAAAAAAAEUAAAAAAAAAEAIAAAAAAABBAAAAAAAAAMoBAAAAAAAAPQAAAAAAAADNAQAAAAAAADkAAAAAAAAAzgEAAAAAAAA1AAAAAAAAAM8BAAAAAAAAMQAAAAAAAAADAgAAAAAAAC0AAAAAAAAA0QEAAAAAAAApAAAAAAAAAN0BAAAAAAAAJQAAAAAAAADeAQAAAAAAACEAAAAAAAAA6gEAAAAAAAAdAAAAAAAAAOkBAAAAAAAAGQAAAAAAAADfAQAAAAAAAAcAAAAAAAAAFQAAAAAAAAAGAAAAAAAAABEAAAAAAAAADQAAAAAAAADUAAAAAAAAAA==mAEAAAAAAAACAAAAAAAAAAMAAAAAAAAAOwAAAAAAAAA8AAAAAAAAAD0AAAAAAAAAPgAAAAAAAAA/AAAAAAAAAEAAAAAAAAAAQQAAAAAAAABCAAAAAAAAAEMAAAAAAAAARAAAAAAAAABFAAAAAAAAAEYAAAAAAAAARwAAAAAAAABIAAAAAAAAAEkAAAAAAAAASgAAAAAAAABLAAAAAAAAAEwAAAAAAAAATQAAAAAAAABOAAAAAAAAAE8AAAAAAAAAUAAAAAAAAABRAAAAAAAAAFIAAAAAAAAAUwAAAAAAAABUAAAAAAAAAFUAAAAAAAAAVgAAAAAAAABXAAAAAAAAAFgAAAAAAAAAWQAAAAAAAABaAAAAAAAAAFsAAAAAAAAAXAAAAAAAAABdAAAAAAAAAF4AAAAAAAAAXwAAAAAAAABgAAAAAAAAAGEAAAAAAAAAYgAAAAAAAABjAAAAAAAAAGQAAAAAAAAAZQAAAAAAAABmAAAAAAAAAGcAAAAAAAAAaAAAAAAAAABpAAAAAAAAAGoAAAAAAAAAawAAAAAAAAA=kAEAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAyAQAAAAAAAAAAAAAAAAEQAAAAAAAANA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAANA/AAAAAAAAAACamZmZmZkDQAAAAAAAANA/AAAAAAAAAAAzMzMzMzMDQAAAAAAAANA/AAAAAAAAAADNzMzMzMwCQAAAAAAAANA/AAAAAAAAAABmZmZmZmYCQAAAAAAAANA/AAAAAAAAAAAAAAAAAAACQAAAAAAAANA/AAAAAAAAAACamZmZmZkBQAAAAAAAANA/AAAAAAAAAAAzMzMzMzMBQAAAAAAAANA/AAAAAAAAAADNzMzMzMwAQAAAAAAAANA/AAAAAAAAAABmZmZmZmYAQAAAAAAAANA/AAAAAAAAAAAAAAAAAAAAQAAAAAAAANA/AAAAAAAAAAAzMzMzMzP/PwAAAAAAANA/AAAAAAAAAABmZmZmZmb+PwAAAAAAANA/AAAAAAAAAACamZmZmZn9PwAAAAAAANA/AAAAAAAAAADNzMzMzMz8PwAAAAAAANA/AAAAAAAAAAAAAAAAAAD8PwAAAAAAANA/AAAAAAAAAAAzMzMzMzP7PwAAAAAAANA/AAAAAAAAAABmZmZmZmb6PwAAAAAAANA/AAAAAAAAAACamZmZmZn5PwAAAAAAANA/AAAAAAAAAADNzMzM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kAEAAAAAAAACAAAAAAAAAAQAAAAAAAAABgAAAAAAAAAIAAAAAAAAAAoAAAAAAAAADAAAAAAAAAAOAAAAAAAAABAAAAAAAAAAEgAAAAAAAAAUAAAAAAAAABYAAAAAAAAAGAAAAAAAAAAaAAAAAAAAABwAAAAAAAAAHgAAAAAAAAAgAAAAAAAAACIAAAAAAAAAJAAAAAAAAAAmAAAAAAAAACgAAAAAAAAAKgAAAAAAAAAsAAAAAAAAAC4AAAAAAAAAMAAAAAAAAAAyAAAAAAAAADQAAAAAAAAANgAAAAAAAAA4AAAAAAAAADoAAAAAAAAAPAAAAAAAAAA+AAAAAAAAAEAAAAAAAAAAQgAAAAAAAABEAAAAAAAAAEYAAAAAAAAASAAAAAAAAABKAAAAAAAAAEwAAAAAAAAATgAAAAAAAABQAAAAAAAAAFIAAAAAAAAAVAAAAAAAAABWAAAAAAAAAFgAAAAAAAAAWgAAAAAAAABcAAAAAAAAAF4AAAAAAAAAYAAAAAAAAABiAAAAAAAAAGQAAAAAAAAAMgAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw== + </AppendedData> +</VTKFile> diff --git a/Tests/Data/MeshLib/A2_3.vtu b/Tests/Data/MeshLib/A2_3.vtu new file mode 100644 index 0000000000000000000000000000000000000000..292a0d210ff27864715894efc7286243272c2c45 --- /dev/null +++ b/Tests/Data/MeshLib/A2_3.vtu @@ -0,0 +1,24 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64"> + <UnstructuredGrid> + <Piece NumberOfPoints="5" NumberOfCells="4" > + <PointData> + <DataArray type="UInt64" Name="bulk_node_ids" format="appended" RangeMin="0" RangeMax="110" offset="0" /> + </PointData> + <CellData> + <DataArray type="UInt64" Name="bulk_element_ids" format="appended" RangeMin="10" RangeMax="13" offset="64" /> + </CellData> + <Points> + <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0" RangeMax="0.25" offset="120" /> + </Points> + <Cells> + <DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="292" /> + <DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="388" /> + <DataArray type="UInt8" Name="types" format="appended" RangeMin="" RangeMax="" offset="444" /> + </Cells> + </Piece> + </UnstructuredGrid> + <AppendedData encoding="base64"> + _KAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAbAAAAAAAAABtAAAAAAAAAG4AAAAAAAAAIAAAAAAAAAANAAAAAAAAAAwAAAAAAAAACwAAAAAAAAAKAAAAAAAAAA==eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANA/AAAAAAAAAAAAAAAAAAAAAHsnQkLFZ8c/AAAAAAAAAAAAAAAAAAAAADGKXbmgcL4/AAAAAAAAAAAAAAAAAAAAAJxSHVGQsq0/AAAAAAAAAAA=QAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAACAAAAAAAAAAQAAAAAAAAABgAAAAAAAAAIAAAAAAAAAA==BAAAAAAAAAADAwMD + </AppendedData> +</VTKFile> diff --git a/Tests/Data/MeshLib/A2_4.vtu b/Tests/Data/MeshLib/A2_4.vtu new file mode 100644 index 0000000000000000000000000000000000000000..bae43967b24be126ad2fff5317920ae6c88e079b --- /dev/null +++ b/Tests/Data/MeshLib/A2_4.vtu @@ -0,0 +1,24 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64"> + <UnstructuredGrid> + <Piece NumberOfPoints="15" NumberOfCells="14" > + <PointData> + <DataArray type="UInt64" Name="bulk_node_ids" format="appended" RangeMin="3" RangeMax="123" offset="0" /> + </PointData> + <CellData> + <DataArray type="UInt64" Name="bulk_element_ids" format="appended" RangeMin="221" RangeMax="529" offset="172" /> + </CellData> + <Points> + <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0.25" RangeMax="10" offset="332" /> + </Points> + <Cells> + <DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="824" /> + <DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="1136" /> + <DataArray type="UInt8" Name="types" format="appended" RangeMin="" RangeMax="" offset="1296" /> + </Cells> + </Piece> + </UnstructuredGrid> + <AppendedData encoding="base64"> + _eAAAAAAAAAADAAAAAAAAAAQAAAAAAAAAbwAAAAAAAABwAAAAAAAAAHEAAAAAAAAAcgAAAAAAAABzAAAAAAAAAHQAAAAAAAAAdQAAAAAAAAB2AAAAAAAAAHcAAAAAAAAAeAAAAAAAAAB5AAAAAAAAAHoAAAAAAAAAewAAAAAAAAA=cAAAAAAAAADdAAAAAAAAAOUAAAAAAAAAEQIAAAAAAAD1AAAAAAAAAPcAAAAAAAAA+gAAAAAAAAD/AAAAAAAAAP0AAAAAAAAAAAEAAAAAAABGAQAAAAAAAAUBAAAAAAAA+wAAAAAAAAAYAQAAAAAAAAwCAAAAAAAAaAEAAAAAAAAAAAAAAAAAAAAAAAAAANA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAACRAAAAAAAAAAAAAAAAAAAAAAJyE7XqQito/AAAAAAAAAAAAAAAAAAAAAABQrbRrmOM/AAAAAAAAAAAAAAAAAAAAAC6AnA1jL+s/AAAAAAAAAAAAAAAAAAAAAJKRNyR5JfI/AAAAAAAAAAAAAAAAAAAAAOk4ea5onPc/AAAAAAAAAAAAAAAAAAAAADzBdrohK/4/AAAAAAAAAAAAAAAAAAAAAOaIwLDMBANAAAAAAAAAAAAAAAAAAAAAAJnIEOF6vQdAAAAAAAAAAAAAAAAAAAAAAMDggILlZw1AAAAAAAAAAAAAAAAAAAAAAIIO7bsyGhJAAAAAAAAAAAAAAAAAAAAAAPYv2IF/LhZAAAAAAAAAAAAAAAAAAAAAACgBOG+oExtAAAAAAAAAAAAAAAAAAAAAAHpPvZK5eSBAAAAAAAAAAAA=4AAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAUAAAAAAAAABQAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABwAAAAAAAAAHAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAJAAAAAAAAAAkAAAAAAAAACgAAAAAAAAAKAAAAAAAAAAsAAAAAAAAACwAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADQAAAAAAAAANAAAAAAAAAA4AAAAAAAAADgAAAAAAAAABAAAAAAAAAA==cAAAAAAAAAACAAAAAAAAAAQAAAAAAAAABgAAAAAAAAAIAAAAAAAAAAoAAAAAAAAADAAAAAAAAAAOAAAAAAAAABAAAAAAAAAAEgAAAAAAAAAUAAAAAAAAABYAAAAAAAAAGAAAAAAAAAAaAAAAAAAAABwAAAAAAAAADgAAAAAAAAADAwMDAwMDAwMDAwMDAw== + </AppendedData> +</VTKFile> diff --git a/Tests/Data/MeshLib/A2_5.vtu b/Tests/Data/MeshLib/A2_5.vtu new file mode 100644 index 0000000000000000000000000000000000000000..17eb6b576483c7e62e990dc7914d966686311261 --- /dev/null +++ b/Tests/Data/MeshLib/A2_5.vtu @@ -0,0 +1,24 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64"> + <UnstructuredGrid> + <Piece NumberOfPoints="11" NumberOfCells="10" > + <PointData> + <DataArray type="UInt64" Name="bulk_node_ids" format="appended" RangeMin="4" RangeMax="132" offset="0" /> + </PointData> + <CellData> + <DataArray type="UInt64" Name="bulk_element_ids" format="appended" RangeMin="336" RangeMax="524" offset="128" /> + </CellData> + <Points> + <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="10" RangeMax="14.142135624" offset="248" /> + </Points> + <Cells> + <DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="612" /> + <DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="836" /> + <DataArray type="UInt8" Name="types" format="appended" RangeMin="" RangeMax="" offset="956" /> + </Cells> + </Piece> + </UnstructuredGrid> + <AppendedData encoding="base64"> + _WAAAAAAAAAAEAAAAAAAAAAUAAAAAAAAAfAAAAAAAAAB9AAAAAAAAAH4AAAAAAAAAfwAAAAAAAACAAAAAAAAAAIEAAAAAAAAAggAAAAAAAACDAAAAAAAAAIQAAAAAAAAAUAAAAAAAAAAMAgAAAAAAANkBAAAAAAAAkgEAAAAAAABQAQAAAAAAAFEBAAAAAAAAVwEAAAAAAABaAQAAAAAAAF4BAAAAAAAAYAEAAAAAAABoAQAAAAAAAA==CAEAAAAAAAAAAAAAAAAAAAAAAAAAACRAAAAAAAAAAAAAAAAAAAAkQAAAAAAAACRAAAAAAAAAAAAAAAAAAADwPwAAAAAAACRAAAAAAAAAAAAAAAAAAAAAQAAAAAAAACRAAAAAAAAAAAAAAAAAAAAIQAAAAAAAACRAAAAAAAAAAAAAAAAAAAAQQAAAAAAAACRAAAAAAAAAAAAAAAAAAAAUQAAAAAAAACRAAAAAAAAAAAAAAAAAAAAYQAAAAAAAACRAAAAAAAAAAAAAAAAAAAAcQAAAAAAAACRAAAAAAAAAAAAAAAAAAAAgQAAAAAAAACRAAAAAAAAAAAAAAAAAAAAiQAAAAAAAACRAAAAAAAAAAAA=oAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAUAAAAAAAAABQAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABwAAAAAAAAAHAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAJAAAAAAAAAAkAAAAAAAAACgAAAAAAAAAKAAAAAAAAAAEAAAAAAAAAUAAAAAAAAAACAAAAAAAAAAQAAAAAAAAABgAAAAAAAAAIAAAAAAAAAAoAAAAAAAAADAAAAAAAAAAOAAAAAAAAABAAAAAAAAAAEgAAAAAAAAAUAAAAAAAAAA==CgAAAAAAAAADAwMDAwMDAwMD + </AppendedData> +</VTKFile> diff --git a/Tests/Data/MeshLib/A2_6.vtu b/Tests/Data/MeshLib/A2_6.vtu new file mode 100644 index 0000000000000000000000000000000000000000..84fba8d53151d5d1b4750e938cb9785ea18f172b --- /dev/null +++ b/Tests/Data/MeshLib/A2_6.vtu @@ -0,0 +1,24 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64"> + <UnstructuredGrid> + <Piece NumberOfPoints="11" NumberOfCells="10" > + <PointData> + <DataArray type="UInt64" Name="bulk_node_ids" format="appended" RangeMin="5" RangeMax="141" offset="0" /> + </PointData> + <CellData> + <DataArray type="UInt64" Name="bulk_element_ids" format="appended" RangeMin="272" RangeMax="360" offset="128" /> + </CellData> + <Points> + <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="10" RangeMax="14.142135624" offset="248" /> + </Points> + <Cells> + <DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="612" /> + <DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="836" /> + <DataArray type="UInt8" Name="types" format="appended" RangeMin="" RangeMax="" offset="956" /> + </Cells> + </Piece> + </UnstructuredGrid> + <AppendedData encoding="base64"> + _WAAAAAAAAAAFAAAAAAAAAAYAAAAAAAAAhQAAAAAAAACGAAAAAAAAAIcAAAAAAAAAiAAAAAAAAACJAAAAAAAAAIoAAAAAAAAAiwAAAAAAAACMAAAAAAAAAI0AAAAAAAAAUAAAAAAAAABoAQAAAAAAAGIBAAAAAAAAYwEAAAAAAABVAQAAAAAAAEkBAAAAAAAAQQEAAAAAAAA7AQAAAAAAADcBAAAAAAAAQAEAAAAAAAAQAQAAAAAAAA==CAEAAAAAAAAAAAAAAAAkQAAAAAAAACRAAAAAAAAAAAAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkQAAAAAAAACJAAAAAAAAAAAAAAAAAAAAkQAAAAAAAACBAAAAAAAAAAAAAAAAAAAAkQAAAAAAAABxAAAAAAAAAAAAAAAAAAAAkQAAAAAAAABhAAAAAAAAAAAAAAAAAAAAkQAAAAAAAABRAAAAAAAAAAAAAAAAAAAAkQAAAAAAAABBAAAAAAAAAAAAAAAAAAAAkQAAAAAAAAAhAAAAAAAAAAAAAAAAAAAAkQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkQAAAAAAAAPA/AAAAAAAAAAA=oAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAUAAAAAAAAABQAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABwAAAAAAAAAHAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAJAAAAAAAAAAkAAAAAAAAACgAAAAAAAAAKAAAAAAAAAAEAAAAAAAAAUAAAAAAAAAACAAAAAAAAAAQAAAAAAAAABgAAAAAAAAAIAAAAAAAAAAoAAAAAAAAADAAAAAAAAAAOAAAAAAAAABAAAAAAAAAAEgAAAAAAAAAUAAAAAAAAAA==CgAAAAAAAAADAwMDAwMDAwMD + </AppendedData> +</VTKFile> diff --git a/Tests/Data/MeshLib/A2_7.vtu b/Tests/Data/MeshLib/A2_7.vtu new file mode 100644 index 0000000000000000000000000000000000000000..441d2b6bf4f9dcc798ac1eb80f13276f7e3561ab --- /dev/null +++ b/Tests/Data/MeshLib/A2_7.vtu @@ -0,0 +1,24 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64"> + <UnstructuredGrid> + <Piece NumberOfPoints="13" NumberOfCells="12" > + <PointData> + <DataArray type="UInt64" Name="bulk_node_ids" format="appended" RangeMin="1" RangeMax="152" offset="0" /> + </PointData> + <CellData> + <DataArray type="UInt64" Name="bulk_element_ids" format="appended" RangeMin="231" RangeMax="523" offset="152" /> + </CellData> + <Points> + <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="2.5" RangeMax="10" offset="292" /> + </Points> + <Cells> + <DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="720" /> + <DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="988" /> + <DataArray type="UInt8" Name="types" format="appended" RangeMin="" RangeMax="" offset="1128" /> + </Cells> + </Piece> + </UnstructuredGrid> + <AppendedData encoding="base64"> + _aAAAAAAAAAABAAAAAAAAAAYAAAAAAAAAjgAAAAAAAACPAAAAAAAAAJAAAAAAAAAAkQAAAAAAAACSAAAAAAAAAJMAAAAAAAAAlAAAAAAAAACVAAAAAAAAAJYAAAAAAAAAlwAAAAAAAACYAAAAAAAAAA==YAAAAAAAAAAQAQAAAAAAAPIAAAAAAAAA+QAAAAAAAABzAQAAAAAAAAwBAAAAAAAAiAEAAAAAAABYAQAAAAAAADEBAAAAAAAAsAEAAAAAAADuAAAAAAAAAOcAAAAAAAAACwIAAAAAAAA=OAEAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAAABipsPwJi8hQAAAAAAAAAAAAAAAAAAAAAAgOgod5KwdQAAAAAAAAAAAAAAAAAAAAAAWewaktsMZQAAAAAAAAAAAAAAAAAAAAAABaOIUZoEWQAAAAAAAAAAAAAAAAAAAAACilBLzIsoTQAAAAAAAAAAAAAAAAAAAAADGRhtXwIYRQAAAAAAAAAAAAAAAAAAAAAAunCZU3EcPQAAAAAAAAAAAAAAAAAAAAAD140yzKCMMQAAAAAAAAAAAAAAAAAAAAAAb0GADk4QJQAAAAAAAAAAAAAAAAAAAAADLHnzwwFUHQAAAAAAAAAAAAAAAAAAAAACbMyThEYQFQAAAAAAAAAAAAAAAAAAAAAA=wAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAUAAAAAAAAABQAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABwAAAAAAAAAHAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAJAAAAAAAAAAkAAAAAAAAACgAAAAAAAAAKAAAAAAAAAAsAAAAAAAAACwAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAA=YAAAAAAAAAACAAAAAAAAAAQAAAAAAAAABgAAAAAAAAAIAAAAAAAAAAoAAAAAAAAADAAAAAAAAAAOAAAAAAAAABAAAAAAAAAAEgAAAAAAAAAUAAAAAAAAABYAAAAAAAAAGAAAAAAAAAA=DAAAAAAAAAADAwMDAwMDAwMDAwM= + </AppendedData> +</VTKFile> diff --git a/Tests/MeshLib/TestMeshNodeSearch.cpp b/Tests/MeshLib/TestMeshNodeSearch.cpp index 550ff6cf56aa4a6f195fa34c0a12a5cec354c857..16b571036ad30ca5d6ddfed67f1a66e5893fc527 100644 --- a/Tests/MeshLib/TestMeshNodeSearch.cpp +++ b/Tests/MeshLib/TestMeshNodeSearch.cpp @@ -79,7 +79,9 @@ TEST_F(MeshLibMeshNodeSearchInSimpleQuadMesh, PointSearchEpsHalfEdge) EXPECT_EQ(0u, mesh_node_searcher.getMeshNodeIDs(p2)[0]); GeoLib::Point p3(dx_half, 0.0, 0.0); - EXPECT_EQ(0u, mesh_node_searcher.getMeshNodeIDs(p3).size()); + EXPECT_EQ(2u, mesh_node_searcher.getMeshNodeIDs(p3).size()); + EXPECT_EQ(0u, mesh_node_searcher.getMeshNodeIDs(p3)[0]); + EXPECT_EQ(1u, mesh_node_searcher.getMeshNodeIDs(p3)[1]); GeoLib::Point p4(dx_half*1.01, 0.0, 0.0); ASSERT_EQ(1u, mesh_node_searcher.getMeshNodeIDs(p4).size()); diff --git a/web/content/docs/tools/fileio/GMSH2OGS/extract_boundary.png b/web/content/docs/tools/fileio/GMSH2OGS/extract_boundary.png new file mode 100644 index 0000000000000000000000000000000000000000..70ca762003026691e1c64ec52ca4c7e3c6c5be84 Binary files /dev/null and b/web/content/docs/tools/fileio/GMSH2OGS/extract_boundary.png differ diff --git a/web/content/docs/tools/fileio/GMSH2OGS/index.md b/web/content/docs/tools/fileio/GMSH2OGS/index.md new file mode 100644 index 0000000000000000000000000000000000000000..041d00a7f8b9d09d74b75f0c92db526187c8ad11 --- /dev/null +++ b/web/content/docs/tools/fileio/GMSH2OGS/index.md @@ -0,0 +1,67 @@ ++++ +date = "2021-03-06T00:00:00+01:00" +title = "GMSH2OGS" +author = "Dmitri Naumov" + +[menu] + [menu.tools] + parent = "Data Import/Export" ++++ + +## Introduction + +Meshes generated with Gmsh can be converted to OGS meshes, in particular to VTU +file format. +Currently, the only supported Gmsh format is 2.1, which can be specified for +example with the command line flag `-format msh2` when executing `gmsh`. + +## Usage + +Gmsh writes all elements (unless specified otherwise) including the lower +dimensional elements, usually model boundaries. +Whereas for OGS we separate the so called "bulk" mesh and the boundary (or +subdomain) meshes. +`GMSH2OGS` options `-e` (`--exclude-lines`) and `-b` (`--boundaries`) control +whether the line elements are removed or written in separate files. + +## Example + +A 2D-mesh with two physical groups (MaterialIDs) was generated with Gmsh. +It also includes the outer boundary and inner boundary line elements. + +### Input files and results + +All files are stored in +[Tests/Data/MeshLib/](https://gitlab.opengeosys.org/ogs/ogs/-/blob/master/Tests/Data/MeshLib): + - the Gmsh generated mesh +[A2-gmsh.msh](https://gitlab.opengeosys.org/ogs/ogs/-/blob/master/Tests/Data/MeshLib/A2-gmsh.msh), + - and the corresponding result files +[A2.vtu](https://gitlab.opengeosys.org/ogs/ogs/-/blob/master/Tests/Data/MeshLib/A2.vtu), +and the boundary meshes +[A2_0.vtu](https://gitlab.opengeosys.org/ogs/ogs/-/blob/master/Tests/Data/MeshLib/A2_0.vtu) to +[A2_7.vtu](https://gitlab.opengeosys.org/ogs/ogs/-/blob/master/Tests/Data/MeshLib/A2_7.vtu). + +### Running GMSH2OGS + +`GMSH2OGS` creates different meshes from the same input depending on the `-e` +and `-b` flags; the results are shown (z-translated) in the figure below. + +```bash +GMSH2OGS -i A2-gmsh.msh -o A2.vtu +``` + + - Conversion without any additional flags yields a single VTU file with + outer and inner boundaries (line elements) included, shown in the very + bottom. + - Adding only a `-e` flag results in a single VTU file, now without the line + elements. + - Adding only a `-b` flag gives a single VTU file as in the first case *and* + additional eight files, each containing a line-element mesh corresponding to + the physical groups; + these are the white lines in the figure, shown again z-translated. + - Finally specifying both flags (`-e` and `-b`) produces a single VTU file + without the line elements and additional eight boundary (subdomain) files. + + +