Changeset 967
- Timestamp:
- 06/12/09 16:25:23 (16 years ago)
- Location:
- issm/trunk/src/m/solutions/cielo
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/solutions/cielo/diagnostic.m
r963 r967 38 38 39 39 %process results 40 md.results.diagnostic=processresults(models,results); 40 if ~isstruct(md.results), md.results=struct(); end 41 md.results.diagnostic=processresults(results,models,'diagnostic'); 41 42 else 42 43 %launch dakota driver for diagnostic core solution -
issm/trunk/src/m/solutions/cielo/diagnostic_core.m
r922 r967 111 111 112 112 %load onto results 113 results.step=1; 114 results.time=0; 113 115 results.u_g=u_g; 114 116 results.p_g=p_g; -
issm/trunk/src/m/solutions/cielo/processresults.m
r959 r967 1 function newresults=processresults( models,results);1 function newresults=processresults(results,models,analysis_type); 2 2 %PROCESSRESULTS - process results from core solution 3 3 % … … 6 6 % 7 7 % Usage: 8 % results=processresults( md,results,m_dh,m_ds,m_dhu)8 % results=processresults(results,models,analysis_type) 9 9 10 %recover models 11 m_dh=models.dh; 12 m_ds=models.ds; 13 m_dhu=models.dhu; 10 %initialize output 11 newresults=struct(); 14 12 15 %recover parameters 16 debug=m_dhu.parameters.debug; 17 dim=m_dhu.parameters.dim; 18 ishutter=m_dhu.parameters.ishutter; 19 ismacayealpattyn=m_dh.parameters.ismacayealpattyn; 20 isstokes=m_ds.parameters.isstokes; 21 yts=m_ds.parameters.yts; 13 %recover models first 14 if strcmpi(analysis_type,'diagnostic'), 15 m_dh=models.dh; 16 m_ds=models.ds; 17 m_dhu=models.dhu; 22 18 23 %recover results 24 u_g=results.u_g; 25 p_g=results.p_g; 19 %some flags needed 20 dim=m_dhu.parameters.dim; 21 ishutter=m_dhu.parameters.ishutter; 22 ismacayealpattyn=m_dh.parameters.ismacayealpattyn; 23 isstokes=m_ds.parameters.isstokes; 26 24 27 newresults=struct(); 28 if dim==2, 29 newresults.step=1; 30 newresults.time=1; 31 newresults.vx=u_g(1:2:end)*yts; 32 newresults.vy=u_g(2:2:end)*yts; 33 newresults.vel=sqrt(newresults.vx.^2+newresults.vy.^2); 34 newresults.pressure=p_g; 25 elseif strcmpi(analysis_type,'thermal'), 26 m_m=models.m; 27 end 35 28 36 else 37 38 newresults.step=1; 39 newresults.time=1; 40 if isstokes, 41 newresults.vx=u_g(1:4:end)*yts; 42 newresults.vy=u_g(2:4:end)*yts; 43 newresults.vz=u_g(3:4:end)*yts; 44 newresults.pressure=p_g; 45 else 46 newresults.vx=u_g(1:3:end)*yts; 47 newresults.vy=u_g(2:3:end)*yts; 48 newresults.vz=u_g(3:3:end)*yts; 49 newresults.pressure=p_g; 29 30 %go through results 31 for i=1:length(results), 32 33 %get field names of results 34 resultsname=fieldnames(results(i)); 35 36 %go through all field 37 for j=1:length(resultsname), 38 39 if strcmpi(resultsname{j},'u_g'), 40 41 u_g=results(i).u_g; 42 yts=m_ds.parameters.yts; 43 44 if dim==2, 45 newresults(i).step=results(i).step; 46 newresults(i).time=results(i).time; 47 newresults(i).vx=u_g(1:2:end)*yts; 48 newresults(i).vy=u_g(2:2:end)*yts; 49 newresults(i).vel=sqrt(newresults(i).vx.^2+newresults(i).vy.^2); 50 51 else 52 newresults(i).step=results(i).step; 53 newresults(i).time=results(i).time; 54 if isstokes, 55 newresults(i).vx=u_g(1:4:end)*yts; 56 newresults(i).vy=u_g(2:4:end)*yts; 57 newresults(i).vz=u_g(3:4:end)*yts; 58 else 59 newresults(i).vx=u_g(1:3:end)*yts; 60 newresults(i).vy=u_g(2:3:end)*yts; 61 newresults(i).vz=u_g(3:3:end)*yts; 62 end 63 newresults(i).vel=sqrt(newresults(i).vx.^2+newresults(i).vy.^2+newresults(i).vz.^2); 64 end 65 66 elseif strcmpi(resultsname{j},'p_g'), 67 68 p_g=results(i).p_g; 69 newresults(i).step=results(i).step; 70 newresults(i).time=results(i).time; 71 newresults(i).pressure=p_g; 72 73 elseif strcmpi(resultsname{j},'t_g'), 74 75 t_g=results(i).t_g; 76 newresults(i).step=results(i).step; 77 newresults(i).time=results(i).time; 78 newresults(i).temperature=t_g; 79 80 elseif strcmpi(resultsname{j},'m_g'), 81 82 m_g=results(i).m_g; 83 yts=m_m.parameters.yts; 84 newresults(i).step=results(i).step; 85 newresults(i).time=results(i).time; 86 newresults(i).melting=m_g*yts; 87 88 elseif strcmpi(resultsname{j},'h_g'), 89 90 h_g=results(i).h_g; 91 newresults(i).step=results(i).step; 92 newresults(i).time=results(i).time; 93 newresults(i).thickness=h_g; 94 95 elseif strcmpi(resultsname{j},'s_g'), 96 97 s_g=results(i).s_g; 98 newresults(i).step=results(i).step; 99 newresults(i).time=results(i).time; 100 newresults(i).surface=s_g; 101 102 elseif strcmpi(resultsname{j},'b_g'), 103 104 b_g=results(i).b_g; 105 newresults(i).step=results(i).step; 106 newresults(i).time=results(i).time; 107 newresults(i).bed=b_g; 108 109 elseif strcmpi(resultsname{j},'param_g'), 110 111 param_g=results(i).param_g; 112 newresults(i).step=results(i).step; 113 newresults(i).time=results(i).time; 114 newresults(i).parameter=param_g(1:2:end); 115 116 else 117 118 newresults(i).step=results(i).step; 119 newresults(i).time=results(i).time; 120 newresults(i).(resultsname{j})=results(i).(resultsname{j}); 121 122 end 50 123 end 51 newresults.vel=sqrt(newresults.vx.^2+newresults.vy.^2+newresults.vz.^2);52 124 end
Note:
See TracChangeset
for help on using the changeset viewer.