Changeset 940
- Timestamp:
- 06/12/09 09:00:57 (16 years ago)
- Location:
- issm/trunk/src/m/solutions/cielo
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/solutions/cielo/modelsize.m
r938 r940 14 14 for i=1:length(modelsname); 15 15 if ~isempty(models.(modelsname{i}).nodesets), 16 dof=max(dof,models.(modelsname{i}).nodesets.fsize) 16 dof=max(dof,models.(modelsname{i}).nodesets.fsize); 17 17 end 18 18 end -
issm/trunk/src/m/solutions/cielo/thermal.m
r938 r940 24 24 inputs=add(inputs,'pressure',models.t.parameters.p_g,'doublevec',1,models.t.parameters.numberofnodes); 25 25 inputs=add(inputs,'dt',models.t.parameters.dt,'double'); 26 models.t.parameters27 26 28 27 %call core 29 results=thermal_core(models,inputs,md.sub_analysis_type); 28 rawresults=thermal_core(models,inputs); 29 30 %process results 31 results=struct('step',{},'time',{},'temperature',{},'melting',{}); 32 yts=models.t.parameters.yts; 33 for n=1:length(rawresults), 34 results(n).temperature=rawresults(n).t_g; 35 results(n).melting=rawresults(n).m_g*yts; %in m/year 36 results(n).time=rawresults(n).time/yts; %in years 37 results(n).step=n; 38 end 30 39 31 40 %plug onto the model -
issm/trunk/src/m/solutions/cielo/thermal_core.m
r936 r940 1 function results=thermal_core(models,inputs ,sub_analysis_type)1 function results=thermal_core(models,inputs) 2 2 %THERMAL_CORE - core of thermal solution 3 3 % 4 4 % Usage: 5 % solution=thermal_core(models,inputs ,sub_analysis_type)5 % solution=thermal_core(models,inputs) 6 6 7 7 %get FE model … … 9 9 m_m=models.m; 10 10 11 if strcmpi(sub_analysis_type,'steady'), 11 if m_t.parameters.sub_analysis_type==steadyenum, 12 13 results.time=0; 12 14 13 15 displaystring(m_t.parameters.debug,'\n%s',['computing temperatures...']); 14 [ t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs,'thermal','steady');16 [results.t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs,'thermal','steady'); 15 17 16 18 displaystring(m_t.parameters.debug,'\n%s',['computing melting...']); 17 19 inputs=add(inputs,'melting_offset',melting_offset,'double'); 18 inputs=add(inputs,'temperature',t_g,'doublevec',1,m_t.parameters.numberofnodes); 19 m_g=diagnostic_core_linear(m_m,inputs,'melting','steady'); 20 21 displaystring(m_t.parameters.debug,'\n%s',['load results...']); 22 results=struct('step',[],'time',[],'temperature',[],'melting',[]); 23 results.step=1; 24 results.time=0; 25 results.temperature=t_g; 26 results.melting=m_g*m_t.parameters.yts; %from m/s to m/a; 20 inputs=add(inputs,'temperature',results.t_g,'doublevec',1,m_t.parameters.numberofnodes); 21 results.m_g=diagnostic_core_linear(m_m,inputs,'melting','steady'); 27 22 28 23 else … … 34 29 35 30 %initialize temperature and melting 36 soln.t_g=t_g; 37 soln.m_g=m_g; 38 soln.time=0; 31 results.t_g=t_g; 32 results.m_g=m_g; 39 33 40 34 for n=1:nsteps, 41 35 42 36 displaystring(m_t.parameters.debug,'\n%s%i/%i\n','time step: ',n,nsteps); 43 soln(n+1).time=n*m_t.parameters.dt;37 results(n+1).time=n*m_t.parameters.dt; 44 38 45 39 displaystring(m_t.parameters.debug,'\n%s',[' computing temperatures...']); 46 inputs=add(inputs,'temperature', soln(n).t_g,'doublevec',1,m_t.parameters.numberofnodes);47 [ soln(n+1).t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs,'thermal','transient');40 inputs=add(inputs,'temperature',results(n).t_g,'doublevec',1,m_t.parameters.numberofnodes); 41 [results(n+1).t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs,'thermal','transient'); 48 42 49 43 disp(' computing melting...'); 50 inputs=add(inputs,'temperature', soln(n+1).t_g,'doublevec',1,m_t.parameters.numberofnodes);44 inputs=add(inputs,'temperature',results(n+1).t_g,'doublevec',1,m_t.parameters.numberofnodes); 51 45 inputs=add(inputs,'melting_offset',melting_offset,'double'); 52 soln(n+1).m_g=diagnostic_core_linear(m_m,inputs,'melting','transient');46 results(n+1).m_g=diagnostic_core_linear(m_m,inputs,'melting','transient'); 53 47 54 48 end 55 49 56 %Wrap up57 results=struct('step',{},'time',{},'temperature',{},'melting',{});58 for n=1:nsteps+1,59 results(n).temperature=soln(n).t_g;60 results(n).melting=soln(n).m_g*m_t.parameters.yts; %in m/year61 results(n).time=soln(n).time/m_t.parameters.yts; %in years62 results(n).step=n;63 end64 50 end
Note:
See TracChangeset
for help on using the changeset viewer.