diff --git a/dumux/multidomain/fvassembler.hh b/dumux/multidomain/fvassembler.hh
index 34c2e4a9ca72bb013c654b816758c293a8dd6f73..13e80fa458b1e8edd00e2b90c5d639096670954b 100644
--- a/dumux/multidomain/fvassembler.hh
+++ b/dumux/multidomain/fvassembler.hh
@@ -27,6 +27,7 @@
 #define DUMUX_MULTIDOMAIN_FV_ASSEMBLER_HH
 
 #include <type_traits>
+#include <tuple>
 
 #include <dune/common/hybridutilities.hh>
 #include <dune/istl/matrixindexset.hh>
@@ -67,6 +68,9 @@ public:
     template<std::size_t id>
     using LocalResidual = GetPropType<SubDomainTypeTag<id>, Properties::LocalResidual>;
 
+    template<std::size_t id>
+    using GridVariables = typename std::tuple_element_t<id, typename MDTraits::GridVariablesTuple>::element_type;
+
     using JacobianMatrix = typename MDTraits::JacobianMatrix;
     using SolutionVector = typename MDTraits::SolutionVector;
     using ResidualType = SolutionVector;
@@ -337,12 +341,12 @@ public:
 
     //! the grid variables of domain i
     template<std::size_t i>
-    auto& gridVariables(Dune::index_constant<i> domainId)
+    GridVariables<i>& gridVariables(Dune::index_constant<i> domainId)
     { return *std::get<domainId>(gridVariablesTuple_); }
 
     //! the grid variables of domain i
     template<std::size_t i>
-    const auto& gridVariables(Dune::index_constant<i> domainId) const
+    const GridVariables<i>& gridVariables(Dune::index_constant<i> domainId) const
     { return *std::get<domainId>(gridVariablesTuple_); }
 
     //! the coupling manager