My Project
Loading...
Searching...
No Matches
ncpextensivequantities.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_NCP_EXTENSIVE_QUANTITIES_HH
29#define EWOMS_NCP_EXTENSIVE_QUANTITIES_HH
30
31#include "ncpproperties.hh"
32
36
37namespace Opm {
38
46template <class TypeTag>
48 : public MultiPhaseBaseExtensiveQuantities<TypeTag>
49 , public EnergyExtensiveQuantities<TypeTag, getPropValue<TypeTag, Properties::EnableEnergy>()>
50 , public DiffusionExtensiveQuantities<TypeTag, getPropValue<TypeTag, Properties::EnableDiffusion>()>
51{
53
56
57 enum { enableDiffusion = getPropValue<TypeTag, Properties::EnableDiffusion>() };
59
62
63public:
67 void update(const ElementContext& elemCtx, unsigned scvfIdx, unsigned timeIdx)
68 {
69 ParentType::update(elemCtx, scvfIdx, timeIdx);
70 DiffusionExtensiveQuantities::update_(elemCtx, scvfIdx, timeIdx);
71 EnergyExtensiveQuantities::update_(elemCtx, scvfIdx, timeIdx);
72 }
73
77 template <class Context, class FluidState>
78 void updateBoundary(const Context& context,
79 unsigned bfIdx,
80 unsigned timeIdx,
81 const FluidState& fluidState)
82 {
83 ParentType::updateBoundary(context, bfIdx, timeIdx, fluidState);
84 DiffusionExtensiveQuantities::updateBoundary_(context, bfIdx, timeIdx, fluidState);
85 EnergyExtensiveQuantities::updateBoundary_(context, bfIdx, timeIdx, fluidState);
86 }
87};
88
89} // namespace Opm
90
91#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
This template class represents the extensive quantities of the compositional NCP model.
Definition ncpextensivequantities.hh:51
void updateBoundary(const Context &context, unsigned bfIdx, unsigned timeIdx, const FluidState &fluidState)
Update the extensive quantities for a given boundary face.
Definition ncpextensivequantities.hh:78
void update(const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
Update the extensive quantities for a given sub-control-volume-face.
Definition ncpextensivequantities.hh:67
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 NCP compositional multi-phase model.