ASL
0.1.7
Advanced Simulation Library
Toggle main menu visibility
Loading...
Searching...
No Matches
src
num
aslFDElChemKinetics.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 ASLFDELCHEMKINETICS_H
25
#define ASLFDELCHEMKINETICS_H
26
27
#include "
aslSingleKernelNM.h
"
28
#include "
acl/aclMath/aclVectorOfElementsDef.h
"
29
30
31
namespace
acl
32
{
33
class
VectorOfElementsData
;
34
class
VectorOfElements
;
35
}
36
37
namespace
asl
38
{
39
class
VectorTemplate
;
40
template
<
typename
V>
class
DataWithGhostNodes
;
41
typedef
DataWithGhostNodes<acl::VectorOfElementsData>
DataWithGhostNodesACLData
;
42
typedef
std::shared_ptr<DataWithGhostNodesACLData>
SPDataWithGhostNodesACLData
;
43
45
88
class
FDBVKinetics
:
public
SingleKernelMapNM
89
{
90
public
:
91
typedef
SPDataWithGhostNodesACLData
Data
;
92
typedef
SPAbstractDataWithGhostNodes
Field
;
93
typedef
acl::VectorOfElements
Param
;
94
95
private
:
96
acl::SPKernel
kernelJ;
97
std::vector<Data> aI;
98
Data
efSPhi;
99
Field
phi;
100
101
vector<double> nI;
102
Param
j0;
103
Param
beta;
104
double
n;
105
106
virtual
void
init0
();
107
public
:
108
FDBVKinetics
(
Data
a0,
109
double
n0,
110
Data
aI,
111
double
nI,
112
Data
phiS,
113
Field
phi,
114
const
Param
& j0,
115
const
Param
& beta,
116
double
n);
117
void
setElectricFieldSource
(
Field
phi);
118
Field
getElectricFieldSource
()
const
;
119
inline
Data
&
getAI
(
unsigned
int
i=0);
120
void
addAI
(
Data
ai,
double
ni);
121
void
executeJ
();
122
};
123
124
typedef
std::shared_ptr<FDBVKinetics>
SPFDBVKinetics
;
125
126
127
SPFDBVKinetics
generateFDBVKinetics
(
SPDataWithGhostNodesACLData
a0,
128
double
n0,
129
SPDataWithGhostNodesACLData
aI,
130
double
nI,
131
SPDataWithGhostNodesACLData
phiS,
132
SPAbstractDataWithGhostNodes
phi,
133
double
j0,
134
double
beta,
135
double
n);
136
137
138
139
// ------------------------- Implementation ------------------------
140
141
inline
FDBVKinetics::Data
&
FDBVKinetics::getAI
(
unsigned
int
i)
142
{
143
return
aI[i];
144
}
145
146
}
// asl
147
#endif
// ASLFDADVECTIONDIFFUSION_H
aclVectorOfElementsDef.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::DataWithGhostNodes
Definition
aslDataWithGhostNodes.h:58
asl::FDBVKinetics::Param
acl::VectorOfElements Param
Definition
aslFDElChemKinetics.h:93
asl::FDBVKinetics::executeJ
void executeJ()
asl::FDBVKinetics::Field
SPAbstractDataWithGhostNodes Field
Definition
aslFDElChemKinetics.h:92
asl::FDBVKinetics::getElectricFieldSource
Field getElectricFieldSource() const
asl::FDBVKinetics::getAI
Data & getAI(unsigned int i=0)
Definition
aslFDElChemKinetics.h:141
asl::FDBVKinetics::addAI
void addAI(Data ai, double ni)
asl::FDBVKinetics::Data
SPDataWithGhostNodesACLData Data
Definition
aslFDElChemKinetics.h:91
asl::FDBVKinetics::setElectricFieldSource
void setElectricFieldSource(Field phi)
asl::FDBVKinetics::FDBVKinetics
FDBVKinetics(Data a0, double n0, Data aI, double nI, Data phiS, Field phi, const Param &j0, const Param &beta, double n)
asl::SingleKernelMapNM::SingleKernelMapNM
SingleKernelMapNM(const acl::KernelConfiguration &kernelCongig)
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
acl
Advanced Computational Language.
Definition
acl.h:41
acl::SPKernel
std::shared_ptr< Kernel > SPKernel
Definition
aclKernelMerger.h:35
asl
Advanced Simulation Library.
Definition
aslDataInc.h:31
asl::DataWithGhostNodesACLData
DataWithGhostNodes< acl::VectorOfElementsData > DataWithGhostNodesACLData
Definition
aslGenerators.h:46
asl::generateFDBVKinetics
SPFDBVKinetics generateFDBVKinetics(SPDataWithGhostNodesACLData a0, double n0, SPDataWithGhostNodesACLData aI, double nI, SPDataWithGhostNodesACLData phiS, SPAbstractDataWithGhostNodes phi, double j0, double beta, double n)
asl::SPFDBVKinetics
std::shared_ptr< FDBVKinetics > SPFDBVKinetics
Definition
aslFDElChemKinetics.h:124
asl::SPAbstractDataWithGhostNodes
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes
Definition
aslGenerators.h:51
asl::SPDataWithGhostNodesACLData
std::shared_ptr< DataWithGhostNodesACLData > SPDataWithGhostNodesACLData
Definition
aslGenerators.h:47
Generated by
1.17.0