29template<
typename ValueType>
48 std::string fieldName,
103 std::string fieldName,
109 std::string collectionName
130 return boundaryConditions_;
135 std::vector<VolumeBoundary<ValueType>> boundaryConditions_;
136 std::optional<Database*> db_;
141 bool boundaryConditionsSet_ {
false};
147namespace volumeFieldDetail
153 auto out = target.
view();
154 auto rhs = other.
view();
158 KOKKOS_LAMBDA(
const localIdx i) { out[i] = out[i] ^ rhs[i]; },
176 volumeFieldDetail::crossInto(
Represents the boundary fields for a computational domain.
Represents the domain fields for a computational domain.
Represents an unstructured mesh in NeoN.
A class to contain the data and executors for a field and define some basic operations.
View< ValueType > view() &&=delete
Carries named field references for context-aware boundary conditions.
This class represents a mixin for a geometric field.
const UnstructuredMesh & mesh() const
Returns a const reference to the unstructured mesh object.
const BoundaryData< ValueType > & boundaryData() const
Returns a const reference to the boundary field.
const Executor & exec() const
Returns a const reference to the executor object.
const Vector< ValueType > & internalVector() const
Returns a const reference to the internal field.
Mixin for database registration for fields (volume/surface).
Represents a volume boundary field for a cell-centered finite volume method.
Represents a volume field in a finite volume method.
VolumeField(const VolumeField &other)
VolumeField(const Executor &exec, std::string name, const UnstructuredMesh &mesh, const Vector< ValueType > &internalVector, const std::vector< VolumeBoundary< ValueType > > &boundaryConditions)
Constructor for a VolumeField with a given internal field.
VolumeField< ValueType > & operator+=(const ValueType rhs)
void correctBoundaryConditions()
Corrects the boundary conditions of the surface field.
std::vector< VolumeBoundary< ValueType > > boundaryConditions() const
VolumeField(const Executor &exec, std::string fieldName, const UnstructuredMesh &mesh, const Field< ValueType > &domainVector, const std::vector< VolumeBoundary< ValueType > > &boundaryConditions, Database &db, std::string dbKey, std::string collectionName)
Constructor for a VolumeField with a given internal field and database.
ValueType VectorValueType
VolumeField(const Executor &exec, std::string name, const UnstructuredMesh &mesh, const Vector< ValueType > &internalVector, const BoundaryData< ValueType > &boundaryVectors, const std::vector< VolumeBoundary< ValueType > > &boundaryConditions)
Constructor for a VolumeField with a given internal and boundary field.
VolumeField< ValueType > & operator-=(const ValueType rhs)
void correctBoundaryConditions(const BoundaryContext &ctx)
VolumeField(const Executor &exec, std::string fieldName, const UnstructuredMesh &mesh, const std::vector< VolumeBoundary< ValueType > > &boundaryConditions)
Constructor for a uninitialized VolumeField.
VolumeField< Vec3 > cross(const VolumeField< Vec3 > &lhs, const VolumeField< Vec3 > &rhs)
Element-wise cross product of two Vec3 volume fields.
std::variant< SerialExecutor, CPUExecutor, GPUExecutor > Executor
void parallelFor(const ExecutorType &, std::pair< localIdx, localIdx > range, const Kernel &kernel, std::string name)