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>
48template <
class TypeTag>
49class EcfvDiscretization;
52namespace Opm::Properties {
55template<
class TypeTag>
67template<
class TypeTag>
71template<
class TypeTag>
76template<
class TypeTag>
81template<
class TypeTag>
87template<
class TypeTag>
94 using FunctionSpace = Dune::Fem::FunctionSpace<
typename GridPart::GridType::ctype,
96 GridPart::GridType::dimensionworld,
99 using type = Dune::Fem::FiniteVolumeSpace< FunctionSpace, GridPart, 0 >;
102template <
class TypeTag>
109template <
class TypeTag>
117template<
class TypeTag>
129template<
class TypeTag>
134template<
class TypeTag>
145template<
class TypeTag>
158 : ParentType(simulator)
171 {
return static_cast<size_t>(this->gridView_.size(0)); }
178 {
return this->elementMapper(); }
200 Dune::InteriorBorder_All_Interface,
201 Dune::ForwardCommunication);
211 template <
class Restarter>
213 {
res.template serializeEntities<0>(asImp_(), this->gridView_); }
222 template <
class Restarter>
225 res.template deserializeEntities<0>(asImp_(), this->gridView_);
226 this->solution(1) = this->solution(0);
230 Implementation& asImp_()
231 {
return *
static_cast<Implementation*
>(
this); }
232 const Implementation& asImp_()
const
233 {
return *
static_cast<const Implementation*
>(
this); }
Implements the discretization specific parts of writing files.
Definition ecfvbaseoutputmodule.hh:43
The base class for the element-centered finite-volume discretization scheme.
Definition ecfvdiscretization.hh:147
static std::string discretizationName()
Returns a string of discretization's human-readable name.
Definition ecfvdiscretization.hh:164
void serialize(Restarter &res)
Serializes the current state of the model.
Definition ecfvdiscretization.hh:212
size_t numGridDof() const
Returns the number of global degrees of freedom (DOFs) due to the grid.
Definition ecfvdiscretization.hh:170
void deserialize(Restarter &res)
Deserializes the state of the model.
Definition ecfvdiscretization.hh:223
const DofMapper & dofMapper() const
Mapper to convert the Dune entities of the discretization's degrees of freedoms are to indices.
Definition ecfvdiscretization.hh:177
void syncOverlap()
Syncronize the values of the primary variables on the degrees of freedom that overlap with the neighb...
Definition ecfvdiscretization.hh:189
A class which provides types for DUNE grid handles for communication.
Definition ecfvgridcommhandlefactory.hh:46
Represents the stencil (finite volume geometry) of a single element in the ECFV discretization.
Definition ecfvstencil.hh:61
Data handle for parallel communication which can be used to set the values values of ghost and overla...
Definition gridcommhandles.hh:105
Uses communication on the grid to find the initial seed list of indices for methods which use element...
Definition elementborderlistfromgrid.hh:49
Implements the discretization specific parts of writing files.
A class which provides types for DUNE grid handles for communication.
Declare the basic properties used by the common infrastructure of the element-centered finite volume ...
Represents the stencil (finite volume geometry) of a single element in the ECFV discretization.
Uses communication on the grid to find the initial seed list of indices for methods which use element...
The base class for the finite volume discretization schemes.
The base class for the finite volume discretization schemes.
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition blackoilboundaryratevector.hh:37
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:242
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
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 ecfvdiscretization.hh:103
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 locking to prevent race conditions when linearizing the global system of equations in multi-threa...
Definition fvbaseproperties.hh:181