Changeset 11813
- Timestamp:
- 03/29/12 14:28:46 (13 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h
r11810 r11813 172 172 TransientIsprognosticEnum, 173 173 TransientIsthermalEnum, 174 SteadystateIsdiagnosticEnum, 175 SteadystateIsthermalEnum, 174 176 TransientNumRequestedOutputsEnum, 175 177 TransientRequestedOutputsEnum, -
issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp
r11810 r11813 176 176 case TransientIsprognosticEnum : return "TransientIsprognostic"; 177 177 case TransientIsthermalEnum : return "TransientIsthermal"; 178 case SteadystateIsdiagnosticEnum : return "SteadystateIsdiagnostic"; 179 case SteadystateIsthermalEnum : return "SteadystateIsthermal"; 178 180 case TransientNumRequestedOutputsEnum : return "TransientNumRequestedOutputs"; 179 181 case TransientRequestedOutputsEnum : return "TransientRequestedOutputs"; -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r11810 r11813 81 81 parameters->AddObject(iomodel->CopyConstantObject(TransientIsgroundinglineEnum)); 82 82 parameters->AddObject(iomodel->CopyConstantObject(ThermalIsenthalpyEnum)); 83 parameters->AddObject(iomodel->CopyConstantObject(SteadystateIsdiagnosticEnum)); 84 parameters->AddObject(iomodel->CopyConstantObject(SteadystateIsthermalEnum)); 83 85 parameters->AddObject(iomodel->CopyConstantObject(MaterialsRheologyLawEnum)); 84 86 parameters->AddObject(iomodel->CopyConstantObject(AutodiffIsautodiffEnum)); -
issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp
r11603 r11813 21 21 int i,analysis_type,dim,verbose; 22 22 bool isthermal,isprognostic,isdiagnostic,isgroundingline,isenthalpy; 23 bool steadystateisthermal,steadystateisdiagnostic; 23 24 24 25 /*output: */ … … 43 44 iomodel->Constant(&isdiagnostic,TransientIsdiagnosticEnum); 44 45 iomodel->Constant(&isgroundingline,TransientIsgroundinglineEnum); 46 iomodel->Constant(&steadystateisthermal,SteadystateIsthermalEnum); 47 iomodel->Constant(&steadystateisdiagnostic,SteadystateIsdiagnosticEnum); 45 48 46 49 SetVerbosityLevel(verbose); … … 67 70 if(solution_type==SteadystateSolutionEnum && analysis_type==MeltingAnalysisEnum && isenthalpy==true) continue; 68 71 if(solution_type==SteadystateSolutionEnum && analysis_type==EnthalpyAnalysisEnum && isenthalpy==false) continue; 72 if(solution_type==SteadystateSolutionEnum && analysis_type==EnthalpyAnalysisEnum && steadystateisthermal==false) continue; 73 if(solution_type==SteadystateSolutionEnum && analysis_type==ThermalAnalysisEnum && steadystateisthermal==false) continue; 74 if(solution_type==SteadystateSolutionEnum && analysis_type==DiagnosticHorizAnalysisEnum && steadystateisdiagnostic==false) continue; 75 if(solution_type==SteadystateSolutionEnum && analysis_type==DiagnosticVertAnalysisEnum && steadystateisdiagnostic==false) continue; 76 if(solution_type==SteadystateSolutionEnum && analysis_type==DiagnosticHutterAnalysisEnum && steadystateisdiagnostic==false) continue; 69 77 70 78 _printf_(VerboseMProcessor()," creating datasets for analysis %s\n",EnumToStringx(analysis_type)); -
issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp
r11810 r11813 180 180 else if (strcmp(name,"TransientIsprognostic")==0) return TransientIsprognosticEnum; 181 181 else if (strcmp(name,"TransientIsthermal")==0) return TransientIsthermalEnum; 182 else if (strcmp(name,"SteadystateIsdiagnostic")==0) return SteadystateIsdiagnosticEnum; 183 else if (strcmp(name,"SteadystateIsthermal")==0) return SteadystateIsthermalEnum; 182 184 else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum; 183 185 else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum; … … 258 260 else if (strcmp(name,"Matpar")==0) return MatparEnum; 259 261 else if (strcmp(name,"Node")==0) return NodeEnum; 260 else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;261 else if (strcmp(name,"Param")==0) return ParamEnum;262 262 else stage=3; 263 263 } 264 264 if(stage==3){ 265 if (strcmp(name,"PattynIceFront")==0) return PattynIceFrontEnum; 265 if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum; 266 else if (strcmp(name,"Param")==0) return ParamEnum; 267 else if (strcmp(name,"PattynIceFront")==0) return PattynIceFrontEnum; 266 268 else if (strcmp(name,"Pengrid")==0) return PengridEnum; 267 269 else if (strcmp(name,"Penpair")==0) return PenpairEnum; … … 381 383 else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum; 382 384 else if (strcmp(name,"DoubleElementResult")==0) return DoubleElementResultEnum; 383 else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum;384 else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"DoubleVecExternalResult")==0) return DoubleVecExternalResultEnum; 388 if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum; 389 else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum; 390 else if (strcmp(name,"DoubleVecExternalResult")==0) return DoubleVecExternalResultEnum; 389 391 else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum; 390 392 else if (strcmp(name,"J")==0) return JEnum; -
issm/trunk-jpl/src/c/solutions/steadystate_core.cpp
r11603 r11813 26 26 /*parameters: */ 27 27 bool control_analysis,isenthalpy; 28 bool isthermal,isdiagnostic; 28 29 int dim; 29 30 int solution_type; … … 39 40 femmodel->parameters->FindParam(&numoutputs,SteadystateNumRequestedOutputsEnum); 40 41 femmodel->parameters->FindParam(&isenthalpy,ThermalIsenthalpyEnum); 42 femmodel->parameters->FindParam(&isthermal,SteadystateIsthermalEnum); 43 femmodel->parameters->FindParam(&isdiagnostic,SteadystateIsdiagnosticEnum); 41 44 if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,SteadystateRequestedOutputsEnum); 42 45 … … 46 49 for(;;){ 47 50 48 _printf_(VerboseSolution(),"%s%i\n"," computing temperature and velocity for step: ",step);49 51 #ifdef _HAVE_THERMAL_ 50 if(isenthalpy==0){ 51 thermal_core(femmodel); 52 } 53 else{ 54 enthalpy_core(femmodel); 52 if(isthermal){ 53 _printf_(VerboseSolution(),"%s%i\n"," computing temperature and velocity for step: ",step); 54 if(isenthalpy==0){ 55 thermal_core(femmodel); 56 } 57 else{ 58 enthalpy_core(femmodel); 59 } 55 60 } 56 61 #else … … 58 63 #endif 59 64 60 _printf_(VerboseSolution(),"%s\n"," computing new velocity"); 61 diagnostic_core(femmodel); 65 if(isdiagnostic){ 66 _printf_(VerboseSolution(),"%s\n"," computing new velocity"); 67 diagnostic_core(femmodel); 68 } 62 69 63 70 if (step>1){ -
issm/trunk-jpl/src/m/classes/steadystate.m
r10969 r11813 8 8 reltol = 0; 9 9 maxiter = 0; 10 isdiagnostic = 0; 11 isthermal = 0; 10 12 requested_outputs = NaN; 11 13 end … … 32 34 %Relative tolerance for the steadystate convertgence 33 35 obj.reltol=0.01; 36 37 %Default is diagnostic and thermal 38 obj.isdiagnostic=1; 39 obj.isthermal=1; 34 40 end % }}} 35 41 function checkconsistency(obj,md,solution,analyses) % {{{ … … 45 51 checkmessage(['model not consistent: for a steadystate computation, diagnostic.reltol (relative convergence criterion) must be defined!']); 46 52 end 53 54 checkfield(md,'transient.isdiagnostic','numel',1,'values',[0 1]); 55 checkfield(md,'transient.isthermal','numel',1,'values',[0 1]); 47 56 end % }}} 48 57 function disp(obj) % {{{ … … 51 60 fielddisplay(obj,'reltol','relative tolerance criterion'); 52 61 fielddisplay(obj,'maxiter','maximum number of iterations'); 62 fielddisplay(obj,'isthermal','indicates if a thermal solution is used in the steady-state'); 63 fielddisplay(obj,'isdiagnostic','indicates if a diagnostic solution is used in the steady-state'); 53 64 fielddisplay(obj,'requested_outputs','additional requested outputs'); 54 65 … … 57 68 WriteData(fid,'object',obj,'fieldname','reltol','format','Double'); 58 69 WriteData(fid,'object',obj,'fieldname','maxiter','format','Integer'); 70 WriteData(fid,'object',obj,'fieldname','isdiagnostic','format','Boolean'); 71 WriteData(fid,'object',obj,'fieldname','isthermal','format','Boolean'); 59 72 WriteData(fid,'object',obj,'fieldname','requested_outputs','format','DoubleMat','mattype',3); 60 73 end % }}} -
issm/trunk-jpl/src/m/solutions/steadystate_core.m
r11607 r11813 11 11 solution_type=femmodel.parameters.SolutionType; 12 12 isenthalpy=femmodel.parameters.ThermalIsenthalpy; 13 isdiagnostic=femmodel.parameters.SteadystateIsdiagnostic; 14 isthermal=femmodel.parameters.SteadystateIsthermal; 13 15 14 16 %Initialize counter … … 17 19 while true, 18 20 19 issmprintf(VerboseSolution,'\n%s%i\n',' computing velocities and temperatures for step: ',step); 20 if (isenthalpy==0), 21 femmodel=thermal_core(femmodel); 22 else 23 femmodel=enthalpy_core(femmodel); 21 if(isthermal), 22 issmprintf(VerboseSolution,'\n%s%i\n',' computing velocities and temperatures for step: ',step); 23 if (isenthalpy==0), 24 femmodel=thermal_core(femmodel); 25 else 26 femmodel=enthalpy_core(femmodel); 27 end 24 28 end 25 29 26 issmprintf(VerboseSolution,'\n%s',[' computing new velocity']); 27 femmodel=diagnostic_core(femmodel); 30 if(isdiagnostic), 31 issmprintf(VerboseSolution,'\n%s',[' computing new velocity']); 32 femmodel=diagnostic_core(femmodel); 33 end 28 34 29 35 if step>1,
Note:
See TracChangeset
for help on using the changeset viewer.