00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "cerny_concrete.h"
00012 #include "globalt.h"
00013
00014 cernymat::cernymat (void)
00015 {
00016 rho=0.0; k=0.0; c=0.0;
00017 }
00018 cernymat::~cernymat (void)
00019 {}
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 void cernymat::matcond (matrix &d,long ri,long ci,long ipp)
00034 {
00035 long n;
00036 n = d.n;
00037
00038 switch (n){
00039 case 1:{
00040 matcond1d (d,ri,ci,ipp);
00041 break;
00042 }
00043 case 2:{
00044 matcond2d (d,ri,ci,ipp);
00045 break;
00046 }
00047 case 3:{
00048 matcond3d (d,ri,ci,ipp);
00049 break;
00050 }
00051 default:{
00052 fprintf (stderr,"\n unknown number of components of stress tensor is required");
00053 fprintf (stderr,"\n in function (%s, line %d).\n",__FILE__,__LINE__);
00054 }
00055 }
00056 }
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067 void cernymat::matcond1d (matrix &d,long ri,long ci,long ipp)
00068 {
00069 double kk;
00070 double t;
00071
00072 t = Tm->ip[ipp].av[0];
00073
00074 kk = get_k(t);
00075
00076 d[0][0] = kk;
00077 }
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087 void cernymat::matcond2d (matrix &d,long ri,long ci,long ipp)
00088 {
00089 double kk;
00090 double t;
00091
00092 t = Tm->ip[ipp].av[0];
00093
00094 kk = get_k(t);
00095
00096 fillm(0.0,d);
00097
00098 d[0][0] = kk; d[0][1] = 0.0;
00099 d[1][0] = 0.0; d[1][1] = kk;
00100 }
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111 void cernymat::matcond3d (matrix &d,long ri,long ci,long ipp)
00112 {
00113 double kk;
00114 double t;
00115
00116 t = Tm->ip[ipp].av[0];
00117
00118 kk = get_k(t);
00119
00120 fillm(0.0,d);
00121
00122 d[0][0]=kk; d[0][1]=0.0; d[0][2]=0.0;
00123 d[1][0]=0.0; d[1][1]=kk; d[1][2]=0.0;
00124 d[2][0]=0.0; d[2][1]=0.0; d[2][2]=kk;
00125 }
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136 void cernymat::matcap (double &cc,long ri,long ci,long ipp)
00137 {
00138 double t;
00139 cc = 0.0;
00140
00141 t = Tm->ip[ipp].av[0];
00142
00143 cc = get_c(t);
00144 }
00145
00146
00147
00148
00149
00150
00151 void cernymat::read (XFILE *in)
00152 {
00153 xfscanf (in,"%lf %lf %lf",&rho,&c,&k);
00154 }
00155
00156
00157
00158
00159
00160
00161 void cernymat::print (FILE *out)
00162 {
00163 fprintf (out," %e %e %e",rho,c,k);
00164 }
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175 double cernymat::get_k(double t)
00176 {
00177 double keff;
00178
00179
00180 keff = k - 0.0028*t;
00181
00182 return(keff);
00183 }
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194 double cernymat::get_dk_dt(double t)
00195 {
00196 double d;
00197
00198
00199 d = -0.0028;
00200
00201 return(d);
00202 }
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213 double cernymat::get_c(double t)
00214 {
00215 double ceff;
00216
00217 ceff = rho*(c + 0.25*t);
00218
00219
00220 return(ceff);
00221 }
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232 double cernymat::get_dc_dt(double t)
00233 {
00234 double d;
00235
00236 d = rho*0.25;
00237
00238
00239 return(d);
00240 }
00241