Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
DislocationMobilityBase.cpp
Go to the documentation of this file.
1/* This file is part of MoDELib, the Mechanics Of Defects Evolution Library.
2 *
3 *
4 * MoDELib is distributed without any warranty under the
5 * GNU General Public License (GPL) v2 <http://www.gnu.org/licenses/>.
6 */
7
8#ifndef _model_DislocationMobilityBase_cpp_
9#define _model_DislocationMobilityBase_cpp_
10
12
13namespace model
14{
15
17 stochasticForceSeed(TextFileParser(traitsIO.inputFilesFolder+"/DD.txt").readScalar<int>("stochasticForceSeed",true))
18 , seed(stochasticForceSeed<0?std::chrono::system_clock::now().time_since_epoch().count():stochasticForceSeed)
19 {
20
21 #ifdef _OPENMP
22 const size_t nThreads = omp_get_max_threads();
23 #else
24 const size_t nThreads = 1;
25 #endif
26 generators.resize(nThreads,T(seed));
27 distributions.resize(nThreads,std::normal_distribution<double>(0.0,1.0));
28
29 }
30
32 const double& T,
33 const double& B,
34 const double& L,
35 const double& dt)
36 {
37 #ifdef _OPENMP
38 return distributions[omp_get_thread_num()](generators[omp_get_thread_num()])*sqrt(2.0*kB*T/B/L/dt);
39 #else
40 return distributions[0](generators[0])*sqrt(2.0*kB*T/B/L/dt);
41 #endif
42 }
43
45 /* init */ name(name_in)
46 {
47 std::cout<<greenBoldColor<<"Creating "<<name<<defaultColor<<std::endl;
48 }
49
51 const VectorDim& b,
52 const VectorDim& n,
53 const double& T) const
54 {
55 return velocity(S,b,n,T,0.0,0.0,nullptr);
56 }
57
58}
59#endif
initial point of the source segment B
the tangent vector S
b
Definition int_R.m:16
size_t InstanceCount< Derived >::count
static std::string greenBoldColor
static std::string defaultColor
DislocationMobilityBase(const std::string &name_in)
Eigen::Matrix< double, 3, 1 > VectorDim
virtual double velocity(const MatrixDim &S, const VectorDim &b, const VectorDim &n, const double &T, const double &dL, const double &dt, const std::shared_ptr< StochasticForceGenerator > &sfg) const =0
Eigen::Matrix< double, 3, 3 > MatrixDim
std::vector< std::normal_distribution< double > > distributions
StochasticForceGenerator(const DefectiveCrystalTraitsIO &traitsIO)
double stochasticVelocity(const double &kB, const double &T, const double &B, const double &L, const double &dt)