6#include <Kokkos_Core.hpp>
21template<
typename ValueType>
25 std::pair<localIdx, localIdx> range
30 auto [refGradient, value, valueFraction, refValue, faceCells] =
views(
44 ValueType internalCellValue = iVector[faceCells[i]];
45 value[i] = internalCellValue;
46 valueFraction[i] = 1.0;
47 refValue[i] = internalCellValue;
48 refGradient[i] = zero<ValueType>();
55template<
typename ValueType>
66 : Base(mesh, dict, patchID), mesh_(mesh)
74 static std::string
name() {
return "extrapolated"; }
76 static std::string
doc() {
return "TBD"; }
78 static std::string
schema() {
return "none"; }
80 virtual std::unique_ptr<VolumeBoundaryFactory<ValueType>>
clone() const final
82 return std::make_unique<Extrapolated>(*
this);
const Vector< T > & refGrad() const
Get the view storing the Neumann boundary values.
const Vector< T > & refValue() const
Get the view storing the Dirichlet boundary values.
const Vector< T > & value() const
Get the view storing the computed values from the boundary condition.
const Vector< scalar > & valueFraction() const
Get the view storing the fraction of the boundary value.
const labelVector & faceCells() const
Get the field of face cells.
A class representing a dictionary that stores key-value pairs.
Represents the domain fields for a computational domain.
const BoundaryData< ValueType > & boundaryData() const
const Executor & exec() const
const Vector< ValueType > & internalVector() const
Represents an unstructured mesh in NeoN.
const BoundaryMesh & boundaryMesh() const
Get the boundary mesh.
A template class for registering derived classes with a base class.
void extrapolateValue(Field< ValueType > &domainVector, const UnstructuredMesh &mesh, std::pair< localIdx, localIdx > range)
void parallelFor(const Executor &exec, std::pair< localIdx, localIdx > range, Kernel kernel, std::string name="parallelFor")
auto views(Types &... args)
Unpacks all views of the passed classes.