version 3.10-dev
fvspatialparamsnonequilibrium.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-FileCopyrightInfo: Copyright © DuMux Project contributors, see AUTHORS.md in root folder
5// SPDX-License-Identifier: GPL-3.0-or-later
6//
13#ifndef DUMUX_POROUS_MEDIUM_FLOW_FV_SPATIAL_PARAMS_NONEQUILIBRIUM_HH
14#define DUMUX_POROUS_MEDIUM_FLOW_FV_SPATIAL_PARAMS_NONEQUILIBRIUM_HH
15
16#include "fvspatialparamsmp.hh"
17
18namespace Dumux {
19
24template<class GridGeometry, class Scalar, class Implementation>
26: public FVPorousMediumFlowSpatialParamsMP<GridGeometry, Scalar, Implementation>
27{
29 using GridView = typename GridGeometry::GridView;
30 using FVElementGeometry = typename GridGeometry::LocalView;
31 using SubControlVolume = typename GridGeometry::SubControlVolume;
32 using Element = typename GridView::template Codim<0>::Entity;
33 using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
34
35public:
37 using AwnSurfaceParams = Scalar;
38 using AwsSurfaceParams = Scalar;
39 using AnsSurfaceParams = Scalar;
40
43 {}
44
51 template<class ElementSolution>
52 const Scalar characteristicLength(const Element & element,
53 const SubControlVolume &scv,
54 const ElementSolution &elemSol) const
55
56 { return this->asImp_().characteristicLengthAtPos(scv.dofPosition()); }
57
63 const Scalar characteristicLengthAtPos(const GlobalPosition& globalPos) const
64 {
65 DUNE_THROW(Dune::InvalidStateException,
66 "The spatial parameters do not provide "
67 "a characteristicLengthAtPos() method.");
68 }
69
76 template<class ElementSolution>
77 const Scalar factorEnergyTransfer(const Element& element,
78 const SubControlVolume& scv,
79 const ElementSolution& elemSol) const
80 { return this->asImp_().factorEnergyTransferAtPos(scv.dofPosition()); }
81
86 const Scalar factorEnergyTransferAtPos(const GlobalPosition& globalPos) const
87 {
88 DUNE_THROW(Dune::InvalidStateException,
89 "The spatial parameters do not provide "
90 "a factorEnergyTransferAtPos() method.");
91 }
92
99 template<class ElementSolution>
100 const Scalar factorMassTransfer(const Element& element,
101 const SubControlVolume& scv,
102 const ElementSolution& elemSol) const
103 { return this->asImp_().factorMassTransferAtPos(scv.dofPosition()); }
104
105
110 const Scalar factorMassTransferAtPos(const GlobalPosition& globalPos) const
111 {
112 DUNE_THROW(Dune::InvalidStateException,
113 "The spatial parameters do not provide "
114 "a factorMassTransferAtPos() method.");
115 }
116};
117
118} // end namespace Dumux
119
120#endif
The base class for spatial parameters of multi-phase problems.
Definition: fvspatialparamsmp.hh:49
Definition of the spatial parameters for non-equilibrium.
Definition: fvspatialparamsnonequilibrium.hh:27
Scalar AnsSurfaceParams
Definition: fvspatialparamsnonequilibrium.hh:39
const Scalar factorEnergyTransferAtPos(const GlobalPosition &globalPos) const
Return the pre factor the the energy transfer.
Definition: fvspatialparamsnonequilibrium.hh:86
const Scalar factorEnergyTransfer(const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const
Return the pre-factor the the energy transfer.
Definition: fvspatialparamsnonequilibrium.hh:77
FVPorousMediumFlowSpatialParamsNonEquilibrium(std::shared_ptr< const GridGeometry > gridGeometry)
Definition: fvspatialparamsnonequilibrium.hh:41
Scalar AwnSurfaceParams
export the types used for interfacial area calculations
Definition: fvspatialparamsnonequilibrium.hh:37
const Scalar characteristicLengthAtPos(const GlobalPosition &globalPos) const
Return the characteristic length for the mass transfer.
Definition: fvspatialparamsnonequilibrium.hh:63
const Scalar factorMassTransfer(const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const
Return the pre-factor the the mass transfer.
Definition: fvspatialparamsnonequilibrium.hh:100
const Scalar factorMassTransferAtPos(const GlobalPosition &globalPos) const
Return the pre-factor the the mass transfer.
Definition: fvspatialparamsnonequilibrium.hh:110
Scalar AwsSurfaceParams
Definition: fvspatialparamsnonequilibrium.hh:38
const Scalar characteristicLength(const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const
Return the characteristic length for the mass transfer.
Definition: fvspatialparamsnonequilibrium.hh:52
The base class for spatial parameters used with finite-volume schemes.
Definition: common/fvspatialparams.hh:34
Implementation & asImp_()
Returns the implementation of the spatial parameters (static polymorphism)
Definition: common/fvspatialparams.hh:135
const GridGeometry & gridGeometry() const
The finite volume grid geometry.
Definition: common/fvspatialparams.hh:130
The base class for spatial parameters in multi-phase porous-medium-flow problems.
Definition: adapt.hh:17