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:167
The class describing the stencil of the spatial discretization.
Definition: fvbaseproperties.hh:76
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:94
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:107
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.
Structs needed for tpfalinearizer and its gpuparams struct extracted to be defined in one place that ...
Definition: blackoilbioeffectsmodules.hh:45
The part of the VTK ouput modules which is specific to the spatial discretization.
Definition: fvbaseproperties.hh:179
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:80
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:183
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:234
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:75
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