Index: /proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/thermal_core.cpp =================================================================== --- /proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/thermal_core.cpp (revision 11821) +++ /proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/thermal_core.cpp (revision 11822) @@ -17,52 +17,28 @@ int i; /*intermediary*/ - double time; - int nsteps; - double starttime,final_time; - double dt; double melting_offset; bool control_analysis; int solution_type; bool dakota_analysis = false; //first recover parameters common to all solutions - femmodel->parameters->FindParam(&starttime,TimesteppingStartTimeEnum); - femmodel->parameters->FindParam(&final_time,TimesteppingFinalTimeEnum); - femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum); femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum); femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); - /*Compute number of time steps: */ - if((dt==0)|| (final_time==0)){ - dt=0; - nsteps=1; - } - else nsteps=(int)((final_time-starttime)/dt); - time=starttime; - if(dakota_analysis){ femmodel->SetCurrentConfiguration(ThermalAnalysisEnum); ResetConstraintsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); } - printf("start = %g final = %g n=%i\n",starttime,final_time,nsteps); - /*Loop through time: */ - for(i=0;iparameters->SetParam(time,TimeEnum); + /*call thermal_core_step: */ + thermal_core_step(femmodel); - /*call thermal_core_step: */ - thermal_core_step(femmodel,i,time); - - if(solution_type==ThermalSolutionEnum && !control_analysis){ - _printf_(VerboseSolution()," saving results\n"); - InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum,i+1,time); - InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalforcingsMeltingRateEnum,i+1,time); - } - + if(solution_type==ThermalSolutionEnum && !control_analysis){ + _printf_(VerboseSolution()," saving results\n"); + InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum); + InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalforcingsMeltingRateEnum); } + } Index: /proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/solutions.h =================================================================== --- /proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/solutions.h (revision 11821) +++ /proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/solutions/solutions.h (revision 11822) @@ -19,7 +19,7 @@ void hydrology_core(FemModel* femmodel); void hydrology_core_step(FemModel* femmodel,int step, double time); void thermal_core(FemModel* femmodel); -void thermal_core_step(FemModel* femmodel,int step, double time); +void thermal_core_step(FemModel* femmodel,int step=0, double time=0); void enthalpy_core(FemModel* femmodel); void enthalpy_core_step(FemModel* femmodel,int step, double time); void surfaceslope_core(FemModel* femmodel); Index: /proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/solutions/thermal_core.m =================================================================== --- /proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/solutions/thermal_core.m (revision 11821) +++ /proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/solutions/thermal_core.m (revision 11822) @@ -11,27 +11,13 @@ control_analysis=femmodel.parameters.InversionIscontrol; solution_type=femmodel.parameters.SolutionType; - %Compute number of timesteps - if (dt==0 | ndt==0), - dt=0; - nsteps=1; - else - nsteps=floor(ndt/dt); - end + issmprintf(VerboseSolution,'\n%s',[' computing temperature']); + femmodel=thermal_core_step(femmodel); - %Loop through time - for i=1:nsteps, - issmprintf(VerboseSolution,'\n%s%i/%i\n','time step: ',i,nsteps); - time=(i+1)*dt; - - issmprintf(VerboseSolution,'\n%s',[' computing temperature']); - femmodel=thermal_core_step(femmodel,i,time); - - if (solution_type==ThermalSolutionEnum & ~control_analysis), - issmprintf(VerboseSolution,'\n%s',[' saving results']); - femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,TemperatureEnum,i,time); - femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BasalforcingsMeltingRateEnum,i,time); - end + if (solution_type==ThermalSolutionEnum & ~control_analysis), + issmprintf(VerboseSolution,'\n%s',[' saving results']); + femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,TemperatureEnum); + femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BasalforcingsMeltingRateEnum); end end %end of function