From d4a5ca2db20b6d4ae8ff6866a5ae681dbde6942c Mon Sep 17 00:00:00 2001 From: Yi Zhang Date: Mon, 20 Jan 2025 16:25:56 +0800 Subject: [PATCH] bug fixed --- lib/mesh/mesh.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/mesh/mesh.cpp b/lib/mesh/mesh.cpp index fc48f88..ccfe9ad 100644 --- a/lib/mesh/mesh.cpp +++ b/lib/mesh/mesh.cpp @@ -485,30 +485,37 @@ void gctl::base_mesh::load_gmsh_withdata(std::string filename, index_packed_e pa meshio_.read_data(all_node_data, nodedata_names, NodeData); meshio_.read_data(all_elem_data, elemdata_names, ElemData); - array tmp_data; - meshdata *data_ptr = nullptr; for (size_t i = 0; i < nodedata_names.size(); i++) { add_data(NodeData, Scalar, nodedata_names[i], 0.0); + } + + for (size_t i = 0; i < elemdata_names.size(); i++) + { + add_data(ElemData, Scalar, elemdata_names[i], 0.0); + } + + meshdata *data_ptr = nullptr; + for (size_t i = 0; i < nodedata_names.size(); i++) + { data_ptr = get_data_ptr(nodedata_names[i]); if (data_ptr != nullptr) { for (size_t n = 0; n < node_num_; n++) { - data_ptr->datval_[i] = all_node_data[i][n]; + data_ptr->datval_[n] = all_node_data[i][n]; } } } for (size_t i = 0; i < elemdata_names.size(); i++) { - add_data(ElemData, Scalar, elemdata_names[i], 0.0); data_ptr = get_data_ptr(elemdata_names[i]); if (data_ptr != nullptr) { for (size_t n = 0; n < ele_num_; n++) { - data_ptr->datval_[i] = all_elem_data[i][n]; + data_ptr->datval_[n] = all_elem_data[i][n]; } } } @@ -524,7 +531,7 @@ void gctl::base_mesh::load_gmsh_withdata(std::string filename, std::string datna meshio_.read_data(tmp_data, datname); if (type == NodeData) add_data(NodeData, datname, tmp_data); - else if (type == ElemData) add_data(NodeData, datname, tmp_data); + else if (type == ElemData) add_data(ElemData, datname, tmp_data); else throw std::runtime_error("[gctl::base_mesh] Invalid mesh data type."); return; }