Changeset 1850
- Timestamp:
- 08/24/09 18:05:31 (16 years ago)
- Location:
- issm/trunk/src/m/solutions/cielo
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/solutions/cielo/control.m
r1647 r1850 27 27 md.analysis_type=SlopeComputeAnalysisEnum(); md.sub_analysis_type=NoneAnalysisEnum(); models.sl=CreateFemModel(md); 28 28 29 displaystring(md.debug,'\n%s',['reading thermal model data']); 30 md.analysis_type=ThermalAnalysisEnum(); md.sub_analysis_type=SteadyAnalysisEnum(); models.t=CreateFemModel(md); 31 32 displaystring(md.debug,'\n%s',['reading melting model data']); 33 md.analysis_type=MeltingAnalysisEnum(); md.sub_analysis_type=SteadyAnalysisEnum(); models.m=CreateFemModel(md); 34 35 29 36 % figure out number of dof: just for information purposes. 30 37 md.dof=modelsize(models); … … 34 41 inputs=add(inputs,'velocity',models.dh.parameters.u_g,'doublevec',3,models.dh.parameters.numberofnodes); 35 42 inputs=add(inputs,'velocity_obs',models.dh.parameters.u_g_obs,'doublevec',2,models.dh.parameters.numberofnodes); 43 inputs=add(inputs,'pressure',models.t.parameters.p_g,'doublevec',1,models.t.parameters.numberofnodes); 44 inputs=add(inputs,'dt',models.t.parameters.dt*models.t.parameters.yts,'double'); 36 45 37 46 %compute solution -
issm/trunk/src/m/solutions/cielo/objectivefunctionC.m
r1207 r1850 1 function J =objectivefunctionC(search_scalar,m,inputs,p_g,grad_g,n,analysis_type,sub_analysis_type); 2 1 function J =objectivefunctionC(search_scalar,models,inputs,p_g,grad_g,n,analysis_type,sub_analysis_type); 2 3 %recover active model. 4 m=models.active; 5 3 6 %recover some parameters 4 7 optscal=m.parameters.optscal(n); 5 8 fit=m.parameters.fit(n); 6 9 control_type=m.parameters.control_type; 10 thermalstatic=m.parameters.thermalstatic; 7 11 8 12 %Update along gradient using scalar supplied by fmincon optimization routine … … 13 17 14 18 %Run diagnostic with updated parameters. 15 u_g=diagnostic_core_nonlinear(m,inputs,analysis_type,sub_analysis_type); 19 if ~thermalstatic, 20 %do a simple diagnostic, with the current temperature profile, do not look for steady state. 21 u_g=diagnostic_core_nonlinear(m,inputs,analysis_type,sub_analysis_type); 22 else 23 %do a full thermal mechanical steady state converged computation, much slower! 24 results=thermalstatic_core(models,inputs); u_g=results.u_g; 25 26 %u_g ships with 3 or 4 dofs, we only want the horizontal ones! 27 if ~models.dh.parameters.isstokes, 28 u_g=u_g(dofsetgen([1,2],3,m.parameters.numberofnodes*3)); 29 end 30 end 31 32 %add velocity to inputs. 16 33 inputs=add(inputs,'velocity',u_g,'doublevec',m.parameters.numberofdofspernode,m.parameters.numberofnodes); 17 34 -
issm/trunk/src/m/solutions/cielo/thermalstatic_core.m
r1805 r1850 16 16 17 17 %recover parameters common to all solutions 18 debug=m_dhu.parameters.debug; debug=1;18 debug=m_dhu.parameters.debug; 19 19 dim=m_dhu.parameters.dim; 20 20 eps_rel=m_dhu.parameters.eps_rel; … … 40 40 %first compute temperature at steady state. 41 41 if (step>1), 42 inputs=add(inputs,'velocity',results .u_g,'doublevec',ndof,m_t.parameters.numberofnodes);42 inputs=add(inputs,'velocity',results_diagnostic.u_g,'doublevec',ndof,m_t.parameters.numberofnodes); 43 43 end 44 44 results_thermal=thermal_core(models,inputs);
Note:
See TracChangeset
for help on using the changeset viewer.