Line |
Branch |
Exec |
Source |
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-FileCopyrightInfo: Copyright © DuMux Project contributors, see AUTHORS.md in root folder |
5 |
|
|
// SPDX-License-Identifier: GPL-3.0-or-later |
6 |
|
|
// |
7 |
|
|
/*! |
8 |
|
|
* \file |
9 |
|
|
* \ingroup Fluidmatrixinteractions |
10 |
|
|
* \copydoc Dumux::FullDispersionTensor |
11 |
|
|
*/ |
12 |
|
|
#ifndef DUMUX_MATERIAL_FLUIDMATRIX_DISPERSIONTENSORS_FULLTENSOR_HH |
13 |
|
|
#define DUMUX_MATERIAL_FLUIDMATRIX_DISPERSIONTENSORS_FULLTENSOR_HH |
14 |
|
|
|
15 |
|
|
#include <dune/common/fmatrix.hh> |
16 |
|
|
#include <dumux/common/properties.hh> |
17 |
|
|
|
18 |
|
|
namespace Dumux { |
19 |
|
|
|
20 |
|
|
/*! |
21 |
|
|
* \ingroup Fluidmatrixinteractions |
22 |
|
|
* \brief Full dispersion tensor |
23 |
|
|
*/ |
24 |
|
|
template<class TypeTag> |
25 |
|
|
class FullDispersionTensor |
26 |
|
|
{ |
27 |
|
|
using Problem = GetPropType<TypeTag, Properties::Problem>; |
28 |
|
|
using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; |
29 |
|
|
using FVElementGeometry = typename GridGeometry::LocalView; |
30 |
|
|
using SubControlVolumeFace = typename GridGeometry::SubControlVolumeFace; |
31 |
|
|
using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView; |
32 |
|
|
|
33 |
|
|
using Scalar = GetPropType<TypeTag, Properties::Scalar>; |
34 |
|
|
using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView; |
35 |
|
|
static const int dimWorld = GridView::dimensionworld; |
36 |
|
|
using DimWorldMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>; |
37 |
|
|
|
38 |
|
|
public: |
39 |
|
|
|
40 |
|
|
template <class ElementFluxVariablesCache> |
41 |
|
✗ |
static DimWorldMatrix compositionalDispersionTensor(const Problem& problem, |
42 |
|
|
const SubControlVolumeFace& scvf, |
43 |
|
|
const FVElementGeometry&, |
44 |
|
|
const ElementVolumeVariables&, |
45 |
|
|
const ElementFluxVariablesCache&, |
46 |
|
|
const int phaseIdx, |
47 |
|
|
const int compIdx) |
48 |
|
35376000 |
{ return problem.spatialParams().dispersionTensor(scvf.center(), phaseIdx, compIdx); } |
49 |
|
|
|
50 |
|
|
template <class ElementFluxVariablesCache> |
51 |
|
✗ |
static DimWorldMatrix thermalDispersionTensor(const Problem& problem, |
52 |
|
|
const SubControlVolumeFace& scvf, |
53 |
|
|
const FVElementGeometry&, |
54 |
|
|
const ElementVolumeVariables&, |
55 |
|
|
const ElementFluxVariablesCache&, |
56 |
|
|
const int phaseIdx) |
57 |
|
11155200 |
{ return problem.spatialParams().dispersionTensor(scvf.center(), phaseIdx); } |
58 |
|
|
|
59 |
|
|
}; |
60 |
|
|
|
61 |
|
|
} // end namespace Dumux |
62 |
|
|
|
63 |
|
|
#endif |
64 |
|
|
|