17template<
typename ValueType>
31template<
typename ValueType>
40 : flux_(flux), type_(dsl::Operator::Type::Explicit), coeffs_(1.0) {};
55 const auto exec = flux_.exec();
58 surfaceIntegrate<ValueType>(
64 this->flux_.internalVector().view(),
65 this->flux_.boundaryData().value().view(),
81 std::string
getName()
const {
return "SurfaceIntegrate"; }
const labelVector & faceOwners() const
Get the list of labels of owner cells of boundary faces.
A class representing a dictionary that stores key-value pairs.
Represents an unstructured mesh in NeoN.
const labelVector & faceOwners() const
Get the list of labels of face owner cells.
const scalarVector & cellVolumes() const
Get the field of cell volumes in the mesh.
localIdx nInternalFaces() const
Get the number of internal faces in the mesh.
const labelVector & faceNeighbors() const
Get the list of labels of face neighbor cells.
const BoundaryMesh & boundaryMesh() const
Get the boundary mesh.
A class to contain the data and executors for a field and define some basic operations.
View< ValueType > view() &&=delete
A class that represents a coefficient for the NeoN dsl.
Represents a surface field in a finite volume method.
SurfaceIntegrate(const SurfaceField< ValueType > &flux)
Dictionary getConfig() const
dsl::Coeff & getCoefficient()
std::string getName() const
void explicitOperation(Vector< ValueType > &source) const
SurfaceIntegrate(const SurfaceIntegrate &surfaceIntegrate)
ValueType VectorValueType
const dsl::Coeff & getCoefficient() const
const Executor & exec() const
dsl::Operator::Type getType() const
void surfaceIntegrate(const Executor &exec, localIdx nInternalFaces, View< const label > internalFaceNeighbors, View< const label > internalFaceOwners, View< const label > boundaryFaceOwners, View< const ValueType > flux, View< const ValueType > bFlux, View< const scalar > v, View< ValueType > res, const dsl::Coeff operatorScaling)
std::variant< Dictionary, TokenList > Input
std::variant< SerialExecutor, CPUExecutor, GPUExecutor > Executor