Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
DislocationMobilityBase.h
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_h_
9#define _model_DislocationMobilityBase_h_
10
11#include <iostream>
12#include <random>
13#include <cmath>
14#include <vector>
15#include <chrono>
16#include <assert.h>
17#include <Eigen/Dense>
18#include <Eigen/Geometry>
19 // defines std::cout
20#include <TerminalColors.h> // defines mode::cout
22#include <StaticID.h>
24
25namespace model
26{
27
29 {
30 typedef std::default_random_engine T;
31 std::vector<T> generators;
32 std::vector<std::normal_distribution<double>> distributions;
34 const int seed;
35
37 double stochasticVelocity(const double& kB,
38 const double& T,
39 const double& B,
40 const double& L,
41 const double& dt);
42
43 };
44
45 struct DislocationMobilityBase : public StaticID<DislocationMobilityBase>
46 {
47 typedef Eigen::Matrix<double,3,3> MatrixDim;
48 typedef Eigen::Matrix<double,3,1> VectorDim;
49
50 static constexpr double kB_SI=1.38064852e-23; // Boltzmann constant in SI units [J/K]
51 const std::string name;
52
53
54 DislocationMobilityBase(const std::string& name_in) ;
55
57
58 virtual double velocity(const MatrixDim& S,
59 const VectorDim& b,
60 const VectorDim& n,
61 const double& T,
62 const double& dL,
63 const double& dt,
64 const std::shared_ptr<StochasticForceGenerator>& sfg) const =0 ;
65
66 double velocity(const MatrixDim& S,
67 const VectorDim& b,
68 const VectorDim& n,
69 const double& T) const ;
70
71 };
72
73}
74#endif
initial point of the source segment B
the tangent vector S
b
Definition int_R.m:16
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)