35 auto const data_array_it = data_array_mapping.find(name);
36 if (data_array_it != data_array_mapping.end())
38 INFO(
"found data array '{}' with address: {}", name,
39 fmt::ptr(&(data_array_it->second)));
40 return data_array_it->second;
43 auto& mesh_properties = _mesh.getProperties();
46 auto*
property = mesh_properties.getPropertyVector<T>(name);
47 if (property ==
nullptr)
49 OGS_FATAL(
"Couldn't access data array '{}'.", name);
53 auto capsule = pybind11::capsule(property, [](
void* ) {});
55 auto const n_components =
property->getNumberOfGlobalComponents();
56 if (n_components == 1)
58 auto const& [it, success] = data_array_mapping.insert(
61 pybind11::buffer_info(
64 pybind11::format_descriptor<T>::format(),
74 OGS_FATAL(
"Could not insert data array '{}' into internal map.",
77 INFO(
"insert data array '{}' with address: {}", name,
78 fmt::ptr(&(it->second)));
84 auto const& [it, success] = data_array_mapping.insert(
87 pybind11::buffer_info(
90 pybind11::format_descriptor<T>::format(),
94 std::vector<pybind11::ssize_t>{
95 static_cast<pybind11::ssize_t>(property->size() /
97 static_cast<pybind11::ssize_t>(
99 std::vector<pybind11::ssize_t>{
100 static_cast<pybind11::ssize_t>(sizeof(T) *
102 static_cast<pybind11::ssize_t>(sizeof(T))}
108 OGS_FATAL(
"Could not insert data array '{}' into internal map.",
111 INFO(
"insert data array '{}' with address: {}", name,
112 fmt::ptr(&(it->second)));