NeoN
WIP Prototype of a modern OpenFOAM core
Loading...
Searching...
No Matches
include
NeoN
dsl
implicit.hpp
Go to the documentation of this file.
1
// SPDX-License-Identifier: MIT
2
//
3
// SPDX-FileCopyrightText: 2023 NeoN authors
4
5
#pragma once
6
7
#include "
NeoN/core/primitives/scalar.hpp
"
8
#include "
NeoN/dsl/spatialOperator.hpp
"
9
#include "
NeoN/dsl/temporalOperator.hpp
"
10
#include "
NeoN/dsl/ddt.hpp
"
11
12
// TODO: decouple from fvcc
13
#include "
NeoN/finiteVolume/cellCentred/fields/volumeField.hpp
"
14
#include "
NeoN/finiteVolume/cellCentred/operators/ddtOperator.hpp
"
15
#include "
NeoN/finiteVolume/cellCentred/operators/divOperator.hpp
"
16
#include "
NeoN/finiteVolume/cellCentred/operators/laplacianOperator.hpp
"
17
#include "
NeoN/finiteVolume/cellCentred/operators/sourceTerm.hpp
"
18
19
namespace
fvcc
=
NeoN::finiteVolume::cellCentred
;
20
21
namespace
NeoN::dsl::imp
22
{
23
24
25
template
<
typename
ValueType>
26
TemporalOperator<ValueType>
ddt
(
fvcc::VolumeField<ValueType>
& phi)
27
{
28
return
fvcc::DdtOperator
(
dsl::Operator::Type::Implicit
, phi);
29
}
30
31
template
<
typename
ValueType>
32
SpatialOperator<ValueType>
33
source
(
fvcc::VolumeField<scalar>
& coeff,
fvcc::VolumeField<ValueType>
& phi)
34
{
35
return
SpatialOperator<ValueType>
(
fvcc::SourceTerm
(
dsl::Operator::Type::Implicit
, coeff, phi));
36
}
37
38
template
<
typename
ValueType>
39
SpatialOperator<ValueType>
40
div
(
fvcc::SurfaceField<scalar>
& faceFlux,
fvcc::VolumeField<ValueType>
& phi)
41
{
42
return
SpatialOperator<ValueType>
(
43
fvcc::DivOperator
(
dsl::Operator::Type::Implicit
, faceFlux, phi)
44
);
45
}
46
47
template
<
typename
ValueType>
48
SpatialOperator<ValueType>
49
laplacian
(
fvcc::SurfaceField<scalar>
& gamma,
fvcc::VolumeField<ValueType>
& phi)
50
{
51
return
SpatialOperator<ValueType>
(
52
fvcc::LaplacianOperator<ValueType>
(
dsl::Operator::Type::Implicit
, gamma, phi)
53
);
54
}
55
56
}
// namespace NeoN
NeoN::dsl::Operator::Type::Implicit
@ Implicit
NeoN::dsl::SpatialOperator
Definition
spatialOperator.hpp:54
NeoN::dsl::TemporalOperator
Definition
temporalOperator.hpp:57
NeoN::finiteVolume::cellCentred::DdtOperator
Definition
ddtOperator.hpp:20
NeoN::finiteVolume::cellCentred::DivOperator
Definition
divOperator.hpp:84
NeoN::finiteVolume::cellCentred::LaplacianOperator
Definition
laplacianOperator.hpp:87
NeoN::finiteVolume::cellCentred::SourceTerm
Definition
sourceTerm.hpp:20
NeoN::finiteVolume::cellCentred::SurfaceField
Represents a surface field in a finite volume method.
Definition
surfaceField.hpp:26
NeoN::finiteVolume::cellCentred::VolumeField
Represents a volume field in a finite volume method.
Definition
volumeField.hpp:27
ddtOperator.hpp
ddt.hpp
divOperator.hpp
laplacianOperator.hpp
NeoN::dsl::imp
Definition
implicit.hpp:22
NeoN::dsl::imp::source
SpatialOperator< ValueType > source(fvcc::VolumeField< scalar > &coeff, fvcc::VolumeField< ValueType > &phi)
Definition
implicit.hpp:33
NeoN::dsl::imp::ddt
TemporalOperator< ValueType > ddt(fvcc::VolumeField< ValueType > &phi)
Definition
implicit.hpp:26
NeoN::dsl::imp::div
SpatialOperator< ValueType > div(fvcc::SurfaceField< scalar > &faceFlux, fvcc::VolumeField< ValueType > &phi)
Definition
implicit.hpp:40
NeoN::dsl::imp::laplacian
SpatialOperator< ValueType > laplacian(fvcc::SurfaceField< scalar > &gamma, fvcc::VolumeField< ValueType > &phi)
Definition
implicit.hpp:49
NeoN::finiteVolume::cellCentred
Definition
fieldCollection.hpp:18
scalar.hpp
sourceTerm.hpp
spatialOperator.hpp
temporalOperator.hpp
volumeField.hpp
Generated by
1.9.8