6#include <range/v3/view/join.hpp>
17 auto const& ip_values = writer.
values();
26 field_data.assign(ip_values | ranges::views::join);
39 mesh,
"IntegrationPointMetaData",
48 std::vector<std::unique_ptr<IntegrationPointWriter>>
const&
49 integration_point_writer)
52 integration_point_writer |
53 ranges::views::transform(
54 [&](
auto const& ip_writer)
57 if (!meta_data.empty())
70 auto const& mesh_property_ip_meta_data =
71 *properties.template getPropertyVector<char>(
72 "IntegrationPointMetaData");
74 if (mesh_property_ip_meta_data.getMeshItemType() !=
77 OGS_FATAL(
"IntegrationPointMetaData array must be field data.");
83 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