OGS
ReflectionForExtrapolation.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 SecondaryVariableCollection& secondary_variables,
17 NumLib::Extrapolator& extrapolator,
18 std::vector<std::unique_ptr<LocAsmIF>> const& local_assemblers)
19{
21 reflection_data,
22 [&secondary_variables, &local_assemblers, &extrapolator](
23 std::string const& name,
24 unsigned const num_comp,
25 auto&& flattened_ip_data_accessor)
26 {
27 DBUG("Add secondary variable '{:s}' extrapolation (reflection).",
28 name);
29 secondary_variables.addSecondaryVariable(
30 name,
31 makeExtrapolator2(num_comp, extrapolator, local_assemblers,
32 flattened_ip_data_accessor));
33 });
34}
35} // namespace ProcessLib::Reflection
void DBUG(fmt::format_string< Args... > fmt, Args &&... args)
Definition Logging.h:22
Handles configuration of several secondary variables from the project file.
void addSecondaryVariable(std::string const &internal_name, SecondaryVariableFunctions &&fcts)
void addReflectedSecondaryVariables(ReflData const &reflection_data, SecondaryVariableCollection &secondary_variables, NumLib::Extrapolator &extrapolator, std::vector< std::unique_ptr< LocAsmIF > > const &local_assemblers)
void forEachReflectedFlattenedIPDataAccessor(ReflData const &reflection_data, Callback const &callback)
SecondaryVariableFunctions makeExtrapolator2(const unsigned num_components, NumLib::Extrapolator &extrapolator, LocalAssemblerCollection const &local_assemblers, IPDataAccessor &&accessor)