25#ifndef DUMUX_COMMON_DEPRECATED_HH
26#define DUMUX_COMMON_DEPRECATED_HH
30#include <dune/common/deprecated.hh>
52struct HasNewEffThermCondIF
55 auto operator()(ETC&& e) ->
decltype(e.effectiveThermalConductivity(std::declval<const VV&>())) {}
58template<
class ETC,
class VV,
class SpatialParams,
class Element,
class FVGeometry,
59 typename std::enable_if_t<!decltype(isValid(HasNewEffThermCondIF<VV>()).
template check<ETC>())::value,
int> = 0>
60auto effectiveThermalConductivity(
const VV& volVars,
61 const SpatialParams& spatialParams,
62 const Element& element,
63 const FVGeometry& fvGeometry,
64 const typename FVGeometry::SubControlVolume& scv)
66 return ETC::effectiveThermalConductivity(volVars, spatialParams, element, fvGeometry, scv);
69template<
class ETC,
class VV,
class SpatialParams,
class Element,
class FVGeometry,
70 typename std::enable_if_t<decltype(isValid(HasNewEffThermCondIF<VV>()).
template check<ETC>())::value,
int> = 0>
71auto effectiveThermalConductivity(
const VV& volVars,
72 const SpatialParams& spatialParams,
73 const Element& element,
74 const FVGeometry& fvGeometry,
75 const typename FVGeometry::SubControlVolume& scv)
77 return ETC::effectiveThermalConductivity(volVars);
81template<
class E,
class FVEG,
class EVV,
class EFVC>
84 using SCVF =
typename FVEG::SubControlVolumeFace;
88 auto operator()(P&& p) ->
decltype(p.neumann(std::declval<const E&>(),
89 std::declval<const FVEG&>(),
90 std::declval<const EVV&>(),
91 std::declval<const EFVC&>(),
92 std::declval<const SCVF&>()))
96template<
class P,
class E,
class FVEG,
class EVV,
class EFVC,
97 typename std::enable_if_t<!decltype(isValid(HasNewNeumannIF<E, FVEG, EVV, EFVC>()).
template check<P>())::value,
int> = 0>
98auto DUNE_DEPRECATED_MSG(
"Use new neumann() interface (see common/fvproblem.hh) that additionally receives the element flux variables cache in your problem!. Will be removed after 3.1 release")
99neumann(
const P& problem,
101 const FVEG& fvGeometry,
102 const EVV& elemVolVars,
103 const EFVC& elemFluxVarsCache,
104 const typename FVEG::SubControlVolumeFace& scvf)
106 return problem.neumann(element, fvGeometry, elemVolVars, scvf);
109template<
class P,
class E,
class FVEG,
class EVV,
class EFVC,
110 typename std::enable_if_t<decltype(isValid(HasNewNeumannIF<E, FVEG, EVV, EFVC>()).
template check<P>())::value,
int> = 0>
111auto neumann(
const P& problem,
113 const FVEG& fvGeometry,
114 const EVV& elemVolVars,
115 const EFVC& elemFluxVarsCache,
116 const typename FVEG::SubControlVolumeFace& scvf)
118 return problem.neumann(element, fvGeometry, elemVolVars, elemFluxVarsCache, scvf);
A helper function for class member function introspection.
make the local view function available whenever we use the grid geometry
Definition: adapt.hh:29