ASL  0.1.7
Advanced Simulation Library
aslBasicBC.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 ASLBASICBC_H
25 #define ASLBASICBC_H
26 
27 #include "aslBCond.h"
28 #include <data/aslDataWithGhostNodes.h>
29 #include <acl/aclMath/aclVectorOfElementsDef.h>
30 
31 
32 namespace acl{
33  class Kernel;
34  typedef std::shared_ptr<Kernel> SPKernel;
35 }
36 
37 
38 
39 namespace asl
40 {
41  template <typename T> class UValue;
42  class PositionFunction;
43  typedef std::shared_ptr<PositionFunction> SPPositionFunction;
44 
45 
47 
50  class BCConstantValue:public BCond
51  {
52  public:
55  protected:
58  public:
60  virtual void execute();
61  virtual void init();
63  };
64 
66 
70  {
71  public:
74  protected:
77  public:
79  const acl::VectorOfElements & v,
80  Data map);
82  virtual void execute();
83  virtual void init();
85  };
86 
88 
92  {
93  public:
96  protected:
99  public:
101  const acl::VectorOfElements & v,
102  Data map,
103  const VectorTemplate *const t);
105  virtual void execute();
106  virtual void init();
108  };
109 
111 
115  {
116  public:
119  protected:
122  public:
124  SPPositionFunction val,
125  Data map);
127  virtual void execute();
128  virtual void init();
130  };
131 
132 
134 
138  double v,
139  const std::vector<SlicesNames> & sl);
141 
145  UValue<double> & v,
146  const std::vector<SlicesNames> & sl);
148 
152  UValue<AVec<float>> & v,
153  const std::vector<SlicesNames> & sl);
155 
159  AVec<> v,
160  const std::vector<SlicesNames> & sl);
161 
164  double v,
166 
169  AVec<> v,
171 
176 
179  double v,
181  const VectorTemplate *const t);
182 
185  AVec<> v,
187  const VectorTemplate *const t);
188 
189 
192  {
193  public:
196  protected:
199  public:
201  const acl::VectorOfElements & v,
202  const VectorTemplate *const t);
203  virtual void execute();
204  virtual void init();
206  };
207 
210  {
211  public:
214  protected:
217  public:
219  const acl::VectorOfElements & v,
220  Data map,
221  const VectorTemplate *const t);
223  const acl::VectorOfElements & v,
224  Data map,
226  const VectorTemplate *const t);
228  virtual void execute();
229  virtual void init();
230  void setValue(const acl::VectorOfElements & v);
231  };
232 
235  double v,
236  const VectorTemplate *const t,
237  const std::vector<SlicesNames> & sl);
238 
241  double v,
243  const VectorTemplate *const t);
246  double v,
248  SPAbstractDataWithGhostNodes computatinalDomain,
249  const VectorTemplate *const t);
250 
253  AVec<> v,
255  const VectorTemplate *const t);
256 
259  double v,
261  const VectorTemplate *const t);
264  double v,
266  SPAbstractDataWithGhostNodes computatinalDomain,
267  const VectorTemplate *const t);
268 
271  AVec<> v,
273  const VectorTemplate *const t);
274 
276 
279  class BCConstantSource:public BCond
280  {
281  public:
284  protected:
286  cl_double value;
287  public:
288  BCConstantSource(Data d, cl_double v);
289  virtual void execute();
290  virtual void init();
291  void setValue(cl_double value);
292  };
293 
294 
296 
300  {
301  public:
304  protected:
307  public:
308  BCDirectCopier(Data dSource,Data dDestination);
309  virtual void execute();
310  virtual void init();
311  };
312 
314 
318  {
319  public:
321  protected:
324  cl_double value;
325  public:
326  BCSConstantValue(Data d, cl_double v);
327  virtual void execute();
328  virtual void init();
329  };
330 
331 
332 
333 } //asl
334 
335 #endif //ASLBASICBC_H
asl::generateBCConstantValueMiddlePoint
SPNumMethod generateBCConstantValueMiddlePoint(SPAbstractDataWithGhostNodes d, double v, SPAbstractDataWithGhostNodes map, const VectorTemplate *const t)
Bondary condition that puts fixed value in each point
asl::BCDirectCopier::BCDirectCopier
BCDirectCopier(Data dSource, Data dDestination)
asl::BCConstantGradient::init
virtual void init()
Builds the necesery internal data and kernels.
asl::generateBCConstantValue
SPBCond generateBCConstantValue(SPAbstractDataWithGhostNodes d, double v, const std::vector< SlicesNames > &sl)
Bondary condition that puts fixed value in each point.
asl::BCSConstantValue::init
virtual void init()
Builds the necesery internal data and kernels.
asl::BCSConstantValue::value
cl_double value
Definition: aslBasicBC.h:324
asl::BCConstantValueMiddlePointMap::~BCConstantValueMiddlePointMap
~BCConstantValueMiddlePointMap()
asl::BCConstantValueMiddlePointMap::value
acl::VectorOfElements value
Definition: aslBasicBC.h:98
asl::SPNumMethod
std::shared_ptr< NumMethod > SPNumMethod
Definition: aslNumMethod.h:44
asl::BCConstantValueMap::Data
SPAbstractDataWithGhostNodes Data
Definition: aslBasicBC.h:72
asl::BCValuePFMap::data
Data data
Definition: aslBasicBC.h:120
asl::SPBCond
std::shared_ptr< BCond > SPBCond
Definition: aslBCond.h:88
asl::BCConstantValueMiddlePointMap::execute
virtual void execute()
Executes the numerical procedure.
asl::BCConstantGradientMap::value
acl::VectorOfElements value
Definition: aslBasicBC.h:216
asl::BCConstantSource::value
cl_double value
Definition: aslBasicBC.h:286
asl::BCConstantValueMiddlePointMap::init
virtual void init()
Builds the necesery internal data and kernels.
asl::SPDataWithGhostNodesACLData
std::shared_ptr< DataWithGhostNodesACLData > SPDataWithGhostNodesACLData
Definition: aslGenerators.h:47
asl::BCDirectCopier::kernel
acl::SPKernel kernel
Definition: aslBasicBC.h:303
asl::BCValuePFMap
Bondary condition that puts fixed value in each point.
Definition: aslBasicBC.h:115
acl::SPKernel
std::shared_ptr< Kernel > SPKernel
Definition: aclKernelMerger.h:34
asl::generateBCConstantGradient2
SPNumMethod generateBCConstantGradient2(SPAbstractDataWithGhostNodes d, double v, SPAbstractDataWithGhostNodes map, const VectorTemplate *const t)
Bondary condition that makes fixed gradient, second order accuracy
asl::BCConstantGradient::Data
SPAbstractDataWithGhostNodes Data
Definition: aslBasicBC.h:194
asl::BCConstantValueMap::execute
virtual void execute()
Executes the numerical procedure.
asl::BCValuePFMap::setValue
void setValue(SPPositionFunction v)
asl::BCConstantValueMap::init
virtual void init()
Builds the necesery internal data and kernels.
asl::BCDirectCopier::source
Data & source
Definition: aslBasicBC.h:305
asl::BCConstantValue::data
Data data
Definition: aslBasicBC.h:56
asl::BCConstantSource::data
Data data
Definition: aslBasicBC.h:285
asl::BCConstantSource::execute
virtual void execute()
Executes the numerical procedure.
asl::BCondConnector
Virtual class describes general interface for boundary conditions which connect two datas.
Definition: aslBCond.h:190
asl::BCConstantValueMap::value
acl::VectorOfElements value
Definition: aslBasicBC.h:76
asl::BCValuePFMap::~BCValuePFMap
~BCValuePFMap()
aslBCond.h
asl::BCConstantGradient::setValue
void setValue(const acl::VectorOfElements &value)
asl::BCConstantValue
Bondary condition that puts fixed value in each point.
Definition: aslBasicBC.h:51
asl::BCDirectCopier::destination
Data & destination
Definition: aslBasicBC.h:306
asl::BCConstantValue::init
virtual void init()
Builds the necesery internal data and kernels.
asl::UValue< double >
asl::BCValuePFMap::init
virtual void init()
Builds the necesery internal data and kernels.
asl::BCConstantSource::setValue
void setValue(cl_double value)
asl::BCConstantSource
Bondary condition that adds fixed value to one in each point.
Definition: aslBasicBC.h:280
asl::BCConstantSource::init
virtual void init()
Builds the necesery internal data and kernels.
asl::BCConstantGradient::kernel
acl::SPKernel kernel
Definition: aslBasicBC.h:195
asl::BCondSlice
Virtual class describes general interface for boundary conditions.
Definition: aslBCond.h:228
asl::BCDirectCopier::Data
SPDataWithGhostNodesACLData Data
Definition: aslBasicBC.h:302
asl::BCConstantGradientMap::BCConstantGradientMap
BCConstantGradientMap(Data d, const acl::VectorOfElements &v, Data map, const VectorTemplate *const t)
asl::BCConstantGradient::BCConstantGradient
BCConstantGradient(Data d, const acl::VectorOfElements &v, const VectorTemplate *const t)
acl::VectorOfElements
The class represents several Element.
Definition: aclVectorOfElementsDef.h:92
asl::BCConstantValueMap
Bondary condition that puts fixed value in each point.
Definition: aslBasicBC.h:70
asl::BCValuePFMap::execute
virtual void execute()
Executes the numerical procedure.
asl::BCConstantValue::BCConstantValue
BCConstantValue(Data d, const acl::VectorOfElements &v)
asl::BCValuePFMap::value
SPPositionFunction value
Definition: aslBasicBC.h:121
asl::BCConstantGradientMap::init
virtual void init()
Builds the necesery internal data and kernels.
asl::BCondWithMap::map
SPAbstractDataWithGhostNodes map
boundary description for the particular BC
Definition: aslBCond.h:111
asl::BCConstantGradientMap::BCConstantGradientMap
BCConstantGradientMap(Data d, const acl::VectorOfElements &v, Data map, Data computationalDomain, const VectorTemplate *const t)
asl::BCondWithMap::computationalDomain
SPAbstractDataWithGhostNodes computationalDomain
Computational domain which contains all boundaries and the particular boundary as well.
Definition: aslBCond.h:114
asl::BCSConstantValue::BCSConstantValue
BCSConstantValue(Data d, cl_double v)
asl::BCDirectCopier::init
virtual void init()
Builds the necesery internal data and kernels.
asl::BCValuePFMap::kernel
acl::SPKernel kernel
Definition: aslBasicBC.h:118
asl::BCConstantValueMiddlePointMap::data
Data data
Definition: aslBasicBC.h:97
asl::BCValuePFMap::Data
SPAbstractDataWithGhostNodes Data
Definition: aslBasicBC.h:117
asl::BCDirectCopier
Bondary condition that copies directly the values from one data to another.
Definition: aslBasicBC.h:300
asl::BCConstantValueMap::kernel
acl::SPKernel kernel
Definition: aslBasicBC.h:73
asl::BCond
Virtual class describes general interface for boundary conditions.
Definition: aslBCond.h:59
asl::BCValuePFMap::BCValuePFMap
BCValuePFMap(Data d, SPPositionFunction val, Data map)
asl::BCConstantValue::execute
virtual void execute()
Executes the numerical procedure.
asl::BCConstantValueMap::~BCConstantValueMap
~BCConstantValueMap()
asl::BCConstantSource::BCConstantSource
BCConstantSource(Data d, cl_double v)
asl::BCConstantValueMiddlePointMap::BCConstantValueMiddlePointMap
BCConstantValueMiddlePointMap(Data d, const acl::VectorOfElements &v, Data map, const VectorTemplate *const t)
asl::BCConstantGradient::data
Data data
Definition: aslBasicBC.h:197
asl::BCConstantGradientMap::setValue
void setValue(const acl::VectorOfElements &v)
asl::VectorTemplate
Defines set of vectros with several properties.
Definition: aslTemplates.h:88
asl::BCConstantGradientMap::kernel
acl::SPKernel kernel
Definition: aslBasicBC.h:213
asl::BCConstantValueMiddlePointMap::setValue
void setValue(const acl::VectorOfElements &v)
asl::BCConstantGradient::value
acl::VectorOfElements value
Definition: aslBasicBC.h:198
asl::BCConstantGradientMap::execute
virtual void execute()
Executes the numerical procedure.
asl::BCondWithMap
Virtual class describes general interface for boundary conditions.
Definition: aslBCond.h:101
asl::BCSConstantValue
Bondary condition that puts fixed value in each point uses Slices.
Definition: aslBasicBC.h:318
asl::SPPositionFunction
std::shared_ptr< PositionFunction > SPPositionFunction
Definition: aslPositionFunction.h:58
asl::BCConstantValueMiddlePointMap
Bondary condition that puts fixed value in each boundary point.
Definition: aslBasicBC.h:92
asl::BCSConstantValue::data
Data data
Definition: aslBasicBC.h:323
asl::BCConstantValue::value
acl::VectorOfElements value
Definition: aslBasicBC.h:57
acl::map
std::shared_ptr< T > map(ElementData m)
Definition: aclMemBlock.h:68
asl::BCConstantGradient
Bondary condition that makes fixed gradient
Definition: aslBasicBC.h:192
asl::BCConstantGradientMap
Bondary condition that makes fixed gradient
Definition: aslBasicBC.h:210
asl::BCConstantSource::kernel
acl::SPKernel kernel
Definition: aslBasicBC.h:283
asl::BCConstantGradientMap::~BCConstantGradientMap
~BCConstantGradientMap()
asl::BCConstantSource::Data
SPDataWithGhostNodesACLData Data
Definition: aslBasicBC.h:282
asl::BCConstantValue::kernel
acl::SPKernel kernel
Definition: aslBasicBC.h:54
asl::BCSConstantValue::Data
SPDataWithGhostNodesACLData Data
Definition: aslBasicBC.h:320
asl::BCConstantValueMiddlePointMap::Data
SPAbstractDataWithGhostNodes Data
Definition: aslBasicBC.h:94
asl::BCConstantValueMap::setValue
void setValue(const acl::VectorOfElements &v)
asl::BCConstantGradient::execute
virtual void execute()
Executes the numerical procedure.
asl::BCConstantValueMiddlePointMap::kernel
acl::SPKernel kernel
Definition: aslBasicBC.h:95
asl::BCConstantGradientMap::data
Data data
Definition: aslBasicBC.h:215
asl::AVec
Definition: aslVectorsDynamicLength.h:40
asl::BCSConstantValue::execute
virtual void execute()
Executes the numerical procedure.
asl::BCConstantValueMap::data
Data data
Definition: aslBasicBC.h:75
asl::BCSConstantValue::kernel
acl::SPKernel kernel
Definition: aslBasicBC.h:322
asl
Advanced Simulation Library.
Definition: aslDataInc.h:31
acl
Advanced Computational Language.
Definition: acl.h:41
asl::BCConstantValueMap::BCConstantValueMap
BCConstantValueMap(Data d, const acl::VectorOfElements &v, Data map)
asl::generateBCConstantGradient
SPBCond generateBCConstantGradient(SPAbstractDataWithGhostNodes d, double v, const VectorTemplate *const t, const std::vector< SlicesNames > &sl)
Bondary condition that makes fixed gradient
asl::BCDirectCopier::execute
virtual void execute()
Executes the numerical procedure.
asl::BCConstantValue::Data
SPAbstractDataWithGhostNodes Data
Definition: aslBasicBC.h:53
asl::BCConstantValue::setValue
void setValue(const acl::VectorOfElements &v)
asl::BCConstantGradientMap::Data
SPAbstractDataWithGhostNodes Data
Definition: aslBasicBC.h:212
asl::SPAbstractDataWithGhostNodes
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes
Definition: aslGenerators.h:50