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:
56  Data data;
58  public:
60  virtual void execute();
61  virtual void init();
63  };
64 
66 
69  class BCConstantValueMap:public BCondWithMap
70  {
71  public:
74  protected:
75  Data data;
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:
97  Data data;
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 
114  class BCValuePFMap:public BCondWithMap
115  {
116  public:
119  protected:
120  Data data;
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 
191  class BCConstantGradient:public BCond
192  {
193  public:
196  protected:
197  Data data;
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:
215  Data data;
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:
285  Data data;
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 
299  class BCDirectCopier:public BCondConnector
300  {
301  public:
304  protected:
305  Data & source;
306  Data & destination;
307  public:
308  BCDirectCopier(Data dSource,Data dDestination);
309  virtual void execute();
310  virtual void init();
311  };
312 
314 
317  class BCSConstantValue:public BCondSlice
318  {
319  public:
321  protected:
323  Data data;
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
The class represents several Element.
Bondary condition that makes fixed gradient <>
Definition: aslBasicBC.h:192
acl::VectorOfElements value
Definition: aslBasicBC.h:198
virtual void init()
Builds the necesery internal data and kernels.
void setValue(const acl::VectorOfElements &value)
BCConstantGradient(Data d, const acl::VectorOfElements &v, const VectorTemplate *const t)
SPAbstractDataWithGhostNodes Data
Definition: aslBasicBC.h:194
virtual void execute()
Executes the numerical procedure.
acl::SPKernel kernel
Definition: aslBasicBC.h:195
Bondary condition that makes fixed gradient <>
Definition: aslBasicBC.h:210
BCConstantGradientMap(Data d, const acl::VectorOfElements &v, Data map, const VectorTemplate *const t)
BCConstantGradientMap(Data d, const acl::VectorOfElements &v, Data map, Data computationalDomain, const VectorTemplate *const t)
virtual void init()
Builds the necesery internal data and kernels.
SPAbstractDataWithGhostNodes Data
Definition: aslBasicBC.h:212
virtual void execute()
Executes the numerical procedure.
acl::VectorOfElements value
Definition: aslBasicBC.h:216
void setValue(const acl::VectorOfElements &v)
Bondary condition that adds fixed value to one in each point.
Definition: aslBasicBC.h:280
virtual void execute()
Executes the numerical procedure.
void setValue(cl_double value)
BCConstantSource(Data d, cl_double v)
acl::SPKernel kernel
Definition: aslBasicBC.h:283
SPDataWithGhostNodesACLData Data
Definition: aslBasicBC.h:282
virtual void init()
Builds the necesery internal data and kernels.
virtual void init()
Builds the necesery internal data and kernels.
SPAbstractDataWithGhostNodes Data
Definition: aslBasicBC.h:53
BCConstantValue(Data d, const acl::VectorOfElements &v)
acl::VectorOfElements value
Definition: aslBasicBC.h:57
acl::SPKernel kernel
Definition: aslBasicBC.h:54
virtual void execute()
Executes the numerical procedure.
void setValue(const acl::VectorOfElements &v)
Bondary condition that puts fixed value in each point.
Definition: aslBasicBC.h:70
BCConstantValueMap(Data d, const acl::VectorOfElements &v, Data map)
void setValue(const acl::VectorOfElements &v)
virtual void execute()
Executes the numerical procedure.
SPAbstractDataWithGhostNodes Data
Definition: aslBasicBC.h:72
acl::SPKernel kernel
Definition: aslBasicBC.h:73
virtual void init()
Builds the necesery internal data and kernels.
acl::VectorOfElements value
Definition: aslBasicBC.h:76
Bondary condition that puts fixed value in each boundary point.
Definition: aslBasicBC.h:92
acl::VectorOfElements value
Definition: aslBasicBC.h:98
BCConstantValueMiddlePointMap(Data d, const acl::VectorOfElements &v, Data map, const VectorTemplate *const t)
virtual void init()
Builds the necesery internal data and kernels.
void setValue(const acl::VectorOfElements &v)
virtual void execute()
Executes the numerical procedure.
SPAbstractDataWithGhostNodes Data
Definition: aslBasicBC.h:94
Bondary condition that copies directly the values from one data to another.
Definition: aslBasicBC.h:300
acl::SPKernel kernel
Definition: aslBasicBC.h:303
SPDataWithGhostNodesACLData Data
Definition: aslBasicBC.h:302
virtual void init()
Builds the necesery internal data and kernels.
virtual void execute()
Executes the numerical procedure.
BCDirectCopier(Data dSource, Data dDestination)
Bondary condition that puts fixed value in each point uses Slices.
Definition: aslBasicBC.h:318
SPDataWithGhostNodesACLData Data
Definition: aslBasicBC.h:320
acl::SPKernel kernel
Definition: aslBasicBC.h:322
virtual void execute()
Executes the numerical procedure.
BCSConstantValue(Data d, cl_double v)
virtual void init()
Builds the necesery internal data and kernels.
Bondary condition that puts fixed value in each point.
Definition: aslBasicBC.h:115
void setValue(SPPositionFunction v)
SPAbstractDataWithGhostNodes Data
Definition: aslBasicBC.h:117
virtual void execute()
Executes the numerical procedure.
virtual void init()
Builds the necesery internal data and kernels.
acl::SPKernel kernel
Definition: aslBasicBC.h:118
SPPositionFunction value
Definition: aslBasicBC.h:121
BCValuePFMap(Data d, SPPositionFunction val, Data map)
Virtual class describes general interface for boundary conditions which connect two datas.
Definition: aslBCond.h:190
Virtual class describes general interface for boundary conditions.
Definition: aslBCond.h:59
Virtual class describes general interface for boundary conditions.
Definition: aslBCond.h:228
Virtual class describes general interface for boundary conditions.
Definition: aslBCond.h:101
SPAbstractDataWithGhostNodes map
boundary description for the particular BC
Definition: aslBCond.h:111
SPAbstractDataWithGhostNodes computationalDomain
Computational domain which contains all boundaries and the particular boundary as well.
Definition: aslBCond.h:114
Defines set of vectros with several properties.
Definition: aslTemplates.h:88
SPNumMethod generateBCConstantValueMiddlePoint(SPAbstractDataWithGhostNodes d, double v, SPAbstractDataWithGhostNodes map, const VectorTemplate *const t)
Bondary condition that puts fixed value in each point <>
SPNumMethod generateBCConstantGradient2(SPAbstractDataWithGhostNodes d, double v, SPAbstractDataWithGhostNodes map, const VectorTemplate *const t)
Bondary condition that makes fixed gradient, second order accuracy <>
SPBCond generateBCConstantGradient(SPAbstractDataWithGhostNodes d, double v, const VectorTemplate *const t, const std::vector< SlicesNames > &sl)
Bondary condition that makes fixed gradient <>
SPBCond generateBCConstantValue(SPAbstractDataWithGhostNodes d, double v, const std::vector< SlicesNames > &sl)
Bondary condition that puts fixed value in each point.
std::shared_ptr< PositionFunction > SPPositionFunction
Advanced Computational Language.
Definition: acl.h:41
std::shared_ptr< T > map(ElementData m)
Definition: aclMemBlock.h:68
std::shared_ptr< Kernel > SPKernel
Advanced Simulation Library.
Definition: aslDataInc.h:31
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes
Definition: aslGenerators.h:50
std::shared_ptr< NumMethod > SPNumMethod
Definition: aslNumMethod.h:44
std::shared_ptr< BCond > SPBCond
Definition: aslBCond.h:88
std::shared_ptr< DataWithGhostNodesACLData > SPDataWithGhostNodesACLData
Definition: aslGenerators.h:47