58 std::unique_ptr<GeometrySchemeFactory> kernel,
67 std::unique_ptr<GeometrySchemeFactory> kernel
116 std::unique_ptr<GeometrySchemeFactory> kernel_;
126 mutable std::optional<SurfaceField<Vec3>> faceDeltaOwner_;
127 mutable std::optional<SurfaceField<Vec3>> faceDeltaNeighbour_;
128 mutable bool faceDeltasComputed_ =
false;
130 mutable bool sourceGeometryReleased_ =
false;
Represents an unstructured mesh in NeoN.
virtual void updateWeights(const Executor &exec, SurfaceField< scalar > &weights)=0
virtual void updateNonOrthDeltaCoeffs(const Executor &exec, SurfaceField< scalar > &nonOrthDeltaCoeffs)=0
virtual ~GeometrySchemeFactory()=default
virtual void updateNonOrthCorrectionVec3s(const Executor &exec, const SurfaceField< scalar > &nonOrthDeltaCoeffs, SurfaceField< Vec3 > &nonOrthCorrectionVec3s)=0
const SurfaceField< Vec3 > & nonOrthCorrectionVec3s() const
GeometryScheme(const UnstructuredMesh &mesh)
const SurfaceField< Vec3 > & faceDeltaOwner() const
void ensureFaceDeltas() const
virtual ~GeometryScheme()=default
const SurfaceField< scalar > & weights() const
static const std::shared_ptr< GeometryScheme > readOrCreate(const UnstructuredMesh &mesh)
const SurfaceField< scalar > & nonOrthDeltaCoeffs() const
GeometryScheme(const Executor &exec, std::unique_ptr< GeometrySchemeFactory > kernel, const SurfaceField< scalar > &weights, const SurfaceField< scalar > &nonOrthDeltaCoeffs, const SurfaceField< Vec3 > &nonOrthCorrectionVec3s)
const SurfaceField< Vec3 > & faceDeltaNeighbour() const
GeometryScheme(const Executor &exec, const UnstructuredMesh &mesh, std::unique_ptr< GeometrySchemeFactory > kernel)
Represents a surface field in a finite volume method.
std::variant< SerialExecutor, CPUExecutor, GPUExecutor > Executor