NeoFOAM
WIP Prototype of a modern OpenFOAM core
Loading...
Searching...
No Matches
gaussGreenDiv.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: MIT
2// SPDX-FileCopyrightText: 2024 NeoFOAM authors
3
4#pragma once
5
11
13{
14
15class GaussGreenDiv : public DivOperatorFactory::Register<GaussGreenDiv>
16{
17public:
18
19 static std::string name() { return "Gauss"; }
20
21 static std::string doc() { return "Gauss-Green Divergence"; }
22
23 static std::string schema() { return "none"; }
24
25 GaussGreenDiv(const Executor& exec, const UnstructuredMesh& mesh, const Input& inputs);
26
27 void
29 ) override;
30
31 void
33 ) override;
34
36 div(const SurfaceField<scalar>& faceFlux, VolumeField<scalar>& phi) override;
37
38 std::unique_ptr<DivOperatorFactory> clone() const override;
39
40private:
41
42 SurfaceInterpolation surfaceInterpolation_;
43};
44
45} // namespace NeoFOAM
A class to contain the data and executors for a field and define some basic operations.
Definition field.hpp:49
Represents an unstructured mesh in NeoFOAM.
VolumeField< scalar > div(const SurfaceField< scalar > &faceFlux, VolumeField< scalar > &phi) override
std::unique_ptr< DivOperatorFactory > clone() const override
GaussGreenDiv(const Executor &exec, const UnstructuredMesh &mesh, const Input &inputs)
void div(Field< scalar > &divPhi, const SurfaceField< scalar > &faceFlux, VolumeField< scalar > &phi) override
void div(VolumeField< scalar > &divPhi, const SurfaceField< scalar > &faceFlux, VolumeField< scalar > &phi) override
Represents a surface field in a finite volume method.
Represents a volume field in a finite volume method.
std::variant< Dictionary, TokenList > Input
Definition input.hpp:13
std::variant< SerialExecutor, CPUExecutor, GPUExecutor > Executor
Definition executor.hpp:16