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 }