28 #ifndef EWOMS_VCFV_DISCRETIZATION_HH 29 #define EWOMS_VCFV_DISCRETIZATION_HH 31 #include <opm/material/densead/Math.hpp> 43 #include <dune/fem/space/common/functionspace.hh> 44 #include <dune/fem/space/lagrange.hh> 53 template <
class TypeTag>
61 template<
class TypeTag>
66 using CoordScalar =
typename GridView::ctype;
73 template<
class TypeTag>
78 template<
class TypeTag>
84 template<
class TypeTag>
89 template<
class TypeTag>
94 template<
class TypeTag>
99 template<
class TypeTag>
101 {
static constexpr
bool value =
false; };
104 template<
class TypeTag>
111 enum { numEq = getPropValue<TypeTag, Properties::NumEq>() };
112 using FunctionSpace = Dune::Fem::FunctionSpace<
typename GridPart::GridType::ctype,
114 GridPart::GridType::dimensionworld,
119 using type = Dune::Fem::LagrangeDiscreteFunctionSpace< FunctionSpace, GridPart, 1 >;
122 template <
class TypeTag>
130 template <
class TypeTag>
136 template<
class TypeTag>
150 template<
class TypeTag>
152 {
static constexpr
bool value =
false; };
163 template<
class TypeTag>
172 enum { dim = GridView::dimension };
175 explicit VcfvDiscretization(Simulator& simulator)
176 : ParentType(simulator)
189 {
return static_cast<std::size_t
>(this->gridView_.size(dim)); }
196 {
return this->vertexMapper(); }
205 template <
class Restarter>
207 { res.template serializeEntities<dim>(asImp_(), this->gridView_); }
216 template <
class Restarter>
219 res.template deserializeEntities<dim>(asImp_(), this->gridView_);
220 this->solution(1) = this->solution(0);
224 Implementation& asImp_()
225 {
return *
static_cast<Implementation*
>(
this); }
227 const Implementation& asImp_()
const 228 {
return *
static_cast<const Implementation*
>(
this); }
The base class for the vertex centered finite volume discretization scheme.
Definition: vcfvdiscretization.hh:54
Calculates gradients of arbitrary quantities at flux integration points.
Definition: fvbaseproperties.hh:156
The class describing the stencil of the spatial discretization.
Definition: fvbaseproperties.hh:70
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
void serialize(Restarter &res)
Serializes the current state of the model.
Definition: vcfvdiscretization.hh:206
A class which provides types for DUNE grid handles for communication.
Definition: vcfvgridcommhandlefactory.hh:47
Specify if elements that do not belong to the local process' grid partition should be skipped...
Definition: fvbaseproperties.hh:101
static std::string discretizationName()
Returns a string of discretization's human-readable name.
Definition: vcfvdiscretization.hh:182
Definition: vcfvdiscretization.hh:123
Represents the finite volume geometry of a single element in the VCFV discretization.
A class which provides types for DUNE grid handles for communication.
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
The base class for the finite volume discretization schemes.
Use P1 finite-elements gradients instead of two-point gradients.
Definition: vcfvproperties.hh:47
Uses communication on the grid to find the initial seed list of indices.
The class describing the discrete function space when dune-fem is used, otherwise it points to the st...
Definition: fvbaseproperties.hh:74
Implements the discretization specific parts of writing files.
std::size_t numGridDof() const
Returns the number of global degrees of freedom (DOFs) due to the grid.
Definition: vcfvdiscretization.hh:188
Property to specify the type of scalar values.
Definition: basicproperties.hh:76
Declares the basic properties used by the common infrastructure of the vertex-centered finite volume ...
The class to create grid communication handles.
Definition: fvbaseproperties.hh:172
const DofMapper & dofMapper() const
Mapper to convert the Dune entities of the discretization's degrees of freedoms are to indices...
Definition: vcfvdiscretization.hh:195
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.
Definition: vertexborderlistfromgrid.hh:49
This class calculates gradients of arbitrary quantities at flux integration points using first order ...
Implements the discretization specific parts of writing files.
Definition: vcfvbaseoutputmodule.hh:43
Represents the finite volume geometry of a single element in the VCFV discretization.
Definition: vcfvstencil.hh:451
Manages the initializing and running of time dependent problems.
Definition: simulator.hh:83
Definition: blackoilmodel.hh:80
void deserialize(Restarter &res)
Deserializes the state of the model.
Definition: vcfvdiscretization.hh:217
This class calculates gradients of arbitrary quantities at flux integration points using first order ...
Definition: p1fegradientcalculator.hh:61