12#include <Kokkos_Core.hpp>
30template<
typename ValueType>
37template<
typename ValueType>
45 : Base(exec, mesh), geometryScheme_(
GeometryScheme::readOrCreate(mesh)) {};
48 : Base(exec, mesh), geometryScheme_(
GeometryScheme::readOrCreate(mesh)) {};
51 static std::string
name() {
return "linear"; }
53 static std::string
doc() {
return "linear interpolation"; }
55 static std::string
schema() {
return "none"; }
86 std::unique_ptr<SurfaceInterpolationFactory<ValueType>>
clone()
const override
88 return std::make_unique<Linear>(*
this);
93 const std::shared_ptr<GeometryScheme> geometryScheme_;
101namespace fvcc = finiteVolume::cellCentred;
Represents an unstructured mesh in NeoN.
const BoundaryData< ValueType > & boundaryData() const
Returns a const reference to the boundary field.
const Vector< ValueType > & internalVector() const
Returns a const reference to the internal field.
std::unique_ptr< SurfaceInterpolationFactory< ValueType > > clone() const override
Linear(const Executor &exec, const UnstructuredMesh &mesh)
static std::string schema()
void weight(const SurfaceField< scalar > &, const VolumeField< ValueType > &, SurfaceField< scalar > &weight) const override
Linear(const Executor &exec, const UnstructuredMesh &mesh, Input input)
static std::string name()
void interpolate(const VolumeField< ValueType > &src, SurfaceField< ValueType > &dst) const override
void weight(const VolumeField< ValueType > &, SurfaceField< scalar > &weight) const override
void interpolate(const SurfaceField< scalar > &, const VolumeField< ValueType > &src, SurfaceField< ValueType > &dst) const override
Represents a surface field in a finite volume method.
Represents a volume field in a finite volume method.
A template class for registering derived classes with a base class.
void computeLinearInterpolation(const VolumeField< ValueType > &src, const SurfaceField< scalar > &weights, SurfaceField< ValueType > &dst)
std::variant< Dictionary, TokenList > Input
std::variant< SerialExecutor, CPUExecutor, GPUExecutor > Executor