26#ifndef DUMUX_DISCRETIZATION_CC_TPFA_COMPUTE_TRANSMISSIBILITY_HH
27#define DUMUX_DISCRETIZATION_CC_TPFA_COMPUTE_TRANSMISSIBILITY_HH
29#include <dune/common/typetraits.hh>
30#include <dune/common/fmatrix.hh>
46template<
class SubControlVolumeFace,
class SubControlVolume,
class Tensor >
47[[deprecated(
"Will be removed after release 3.6. Use interface with additional fvGeometry parameter instead.")]]
49 const SubControlVolume& scv,
51 typename SubControlVolume::Traits::Scalar extrusionFactor)
53 using GlobalPosition =
typename SubControlVolumeFace::Traits::GlobalPosition;
54 GlobalPosition Knormal;
55 T.mv(scvf.unitOuterNormal(), Knormal);
57 auto distanceVector = scvf.ipGlobal();
58 distanceVector -= scv.center();
59 distanceVector /= distanceVector.two_norm2();
61 return (Knormal*distanceVector) * extrusionFactor;
77template<
class FVElementGeometry,
class Tensor >
79 const typename FVElementGeometry::SubControlVolumeFace& scvf,
80 const typename FVElementGeometry::SubControlVolume& scv,
82 typename FVElementGeometry::SubControlVolume::Traits::Scalar extrusionFactor)
84 using GlobalPosition =
typename FVElementGeometry::SubControlVolumeFace::Traits::GlobalPosition;
85 GlobalPosition Knormal;
86 T.mv(scvf.unitOuterNormal(), Knormal);
88 auto distanceVector = scvf.ipGlobal();
89 distanceVector -= scv.center();
90 distanceVector /= distanceVector.two_norm2();
92 return (Knormal*distanceVector) * extrusionFactor;
107template<
class SubControlVolumeFace,
108 class SubControlVolume,
110 typename std::enable_if_t<Dune::IsNumber<Tensor>::value,
int> = 0 >
111[[deprecated(
"Will be removed after release 3.6. Use interface with additional fvGeometry parameter instead.")]]
113 const SubControlVolume &scv,
115 typename SubControlVolumeFace::Traits::Scalar extrusionFactor)
117 auto distanceVector = scvf.ipGlobal();
118 distanceVector -= scv.center();
119 distanceVector /= distanceVector.two_norm2();
121 return t * extrusionFactor * (distanceVector * scvf.unitOuterNormal());
137template<
class FVElementGeometry,
139 typename std::enable_if_t<Dune::IsNumber<Tensor>::value,
int> = 0 >
141 const typename FVElementGeometry::SubControlVolumeFace& scvf,
142 const typename FVElementGeometry::SubControlVolume& scv,
144 typename FVElementGeometry::SubControlVolumeFace::Traits::Scalar extrusionFactor)
146 auto distanceVector = scvf.ipGlobal();
147 distanceVector -= scv.center();
148 distanceVector /= distanceVector.two_norm2();
150 return t * extrusionFactor * (distanceVector * scvf.unitOuterNormal());
Tensor::field_type computeTpfaTransmissibility(const SubControlVolumeFace &scvf, const SubControlVolume &scv, const Tensor &T, typename SubControlVolume::Traits::Scalar extrusionFactor)
Free function to evaluate the Tpfa transmissibility associated with the flux (in the form of flux = T...
Definition: tpfa/computetransmissibility.hh:48
Adaption of the non-isothermal two-phase two-component flow model to problems with CO2.
Definition: adapt.hh:29