Changeset 1901
- Timestamp:
- 08/25/09 17:13:48 (16 years ago)
- Location:
- issm/trunk/src
- Files:
-
- 1 deleted
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/EnumDefinitions/EnumDefinitions.cpp
r1866 r1901 31 31 //thermal 32 32 int ThermalAnalysisEnum(void){ return 230; } 33 int SteadyAnalysisEnum(void){ return 231; } 34 int TransientAnalysisEnum(void){ return 23 2; }33 //transient 34 int TransientAnalysisEnum(void){ return 231; } 35 35 //slope 36 36 int SlopeComputeAnalysisEnum(void){ return 240; } -
issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
r1866 r1901 32 32 //thermal 33 33 int ThermalAnalysisEnum(void); 34 int SteadyAnalysisEnum(void); 34 //transient 35 35 int TransientAnalysisEnum(void); 36 int ThermalstaticAnalysisEnum(void);37 36 //slope 38 37 int SlopeComputeAnalysisEnum(void); … … 109 108 int EnumIsLoad(int en); 110 109 int EnumIsMaterial(int en); 111 int AnalysisTypeAsEnum(char* analysis_type);112 110 #endif -
issm/trunk/src/c/EnumDefinitions/SynchronizeMatlabEnum.sh
r1789 r1901 3 3 #Create a matlab file using the same Enum as in EnumDefinitions.cpp 4 4 #and move the file to src/m/enum 5 6 #first remove all existing enum 7 rm $ISSM_DIR/src/m/enum/*.m 5 8 6 9 #Get the list of interesting lines of EnumDefinitions.cpp and introduce line number -
issm/trunk/src/c/Makefile.am
r1881 r1901 180 180 ./EnumDefinitions/EnumDefinitions.h\ 181 181 ./EnumDefinitions/EnumDefinitions.cpp\ 182 ./EnumDefinitions/AnalysisTypeAsEnum.cpp\183 182 ./ModelProcessorx/IoModel.h\ 184 183 ./ModelProcessorx/IoModel.cpp\ … … 475 474 ./EnumDefinitions/EnumDefinitions.h\ 476 475 ./EnumDefinitions/EnumDefinitions.cpp\ 477 ./EnumDefinitions/AnalysisTypeAsEnum.cpp\478 476 ./ModelProcessorx/IoModel.h\ 479 477 ./ModelProcessorx/IoModel.cpp\ -
issm/trunk/src/c/ModelProcessorx/Melting/CreateParametersMelting.cpp
r1834 r1901 28 28 29 29 /* get initial melting if transient*/ 30 if(iomodel-> sub_analysis_type==TransientAnalysisEnum()){30 if(iomodel->dt){ 31 31 32 32 /*Get melting: */ -
issm/trunk/src/c/ModelProcessorx/Thermal/CreateParametersThermal.cpp
r1834 r1901 66 66 67 67 /* get initial temperature and melting if transient*/ 68 if(iomodel-> sub_analysis_type==TransientAnalysisEnum()){68 if(iomodel->dt){ 69 69 70 70 /*Get melting and temperature: */ -
issm/trunk/src/c/objects/Pengrid.cpp
r1439 r1901 482 482 483 483 found=inputs->Recover("dt",&dt); 484 if( (!found) && (sub_analysis_type==TransientAnalysisEnum()))throw ErrorException(__FUNCT__," could not find dt in inputs!");484 if(!found)throw ErrorException(__FUNCT__," could not find dt in inputs!"); 485 485 486 486 meltingpoint=matpar->GetMeltingPoint(); … … 500 500 } 501 501 else{ 502 if ( sub_analysis_type==SteadyAnalysisEnum()){503 P_terms[0]=melting_offset*pow((double)10,penalty_offset)*(temperature-t_pmp) ;502 if (dt){ 503 P_terms[0]=melting_offset*pow((double)10,penalty_offset)*(temperature-t_pmp)/dt; 504 504 } 505 505 else{ 506 P_terms[0]=melting_offset*pow((double)10,penalty_offset)*(temperature-t_pmp) /dt;506 P_terms[0]=melting_offset*pow((double)10,penalty_offset)*(temperature-t_pmp); 507 507 } 508 508 } -
issm/trunk/src/c/objects/Penta.cpp
r1858 r1901 3508 3508 D_scalar=gauss_weight*Jdet*(thermalconductivity/(rho_ice*heatcapacity)); 3509 3509 3510 if( sub_analysis_type!=SteadyAnalysisEnum()){3510 if(dt){ 3511 3511 D_scalar=D_scalar*dt; 3512 3512 } … … 3533 3533 D_scalar=gauss_weight*Jdet; 3534 3534 3535 if( sub_analysis_type!=SteadyAnalysisEnum()){3535 if(dt){ 3536 3536 D_scalar=D_scalar*dt; 3537 3537 } … … 3546 3546 3547 3547 /*Transient: */ 3548 if( sub_analysis_type!=SteadyAnalysisEnum()){3548 if(dt){ 3549 3549 GetNodalFunctions(&L[0], gauss_coord); 3550 3550 D_scalar=gauss_weight*Jdet; … … 3567 3567 /*Build K: */ 3568 3568 D_scalar=gauss_weight*Jdet/(pow(u,2)+pow(v,2)+epsvel); 3569 if( sub_analysis_type!=SteadyAnalysisEnum()){3569 if(dt){ 3570 3570 D_scalar=D_scalar*dt; 3571 3571 } … … 3870 3870 found=inputs->Recover("velocity",&vxvyvz_list[0][0],3,dofs,numgrids,(void**)nodes); 3871 3871 if(!found)throw ErrorException(__FUNCT__," could not find velocity in inputs!"); 3872 3873 if(sub_analysis_type==TransientAnalysisEnum()){ 3874 found=inputs->Recover("dt",&dt); 3875 if(!found)throw ErrorException(__FUNCT__," could not find dt in inputs!"); 3876 3872 found=inputs->Recover("dt",&dt); 3873 if(!found)throw ErrorException(__FUNCT__," could not find dt in inputs!"); 3874 3875 if(dt){ 3877 3876 found=inputs->Recover("temperature",&temperature_list[0],1,dofs1,numgrids,(void**)nodes); 3878 3877 if(!found)throw ErrorException(__FUNCT__," could not find temperature in inputs!"); … … 3920 3919 3921 3920 /*Build pe_gaussian */ 3922 if(sub_analysis_type==SteadyAnalysisEnum()){ 3923 scalar_def=phi/(rho_ice*heatcapacity)*Jdet*gauss_weight; 3924 } 3925 else{ 3926 scalar_def=dt*phi/(rho_ice*heatcapacity)*Jdet*gauss_weight; 3921 scalar_def=phi/(rho_ice*heatcapacity)*Jdet*gauss_weight; 3922 if(dt){ 3923 scalar_def=scalar_def*dt; 3927 3924 } 3928 3925 … … 3932 3929 3933 3930 /* Build transient now */ 3934 if( sub_analysis_type==TransientAnalysisEnum()){3931 if(dt){ 3935 3932 GetParameterValue(&temperature, &temperature_list[0],gauss_coord); 3936 3933 scalar_transient=temperature*Jdet*gauss_weight; -
issm/trunk/src/c/objects/Tria.cpp
r1632 r1901 3359 3359 /*Calculate DL on gauss point */ 3360 3360 D_scalar=gauss_weight*Jdet*rho_water*mixed_layer_capacity*thermal_exchange_velocity/(heatcapacity*rho_ice); 3361 if( sub_analysis_type!=SteadyAnalysisEnum()){3361 if(dt){ 3362 3362 D_scalar=dt*D_scalar; 3363 3363 } … … 3537 3537 /*recover extra inputs from users, dt and velocity: */ 3538 3538 found=inputs->Recover("dt",&dt); 3539 if((!found) && (sub_analysis_type==TransientAnalysisEnum()))throw ErrorException(__FUNCT__," could not find dt in inputs!"); 3540 3539 if(!found)throw ErrorException(__FUNCT__," could not find dt in inputs!"); 3541 3540 found=inputs->Recover("pressure",&pressure_list[0],1,dofs1,numgrids,(void**)nodes); 3542 3541 if(!found)throw ErrorException(__FUNCT__," could not find pressure in inputs!"); … … 3565 3564 /*Calculate scalar parameter*/ 3566 3565 scalar_ocean=gauss_weight*Jdet*rho_water*mixed_layer_capacity*thermal_exchange_velocity*t_pmp/(heatcapacity*rho_ice); 3567 if( sub_analysis_type==TransientAnalysisEnum()){3566 if(dt){ 3568 3567 scalar_ocean=dt*scalar_ocean; 3569 3568 } … … 3646 3645 /*recover extra inputs from users, dt and velocity: */ 3647 3646 found=inputs->Recover("dt",&dt); 3648 if( (!found) && (sub_analysis_type==TransientAnalysisEnum()))throw ErrorException(__FUNCT__," could not find dt in inputs!");3647 if(!found)throw ErrorException(__FUNCT__," could not find dt in inputs!"); 3649 3648 3650 3649 found=inputs->Recover("velocity",&vxvyvz_list[0][0],3,dofs,numgrids,(void**)nodes); … … 3708 3707 /*Calculate scalar parameter*/ 3709 3708 scalar=gauss_weight*Jdet*(basalfriction+geothermalflux_value)/(heatcapacity*rho_ice); 3710 if( sub_analysis_type==TransientAnalysisEnum()){3709 if(dt){ 3711 3710 scalar=dt*scalar; 3712 3711 } -
issm/trunk/src/c/parallel/steadystate.cpp
r1887 r1901 85 85 86 86 _printf_("\n read and create thermal finite element model:\n"); 87 model->AddFormulation(fid,ThermalAnalysisEnum() ,SteadyAnalysisEnum());87 model->AddFormulation(fid,ThermalAnalysisEnum()); 88 88 _printf_("\n read and create melting finite element model:\n"); 89 model->AddFormulation(fid,MeltingAnalysisEnum() ,SteadyAnalysisEnum());89 model->AddFormulation(fid,MeltingAnalysisEnum()); 90 90 91 91 /*recover parameters: */ -
issm/trunk/src/c/parallel/thermal_core.cpp
r1881 r1901 56 56 fem_t->FindParam((void*)&ndt,"ndt"); 57 57 58 if( sub_analysis_type==SteadyAnalysisEnum()){58 if(ndt==0){ 59 59 60 60 time=(double*)xmalloc(sizeof(double)); … … 66 66 67 67 if(debug)_printf_("computing temperatures:\n"); 68 thermal_core_nonlinear(&t_g[0],&melting_offset,fem_t,inputs,ThermalAnalysisEnum(), SteadyAnalysisEnum());68 thermal_core_nonlinear(&t_g[0],&melting_offset,fem_t,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum()); 69 69 inputs->Add("temperature",t_g[0],1,numberofnodes); 70 70 inputs->Add("melting_offset",melting_offset); 71 71 72 72 if(debug)_printf_("computing melting:\n"); 73 diagnostic_core_linear(&m_g[0],fem_m,inputs,MeltingAnalysisEnum(), SteadyAnalysisEnum());73 diagnostic_core_linear(&m_g[0],fem_m,inputs,MeltingAnalysisEnum(),NoneAnalysisEnum()); 74 74 } 75 75 else{ … … 97 97 if(debug)_printf_("computing temperatures:\n"); 98 98 inputs->Add("temperature",t_g[i],1,numberofnodes); 99 thermal_core_nonlinear(&t_g[i+1],&melting_offset,fem_t,inputs,ThermalAnalysisEnum(), TransientAnalysisEnum());99 thermal_core_nonlinear(&t_g[i+1],&melting_offset,fem_t,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum()); 100 100 101 101 if(debug)_printf_("computing melting:\n"); 102 102 inputs->Add("temperature",t_g[i+1],1,numberofnodes); 103 103 inputs->Add("melting_offset",melting_offset); 104 diagnostic_core_linear(&m_g[i+1],fem_m,inputs,MeltingAnalysisEnum(), TransientAnalysisEnum());104 diagnostic_core_linear(&m_g[i+1],fem_m,inputs,MeltingAnalysisEnum(),NoneAnalysisEnum()); 105 105 } 106 106 } 107 107 108 108 /*Plug results into output dataset: */ 109 if( sub_analysis_type==SteadyAnalysisEnum()){109 if(ndt==0){ 110 110 result=new Result(results->Size()+1,0,1,"t_g",t_g[0]); 111 111 results->AddObject(result); -
issm/trunk/src/m/classes/public/ismodelselfconsistent.m
r1867 r1901 233 233 %STEADYSTATE 234 234 if md.analysis_type==SteadystateAnalysisEnum, 235 %NDT 236 if md.dt~=0, 237 disp(['For a steadystate computation, ndt must be zero.']); 238 bool=0;return; 239 end 235 240 %PRESSURE 236 241 if isnans(md.pressure), … … 250 255 bool=0;return; 251 256 end 252 253 254 255 257 end 256 258 … … 276 278 277 279 %THERMAL TRANSIENT 278 if md.analysis_type==ThermalAnalysisEnum & md. sub_analysis_type==TransientAnalysisEnum,280 if md.analysis_type==ThermalAnalysisEnum & md.dt~=0 279 281 280 282 %DT and NDT -
issm/trunk/src/m/classes/public/process_solve_options.m
r1862 r1901 51 51 disp('recover_solve_options info message: no ''sub_analysis_type'' was provided, defaulting to ''inverse'''); 52 52 sub_analysis_type='inverse'; 53 elseif strcmpi(analysis_type,'thermal'),54 disp('recover_solve_options info message: no ''sub_analysis_type'' was provided, defaulting to ''steady''');55 sub_analysis_type='steady';56 53 else 57 54 sub_analysis_type='none'; … … 79 76 analysis_type=eval([upper(analysis_type(1)) lower(analysis_type(2:end)) 'AnalysisEnum']); 80 77 end 81 if ~ismemberi(sub_analysis_type,{'none',' steady','horiz','adjoint','gradient','inverse','vert','','transient'}),78 if ~ismemberi(sub_analysis_type,{'none','horiz','adjoint','gradient','inverse','vert',''}), 82 79 error(['process_solve_options error message: sub_analysis_type ' sub_analysis_type ' not supported yet!']); 83 80 else -
issm/trunk/src/m/enum/AnalysisTypeFromEnum.m
r1865 r1901 57 57 end 58 58 59 if enum==SteadyAnalysisEnum(),60 string='steady';61 end62 63 59 if enum==TransientAnalysisEnum(), 64 60 string='transient'; -
issm/trunk/src/m/enum/TransientAnalysisEnum.m
r1714 r1901 7 7 % macro=TransientAnalysisEnum() 8 8 9 macro=23 2;9 macro=231; -
issm/trunk/src/m/solutions/cielo/control.m
r1850 r1901 28 28 29 29 displaystring(md.debug,'\n%s',['reading thermal model data']); 30 md.analysis_type=ThermalAnalysisEnum(); md.sub_analysis_type= SteadyAnalysisEnum(); models.t=CreateFemModel(md);30 md.analysis_type=ThermalAnalysisEnum(); md.sub_analysis_type=NoneAnalysisEnum(); models.t=CreateFemModel(md); 31 31 32 32 displaystring(md.debug,'\n%s',['reading melting model data']); 33 md.analysis_type=MeltingAnalysisEnum(); md.sub_analysis_type= SteadyAnalysisEnum(); models.m=CreateFemModel(md);33 md.analysis_type=MeltingAnalysisEnum(); md.sub_analysis_type=NoneAnalysisEnum(); models.m=CreateFemModel(md); 34 34 35 35 -
issm/trunk/src/m/solutions/cielo/steadystate.m
r1889 r1901 29 29 %Build all models requested for thermal simulation 30 30 displaystring(md.debug,'%s',['reading thermal model data']); 31 md.analysis_type=ThermalAnalysisEnum(); md.sub_analysis_type= SteadyAnalysisEnum(); models.t=CreateFemModel(md);31 md.analysis_type=ThermalAnalysisEnum(); md.sub_analysis_type=NoneAnalysisEnum(); models.t=CreateFemModel(md); 32 32 33 33 displaystring(md.debug,'%s',['reading melting model data']); 34 md.analysis_type=MeltingAnalysisEnum(); md.sub_analysis_type= SteadyAnalysisEnum(); models.m=CreateFemModel(md);34 md.analysis_type=MeltingAnalysisEnum(); md.sub_analysis_type=NoneAnalysisEnum(); models.m=CreateFemModel(md); 35 35 36 36 % figure out number of dof: just for information purposes. -
issm/trunk/src/m/solutions/cielo/thermal_core.m
r1647 r1901 9 9 m_m=models.m; 10 10 11 if m_t.parameters. sub_analysis_type==SteadyAnalysisEnum(),11 if m_t.parameters.dt==0, 12 12 13 13 results.time=0; … … 15 15 16 16 displaystring(m_t.parameters.debug,'\n%s',['computing temperatures...']); 17 [results.t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs,ThermalAnalysisEnum(), SteadyAnalysisEnum());17 [results.t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum()); 18 18 19 19 displaystring(m_t.parameters.debug,'\n%s',['computing melting...']); 20 20 inputs=add(inputs,'melting_offset',melting_offset,'double'); 21 21 inputs=add(inputs,'temperature',results.t_g,'doublevec',1,m_t.parameters.numberofnodes); 22 results.m_g=diagnostic_core_linear(m_m,inputs,MeltingAnalysisEnum(), SteadyAnalysisEnum());22 results.m_g=diagnostic_core_linear(m_m,inputs,MeltingAnalysisEnum(),NoneAnalysisEnum()); 23 23 24 24 else … … 43 43 displaystring(m_t.parameters.debug,'\n%s',[' computing temperatures...']); 44 44 inputs=add(inputs,'temperature',results(n).t_g,'doublevec',1,m_t.parameters.numberofnodes); 45 [results(n+1).t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs,ThermalAnalysisEnum(), TransientAnalysisEnum());45 [results(n+1).t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum()); 46 46 47 47 displaystring(m_t.parameters.debug,'\n%s',[' computing melting...']); 48 48 inputs=add(inputs,'temperature',results(n+1).t_g,'doublevec',1,m_t.parameters.numberofnodes); 49 49 inputs=add(inputs,'melting_offset',melting_offset,'double'); 50 results(n+1).m_g=diagnostic_core_linear(m_m,inputs,MeltingAnalysisEnum(), TransientAnalysisEnum());50 results(n+1).m_g=diagnostic_core_linear(m_m,inputs,MeltingAnalysisEnum(),NoneAnalysisEnum()); 51 51 52 52 end -
issm/trunk/src/m/utils/Nightly/testsgetanalysis.m
r1863 r1901 23 23 elseif strcmpi(string,'thermalsteady'), 24 24 analysis_type='thermal'; 25 sub_analysis_type=' steady';25 sub_analysis_type='none'; 26 26 27 27 elseif strcmpi(string,'thermaltransient'), 28 28 analysis_type='thermal'; 29 sub_analysis_type=' transient';29 sub_analysis_type='none'; 30 30 31 31 elseif strcmpi(string,'transient'),
Note:
See TracChangeset
for help on using the changeset viewer.