Changeset 4430 for issm/trunk/src/m/dakota/qmuresponse.m
- Timestamp:
- 07/07/10 11:31:55 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/dakota/qmuresponse.m
r3736 r4430 8 8 elseif strcmpi(descriptor,'max_vx'), 9 9 response=max(processedresults.vx); 10 elseif strcmpi(descriptor,'max_abs_vx'), 11 response=max(abs(processedresults.vx)); 10 12 elseif strcmpi(descriptor,'min_vx'), 11 13 response=min(processedresults.vx); 12 14 elseif strcmpi(descriptor,'max_vy'), 13 15 response=max(processedresults.vy); 16 elseif strcmpi(descriptor,'max_abs_vy'), 17 response=max(abs(processedresults.vy)); 14 18 elseif strcmpi(descriptor,'min_vy'), 15 19 response=min(processedresults.vy); 16 elseif strcmpi(descriptor,'mass_flux'), 20 elseif strncmpi(descriptor,'mass_flux',9), 21 indx=str2int(descriptor(10:end)); 22 if isempty(indx) || ~indx 23 indx=1; 24 end 25 17 26 %call mass flux module. 18 27 m_dh=models.dh; 19 28 m_dhu=models.dhu; 20 29 m_ds=models.ds; 21 ishutter=m_dh .parameters.ishutter;22 ismacayealpattyn=m_dh u.parameters.ismacayealpattyn;30 ishutter=m_dhu.parameters.ishutter; 31 ismacayealpattyn=m_dh.parameters.ismacayealpattyn; 23 32 isstokes=m_ds.parameters.isstokes; 24 33 if ishutter, 25 response=MassFlux(m_dhu.elements,m_dhu.nodes,m_dhu.vertices,m_dhu.loads,m_dhu.materials,m_dhu.parameters,results.u_g); 34 if isnumeric(m_dhu.parameters.qmu_mass_flux_segments) 35 response=MassFlux(m_dhu.elements,m_dhu.nodes,m_dhu.vertices,m_dhu.loads,m_dhu.materials,m_dhu.parameters,results.u_g); 36 else 37 save=m_dhu.parameters.qmu_mass_flux_segments; 38 m_dhu.parameters.qmu_mass_flux_segments=m_dhu.parameters.qmu_mass_flux_segments{indx}; 39 response=MassFlux(m_dhu.elements,m_dhu.nodes,m_dhu.vertices,m_dhu.loads,m_dhu.materials,m_dhu.parameters,results.u_g); 40 m_dhu.parameters.qmu_mass_flux_segments=save; 41 clear save 42 end 26 43 elseif ismacayealpattyn, 27 response=MassFlux(m_dh.elements,m_dh.nodes,m_dh.vertices,m_dh.loads,m_dh.materials,m_dh.parameters,results.u_g); 44 45 % for now, separate all segments from double array for parallel to make cells 46 if (length(m_dh.parameters.qmu_mass_flux_num_segments) > 1) 47 segments=m_dh.parameters.qmu_mass_flux_segments; 48 m_dh.parameters.qmu_mass_flux_segments=cell(size(m_dh.parameters.qmu_mass_flux_num_segments)); 49 ipt=1; 50 for i=1:length(m_dh.parameters.qmu_mass_flux_num_segments) 51 if m_dh.parameters.qmu_mass_flux_num_segments(i) 52 m_dh.parameters.qmu_mass_flux_segments{i}=segments(ipt:ipt+m_dh.parameters.qmu_mass_flux_num_segments(i)-1,:); 53 ipt=ipt+m_dh.parameters.qmu_mass_flux_num_segments(i); 54 end 55 end 56 clear segments 57 end 58 59 if isnumeric(m_dh.parameters.qmu_mass_flux_segments) 60 response=MassFlux(m_dh.elements,m_dh.nodes,m_dh.vertices,m_dh.loads,m_dh.materials,m_dh.parameters,results.u_g); 61 else 62 save=m_dh.parameters.qmu_mass_flux_segments; 63 m_dh.parameters.qmu_mass_flux_segments=m_dh.parameters.qmu_mass_flux_segments{indx}; 64 response=MassFlux(m_dh.elements,m_dh.nodes,m_dh.vertices,m_dh.loads,m_dh.materials,m_dh.parameters,results.u_g); 65 m_dh.parameters.qmu_mass_flux_segments=save; 66 clear save 67 end 28 68 elseif isstokes, 29 response=MassFlux(m_ds.elements,m_ds.nodes,m_ds.vertices,m_ds.loads,m_ds.materials,m_ds.parameters,results.u_g); 69 if isnumeric(m_ds.parameters.qmu_mass_flux_segments) 70 response=MassFlux(m_ds.elements,m_ds.nodes,m_ds.vertices,m_ds.loads,m_ds.materials,m_ds.parameters,results.u_g); 71 else 72 save=m_ds.parameters.qmu_mass_flux_segments; 73 m_ds.parameters.qmu_mass_flux_segments=m_ds.parameters.qmu_mass_flux_segments{indx}; 74 response=MassFlux(m_ds.elements,m_ds.nodes,m_ds.vertices,m_ds.loads,m_ds.materials,m_ds.parameters,results.u_g); 75 m_ds.parameters.qmu_mass_flux_segments=save; 76 clear save 77 end 30 78 else 31 79 error('qmuresponse error message: unsupported analysis type for mass_flux computation!'); 32 80 end 33 81 else 34 error(['qmuresponse error message: unknow descriptor ' descriptor]);82 error(['qmuresponse error message: unknown descriptor ' descriptor]); 35 83 end 84
Note:
See TracChangeset
for help on using the changeset viewer.