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