6#include <range/v3/view/join.hpp>
17 auto const& ip_values = writer.
values();
27 ranges::copy(ip_values | ranges::views::join,
28 std::back_inserter(field_data));
40 std::string
const json_string = ip_meta_data.
toJsonString();
42 mesh,
"IntegrationPointMetaData",
45 std::copy(json_string.begin(), json_string.end(),
46 std::back_inserter(dictionary));
53 std::vector<std::unique_ptr<IntegrationPointWriter>>
const&
54 integration_point_writer)
57 integration_point_writer |
58 ranges::views::transform(
59 [&](
auto const& ip_writer)
62 if (!meta_data.empty())
75 auto const& mesh_property_ip_meta_data =
76 *properties.template getPropertyVector<char>(
77 "IntegrationPointMetaData");
79 if (mesh_property_ip_meta_data.getMeshItemType() !=
82 OGS_FATAL(
"IntegrationPointMetaData array must be field data.");
88 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)
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