ASL  0.1.7
Advanced Simulation Library
aslLSFacetedGrowth.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 ASLLSFACETEDGROWTH_H
25 #define ASLLSFACETEDGROWTH_H
26 
27 #include "aslLevelSetLinear.h"
29 
30 namespace acl
31 {
32  class ExpressionContainer;
33 }
34 
35 namespace asl
36 {
37 
39 
42  {
43  public:
44  vector<AVec<>> directions;
45  vector<double> betaSt;
46  vector<double> betaDisl;
47  double betaRough;
48  private:
49  acl::VectorOfElements directionsACL;
50  acl::VectorOfElements betaStACL;
51  acl::VectorOfElements betaDislACL;
52  public:
53 
56  acl::VectorOfElements direction,
57  acl::VectorOfElements cosTheta,
59  CrystallographicParameters (const vector<AVec<>> & dir,
60  const vector<double> & bSt,
61  const vector<double> & bDisl,
62  const double bRough);
63  CrystallographicParameters (const double bRough);
67  acl::VectorOfElements sinTheta);
68  acl::VectorOfElements velocity(const acl::VectorOfElements & supersaturation,
69  const acl::VectorOfElements & dir,
70  const acl::VectorOfElements & sinTheta,
71  const acl::VectorOfElements & stepVelocityLimit);
73  const acl::VectorOfElements & position);
74 
76 
79  void addFacet(const AVec<> normal, double bSt, double bDisl);
81  void init(acl::TypeID type);
82  };
83 
84 
86 
92  {
93  public:
96 
98  protected:
100 
101  virtual void initVelocityComputation();
102  public:
103 
104  LSFacetedGrowth();
111  };
112 
113  typedef std::shared_ptr<LSFacetedGrowth> SPLSFacetedGrowth;
114 
115 } //asl
116 
117 #endif //ASLLSFACETEDGROWTH_H
SPDataWithGhostNodesACL DataGen
Definition: aslLevelSet.h:61
Advanced Simulation Library.
Definition: aslDataInc.h:30
Advanced Computational Language.
Definition: acl.h:40
CrystallographicParameters crystallography
std::shared_ptr< DataWithGhostNodesACLData > SPDataWithGhostNodesACLData
Definition: aslGenerators.h:47
std::shared_ptr< LSFacetedGrowth > SPLSFacetedGrowth
SPDataWithGhostNodesACL DataGen
virtual void initVelocityComputation()
acl::VectorOfElements velocity(acl::VectorOfElements supersaturation, acl::VectorOfElements dir, acl::VectorOfElements sinTheta)
Numerical method which computes evolution of an interface with a crystalographic kinetics.
void init(acl::TypeID type)
initialize acl data
acl::TypeID type(acl::typeToTypeID< FlT >())
The class represents several Element.
SPDataWithGhostNodesACLData Data
SPDataWithGhostNodesACLData Data
Definition: aslLevelSet.h:60
void addFacet(const AVec<> normal, double bSt, double bDisl)
adds new facet information
TypeID
Definition: aclTypes.h:38
Numerical method which computes evolution of an interface.
std::shared_ptr< DataWithGhostNodesACL > SPDataWithGhostNodesACL
Definition: aslGenerators.h:49
describes crystalographyly specific date
void directionCode(acl::VectorOfElements normal, acl::VectorOfElements direction, acl::VectorOfElements cosTheta, acl::ExpressionContainer &k)
generates code which results the number corresponds to nearest direction
acl::VectorOfElements stepFactor(const acl::VectorOfElements &dir, const acl::VectorOfElements &position)