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