-
Notifications
You must be signed in to change notification settings - Fork 3
/
Modes.h
60 lines (43 loc) · 1.56 KB
/
Modes.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
#ifndef MODES_H
#define MODES_H
#include "Systems_Voce.h"
#include "Toolbox.h"
namespace Modes{
//machnical system from which slip&twinning system can be derived
class mode
{
private:
int mtype = 1; //type of deformation modes (1: slip; 0: twin)
int system_num = 0;
DSystems_Voce::slip* sl = NULL;
DSystems_Voce::twin* tw = NULL;
double gamma0 = 1e-3; //reference shear strain rate
double gamma_rate_abs_m = 0; //shear strain of one mode
double nrsx; //rate sensitive
VectorXd hst; //hst
public:
int ini_sn_mode(MatrixXd, int, int);
//input the normal and Burgers vector in each system
//(MatrixXd) sn, (int) flag of twin or slip, (int) number of systems
//need loop over systems
int check_sn_mode();
int ini_hardening_mode(double, VectorXd, VectorXd);
//input the hardening parameters
//input parameters:
//double nrsx_in; VectorXd CRSS_p_in; VectorXd hst_in
int check_hardening_mode();
Matrix3d cal_dijpmode(Matrix3d);
Matrix3d cal_rotslip_m();
Matrix6d get_Fgradm(Matrix3d);
double get_gamma0();
double get_nrsx();
double get_RSSxM(Matrix3d);
double Update_shear_strain_m();
//update the CRSS in each mode
//parameters:
//double Tincr, double gamma_total, double gamma_delta,
//double gamma_delta_gmode[], int modes_num
void Update_CRSS_m(double, double, double, double gamma_delta_gmode[], int);
};
}
#endif