28#ifndef EWOMS_FV_BASE_BOUNDARY_CONTEXT_HH
29#define EWOMS_FV_BASE_BOUNDARY_CONTEXT_HH
33#include <dune/common/fvector.hh>
42template<
class TypeTag>
55 using Element =
typename GridView::template Codim<0>::Entity;
56 using IntersectionIterator =
typename GridView::IntersectionIterator;
57 using Intersection =
typename GridView::Intersection;
59 enum { dim = GridView::dimension };
60 enum { dimWorld = GridView::dimensionworld };
62 using CoordScalar =
typename GridView::ctype;
63 using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
64 using Vector = Dune::FieldVector<Scalar, dimWorld>;
79 if(intersectionIt_ ==
iend)
84 while (intersectionIt_ !=
iend && intersectionIt_->neighbor()) {
93 {
return elemCtx_.problem(); }
99 {
return elemCtx_.model(); }
105 {
return elemCtx_.gridView(); }
111 {
return elemCtx_.element(); }
123 {
return elemCtx_.gradientCalculator(); }
129 {
return elemCtx_.numDof(
timeIdx); }
135 {
return elemCtx_.numPrimaryDof(
timeIdx); }
141 {
return elemCtx_.numInteriorFaces(
timeIdx); }
147 {
return elemCtx_.stencil(
timeIdx).numBoundaryFaces(); }
153 {
return elemCtx_.stencil(
timeIdx); }
164 tmp /= tmp.two_norm();
200 {
return elemCtx_.focusDofIndex(); }
254 {
return *intersectionIt_; }
265 {
return intersectionIt_; }
268 const ElementContext& elemCtx_;
269 IntersectionIterator intersectionIt_;
Represents all quantities which available on boundary segments.
Definition fvbaseboundarycontext.hh:44
const GlobalPosition & pos(unsigned boundaryFaceIdx, unsigned timeIdx) const
Return the position of a local entity in global coordinates.
Definition fvbaseboundarycontext.hh:180
const GlobalPosition & cvCenter(unsigned boundaryFaceIdx, unsigned timeIdx) const
Return the position of a control volume's center in global coordinates.
Definition fvbaseboundarycontext.hh:189
Vector normal(unsigned boundaryFaceIdx, unsigned timeIdx) const
Returns the outer unit normal of the boundary segment.
Definition fvbaseboundarycontext.hh:161
size_t numInteriorFaces(unsigned timeIdx) const
Definition fvbaseboundarycontext.hh:140
unsigned globalSpaceIndex(unsigned boundaryFaceIdx, unsigned timeIdx) const
Return the global space index of the sub-control volume at the interior of a boundary segment.
Definition fvbaseboundarycontext.hh:219
const Stencil & stencil(unsigned timeIdx) const
Definition fvbaseboundarycontext.hh:152
FvBaseBoundaryContext(const ElementContext &elemCtx)
The constructor.
Definition fvbaseboundarycontext.hh:70
Scalar boundarySegmentArea(unsigned boundaryFaceIdx, unsigned timeIdx) const
Returns the area [m^2] of a given boudary segment.
Definition fvbaseboundarycontext.hh:171
unsigned focusDofIndex() const
Return the local sub-control volume index upon which the linearization is currently focused.
Definition fvbaseboundarycontext.hh:199
const Intersection intersection(unsigned) const
Return the intersection for the neumann segment.
Definition fvbaseboundarycontext.hh:253
const GridView & gridView() const
Definition fvbaseboundarycontext.hh:104
size_t numBoundaryFaces(unsigned timeIdx) const
Return the number of boundary segments of the current element.
Definition fvbaseboundarycontext.hh:146
const ElementContext & elementContext() const
Returns a reference to the element context object.
Definition fvbaseboundarycontext.hh:116
const IntensiveQuantities & intensiveQuantities(unsigned boundaryFaceIdx, unsigned timeIdx) const
Return the intensive quantities for the finite volume in the interiour of a boundary segment.
Definition fvbaseboundarycontext.hh:229
const Problem & problem() const
Definition fvbaseboundarycontext.hh:92
const Element & element() const
Definition fvbaseboundarycontext.hh:110
const GradientCalculator & gradientCalculator() const
Returns a reference to the current gradient calculator.
Definition fvbaseboundarycontext.hh:122
unsigned interiorScvIndex(unsigned boundaryFaceIdx, unsigned timeIdx) const
Return the local sub-control volume index of the interior of a boundary segment.
Definition fvbaseboundarycontext.hh:209
size_t numDof(unsigned timeIdx) const
Definition fvbaseboundarycontext.hh:128
size_t numPrimaryDof(unsigned timeIdx) const
Definition fvbaseboundarycontext.hh:134
const Model & model() const
Definition fvbaseboundarycontext.hh:98
const ExtensiveQuantities & extensiveQuantities(unsigned boundaryFaceIdx, unsigned timeIdx) const
Return the extensive quantities for a given boundary face.
Definition fvbaseboundarycontext.hh:241
IntersectionIterator & intersectionIt()
Return the intersection for the neumann segment.
Definition fvbaseboundarycontext.hh:264
Declare the properties used by the infrastructure code of the finite volume discretizations.
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