My Project
Loading...
Searching...
No Matches
pvsextensivequantities.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 This file is part of the Open Porous Media project (OPM).
5
6 OPM is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 2 of the License, or
9 (at your option) any later version.
10
11 OPM is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with OPM. If not, see <http://www.gnu.org/licenses/>.
18
19 Consult the COPYING file in the top-level source directory of this
20 module for the precise wording of the license and the list of
21 copyright holders.
22*/
28#ifndef EWOMS_PVS_EXTENSIVE_QUANTITIES_HH
29#define EWOMS_PVS_EXTENSIVE_QUANTITIES_HH
30
31#include "pvsproperties.hh"
32
36
37namespace Opm {
38
49template <class TypeTag>
51 : public MultiPhaseBaseExtensiveQuantities<TypeTag>
52 , public EnergyExtensiveQuantities<TypeTag, getPropValue<TypeTag, Properties::EnableEnergy>()>
53 , public DiffusionExtensiveQuantities<TypeTag, getPropValue<TypeTag, Properties::EnableDiffusion>()>
54{
56
59
60 enum { enableDiffusion = getPropValue<TypeTag, Properties::EnableDiffusion>() };
62
65
66public:
70 void update(const ElementContext& elemCtx, unsigned scvfIdx, unsigned timeIdx)
71 {
72 ParentType::update(elemCtx, scvfIdx, timeIdx);
73 DiffusionExtensiveQuantities::update_(elemCtx, scvfIdx, timeIdx);
74 EnergyExtensiveQuantities::update_(elemCtx, scvfIdx, timeIdx);
75 }
76
80 template <class Context, class FluidState>
81 void updateBoundary(const Context& context,
82 unsigned bfIdx,
83 unsigned timeIdx,
84 const FluidState& fluidState)
85 {
86 ParentType::updateBoundary(context, bfIdx, timeIdx, fluidState);
87 DiffusionExtensiveQuantities::updateBoundary_(context, bfIdx, timeIdx, fluidState);
88 EnergyExtensiveQuantities::updateBoundary_(context, bfIdx, timeIdx, fluidState);
89 }
90};
91
92} // namespace Opm
93
94#endif
Provides the quantities required to calculate diffusive mass fluxes.
Provides the quantities required to calculate energy fluxes.
This class calculates the pressure potential gradients and the filter velocities for multi-phase flow...
Definition multiphasebaseextensivequantities.hh:52
void updateBoundary(const Context &context, unsigned bfIdx, unsigned timeIdx, const FluidState &fluidState)
Update the extensive quantities for a given boundary face.
Definition multiphasebaseextensivequantities.hh:115
void update(const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
Update the extensive quantities for a given sub-control-volume-face.
Definition multiphasebaseextensivequantities.hh:80
Contains all data which is required to calculate all fluxes at a flux integration point for the prima...
Definition pvsextensivequantities.hh:54
void updateBoundary(const Context &context, unsigned bfIdx, unsigned timeIdx, const FluidState &fluidState)
Update the extensive quantities for a given boundary face.
Definition pvsextensivequantities.hh:81
void update(const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
Update the extensive quantities for a given sub-control-volume-face.
Definition pvsextensivequantities.hh:70
Classes required for molecular diffusion.
Contains the classes required to consider energy as a conservation quantity in a multi-phase module.
This class calculates the pressure potential gradients and the filter velocities for multi-phase flow...
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition blackoilboundaryratevector.hh:37
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(....
Definition propertysystem.hh:235
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:242
Declares the properties required for the compositional multi-phase primary variable switching model.