Skip to content
Snippets Groups Projects
Commit efceffac authored by Christoph Lehmann's avatar Christoph Lehmann Committed by Dmitri Naumov
Browse files

[PL] Reflection support for extrapolated quantities

parent c1a7f4ea
No related branches found
No related tags found
No related merge requests found
/**
* \file
* \copyright
* Copyright (c) 2012-2022, OpenGeoSys Community (http://www.opengeosys.org)
* Distributed under a Modified BSD License.
* See accompanying file LICENSE.txt or
* http://www.opengeosys.org/project/license
*
*/
#pragma once
#include "ProcessLib/Output/SecondaryVariable.h"
#include "ReflectionIPData.h"
namespace ProcessLib::Reflection
{
/// Adds secondary variables for all IP data obtained recursively from the given
/// \c reflection_data to the given secondary variable collection.
template <int Dim, typename LocAsmIF, typename ReflData>
void addReflectedSecondaryVariables(
ReflData const& reflection_data,
SecondaryVariableCollection& secondary_variables,
NumLib::Extrapolator& extrapolator,
std::vector<std::unique_ptr<LocAsmIF>> const& local_assemblers)
{
forEachReflectedFlattenedIPDataAccessor<Dim, LocAsmIF>(
reflection_data,
[&secondary_variables, &local_assemblers, &extrapolator](
std::string const& name,
unsigned const num_comp,
auto&& flattened_ip_data_accessor)
{
secondary_variables.addSecondaryVariable(
name,
makeExtrapolator2(num_comp, extrapolator, local_assemblers,
flattened_ip_data_accessor));
});
}
} // namespace ProcessLib::Reflection
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment