ASL  0.1.7
Advanced Simulation Library
aslCrystalGrowthBC.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 ASLCRYSTALGROWTHBC_H
25 #define ASLCRYSTALGROWTHBC_H
26 
27 #include "aslBCond.h"
30 
31 
32 namespace acl
33 {
34  class Kernel;
35  typedef std::shared_ptr<Kernel> SPKernel;
36 }
37 
38 namespace asl
39 {
40  class PositionFunction;
41  typedef std::shared_ptr<PositionFunction> SPPositionFunction;
42 
43 
47  {
48  public:
51  protected:
55  public:
57  const acl::VectorOfElements & cEq,
58  const acl::VectorOfElements & beta,
59  Data map,
60  const VectorTemplate *const t);
62  const acl::VectorOfElements & cEq,
63  const acl::VectorOfElements & beta,
64  Data map,
66  const VectorTemplate *const t);
68  virtual void execute();
69  virtual void init();
70  };
71 
73 
121  {
122  public:
125  protected:
129  public:
131  const acl::VectorOfElements & cEq,
132  const acl::VectorOfElements & beta,
133  Data map,
134  const VectorTemplate *const t);
136  const acl::VectorOfElements & cEq,
137  const acl::VectorOfElements & beta,
138  Data map,
140  const VectorTemplate *const t);
142  virtual void execute();
143  virtual void init();
144  };
145 
149  {
150  public:
154  protected:
158  public:
160  const acl::VectorOfElements & cEq,
161  const acl::VectorOfElements & beta,
162  Data map,
163  const VectorTemplate *const t);
165  const acl::VectorOfElements & cEq,
166  const acl::VectorOfElements & beta,
167  Data map,
169  const VectorTemplate *const t);
171  virtual void execute();
172  virtual void init();
173  };
174 
175 
176 
178  double cEq,
179  double beta,
181  const VectorTemplate *const t);
182 
184  double cEq,
185  double beta,
187  SPAbstractDataWithGhostNodes computationalDomain,
188  const VectorTemplate *const t);
189 
191  double cEq,
192  double beta,
194  const VectorTemplate *const t);
195 
197  double cEq,
198  double beta,
200  SPAbstractDataWithGhostNodes computationalDomain,
201  const VectorTemplate *const t);
202 
203 } //asl
204 
205 #endif //ASLCRYSTALGROWTHBC_H
std::shared_ptr< PositionFunction > SPPositionFunction
Boundary condition that makes gradient proportional to a surface concentration.
SPAbstractDataWithGhostNodes Data
SPAbstractDataWithGhostNodes Data
Advanced Simulation Library.
Definition: aslDataInc.h:30
Advanced Computational Language.
Definition: acl.h:40
std::shared_ptr< Kernel > SPKernel
std::shared_ptr< NumMethod > SPNumMethod
Definition: aslNumMethod.h:44
BCLinearGrowthMap2(Data d, const acl::VectorOfElements &cEq, const acl::VectorOfElements &beta, Data map, const VectorTemplate *const t)
BCLinearGrowthMap1(Data d, const acl::VectorOfElements &cEq, const acl::VectorOfElements &beta, Data map, const VectorTemplate *const t)
virtual void init()
Builds the necesery internal data and kernels.
virtual void execute()
Executes the numerical procedure.
SPAbstractDataWithGhostNodes computationalDomain
Computational domain which contains all boundaries and the particular boundary as well.
Definition: aslBCond.h:114
SPNumMethod generateBCLinearGrowth(SPAbstractDataWithGhostNodes d, double cEq, double beta, SPAbstractDataWithGhostNodes map, const VectorTemplate *const t)
BCLinearGrowthMap(Data d, const acl::VectorOfElements &cEq, const acl::VectorOfElements &beta, Data map, const VectorTemplate *const t)
SPAbstractDataWithGhostNodes map
boundary description for the particular BC
Definition: aslBCond.h:111
acl::VectorOfElements cEq
virtual void init()
Builds the necesery internal data and kernels.
The class represents several Element.
virtual void init()
Builds the necesery internal data and kernels.
SPNumMethod generateBCLinearGrowth2(SPAbstractDataWithGhostNodes d, double cEq, double beta, SPAbstractDataWithGhostNodes map, const VectorTemplate *const t)
virtual void execute()
Executes the numerical procedure.
std::shared_ptr< T > map(ElementData m)
Definition: aclMemBlock.h:68
Virtual class describes general interface for boundary conditions.
Definition: aslBCond.h:100
acl::VectorOfElements beta
acl::VectorOfElements beta
virtual void execute()
Executes the numerical procedure.
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes
Definition: aslGenerators.h:50
acl::VectorOfElements cEq
Defines set of vectros with several properties.
Definition: aslTemplates.h:87
acl::VectorOfElements cEq
SPAbstractDataWithGhostNodes Data
acl::VectorOfElements beta