ASL
0.1.7
Advanced Simulation Library
Toggle main menu visibility
Loading...
Searching...
No Matches
src
num
aslFDAdvectionDiffusion2.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 ASLFDADVECTIONDIFFUSION2_H
25
#define ASLFDADVECTIONDIFFUSION2_H
26
27
#include "
aslNumMethod.h
"
28
29
30
namespace
acl
{
31
class
Kernel
;
32
class
VectorOfElementsData
;
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
59
class
FDAdvectionDiffusion2
:
public
NumMethod
60
{
61
public
:
62
typedef
SPDataWithGhostNodesACLData
Data
;
63
typedef
SPAbstractDataWithGhostNodes
ScalarField
;
64
private
:
65
std::unique_ptr<acl::Kernel> kernel;
66
std::vector<Data> cData;
67
std::vector<Data> cInternalData;
68
69
bool
electricField;
70
ScalarField
efPhi;
71
ScalarField
efFactor1;
72
ScalarField
efFactor2;
73
std::vector<ScalarField> efChargeAnd;
74
75
const
VectorTemplate
* vectorTemplate;
76
77
int
t;
78
std::vector<double> diffusionCoefficient;
79
public
:
80
FDAdvectionDiffusion2
();
81
FDAdvectionDiffusion2
(
Data
c,
double
dC,
const
VectorTemplate
* vT);
82
void
setDiffusionCoefficient
(
double
d,
unsigned
int
i=0);
83
double
getDiffusionCoefficient
(
unsigned
int
i=0);
84
void
setVectorTemplate
(
VectorTemplate
* vT);
85
VectorTemplate
setVectorTemplate
(
const
VectorTemplate
* vT);
86
void
setElectricFieldParameters
(
ScalarField
phi,
ScalarField
f1,
ScalarField
f2,
ScalarField
qAnd);
87
virtual
void
init
();
88
virtual
void
execute
();
89
void
addComponent
(
Data
c,
double
dC);
90
void
addComponent
(
Data
c,
double
dC,
ScalarField
qAnd);
91
92
};
93
94
typedef
std::shared_ptr<FDAdvectionDiffusion2>
SPFDAdvectionDiffusion2
;
95
96
97
}
// asl
98
#endif
// ASLFDADVECTIONDIFFUSION2_H
aslNumMethod.h
acl::Kernel
OpenCl Kernel generator.
Definition
aclKernel.h:49
acl::VectorOfElementsData
The class represents several ElementData.
Definition
aclVectorOfElementsDef.h:57
asl::AbstractDataWithGhostNodes
Definition
aslDataWithGhostNodes.h:39
asl::DataWithGhostNodes
Definition
aslDataWithGhostNodes.h:58
asl::FDAdvectionDiffusion2::execute
virtual void execute()
Executes the numerical procedure.
asl::FDAdvectionDiffusion2::FDAdvectionDiffusion2
FDAdvectionDiffusion2(Data c, double dC, const VectorTemplate *vT)
asl::FDAdvectionDiffusion2::setDiffusionCoefficient
void setDiffusionCoefficient(double d, unsigned int i=0)
asl::FDAdvectionDiffusion2::FDAdvectionDiffusion2
FDAdvectionDiffusion2()
asl::FDAdvectionDiffusion2::ScalarField
SPAbstractDataWithGhostNodes ScalarField
Definition
aslFDAdvectionDiffusion2.h:63
asl::FDAdvectionDiffusion2::addComponent
void addComponent(Data c, double dC, ScalarField qAnd)
asl::FDAdvectionDiffusion2::addComponent
void addComponent(Data c, double dC)
asl::FDAdvectionDiffusion2::init
virtual void init()
Builds the necesery internal data and kernels.
asl::FDAdvectionDiffusion2::Data
SPDataWithGhostNodesACLData Data
Definition
aslFDAdvectionDiffusion2.h:62
asl::FDAdvectionDiffusion2::setVectorTemplate
VectorTemplate setVectorTemplate(const VectorTemplate *vT)
asl::FDAdvectionDiffusion2::getDiffusionCoefficient
double getDiffusionCoefficient(unsigned int i=0)
asl::FDAdvectionDiffusion2::setVectorTemplate
void setVectorTemplate(VectorTemplate *vT)
asl::FDAdvectionDiffusion2::setElectricFieldParameters
void setElectricFieldParameters(ScalarField phi, ScalarField f1, ScalarField f2, ScalarField qAnd)
asl::NumMethod
Definition
aslNumMethod.h:35
asl::VectorTemplate
Defines set of vectros with several properties.
Definition
aslTemplates.h:88
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::SPFDAdvectionDiffusion2
std::shared_ptr< FDAdvectionDiffusion2 > SPFDAdvectionDiffusion2
Definition
aslFDAdvectionDiffusion2.h:94
Generated by
1.17.0