00001 #include "crsection2d.h" 00002 #include "globalt.h" 00003 #include "stochdrivert.h" 00004 00005 crsection2d::crsection2d (void) 00006 { 00007 t=0.0; rho=0.0; 00008 } 00009 crsection2d::~crsection2d (void) 00010 { 00011 00012 } 00013 00014 void crsection2d::read (XFILE *in) 00015 { 00016 switch (Tp->tprob){ 00017 case stationary_problem:{ 00018 xfscanf (in,"%lf",&t); 00019 break; 00020 } 00021 case nonlinear_stationary_problem:{ 00022 xfscanf (in,"%lf",&t); 00023 break; 00024 } 00025 case nonstationary_problem:{ 00026 xfscanf (in,"%lf %lf",&rho,&t); 00027 break; 00028 } 00029 case nonlinear_nonstationary_problem: 00030 case discont_nonstat_problem: 00031 case discont_nonlin_nonstat_problem: 00032 case growing_np_problem: 00033 case growing_np_problem_nonlin:{ 00034 xfscanf (in,"%lf %lf",&rho,&t); 00035 break; 00036 } 00037 default:{ 00038 print_err("unknown problem type is required",__FILE__,__LINE__,__func__); 00039 } 00040 } 00041 } 00042 00043 void crsection2d::print (FILE *out) 00044 { 00045 switch (Tp->tprob){ 00046 case stationary_problem:{ 00047 fprintf (out," %lf\n",t); 00048 break; 00049 } 00050 case nonstationary_problem:{ 00051 fprintf (out," %lf %lf\n",rho,t); 00052 break; 00053 } 00054 case nonlinear_nonstationary_problem: 00055 case discont_nonstat_problem: 00056 case discont_nonlin_nonstat_problem: 00057 case growing_np_problem: 00058 case growing_np_problem_nonlin:{ 00059 fprintf (out," %lf %lf\n",rho,t); 00060 break; 00061 } 00062 default:{ 00063 print_err("unknown problem type is required",__FILE__,__LINE__,__func__); 00064 } 00065 } 00066 } 00067 00068 void crsection2d::changeparam (atsel &atcs,vector &val) 00069 { 00070 long i; 00071 00072 for (i=0;i<atcs.num;i++){ 00073 switch (atcs.atrib[i]){ 00074 case 0:{ 00075 t=val[0]; 00076 break; 00077 } 00078 case 1:{ 00079 rho=val[1]; 00080 break; 00081 } 00082 default:{ 00083 print_err("wrong number of atributes",__FILE__,__LINE__,__func__); 00084 } 00085 } 00086 } 00087 }