version 3.11-dev
Loading...
Searching...
No Matches
interpolate.hh File Reference

Interpolate a given function into the function space of the discretization.

#include <cassert>
#include <optional>
#include <ranges>
#include <type_traits>
#include <dune/grid/common/rangegenerators.hh>
#include <dumux/discretization/localview.hh>
#include <dumux/common/tag.hh>
#include <dumux/discretization/cvfe/localdof.hh>
#include <dumux/common/concepts/ipdata_.hh>
#include <dumux/discretization/projection/l2_projection.hh>

Go to the source code of this file.

Classes

struct  Dumux::CVFE::InterpolationPolicy::DofPositionEvaluation
 Interpolation policy that evaluates a function at the dof positions. More...
struct  Dumux::CVFE::InterpolationPolicy::L2Projection
 Interpolation policy that uses an L2 projection. More...
class  Dumux::CVFE::Detail::LocalFunctionAdapter< GridDiscretization, Function >
 Wraps a function callable as f(globalPos) or f(elemDisc, globalPos) into a local-function interface: bind(element) and operator()(localCoord). More...

Namespaces

namespace  Dumux
namespace  Dumux::CVFE
namespace  Dumux::CVFE::InterpolationPolicy
namespace  Dumux::CVFE::Detail

Functions

template<class GridDiscretization, class Function>
auto Dumux::CVFE::Detail::makeLocalFunctionAdapter (const GridDiscretization &gridDisc, Function &&f)
template<class GridDiscretization, class CoefficientVector, class Function>
requires (Detail::InterpolatableAtElemDiscIpData<typename GridDiscretization::LocalView, Function, typename CoefficientVector::value_type> || Detail::InterpolatableAtElemDiscGlobalPos<typename GridDiscretization::LocalView, Function, typename CoefficientVector::value_type> || Detail::InterpolatableAtGlobalPos<typename GridDiscretization::LocalView, Function, typename CoefficientVector::value_type>)
void Dumux::CVFE::interpolate (const GridDiscretization &gridDisc, CoefficientVector &coeffs, Function &&function, InterpolationPolicy::DofPositionEvaluation={})
 Interpolate a function into a coefficient vector by evaluating it at the dof positions.
template<class GridDiscretization, class CoefficientVector, class Function>
requires (Detail::InterpolatableAtGlobalPos<typename GridDiscretization::LocalView, Function, typename CoefficientVector::value_type> || Detail::InterpolatableAtElemDiscGlobalPos<typename GridDiscretization::LocalView, Function, typename CoefficientVector::value_type>)
void Dumux::CVFE::interpolate (const GridDiscretization &gridDisc, CoefficientVector &coeffs, Function &&function, InterpolationPolicy::L2Projection policy)
 Interpolate a function into a coefficient vector using an L2 projection.