bug fixed

This commit is contained in:
张壹 2025-01-20 16:25:56 +08:00
parent 8949847d5a
commit d4a5ca2db2

View File

@ -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_node_data, nodedata_names, NodeData);
meshio_.read_data(all_elem_data, elemdata_names, ElemData); meshio_.read_data(all_elem_data, elemdata_names, ElemData);
array<double> tmp_data;
meshdata *data_ptr = nullptr;
for (size_t i = 0; i < nodedata_names.size(); i++) for (size_t i = 0; i < nodedata_names.size(); i++)
{ {
add_data(NodeData, Scalar, nodedata_names[i], 0.0); 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]); data_ptr = get_data_ptr(nodedata_names[i]);
if (data_ptr != nullptr) if (data_ptr != nullptr)
{ {
for (size_t n = 0; n < node_num_; n++) 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++) 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]); data_ptr = get_data_ptr(elemdata_names[i]);
if (data_ptr != nullptr) if (data_ptr != nullptr)
{ {
for (size_t n = 0; n < ele_num_; n++) 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); meshio_.read_data(tmp_data, datname);
if (type == NodeData) add_data(NodeData, datname, tmp_data); 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."); else throw std::runtime_error("[gctl::base_mesh] Invalid mesh data type.");
return; return;
} }