21template<
typename FieldValueType,
typename AssemblyType = FieldValueType>
30template<
typename FieldValueType,
typename AssemblyType = FieldValueType>
33 GaussGreenLaplacian<FieldValueType, AssemblyType>>
40 static std::string
name() {
return "Gauss"; }
42 static std::string
doc() {
return "Gauss-Green Laplacian"; }
44 static std::string
schema() {
return "none"; }
47 : Base(exec, mesh), surfaceInterpolation_(exec, mesh, inputs),
48 faceNormalGradient_(exec, mesh, inputs) {};
77 std::unique_ptr<LaplacianOperatorFactory<FieldValueType, AssemblyType>>
clone()
const override
79 return std::make_unique<GaussGreenLaplacian<FieldValueType, AssemblyType>>(*this);
92extern template class GaussGreenLaplacian<scalar>;
93extern template class GaussGreenLaplacian<Vec3>;
94extern template class GaussGreenLaplacian<Vec3, scalar>;
Represents an unstructured mesh in NeoN.
A class to contain the data and executors for a field and define some basic operations.
A class that represents a coefficient for the NeoN dsl.
std::unique_ptr< LaplacianOperatorFactory< FieldValueType, AssemblyType > > clone() const override
virtual VolumeField< FieldValueType > laplacian(const SurfaceField< scalar > &gamma, const VolumeField< FieldValueType > &phi, const dsl::Coeff coeff) const override
virtual void laplacian(Vector< FieldValueType > &lapPhi, const SurfaceField< scalar > &gamma, const VolumeField< FieldValueType > &phi, const dsl::Coeff coeff) override
static std::string name()
static std::string schema()
virtual void laplacian(VolumeField< FieldValueType > &lapPhi, const SurfaceField< scalar > &gamma, const VolumeField< FieldValueType > &phi, const dsl::Coeff coeff) override
GaussGreenLaplacian(const Executor &exec, const UnstructuredMesh &mesh, const Input &inputs)
virtual void laplacian(la::LinearSystem< AssemblyType, FieldValueType > &ls, const SurfaceField< scalar > &gamma, const VolumeField< FieldValueType > &phi, const dsl::Coeff coeff) override
Represents a surface field in a finite volume method.
Represents a volume field in a finite volume method.
A class representing a linear system of equations.
A template class for registering derived classes with a base class.
void computeLaplacianNonOrthCorrImpl(la::LinearSystem< AssemblyType, FieldValueType > &ls, const SurfaceField< scalar > &gamma, const VolumeField< FieldValueType > &phi, const dsl::Coeff coeff, const FaceNormalGradient< FieldValueType > &faceNormalGradient)
std::variant< Dictionary, TokenList > Input
std::variant< SerialExecutor, CPUExecutor, GPUExecutor > Executor