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"
28 #include <math/aslVectorsDynamicLength.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);
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);
82  };
83 
84 
86 
92  {
93  public:
96 
98  protected:
100 
101  virtual void initVelocityComputation();
102  public:
103 
111  };
112 
113  typedef std::shared_ptr<LSFacetedGrowth> SPLSFacetedGrowth;
114 
115 } //asl
116 
117 #endif //ASLLSFACETEDGROWTH_H
asl::CrystallographicParameters::betaRough
double betaRough
Definition: aslLSFacetedGrowth.h:47
asl::LSFacetedGrowth::crystallography
CrystallographicParameters crystallography
Definition: aslLSFacetedGrowth.h:97
asl::CrystallographicParameters
describes crystalographyly specific date
Definition: aslLSFacetedGrowth.h:42
asl::CrystallographicParameters::directionCode
void directionCode(acl::VectorOfElements normal, acl::VectorOfElements direction, acl::VectorOfElements cosTheta, acl::ExpressionContainer &k)
generates code which results the number corresponds to nearest direction
asl::CrystallographicParameters::stepFactor
acl::VectorOfElements stepFactor(const acl::VectorOfElements &dir, const acl::VectorOfElements &position)
asl::LSFacetedGrowth
Numerical method which computes evolution of an interface with a crystalographic kinetics.
Definition: aslLSFacetedGrowth.h:92
asl::SPDataWithGhostNodesACLData
std::shared_ptr< DataWithGhostNodesACLData > SPDataWithGhostNodesACLData
Definition: aslGenerators.h:47
asl::CrystallographicParameters::directions
vector< AVec<> > directions
Definition: aslLSFacetedGrowth.h:44
asl::LevelSet::DataGen
SPDataWithGhostNodesACL DataGen
Definition: aslLevelSet.h:61
asl::CrystallographicParameters::CrystallographicParameters
CrystallographicParameters(const vector< AVec<>> &dir, const vector< double > &bSt, const vector< double > &bDisl, const double bRough)
acl::ExpressionContainer
Definition: aclExpressionContainer.h:44
asl::CrystallographicParameters::betaDisl
vector< double > betaDisl
Definition: aslLSFacetedGrowth.h:46
asl::CrystallographicParameters::CrystallographicParameters
CrystallographicParameters()
acl::VectorOfElements
The class represents several Element.
Definition: aclVectorOfElementsDef.h:92
asl::LSFacetedGrowth::LSFacetedGrowth
LSFacetedGrowth()
asl::CrystallographicParameters::velocity
acl::VectorOfElements velocity(acl::VectorOfElements supersaturation, acl::VectorOfElements dir, acl::VectorOfElements sinTheta)
asl::LSFacetedGrowth::DataGen
SPDataWithGhostNodesACL DataGen
Definition: aslLSFacetedGrowth.h:95
asl::CrystallographicParameters::addFacet
void addFacet(const AVec<> normal, double bSt, double bDisl)
adds new facet information
asl::LSFacetedGrowth::Data
SPDataWithGhostNodesACLData Data
Definition: aslLSFacetedGrowth.h:94
asl::LSFacetedGrowth::~LSFacetedGrowth
~LSFacetedGrowth()
asl::LevelSet::Data
SPDataWithGhostNodesACLData Data
Definition: aslLevelSet.h:60
asl::LSFacetedGrowth::initVelocityComputation
virtual void initVelocityComputation()
asl::CrystallographicParameters::velocity
acl::VectorOfElements velocity(const acl::VectorOfElements &supersaturation, const acl::VectorOfElements &dir, const acl::VectorOfElements &sinTheta, const acl::VectorOfElements &stepVelocityLimit)
asl::LevelSetLinear
Numerical method which computes evolution of an interface.
Definition: aslLevelSetLinear.h:41
asl::LSFacetedGrowth::superSaturation
DataGen superSaturation
Definition: aslLSFacetedGrowth.h:99
aslLevelSetLinear.h
asl::LSFacetedGrowth::LSFacetedGrowth
LSFacetedGrowth(Data df, DataGen c)
asl::CrystallographicParameters::init
void init(acl::TypeID type)
initialize acl data
acl::TypeID
TypeID
Definition: aclTypes.h:39
asl::SPDataWithGhostNodesACL
std::shared_ptr< DataWithGhostNodesACL > SPDataWithGhostNodesACL
Definition: aslGenerators.h:49
asl::AVec<>
asl::CrystallographicParameters::betaSt
vector< double > betaSt
Definition: aslLSFacetedGrowth.h:45
asl
Advanced Simulation Library.
Definition: aslDataInc.h:31
acl
Advanced Computational Language.
Definition: acl.h:41
asl::CrystallographicParameters::CrystallographicParameters
CrystallographicParameters(const double bRough)
type
acl::TypeID type(acl::typeToTypeID< FlT >())
asl::SPLSFacetedGrowth
std::shared_ptr< LSFacetedGrowth > SPLSFacetedGrowth
Definition: aslLSFacetedGrowth.h:113