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>
53template <
class TypeTag>
58namespace Opm::Properties {
61template<
class TypeTag>
66 using CoordScalar =
typename GridView::ctype;
73template<
class TypeTag>
78template<
class TypeTag>
84template<
class TypeTag>
89template<
class TypeTag>
94template<
class TypeTag>
99template<
class TypeTag>
101{
static constexpr bool value =
false; };
105template<
class TypeTag>
112 using FunctionSpace = Dune::Fem::FunctionSpace<
typename GridPart::GridType::ctype,
114 GridPart::GridType::dimensionworld,
119 using type = Dune::Fem::LagrangeDiscreteFunctionSpace< FunctionSpace, GridPart, 1 >;
122template <
class TypeTag>
126 explicit DummySpaceVcfv(
const DiscreteFunctionSpace&) {}
127 explicit DummySpaceVcfv(
const int&) {}
130template <
class TypeTag>
136template<
class TypeTag>
150template<
class TypeTag>
152{
static constexpr bool value =
false; };
163template<
class TypeTag>
164class VcfvDiscretization :
public GetPropType<TypeTag, Properties::BaseDiscretizationType>
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); }
Uses communication on the grid to find the initial seed list of indices.
Definition vertexborderlistfromgrid.hh:52
This class calculates gradients of arbitrary quantities at flux integration points using first order ...
Definition p1fegradientcalculator.hh:62
Implements the discretization specific parts of writing files.
Definition vcfvbaseoutputmodule.hh:44
The base class for the vertex centered finite volume discretization scheme.
Definition vcfvdiscretization.hh:165
void serialize(Restarter &res)
Serializes the current state of the model.
Definition vcfvdiscretization.hh:206
static std::string discretizationName()
Returns a string of discretization's human-readable name.
Definition vcfvdiscretization.hh:182
const DofMapper & dofMapper() const
Mapper to convert the Dune entities of the discretization's degrees of freedoms are to indices.
Definition vcfvdiscretization.hh:195
std::size_t numGridDof() const
Returns the number of global degrees of freedom (DOFs) due to the grid.
Definition vcfvdiscretization.hh:188
void deserialize(Restarter &res)
Deserializes the state of the model.
Definition vcfvdiscretization.hh:217
A class which provides types for DUNE grid handles for communication.
Definition vcfvgridcommhandlefactory.hh:48
Represents the finite volume geometry of a single element in the VCFV discretization.
Definition vcfvstencil.hh:451
The base class for the finite volume discretization schemes.
The base class for the finite volume discretization schemes.
The generic type tag for problems using the immiscible multi-phase model.
Definition blackoilmodel.hh:81
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition blackoilbioeffectsmodules.hh:43
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
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:240
This class calculates gradients of arbitrary quantities at flux integration points using first order ...
The class which marks the border indices associated with the degrees of freedom on a process boundary...
Definition basicproperties.hh:125
The part of the VTK ouput modules which is specific to the spatial discretization.
Definition fvbaseproperties.hh:164
The class describing the discrete function space when dune-fem is used, otherwise it points to the st...
Definition fvbaseproperties.hh:74
The type of the spatial discretization used by the model.
Definition fvbaseproperties.hh:88
The mapper to find the global index of a degree of freedom.
Definition fvbaseproperties.hh:219
Definition vcfvdiscretization.hh:124
Calculates gradients of arbitrary quantities at flux integration points.
Definition fvbaseproperties.hh:152
The class to create grid communication handles.
Definition fvbaseproperties.hh:168
Specify if elements that do not belong to the local process' grid partition should be skipped.
Definition fvbaseproperties.hh:101
Property to specify the type of scalar values.
Definition basicproperties.hh:76
The class describing the stencil of the spatial discretization.
Definition fvbaseproperties.hh:70
Use P1 finite-elements gradients instead of two-point gradients.
Definition vcfvproperties.hh:47
Implements the discretization specific parts of writing files.
A class which provides types for DUNE grid handles for communication.
Declares the basic properties used by the common infrastructure of the vertex-centered finite volume ...
Represents the finite volume geometry of a single element in the VCFV discretization.
Uses communication on the grid to find the initial seed list of indices.