25#ifndef __BITPIT_VOLUME_KERNEL_HPP__
26#define __BITPIT_VOLUME_KERNEL_HPP__
28#include "patch_kernel.hpp"
29#include "surface_kernel.hpp"
44 virtual bool isPointInside(
const std::array<double, 3> &point)
const = 0;
45 bool isPointInside(
long id,
double x,
double y,
double z)
const;
46 virtual bool isPointInside(
long id,
const std::array<double, 3> &point)
const = 0;
48 virtual double evalCellVolume(
long id)
const = 0;
50 virtual double evalInterfaceArea(
long id)
const = 0;
51 virtual std::array<double,3> evalInterfaceNormal(
long id)
const = 0;
58#if BITPIT_ENABLE_MPI==1
The Cell class defines the cells.
The PatchKernel class provides an interface for defining patches.
Metafunction for generating a list of elements that can be either stored in an external vectror or,...
The SurfaceKernel class provides an interface for defining surface patches.
The VolumeKernel class provides an interface for defining volume patches.
int getFaceOrderedLocalVertex(const Cell &cell, int face, std::size_t n) const
void extractEnvelope(SurfaceKernel &envelope) const
int getSurfaceCodimension() const override
int getPointCodimension() const override
int getLineCodimension() const override
int getVolumeCodimension() const override
bool isPointInside(double x, double y, double z) const
bool areFaceVerticesOrdered(const Cell &cell, int face) const
ConstProxyVector< long > getFaceOrderedVertexIds(const Cell &cell, int face) const
VolumeKernel(MPI_Comm communicator, std::size_t haloSize, AdaptionMode adaptionMode, PartitioningMode partitioningMode)