source:
issm/oecreview/Archive/11821-11840/ISSM-11821-11822.diff
Last change on this file was 11991, checked in by , 13 years ago | |
---|---|
File size: 5.3 KB |
-
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/thermal_core.cpp
17 17 int i; 18 18 19 19 /*intermediary*/ 20 double time;21 int nsteps;22 double starttime,final_time;23 double dt;24 20 double melting_offset; 25 21 bool control_analysis; 26 22 int solution_type; 27 23 bool dakota_analysis = false; 28 24 29 25 //first recover parameters common to all solutions 30 femmodel->parameters->FindParam(&starttime,TimesteppingStartTimeEnum);31 femmodel->parameters->FindParam(&final_time,TimesteppingFinalTimeEnum);32 femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);33 26 femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum); 34 27 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 35 28 femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); 36 29 37 /*Compute number of time steps: */38 if((dt==0)|| (final_time==0)){39 dt=0;40 nsteps=1;41 }42 else nsteps=(int)((final_time-starttime)/dt);43 time=starttime;44 45 30 if(dakota_analysis){ 46 31 femmodel->SetCurrentConfiguration(ThermalAnalysisEnum); 47 32 ResetConstraintsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 48 33 } 49 printf("start = %g final = %g n=%i\n",starttime,final_time,nsteps);50 34 51 /*Loop through time: */ 52 for(i=0;i<nsteps;i++){ 53 54 if(nsteps)_printf_(VerboseSolution(),"time step: %i/%i\n",i+1,nsteps); 55 time+=dt; 56 femmodel->parameters->SetParam(time,TimeEnum); 35 /*call thermal_core_step: */ 36 thermal_core_step(femmodel); 57 37 58 /*call thermal_core_step: */ 59 thermal_core_step(femmodel,i,time); 60 61 if(solution_type==ThermalSolutionEnum && !control_analysis){ 62 _printf_(VerboseSolution()," saving results\n"); 63 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum,i+1,time); 64 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalforcingsMeltingRateEnum,i+1,time); 65 } 66 38 if(solution_type==ThermalSolutionEnum && !control_analysis){ 39 _printf_(VerboseSolution()," saving results\n"); 40 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum); 41 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalforcingsMeltingRateEnum); 67 42 } 43 68 44 } -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/solutions.h
19 19 void hydrology_core(FemModel* femmodel); 20 20 void hydrology_core_step(FemModel* femmodel,int step, double time); 21 21 void thermal_core(FemModel* femmodel); 22 void thermal_core_step(FemModel* femmodel,int step , double time);22 void thermal_core_step(FemModel* femmodel,int step=0, double time=0); 23 23 void enthalpy_core(FemModel* femmodel); 24 24 void enthalpy_core_step(FemModel* femmodel,int step, double time); 25 25 void surfaceslope_core(FemModel* femmodel); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/solutions/thermal_core.m
11 11 control_analysis=femmodel.parameters.InversionIscontrol; 12 12 solution_type=femmodel.parameters.SolutionType; 13 13 14 %Compute number of timesteps 15 if (dt==0 | ndt==0), 16 dt=0; 17 nsteps=1; 18 else 19 nsteps=floor(ndt/dt); 20 end 14 issmprintf(VerboseSolution,'\n%s',[' computing temperature']); 15 femmodel=thermal_core_step(femmodel); 21 16 22 %Loop through time 23 for i=1:nsteps, 24 issmprintf(VerboseSolution,'\n%s%i/%i\n','time step: ',i,nsteps); 25 time=(i+1)*dt; 26 27 issmprintf(VerboseSolution,'\n%s',[' computing temperature']); 28 femmodel=thermal_core_step(femmodel,i,time); 29 30 if (solution_type==ThermalSolutionEnum & ~control_analysis), 31 issmprintf(VerboseSolution,'\n%s',[' saving results']); 32 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,TemperatureEnum,i,time); 33 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BasalforcingsMeltingRateEnum,i,time); 34 end 17 if (solution_type==ThermalSolutionEnum & ~control_analysis), 18 issmprintf(VerboseSolution,'\n%s',[' saving results']); 19 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,TemperatureEnum); 20 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BasalforcingsMeltingRateEnum); 35 21 end 36 22 37 23 end %end of function
Note:
See TracBrowser
for help on using the repository browser.