ASL
0.1.7
Advanced Simulation Library
Toggle main menu visibility
Loading...
Searching...
No Matches
src
num
aslFDAdvectionDiffusion.h
Go to the documentation of this file.
1
/*
2
* Advanced Simulation Library <http://asl.org.il>
3
*
4
* Copyright 2015 Avtech Scientific <http://avtechscientific.com>
5
*
6
*
7
* This file is part of Advanced Simulation Library (ASL).
8
*
9
* ASL is free software: you can redistribute it and/or modify it
10
* under the terms of the GNU Affero General Public License as
11
* published by the Free Software Foundation, version 3 of the License.
12
*
13
* ASL is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU Affero General Public License for more details.
17
*
18
* You should have received a copy of the GNU Affero General Public License
19
* along with ASL. If not, see <http://www.gnu.org/licenses/>.
20
*
21
*/
22
23
24
#ifndef ASLFDADVECTIONDIFFUSION_H
25
#define ASLFDADVECTIONDIFFUSION_H
26
27
#include "
aslSingleKernelNM.h
"
28
29
namespace
acl
30
{
31
class
VectorOfElementsData
;
32
class
VectorOfElements
;
33
}
34
35
namespace
asl
36
{
37
class
VectorTemplate
;
38
template
<
typename
V>
class
DataWithGhostNodes
;
39
typedef
DataWithGhostNodes<acl::VectorOfElementsData>
DataWithGhostNodesACLData
;
40
typedef
std::shared_ptr<DataWithGhostNodesACLData>
SPDataWithGhostNodesACLData
;
41
class
AbstractDataWithGhostNodes
;
42
typedef
std::shared_ptr<AbstractDataWithGhostNodes>
SPAbstractDataWithGhostNodes
;
43
45
60
class
FDAdvectionDiffusion
:
public
SingleKernelNM
61
{
62
public
:
63
typedef
SPDataWithGhostNodesACLData
Data
;
64
typedef
SPAbstractDataWithGhostNodes
Field
;
65
66
private
:
67
std::vector<Data> cData;
68
std::vector<Data> cInternalData;
69
70
bool
electricField;
71
Field
efPhi;
72
Field
efFactor1;
73
Field
efFactor2;
74
std::vector<Field> efChargeAnd;
75
76
Field
velocity;
78
Field
distributionFunction;
79
bool
compressibilityCorrectionFlag;
80
81
const
VectorTemplate
* vectorTemplate;
82
83
int
t;
84
std::vector<acl::VectorOfElements> diffusionCoefficient;
85
86
virtual
void
init0
();
87
virtual
void
postProcessing
();
88
public
:
89
FDAdvectionDiffusion
();
90
FDAdvectionDiffusion
(
Data
c,
91
const
acl::VectorOfElements
& dC,
92
const
VectorTemplate
* vT);
93
void
setDiffusionCoefficient
(
acl::VectorOfElements
d,
94
unsigned
int
i = 0);
95
inline
const
acl::VectorOfElements
&
getDiffusionCoefficient
(
unsigned
int
i=0)
const
;
96
void
setVectorTemplate
(
VectorTemplate
* vT);
97
inline
const
VectorTemplate
*
getVectorTemplate
()
const
;
98
void
setElectricFieldParameters
(
Field
phi,
99
Field
f1,
100
Field
f2,
101
Field
qAnd);
102
void
setVelocity
(
Field
v,
bool
compressibilityCorrection=
false
);
103
void
setDistributionFunction
(
Field
f);
104
105
inline
Field
getVelocity
();
106
inline
Field
getDistributionFunction
();
107
inline
std::vector<Data> &
getData
();
108
void
addComponent
(
Data
c,
acl::VectorOfElements
& dC);
109
void
addComponent
(
Data
c,
acl::VectorOfElements
& dC,
Field
qAnd);
110
111
};
112
113
typedef
std::shared_ptr<FDAdvectionDiffusion>
SPFDAdvectionDiffusion
;
114
125
SPFDAdvectionDiffusion
generateFDAdvectionDiffusion
(
SPDataWithGhostNodesACLData
c,
126
double
diffustionCoeff,
127
SPAbstractDataWithGhostNodes
v,
128
const
VectorTemplate
* vt,
129
bool
compressibilityCorrection =
false
);
130
140
SPFDAdvectionDiffusion
generateFDAdvectionDiffusion
(
SPDataWithGhostNodesACLData
c,
141
double
diffustionCoeff,
142
const
VectorTemplate
* vt);
143
144
// ------------------------- Implementation ------------------------
145
146
inline
FDAdvectionDiffusion::Field
FDAdvectionDiffusion::getVelocity
()
147
{
148
return
velocity;
149
}
150
151
inline
FDAdvectionDiffusion::Field
FDAdvectionDiffusion::getDistributionFunction
()
152
{
153
return
distributionFunction;
154
}
155
156
inline
std::vector<FDAdvectionDiffusion::Data> &
FDAdvectionDiffusion::getData
()
157
{
158
return
cData;
159
}
160
161
inline
const
VectorTemplate
*
FDAdvectionDiffusion::getVectorTemplate
()
const
162
{
163
return
vectorTemplate;
164
}
165
166
inline
const
acl::VectorOfElements
&
167
FDAdvectionDiffusion::getDiffusionCoefficient
(
unsigned
int
i)
const
168
{
169
return
diffusionCoefficient[i];
170
}
171
172
}
// asl
173
#endif
// ASLFDADVECTIONDIFFUSION_H
aslSingleKernelNM.h
acl::VectorOfElementsData
The class represents several ElementData.
Definition
aclVectorOfElementsDef.h:57
acl::VectorOfElements
The class represents several Element.
Definition
aclVectorOfElementsDef.h:92
asl::AbstractDataWithGhostNodes
Definition
aslDataWithGhostNodes.h:39
asl::DataWithGhostNodes
Definition
aslDataWithGhostNodes.h:58
asl::FDAdvectionDiffusion::setVectorTemplate
void setVectorTemplate(VectorTemplate *vT)
asl::FDAdvectionDiffusion::getDistributionFunction
Field getDistributionFunction()
Definition
aslFDAdvectionDiffusion.h:151
asl::FDAdvectionDiffusion::addComponent
void addComponent(Data c, acl::VectorOfElements &dC)
asl::FDAdvectionDiffusion::getVelocity
Field getVelocity()
Definition
aslFDAdvectionDiffusion.h:146
asl::FDAdvectionDiffusion::FDAdvectionDiffusion
FDAdvectionDiffusion(Data c, const acl::VectorOfElements &dC, const VectorTemplate *vT)
asl::FDAdvectionDiffusion::setDistributionFunction
void setDistributionFunction(Field f)
asl::FDAdvectionDiffusion::FDAdvectionDiffusion
FDAdvectionDiffusion()
asl::FDAdvectionDiffusion::Field
SPAbstractDataWithGhostNodes Field
Definition
aslFDAdvectionDiffusion.h:64
asl::FDAdvectionDiffusion::getVectorTemplate
const VectorTemplate * getVectorTemplate() const
Definition
aslFDAdvectionDiffusion.h:161
asl::FDAdvectionDiffusion::addComponent
void addComponent(Data c, acl::VectorOfElements &dC, Field qAnd)
asl::FDAdvectionDiffusion::setVelocity
void setVelocity(Field v, bool compressibilityCorrection=false)
asl::FDAdvectionDiffusion::getData
std::vector< Data > & getData()
Definition
aslFDAdvectionDiffusion.h:156
asl::FDAdvectionDiffusion::Data
SPDataWithGhostNodesACLData Data
Definition
aslFDAdvectionDiffusion.h:63
asl::FDAdvectionDiffusion::setDiffusionCoefficient
void setDiffusionCoefficient(acl::VectorOfElements d, unsigned int i=0)
asl::FDAdvectionDiffusion::setElectricFieldParameters
void setElectricFieldParameters(Field phi, Field f1, Field f2, Field qAnd)
asl::FDAdvectionDiffusion::getDiffusionCoefficient
const acl::VectorOfElements & getDiffusionCoefficient(unsigned int i=0) const
Definition
aslFDAdvectionDiffusion.h:167
asl::SingleKernelNM::SingleKernelNM
SingleKernelNM(const acl::KernelConfiguration &kernelCongig)
asl::SingleKernelNM::postProcessing
virtual void postProcessing()
the function executed after kernel->compute()
asl::SingleKernelNM::init0
virtual void init0()=0
full initialisation but without kernel->setup()
asl::VectorTemplate
Defines set of vectros with several properties.
Definition
aslTemplates.h:88
asl::generateFDAdvectionDiffusion
SPFDAdvectionDiffusion generateFDAdvectionDiffusion(SPDataWithGhostNodesACLData c, double diffustionCoeff, SPAbstractDataWithGhostNodes v, const VectorTemplate *vt, bool compressibilityCorrection=false)
acl
Advanced Computational Language.
Definition
acl.h:41
asl
Advanced Simulation Library.
Definition
aslDataInc.h:31
asl::DataWithGhostNodesACLData
DataWithGhostNodes< acl::VectorOfElementsData > DataWithGhostNodesACLData
Definition
aslGenerators.h:46
asl::SPAbstractDataWithGhostNodes
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes
Definition
aslGenerators.h:51
asl::SPDataWithGhostNodesACLData
std::shared_ptr< DataWithGhostNodesACLData > SPDataWithGhostNodesACLData
Definition
aslGenerators.h:47
asl::SPFDAdvectionDiffusion
std::shared_ptr< FDAdvectionDiffusion > SPFDAdvectionDiffusion
Definition
aslFDAdvectionDiffusion.h:113
Generated by
1.17.0