28 #ifndef EWOMS_ECFV_DISCRETIZATION_HH 29 #define EWOMS_ECFV_DISCRETIZATION_HH 31 #include <opm/material/densead/Math.hpp> 43 #include <dune/fem/space/common/functionspace.hh> 44 #include <dune/fem/space/finitevolume.hh> 52 template <
class TypeTag>
53 class EcfvDiscretization;
60 template<
class TypeTag>
72 template<
class TypeTag>
77 template<
class TypeTag>
83 template<
class TypeTag>
88 template<
class TypeTag>
93 template<
class TypeTag>
100 enum { numEq = getPropValue<TypeTag, Properties::NumEq>() };
101 using FunctionSpace = Dune::Fem::FunctionSpace<
typename GridPart::GridType::ctype,
103 GridPart::GridType::dimensionworld,
107 using type = Dune::Fem::FiniteVolumeSpace< FunctionSpace, GridPart, 0 >;
110 template <
class TypeTag>
118 template <
class TypeTag>
125 template<
class TypeTag>
139 template<
class TypeTag>
141 {
static constexpr
bool value =
true; };
145 template<
class TypeTag>
147 {
static constexpr
bool value =
false; };
158 template<
class TypeTag>
171 : ParentType(simulator)
184 {
return static_cast<std::size_t
>(this->gridView_.size(0)); }
191 {
return this->elementMapper(); }
210 auto ghostSync = GhostSyncHandle(this->solution(0),
212 this->gridView().communicate(ghostSync,
213 Dune::InteriorBorder_All_Interface,
214 Dune::ForwardCommunication);
224 template <
class Restarter>
226 { res.template serializeEntities<0>(asImp_(), this->gridView_); }
235 template <
class Restarter>
238 res.template deserializeEntities<0>(asImp_(), this->gridView_);
239 this->solution(1) = this->solution(0);
243 Implementation& asImp_()
244 {
return *
static_cast<Implementation*
>(
this); }
246 const Implementation& asImp_()
const 247 {
return *
static_cast<const Implementation*
>(
this); }
Data handle for parallel communication which can be used to set the values values of ghost and overla...
Definition: gridcommhandles.hh:105
The class describing the stencil of the spatial discretization.
Definition: fvbaseproperties.hh:70
Implements the discretization specific parts of writing files.
Definition: ecfvbaseoutputmodule.hh:40
Definition: ecfvdiscretization.hh:111
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:233
The type of the spatial discretization used by the model.
Definition: fvbaseproperties.hh:88
Specify if elements that do not belong to the local process' grid partition should be skipped...
Definition: fvbaseproperties.hh:101
The base class for the element-centered finite-volume discretization scheme.
Definition: fvbasegradientcalculator.hh:42
Represents the stencil (finite volume geometry) of a single element in the ECFV discretization.
Definition: ecfvstencil.hh:68
Represents the stencil (finite volume geometry) of a single element in the ECFV discretization.
static std::string discretizationName()
Returns a string of discretization's human-readable name.
Definition: ecfvdiscretization.hh:177
use locking to prevent race conditions when linearizing the global system of equations in multi-threa...
Definition: fvbaseproperties.hh:185
void deserialize(Restarter &res)
Deserializes the state of the model.
Definition: ecfvdiscretization.hh:236
The base class for the finite volume discretization schemes.
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: blackoilbioeffectsmodules.hh:45
The part of the VTK ouput modules which is specific to the spatial discretization.
Definition: fvbaseproperties.hh:168
The class which marks the border indices associated with the degrees of freedom on a process boundary...
Definition: basicproperties.hh:129
Uses communication on the grid to find the initial seed list of indices for methods which use element...
Definition: elementborderlistfromgrid.hh:48
The base class for the finite volume discretization schemes.
void syncOverlap()
Syncronize the values of the primary variables on the degrees of freedom that overlap with the neighb...
Definition: ecfvdiscretization.hh:202
The class describing the discrete function space when dune-fem is used, otherwise it points to the st...
Definition: fvbaseproperties.hh:74
A class which provides types for DUNE grid handles for communication.
Property to specify the type of scalar values.
Definition: basicproperties.hh:76
The class to create grid communication handles.
Definition: fvbaseproperties.hh:172
The mapper to find the global index of a degree of freedom.
Definition: fvbaseproperties.hh:223
Uses communication on the grid to find the initial seed list of indices for methods which use element...
Implements the discretization specific parts of writing files.
A class which provides types for DUNE grid handles for communication.
Definition: ecfvgridcommhandlefactory.hh:47
void serialize(Restarter &res)
Serializes the current state of the model.
Definition: ecfvdiscretization.hh:225
Manages the initializing and running of time dependent problems.
Definition: simulator.hh:83
Definition: blackoilmodel.hh:80
const DofMapper & dofMapper() const
Mapper to convert the Dune entities of the discretization's degrees of freedoms are to indices...
Definition: ecfvdiscretization.hh:190
Declare the basic properties used by the common infrastructure of the element-centered finite volume ...
std::size_t numGridDof() const
Returns the number of global degrees of freedom (DOFs) due to the grid.
Definition: ecfvdiscretization.hh:183