My Project
Loading...
Searching...
No Matches
flashextensivequantities.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_FLASH_EXTENSIVE_QUANTITIES_HH
29#define EWOMS_FLASH_EXTENSIVE_QUANTITIES_HH
30
34
35namespace Opm {
36
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 template class contains the data which is required to calculate all fluxes of components over a ...
Definition flashextensivequantities.hh:54
void updateBoundary(const Context &context, unsigned bfIdx, unsigned timeIdx, const FluidState &fluidState)
Update the extensive quantities for a given boundary face.
Definition flashextensivequantities.hh:81
void update(const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
Update the extensive quantities for a given sub-control-volume-face.
Definition flashextensivequantities.hh:70
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
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