30 template <
typename LocalAssemblerInterface,
typename... Args>
32 std::string
const&
name,
33 int const n_components,
34 int const integration_order,
35 std::vector<std::unique_ptr<LocalAssemblerInterface>>
const&
37 std::vector<double> (LocalAssemblerInterface::*getIpData)(Args...)
46 ... f_args = std::forward<Args>(args)]
50 std::vector<std::vector<double>> result;
51 result.reserve(local_assemblers.size());
53 std::transform(begin(local_assemblers), end(local_assemblers),
54 std::back_inserter(result),
56 {
return (*la.*getIpData)(f_args...); });
67 template <
typename LocalAssemblerInterface,
typename Accessor>
69 std::string
const&
name,
70 int const n_components,
71 int const integration_order,
72 std::vector<std::unique_ptr<LocalAssemblerInterface>>
const&
83 std::vector<std::vector<double>> result;
84 result.reserve(local_assemblers.size());
86 std::transform(begin(local_assemblers), end(local_assemblers),
87 std::back_inserter(result),
88 [&accessor](
auto const& la)
89 {
return accessor(*la); });
104 std::function<std::vector<std::vector<double>>()>
_callback;
116 std::vector<std::unique_ptr<IntegrationPointWriter>>
const&
117 integration_point_writer);
Property manager on mesh items. Class Properties manages scalar, vector or matrix properties....
IntegrationPointMetaData getIntegrationPointMetaData(MeshLib::Properties const &properties, std::string const &name)
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)