-
Notifications
You must be signed in to change notification settings - Fork 3
/
Systems_Voce.h
65 lines (48 loc) · 1.59 KB
/
Systems_Voce.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#ifndef SYSTEMS_VOCE_H
#define SYSTEMS_VOCE_H
#include "Toolbox.h"
namespace DSystems_Voce{
//deformation system from which slip&twinning system can be derived
class dsystem
{
protected:
double gamma0 = 1e-3; //reference shear strain rate
double gammarate = 0;
double tau0,tau1;//the initial CRSS and the back-extrapolated CRSS(tau0+tau1)
double theta0,theta1;//the initial hardening rate, the asymptotic hardening rate
double aratio = 0; // = theta0/tau1;
double CRSS;
double CRSS_delta;
//double nrsx; //rate sensitivity component
Vector3d s,n; //the Burgers vector(s) and normal(n) of plane
Matrix3d Pij;
Matrix3d Rij;
public:
//initial the sn and calculate the pij
int ini_sn_s(VectorXd);
int check_sn_s();
//input the harderning parameter tau0, tau1, theta0, theta1;
int ini_hardening_s(VectorXd);
int check_hardening_s();
double cal_RSSx(Matrix3d);
double get_gammarate();
//calculate the gamma_rate * Pij to get the vp strain rate Dijp_g
//Parametes:
//Matrix3d sig, double nrsx
Matrix3d cal_dijp_a(Matrix3d, double);
//calculate the gamma_rate * Rij
Matrix3d cal_rotslip_a();
//update CRSS of system
//parameters:
//double Hstpart, double gamma_delta, double gamma_total
void Update_CRSS_a(double, double, double);
Matrix6d get_Fgrads(Matrix3d, double);
};
class slip : public dsystem
{
};
class twin : public dsystem
{
};
}
#endif