Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
DislocationMobilityViscousDrag.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_DislocationMobilityViscousDrag_cpp_
9#define _model_DislocationMobilityViscousDrag_cpp_
10
11#include <cmath>
13#include <TextFileParser.h>
14
15namespace model
16{
18 const double& B0_SI,
19 const double& B1_SI) :
20 /* init */ DislocationMobilityBase("DislocationMobilityViscousDrag for "+material.materialName)
21 /* init */,kB(this->kB_SI/material.mu_SI/std::pow(material.b_SI,3))
22 /* init */,B0(B0_SI*material.cs_SI/(material.mu_SI*material.b_SI))
23 /* init */,B1(B1_SI*material.cs_SI/(material.mu_SI*material.b_SI))
24 {
26 }
27
28// DislocationMobilityViscousDrag::DislocationMobilityViscousDrag(const std::string& tag,
29// const PolycrystallineMaterialBase& material):
30// /* init */ B0(TextFileParser(material.materialFile).readScalar<double>(tag+"B0_SI",true)*material.cs_SI/(material.mu_SI*material.b_SI))
31// /* init */,B1(TextFileParser(material.materialFile).readScalar<double>(tag+"B1_SI",true)*material.cs_SI/(material.mu_SI*material.b_SI))
32// {
33// }
34
35
36// std::pair<double,double> DislocationMobilityViscousDrag::velocity(const double& tau,
37// const double& b,
38// const double& T) const
39// {/*!
40// */
41// return velocity(tau*b,T);
42// }
43//
44// std::pair<double,double> DislocationMobilityViscousDrag::velocity(const double& tauXb,
45// const double& T) const
46// {/*!
47// */const double B(B0+B1*T);
48// return std::make_pair(std::fabs(tauXb/B),B);
49// }
50
52 const VectorDim& b,
53 const VectorDim& n,
54 const double& T,
55 const double& dL,
56 const double& dt,
57 const std::shared_ptr<StochasticForceGenerator>& sfg) const
58 {
59 const double B(B0+B1*T);
60 const double tauXb(b.transpose()*S*n);
61 const double v(std::fabs(tauXb/B));
62 if(sfg)
63 {
64 return v+sfg->stochasticVelocity(kB,T,B,dL,dt);
65 }
66 else
67 {
68 return v;
69 }
70 }
71
72}
73#endif
74
75
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
Eigen::Matrix< double, 3, 3 > MatrixDim
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 override
DislocationMobilityViscousDrag(const PolycrystallineMaterialBase &material, const double &B0_SI, const double &B1_SI)
REAL v[4]