00001 #ifndef B3_H
00002 #define B3_H
00003
00004 #include "genfile.h"
00005 #include "alias.h"
00006 #include "iotools.h"
00007
00008
00009
00010
00011
00012 class b3mat
00013 {
00014 public:
00015 b3mat (void);
00016 ~b3mat (void);
00017 void read (XFILE *in);
00018 void print (FILE *out);
00019 void compute_ages (long ipp, long ido);
00020 void give_ages (double &tb_age_dt,double &tb_age,double &tl_age,double &th_age,double &dt,double &maxtime,long &napptime,long ipp);
00021 long give_nceqother (long ipp);
00022 long give_ncother (long ipp);
00023 long give_nret_time (void);
00024
00025 void give_rettimes (vector &rettimes,long n_ret_times,long ipp);
00026
00027 void store_emu_eqother(vector &e_mu,long n_ret_times,long ipp,long ido);
00028 void give_emu_eqother(vector &e_mu,long n_ret_times,long ipp,long ido);
00029
00030 void store_ym_eqother(double ym,long ipp,long ido);
00031 double give_ym_eqother(long ipp,long ido);
00032
00033 void store_ym_old_eqother(double ym,long ipp,long ido);
00034 double give_ym_old_eqother(long ipp,long ido);
00035
00036 double compute_beta_t(long ipp);
00037 void store_beta_t_eqother(double beta,long ipp,long ido);
00038 double give_beta_t_eqother(long ipp,long ido);
00039
00040 void give_hidden_strains_eqother(matrix &gamma_mu,long ipp,long ido);
00041 void store_hidden_strains_eqother(matrix &gamma_mu,long ipp,long ido);
00042
00043 void give_stresses_eqother(vector &sigma,long ipp,long ido);
00044 void store_stresses_eqother(vector &sigma,long ipp,long ido);
00045
00046 void give_stresses_other(vector &sigma,long ipp,long ido);
00047 void store_stresses_other(vector &sigma,long ipp,long ido);
00048
00049 void give_dstresses_eqother(vector &dsigma,long ipp,long ido);
00050 void store_dstresses_eqother(vector &dsigma,long ipp,long ido);
00051
00052 void give_strains_eqother(vector &eps,long ipp,long ido);
00053 void store_strains_eqother(vector &eps,long ipp,long ido);
00054
00055 void give_creepdstrains_eqother(vector &deps_cr,long ipp,long ido);
00056 void store_creepdstrains_eqother(vector &deps_cr,long ipp,long ido);
00057
00058 void give_irrdstrains_eqother(vector &deps_sh,long ipp,long ido);
00059 void store_irrdstrains_eqother(vector &deps_sh,long ipp,long ido);
00060
00061 void give_stressirrdstrains_eqother(vector &deps_ss,long ipp,long ido);
00062 void store_stressirrdstrains_eqother(vector &deps_ss,long ipp,long ido);
00063
00064 double give_shrinkage_eqother(long ipp,long ido);
00065 void store_shrinkage_eqother(double eps_sh,long ipp,long ido);
00066
00067 void store_hum_eqother(long ipp,long ido);
00068 void store_temp_eqother(long ipp,long ido);
00069
00070 double give_tb_time(long ipp);
00071 double give_th_time(long ipp);
00072 long give_napproxtime(long ipp);
00073 void initvalues (long ipp, long ido);
00074 void updatevalues (long ipp, long ido);
00075
00076 double b3_law (double t0, double tl, double t,long ipp,long ido);
00077 double give_q1();
00078
00079 void give_deps_free (vector &deps_sh, double t0, double t_dt, double t, double dt, long ipp,long im,long ido);
00080 void give_deps_stressinduced (vector &deps_ss, double t0, double t_dt, double t, vector &sigma, long ipp,long im,long ido);
00081 double creep_give_actual_ft (long ipp,long im,long ido);
00082
00083 void addirrstrains_eqother (vector &deps,long ipp, long ido);
00084 void giveirrstrains_eqother (long ipp, long ido, vector &epscr);
00085
00086 void store_agstrains_eqother(long ipp,long ido,vector &eps_ag);
00087 void give_agstrains_eqother(long ipp,long ido,vector &eps_ag);
00088
00089 double get_othervalue(long compother,long ipp);
00090 void print_othervalue_name(FILE *out,long compother);
00091 void give_reqnmq(long *anmq);
00092
00093
00094 double previoustime;
00095
00096 private:
00097
00098 long type_b3;
00099
00100 long type_h;
00101
00102 long type_temp;
00103
00104
00105 long type_e;
00106
00107
00108 double hum_env,temp_env;
00109
00110
00111
00112
00113
00114
00115
00116 int flag_drshr,flag_shr,flag_temp;
00117
00118
00119 int ft_flag;
00120
00121
00122 double kappa,beta_t,beta_h,beta_s;
00123
00124
00125
00126
00127
00128
00129
00130 double q1,q2,q3,q4,q5;
00131 double q1_ini,q2_ini,q3_ini,q4_ini,q5_ini;
00132
00133
00134 double alpha;
00135
00136 double e28;
00137
00138 double fc;
00139
00140 double ft;
00141
00142 double ft_ratio;
00143
00144 double wc;
00145
00146 double sc;
00147
00148 double gc;
00149
00150 double cs;
00151
00152 double a1;
00153
00154 double a2;
00155
00156 double ks;
00157
00158 double kd;
00159
00160
00161 double tb_time;
00162
00163 double th_time;
00164
00165 long napproxtime;
00166
00167 long nRetTime;
00168
00169 long type_rt;
00170
00171
00172 double e0;
00173
00174
00175 double actualtime;
00176
00177 double dtb;
00178
00179 double tb_age_dt,tb_age,tbl_age,tbh_age,maxtimeb;
00180 long napptimeb;
00181
00182 double *retTime;
00183 double timeMax;
00184
00185
00186 double eps_ainf;
00187 };
00188
00189 #endif