version 3.11-dev
Loading...
Searching...
No Matches
multidomain/boundary/freeflowporousmedium/couplingmanager.hh
Go to the documentation of this file.
1// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set et ts=4 sw=4 sts=4:
3//
4// SPDX-FileCopyrightText: Copyright © DuMux Project contributors, see AUTHORS.md in root folder
5// SPDX-License-Identifier: GPL-3.0-or-later
6//
12
13#ifndef DUMUX_MULTIDOMAIN_BOUNDARY_FREEFLOW_POROUSMEDIUM_COUPLINGMANAGER_HH
14#define DUMUX_MULTIDOMAIN_BOUNDARY_FREEFLOW_POROUSMEDIUM_COUPLINGMANAGER_HH
15
18
22
23namespace Dumux {
24
25#ifndef DOXYGEN
26namespace FreeFlowPorousMediumDetail {
27
28// declaration (specialize for different discretization types)
29template<class MDTraits,
30 class DiscFFMomentum = typename GetPropType<typename MDTraits::template SubDomainTypeTag<FreeFlowPorousMediumDetail::freeFlowMomentumIndex>, Properties::GridGeometry>::DiscretizationMethod,
31 class DiscFFMass = typename GetPropType<typename MDTraits::template SubDomainTypeTag<FreeFlowPorousMediumDetail::freeFlowMassIndex>, Properties::GridGeometry>::DiscretizationMethod,
32 class DiscPM = typename GetPropType<typename MDTraits::template SubDomainTypeTag<FreeFlowPorousMediumDetail::porousMediumIndex>, Properties::GridGeometry>::DiscretizationMethod
33 >
34struct FreeFlowPorousMediumCouplingManagerSelector;
35
36template<class MDTraits>
37struct FreeFlowPorousMediumCouplingManagerSelector<MDTraits, DiscretizationMethods::FCStaggered, DiscretizationMethods::CCTpfa, DiscretizationMethods::CCTpfa>
38{ using type = FreeFlowPorousMediumCouplingManagerStaggeredCCTpfa<MDTraits>; };
39
40template<class MDTraits>
41struct FreeFlowPorousMediumCouplingManagerSelector<MDTraits, DiscretizationMethods::PQ1Bubble, DiscretizationMethods::Box, DiscretizationMethods::Box>
42{ using type = FreeFlowPorousMediumCouplingManagerCvfe<MDTraits>; };
43
44template<class MDTraits>
45struct FreeFlowPorousMediumCouplingManagerSelector<MDTraits, DiscretizationMethods::PQ2, DiscretizationMethods::Box, DiscretizationMethods::Box>
46{ using type = FreeFlowPorousMediumCouplingManagerCvfe<MDTraits>; };
47
48} // end namespace FreeFlowPorousMediumDetail
49#endif // DOXYGEN
50
51template<class MDTraits>
52using FreeFlowPorousMediumCouplingManager = typename FreeFlowPorousMediumDetail::FreeFlowPorousMediumCouplingManagerSelector<MDTraits>::type;
53
54} // end namespace Dumux
55
56#endif
Defines all properties used in Dumux.
Base class for coupling freeflow and porous medium flow models.
Coupling manager for coupling free flow and porous medium flow models, all discretized with control-v...
Coupling manager for coupling freeflow and porous medium flow models specialization for staggered-cct...
The available discretization methods in Dumux.
CVFE< CVFEMethods::PQ1Bubble > PQ1Bubble
Definition method.hh:126
CVFE< CVFEMethods::PQ2 > PQ2
Definition method.hh:132
Definition adapt.hh:17
typename FreeFlowPorousMediumDetail::FreeFlowPorousMediumCouplingManagerSelector< MDTraits >::type FreeFlowPorousMediumCouplingManager
Definition multidomain/boundary/freeflowporousmedium/couplingmanager.hh:52