-
Notifications
You must be signed in to change notification settings - Fork 0
/
readme.txt
91 lines (91 loc) · 3.97 KB
/
readme.txt
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Writtent by Babak N. Safa 2017- All rights reserved
% An implementation of Reactive Inelasticity model for uniaxial
% deformations
% v1.1.0 - 01/06/2018
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The function outputs are
% T_rb = ReactiveBond(t,lam,kinetics,IntHyper) (default)
% T_rb = ReactiveBond(t,lam,kinetics,IntHyper,sliding,damage)
% [T_rb psi_rb] = ReactiveBond(t,lam,kinetics,IntHyper,sliding,damage)
% [T_rb psi_rb w_alpha Pi_s D] = ReactiveBond(t,lam,kinetics,IntHyper,...
% sliding,damage,kinetcs_record)
% ... = ReactiveBond(t,lam,kinetics,IntHyper,...
% sliding,damage,kinetcs_record,warning_report)
%
% t specifies the time steps
%
% lam is the stretrch input, that is synced to "t"
%
% kinetics is a structure that indicate the bond kinetics of the bonds
% kinetics.name = kinetics rate equaiton (e.g.,'first_order')
% kinetics.parameters = kinetics rate equation parameters (e.g., [tau])
%
% IntHyper is a structure that specifiecs the intrinsic hyperelasticity
% relation
% IntHyper.name = constitutive relation name (e.g., 'fiber_exp')
% IntHyper.parameters = constitutive relation parameters, refered
% to each constitutive relations specific parame-
% ter (e.g., for 'fiber_exp' parameters are [C3,C2]
%
% sliding is a structure that specifiecs existence of sliding and its rule
% sliding.flag = (0 or 1) where 0 is no sliding
% sliding.name = Sliding_Rule name (e.g., 'sliding_power')
% sliding.parameters = Constitutive parameters of sliding (e.g., for
% 'sliding_power' [c,b,r0_s])
%
% damage is a structure that specifiecs existence of damage and its rule
% damage.flag = (0 or 1) where 0 is no damage
% damage.name = Damage_Rule name (e.g., 'weibull')
% damage.parameters = Constitutive parameters of damage (e.g., for
% 'weibull' [k,l,r0_D])
% damage.max = Maximum allowable damage (default is 1)
% (optional)
%
% kinetics_record is a scalar (0 or 1) that indiciate the user wants the
% program to deposit the w_alpha as a matrix or not. When is 1 will
% return w_alpha as a matrix that has w_alpha for all times and
% generations. Uses significant memory. (default 0)
%
% warning_report is a scalar (0 or 1) that turns the warning reports for
% negative bonds, damage and sliding violations.
% (default 1)
%
% T_rb Cauchy (or other types of stress, depending on the IntHyper contitutive relation) stress as a vector
%
% Psi_rb Free energy as a vector
%
% w_alpha returns the number fraction of bonds as a vector. (used to be a
% matrix, which was not memory efficient.)
%
% Pi_s a class that returns the sliding results
% Pi_s{1} = Pi_s
% Pi_s{2} = r_s
% Pi_s{3} = Xi_s
%
% D a class that returns the damage results
% D{1} = D
% D{2} = r_D
% D{3} = Xi_D
%
%
%Example of a stress relaxation test on formative bonds:
%
%Input
%[t,lam] = StretchProfile(3,100);
%
%Kinetics equation of bonds
%kinetics.name = 'first_order';%type name
%kinetics.parameters = 10;%time constant
%
%
%Intrinsic hyperelasticity
%IntHyper.name = 'neohookean';%type name
%IntHyper.parameters= 100;%modulus
%
%T_f = ReactiveBond(t,lam,kinetics,IntHyper);%stress response as a vector
%
%Plot result
%figure
%plot(t,T_f)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%