Changeset 11823


Ignore:
Timestamp:
03/30/12 11:04:02 (13 years ago)
Author:
seroussi
Message:

removed loop in enthalpy -> use transient for transient enthalpy models

Location:
issm/trunk-jpl/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/solutions/enthalpy_core.cpp

    r11810 r11823  
    1818
    1919        /*intermediary*/
    20         double time;
    21         int    nsteps;
    22         double starttime,final_time;
    23         double dt;
    24         double melting_offset;
    2520        bool   control_analysis;
    2621        int    solution_type;
    2722
    2823        //first recover parameters common to all solutions
    29         femmodel->parameters->FindParam(&starttime,TimesteppingStartTimeEnum);
    30         femmodel->parameters->FindParam(&final_time,TimesteppingFinalTimeEnum);
    31         femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
    3224        femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
    3325        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
    3426
    35         /*Compute number of time steps: */
    36         if((dt==0)|| (final_time==0)){
    37                 dt=0;
    38                 nsteps=1;
     27        /*call enthalpy_core_step: */
     28        enthalpy_core_step(femmodel);
     29
     30        if(solution_type==EnthalpySolutionEnum && !control_analysis){
     31                _printf_(VerboseSolution(),"   saving results\n");
     32                InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum);
     33                InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,EnthalpyEnum);
     34                InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WaterfractionEnum);
    3935        }
    40         else nsteps=(int)((final_time-starttime)/dt);
    41         time=starttime;
    4236
    43         /*Loop through time: */
    44         for(i=0;i<nsteps;i++){
    45                
    46                 if(nsteps)_printf_(VerboseSolution(),"time step: %i/%i\n",i+1,nsteps);
    47                 time+=dt;
    48 
    49                 /*call enthalpy_core_step: */
    50                 enthalpy_core_step(femmodel,i,time);
    51 
    52                 if(solution_type==EnthalpySolutionEnum && !control_analysis){
    53                         _printf_(VerboseSolution(),"   saving results\n");
    54                         InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum,i+1,time);
    55                         InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,EnthalpyEnum,i+1,time);
    56                         InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,WaterfractionEnum,i+1,time);
    57                 }
    58 
    59         }
    6037}
  • issm/trunk-jpl/src/c/solutions/solutions.h

    r11822 r11823  
    2222void thermal_core_step(FemModel* femmodel,int step=0, double time=0);
    2323void enthalpy_core(FemModel* femmodel);
    24 void enthalpy_core_step(FemModel* femmodel,int step, double time);
     24void enthalpy_core_step(FemModel* femmodel,int step=0, double time=0);
    2525void surfaceslope_core(FemModel* femmodel);
    2626void bedslope_core(FemModel* femmodel);
  • issm/trunk-jpl/src/m/solutions/enthalpy_core.m

    r11299 r11823  
    66
    77        %recover parameters common to all solutions
    8         ndt=femmodel.parameters.TimesteppingFinalTime;
    9         dt=femmodel.parameters.TimesteppingTimeStep;
    108        control_analysis=femmodel.parameters.InversionIscontrol;
    119        solution_type=femmodel.parameters.SolutionType;
    1210
    13         %Compute number of timesteps
    14         if (dt==0 | ndt==0),
    15                 dt=0;
    16                 nsteps=1;
    17         else
    18                 nsteps=floor(ndt/dt);
    19         end
     11        issmprintf(VerboseSolution,'\n%s',['   computing enthalpy']);
     12        femmodel=enthalpy_core_step(femmodel);
    2013
    21         %Loop through time
    22         for i=1:nsteps,
    23                 issmprintf(VerboseSolution,'\n%s%i/%i\n','time step: ',i,nsteps);
    24                 time=(i+1)*dt;
    25 
    26                 femmodel=enthalpy_core_step(femmodel,i,time);
    27 
    28                 if (solution_type==EnthalpySolutionEnum & ~control_analysis),
    29                         issmprintf(VerboseSolution,'\n%s',['   saving results']);
    30                         femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,EnthalpyEnum,i,time);
    31                         femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,TemperatureEnum,i,time);
    32                         femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,WaterfractionEnum,i,time);
    33                 end
     14        if (solution_type==EnthalpySolutionEnum & ~control_analysis),
     15                issmprintf(VerboseSolution,'\n%s',['   saving results']);
     16                femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,EnthalpyEnum);
     17                femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,TemperatureEnum);
     18                femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,WaterfractionEnum);
    3419        end
    3520
  • issm/trunk-jpl/src/m/solutions/thermal_core.m

    r11822 r11823  
    77
    88        %recover parameters common to all solutions
    9         ndt=femmodel.parameters.TimesteppingFinalTime;
    10         dt=femmodel.parameters.TimesteppingTimeStep;
    119        control_analysis=femmodel.parameters.InversionIscontrol;
    1210        solution_type=femmodel.parameters.SolutionType;
Note: See TracChangeset for help on using the changeset viewer.