27 template <
typename LocalAssemblerInterface,
typename... Args>
29 std::string
const&
name,
30 int const n_components,
31 int const integration_order,
32 std::vector<std::unique_ptr<LocalAssemblerInterface>>
const&
34 std::vector<double> (LocalAssemblerInterface::*getIpData)(Args...)
43 ... f_args = std::forward<Args>(args)]
47 std::vector<std::vector<double>> result;
48 result.reserve(local_assemblers.size());
50 std::transform(begin(local_assemblers), end(local_assemblers),
51 std::back_inserter(result),
53 {
return (*la.*getIpData)(f_args...); });
64 template <
typename LocalAssemblerInterface,
typename Accessor>
66 std::string
const&
name,
67 int const n_components,
68 int const integration_order,
69 std::vector<std::unique_ptr<LocalAssemblerInterface>>
const&
80 std::vector<std::vector<double>> result;
81 result.reserve(local_assemblers.size());
83 std::transform(begin(local_assemblers), end(local_assemblers),
84 std::back_inserter(result),
85 [&accessor](
auto const& la)
86 {
return accessor(*la); });
101 std::function<std::vector<std::vector<double>>()>
_callback;
113 std::vector<std::unique_ptr<IntegrationPointWriter>>
const&
114 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)