30 std::vector<std::unique_ptr<MeshLib::IntegrationPointWriter>>
const&
31 _integration_point_writer,
33 LocalAssemblersVector& local_assemblers)
35 auto const& opt_ip_meta_data_all =
38 for (
auto const& ip_writer : _integration_point_writer)
41 auto const& name = ip_writer->name();
46 auto const& mesh_property =
47 *mesh_properties.template getPropertyVector<double>(name);
50 if (mesh_property.getMeshItemType() !=
56 auto const ip_meta_data =
57 getIntegrationPointMetaDataSingleField(opt_ip_meta_data_all, name);
60 if (ip_meta_data.n_components !=
61 mesh_property.getNumberOfGlobalComponents())
64 "Different number of components in meta data ({:d}) than in "
65 "the integration point field data for '{:s}': {:d}.",
66 ip_meta_data.n_components, name,
67 mesh_property.getNumberOfGlobalComponents());
70 INFO(
"Setting initial integration point data for '{}'", name);
76 std::size_t position = 0;
77 for (
auto& local_asm : local_assemblers)
79 std::size_t
const integration_points_read =
80 local_asm->setIPDataInitialConditions(
81 name_transformed, &mesh_property[position],
82 ip_meta_data.integration_order);
87 position += integration_points_read * ip_meta_data.n_components;