Hard-coding elemVolVars in flux laws (Fick's law, Fourier's law, ...) prohibits reuse
There are certain situations where one would like to evaluate fluxes using e.g., Darcy's law, Ficks's law, etc. For instance, coupling free flow with Darcy requires calculating the diffusive fluxes across the interface as coupling condition.
Unfortunately, one cannot just use FicksLaw
and pass the current elemVolVars
to it because the latter do not contain outsideVolVars
since the coupling boundary is considered as a neumann
boundary (therefore, no outside volvars exist for TPFA).
The problem basically always arises when I would like to calculate a flux within a neumann(...)
function.
The problem could be solved by making elemVolVars
a template in FicksLaw
and passing some custom pseudoElemVolVars
(containing the relevant outside data, see !2398 (closed) ).
Another option would be to make elemVolVars
themselves more flexible, allowing the user to manually add outsideVolVars
with given input primary variables.