37 std::vector<std::unique_ptr<MeshLib::IntegrationPointWriter>>
const&
38 _integration_point_writer,
40 LocalAssemblersVector& local_assemblers)
42 auto const& opt_ip_meta_data_all =
45 for (
auto const& ip_writer : _integration_point_writer)
48 auto const& name = ip_writer->name();
53 auto const& mesh_property =
54 *mesh_properties.template getPropertyVector<double>(name);
57 if (mesh_property.getMeshItemType() !=
63 auto const ip_meta_data =
64 getIntegrationPointMetaDataSingleField(opt_ip_meta_data_all, name);
67 if (ip_meta_data.n_components !=
68 mesh_property.getNumberOfGlobalComponents())
71 "Different number of components in meta data ({:d}) than in "
72 "the integration point field data for '{:s}': {:d}.",
73 ip_meta_data.n_components, name,
74 mesh_property.getNumberOfGlobalComponents());
77 INFO(
"Setting initial integration point data for '{}'", name);
83 std::size_t position = 0;
84 for (
auto& local_asm : local_assemblers)
86 std::size_t
const integration_points_read =
87 local_asm->setIPDataInitialConditions(
88 name_transformed, &mesh_property[position],
89 ip_meta_data.integration_order);
94 position += integration_points_read * ip_meta_data.n_components;