00001 #include "crsec2dbar.h"
00002 #include "global.h"
00003 #include "stochdriver.h"
00004
00005
00006
00007
00008
00009
00010
00011
00012 crsec2dbar::crsec2dbar (void)
00013 {
00014 a=0.0; rho=0.0;
00015 }
00016
00017
00018
00019
00020
00021
00022
00023
00024 crsec2dbar::~crsec2dbar (void)
00025 {
00026
00027 }
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 void crsec2dbar::read (XFILE *in)
00041 {
00042 switch (Mp->tprob){
00043 case linear_statics:{
00044 xfscanf (in,"%lf",&a);
00045 break;
00046 }
00047 case eigen_dynamics:{
00048 xfscanf (in,"%lf %lf",&a,&rho);
00049 break;
00050 }
00051 case forced_dynamics:{
00052 xfscanf (in,"%lf %lf",&a,&rho);
00053 break;
00054 }
00055 case mat_nonlinear_statics:{
00056 xfscanf (in,"%lf",&a);
00057 break;
00058 }
00059 case mech_timedependent_prob:{
00060 xfscanf (in,"%lf",&a);
00061 break;
00062 }
00063 case growing_mech_structure:{
00064 xfscanf (in,"%lf",&a);
00065 break;
00066 }
00067 case lin_floating_subdomain:{
00068 xfscanf (in,"%lf",&a);
00069 break;
00070 }
00071 case nonlin_floating_subdomain:{
00072 xfscanf (in,"%lf",&a);
00073 break;
00074 }
00075 case load_balancing:{
00076 xfscanf (in,"%lf",&a);
00077 break;
00078 }
00079 default:{
00080 print_err("unknown problem type is required", __FILE__, __LINE__, __func__);
00081 }
00082 }
00083 }
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095 void crsec2dbar::print (FILE *out)
00096 {
00097 switch (Mp->tprob){
00098 case linear_statics:{
00099 fprintf (out,"\n %le",a);
00100 break;
00101 }
00102 case eigen_dynamics:{
00103 fprintf (out,"\n %le %le",a,rho);
00104 break;
00105 }
00106 case forced_dynamics:{
00107 fprintf (out,"\n %le %le",a,rho);
00108 break;
00109 }
00110 case mat_nonlinear_statics:{
00111 fprintf (out,"\n %le",a);
00112 break;
00113 }
00114 case mech_timedependent_prob:{
00115 fprintf (out,"\n %le",a);
00116 break;
00117 }
00118 case growing_mech_structure:{
00119 fprintf (out,"\n %le",a);
00120 break;
00121 }
00122 case lin_floating_subdomain:{
00123 fprintf (out,"\n %le",a);
00124 break;
00125 }
00126 case nonlin_floating_subdomain:{
00127 fprintf (out,"\n %le",a);
00128 break;
00129 }
00130 case load_balancing:{
00131 fprintf (out,"\n %le",a);
00132 break;
00133 }
00134 default:{
00135 print_err("unknown problem type is required", __FILE__, __LINE__, __func__);
00136 }
00137 }
00138 }
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153 void crsec2dbar::changeparam (atsel &atcs,vector &val)
00154 {
00155 long i;
00156
00157 for (i=0;i<atcs.num;i++){
00158 switch (atcs.atrib[i]){
00159 case 0:{
00160 a=val[i];
00161 break;
00162 }
00163 case 1:{
00164 rho=val[i];
00165 break;
00166 }
00167 default:{
00168 print_err("wrong number of atribute", __FILE__, __LINE__, __func__);
00169 }
00170 }
00171 }
00172 }