33 template <
typename LocalAssemblerInterface,
typename... Args>
35 std::string
const&
name,
36 int const n_components,
37 int const integration_order,
38 std::vector<std::unique_ptr<LocalAssemblerInterface>>
const&
40 std::vector<double> (LocalAssemblerInterface::*getIpData)(Args...)
49 ... f_args = std::forward<Args>(args)]
53 std::vector<std::vector<double>> result;
54 result.reserve(local_assemblers.size());
56 std::transform(begin(local_assemblers), end(local_assemblers),
57 std::back_inserter(result),
59 {
return (*la.*getIpData)(f_args...); });
70 template <
typename LocalAssemblerInterface,
typename Accessor>
72 std::string
const&
name,
73 int const n_components,
74 int const integration_order,
75 std::vector<std::unique_ptr<LocalAssemblerInterface>>
const&
86 std::vector<std::vector<double>> result;
87 result.reserve(local_assemblers.size());
89 std::transform(begin(local_assemblers), end(local_assemblers),
90 std::back_inserter(result),
91 [&accessor](
auto const& la)
92 {
return accessor(*la); });
107 std::function<std::vector<std::vector<double>>()>
_callback;
119 std::vector<std::unique_ptr<IntegrationPointWriter>>
const&
120 integration_point_writer);
Property manager on mesh items. Class Properties manages scalar, vector or matrix properties....
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 const _integration_order
int integrationOrder() const
std::function< std::vector< std::vector< double > >()> _callback
int numberOfComponents() const
IntegrationPointWriter(std::string const &name, int const n_components, int const integration_order, std::vector< std::unique_ptr< LocalAssemblerInterface > > const &local_assemblers, Accessor accessor)
IntegrationPointWriter(std::string const &name, int const n_components, int const integration_order, std::vector< std::unique_ptr< LocalAssemblerInterface > > const &local_assemblers, std::vector< double >(LocalAssemblerInterface::*getIpData)(Args...) const, Args &&... args)