OGS
ReflectionForIPWriters.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
7#include "ReflectionIPData.h"
8
10{
13template <int Dim, typename LocAsmIF, typename ReflData>
15 ReflData const& reflection_data,
16 std::vector<std::unique_ptr<MeshLib::IntegrationPointWriter>>&
17 integration_point_writers,
18 unsigned const integration_order,
19 std::vector<std::unique_ptr<LocAsmIF>> const& local_assemblers)
20{
22 reflection_data,
23 [&integration_point_writers, integration_order, &local_assemblers](
24 std::string const& name,
25 unsigned const num_comp,
26 auto&& flattened_ip_data_accessor)
27 {
28 // TODO check if writer with such a name already exists.
29 integration_point_writers.emplace_back(
30 std::make_unique<MeshLib::IntegrationPointWriter>(
31 name + "_ip", num_comp, integration_order, local_assemblers,
32 flattened_ip_data_accessor));
33 });
34}
35} // namespace ProcessLib::Reflection
void forEachReflectedFlattenedIPDataAccessor(ReflData const &reflection_data, Callback const &callback)
void addReflectedIntegrationPointWriters(ReflData const &reflection_data, std::vector< std::unique_ptr< MeshLib::IntegrationPointWriter > > &integration_point_writers, unsigned const integration_order, std::vector< std::unique_ptr< LocAsmIF > > const &local_assemblers)