13#include <range/v3/view/join.hpp>
24 auto const& ip_values = writer.
values();
34 ranges::copy(ip_values | ranges::views::join,
35 std::back_inserter(field_data));
47 std::string
const json_string = ip_meta_data.
toJsonString();
49 mesh,
"IntegrationPointMetaData",
52 std::copy(json_string.begin(), json_string.end(),
53 std::back_inserter(dictionary));
60 std::vector<std::unique_ptr<IntegrationPointWriter>>
const&
61 integration_point_writer)
64 integration_point_writer |
65 ranges::views::transform(
66 [&](
auto const& ip_writer)
69 if (!meta_data.empty())
82 auto const& mesh_property_ip_meta_data =
83 *properties.template getPropertyVector<char>(
84 "IntegrationPointMetaData");
86 if (mesh_property_ip_meta_data.getMeshItemType() !=
89 OGS_FATAL(
"IntegrationPointMetaData array must be field data.");
95 mesh_property_ip_meta_data.data(), mesh_property_ip_meta_data.size()}};
static MeshLib::IntegrationPointMetaDataSingleField addIntegrationPointData(MeshLib::Mesh &mesh, MeshLib::IntegrationPointWriter const &writer)
static void addIntegrationPointMetaDataSingleField(MeshLib::Mesh &mesh, MeshLib::IntegrationPointMetaData const &ip_meta_data)
Definition of the Mesh class.
std::size_t getNumberOfElements() const
Get the number of elements.
Property manager on mesh items. Class Properties manages scalar, vector or matrix properties....
bool existsPropertyVector(std::string_view name) const
PropertyVector< T > * getOrCreateMeshProperty(Mesh &mesh, std::string const &property_name, MeshItemType const item_type, int const number_of_components)
std::optional< IntegrationPointMetaData > getIntegrationPointMetaData(MeshLib::Properties const &properties)
void addIntegrationPointDataToMesh(MeshLib::Mesh &mesh, std::vector< std::unique_ptr< IntegrationPointWriter > > const &integration_point_writer)
std::vector< std::vector< double > > values() const
int integrationOrder() const
int numberOfComponents() const